[m-rev.] for review: Fix compiler abort during liveness detection.

Peter Wang novalazy at gmail.com
Mon Sep 9 14:06:00 AEST 2013


On Mon, 9 Sep 2013 13:43:28 +1000 (EST), Julien Fischer <jfischer at opturion.com> wrote:
> 
> Hi Peter,
> 
> On Wed, 4 Sep 2013, Peter Wang wrote:
> 
> > [I'm not certain of the fix]
> 
> Neither am I.
> 
> Do you know where the call to goal_info_get_post_births that is causing
> the aborts is?  In particular, is it whne detect_deadness (i.e. stage 2
> of of liveness analysis) is processing an if-then-else?

It happens immediately afterwards in the call to add_liveness_after_goal.

Peter

% mdb lmc bug51      
Melbourne Mercury Debugger, mdb version DEV.
Copyright 1998-2013 The University of Melbourne, Australia.
mdb is free software, covered by the GNU General Public License.
There is absolutely no warranty for mdb.
       1:      1  1 CALL pred top_level.main/2-0 (det) top_level.m:55
mdb> e
 6696336: 2279310 35 EXCP pred require.unexpected/3-0 (erroneous) c7; require.m:192 (hlds_llds.m:443)
mdb> bt
   0       pred require.unexpected/3-0 (erroneous) (require.m:192)
   1       pred hlds.hlds_llds.goal_info_get_post_births/2-0 (det) (hlds_llds.m:443)
   2       pred ll_backend.liveness.add_liveness_after_goal/3-0 (det) (liveness.m:1804)
   3       pred ll_backend.liveness.detect_liveness_in_goal/5-0 (det) (liveness.m:464)
   4    4* pred ll_backend.liveness.detect_liveness_in_conj/5-0 (det) (liveness.m:510 and others)
   8       pred ll_backend.liveness.detect_liveness_in_goal/5-0 (det) (liveness.m:410)
   9       pred ll_backend.liveness.detect_liveness_proc_2/4-0 (det) (liveness.m:292)
  10       pred ll_backend.liveness.detect_liveness_proc/4-0 (det) (liveness.m:266)
  11       pred top_level.mercury_compile_llds_back_end.llds_backend_pass_for_proc/12-0 (det) (mercury_compile_llds_back_end.m:360)
  12       pred top_level.mercury_compile_llds_back_end.llds_backend_pass_for_pred/11-0 (det) (mercury_compile_llds_back_end.m:292)
  13       pred top_level.mercury_compile_llds_back_end.llds_backend_pass_by_preds_loop_over_preds/11-0 (det) (mercury_compile_llds_back_end.m:260)
  14       pred top_level.mercury_compile_llds_back_end.llds_backend_pass_by_preds/7-0 (det) (mercury_compile_llds_back_end.m:207)
  15       pred top_level.mercury_compile_llds_back_end.llds_backend_pass/8-0 (det) (mercury_compile_llds_back_end.m:134)
  16       pred top_level.mercury_compile.mercury_compile_after_front_end/11-0 (det) (mercury_compile.m:1607)
  17       pred top_level.mercury_compile.mercury_compile/11-0 (det) (mercury_compile.m:1441)
  18       pred top_level.mercury_compile.compile/13-0 (det) (mercury_compile.m:1365)
  19       pred list.map_foldl2/7-2 (det) (list.m:2679)
  20       pred top_level.mercury_compile.compile_all_submodules/13-0 (det) (mercury_compile.m:1183)
  21       pred top_level.mercury_compile.process_module_2/9-0 (det) (mercury_compile.m:1156)
  22       pred top_level.mercury_compile.process_module/7-0 (det) (mercury_compile.m:1049)
  23       pred top_level.mercury_compile.process_arg_2/7-0 (det) (mercury_compile.m:771)
  24       pred top_level.mercury_compile.process_arg_build/9-0 (det) (mercury_compile.m:733)
  25       pred make.util.build_with_module_options_args_invoked/12-0 (det) (make.util.m:1059)
  26       pred make.util.build_with_module_options_args/11-0 (det) (make.util.m:1012)
  27       pred top_level.mercury_compile.process_arg/8-0 (det) (mercury_compile.m:706)
  28       pred top_level.mercury_compile.process_arg_list/10-0 (det) (mercury_compile.m:677)
  29       pred top_level.mercury_compile.process_args/8-0 (det) (mercury_compile.m:629)
  30       pred top_level.mercury_compile.process_all_args/8-0 (det) (mercury_compile.m:536)
  31       pred top_level.mercury_compile.main_after_setup/7-0 (det) (mercury_compile.m:450)
  32       pred top_level.mercury_compile.real_main_after_expansion/3-0 (det) (mercury_compile.m:310)
  33       pred top_level.mercury_compile.real_main/2-0 (det) (mercury_compile.m:119)
  34       pred top_level.main/2-0 (det) (top_level.m:56)



More information about the reviews mailing list