[m-rev.] diff (not yet committed): Add feedback anslysis tests to the test suite.
Paul Bone
pbone at csse.unimelb.edu.au
Mon Nov 7 17:04:03 AEDT 2011
This change depends on a previous change that hasn't been reviewed yet, so I
will not be committing it now.
---
Create test cases for feedback analysis. These test cases take a program's
profile and compute from it a feedback file. Then pretty-print the feedback
file using mdprof_report_feedback, and compare the pretty-printed output to a
reference output. By comparing the pretty printed output it's easy to see what
has changed when the tests fail.
tests/Mmakefile:
tests/feedback:
Create feedback directory in the test suite.
tests/feedback/Mmakefile:
tests/feedback/autopar_mandelbrot.exp:
tests/feedback/autopar_mmc.exp:
tests/feedback/mandelbrot/Deep.data:
tests/feedback/mandelbrot/Deep.procrep:
tests/feedback/mmc/Deep.data:
tests/feedback/mmc/Deep.procrep:
Create two test cases for feedback analysis, these test the automatic
parallelization of the compiler and mandelbrot program.
deep_profiler/mdprof_create_feedback.m:
The create feedback tool does not generate a report by default.
diff --git a/deep_profiler/mdprof_create_feedback.m b/deep_profiler/mdprof_create_feedback.m
index e6c9955..1511cc0 100644
--- a/deep_profiler/mdprof_create_feedback.m
+++ b/deep_profiler/mdprof_create_feedback.m
@@ -191,9 +191,8 @@ help_message(ProgName) = HelpMessage :-
--debug-read-profile
Generate debugging messages when reading the deep profile
and creating the deep structure.
- --no-report Suppress the report about the feedback information in the
- file that is usually displayed after any processing has
- been done.
+ --report Print a report about the feedback information after any
+ processing has been done.
The following options select sets of feedback information useful
for particular compiler optimizations:
@@ -435,7 +434,7 @@ defaults(help, bool(no)).
defaults(verbosity, int(2)).
defaults(version, bool(no)).
defaults(debug_read_profile, bool(no)).
-defaults(report, bool(yes)).
+defaults(report, bool(no)).
defaults(candidate_parallel_conjunctions, bool(no)).
diff --git a/tests/Mmakefile b/tests/Mmakefile
index 8ee8aad..746ded5 100644
--- a/tests/Mmakefile
+++ b/tests/Mmakefile
@@ -6,6 +6,7 @@ SUBDIRS = \
benchmarks \
debugger \
dppd \
+ feedback \
general \
grade_subdirs \
hard_coded \
diff --git a/tests/feedback/Mmakefile b/tests/feedback/Mmakefile
new file mode 100644
index 0000000..b32983e
--- /dev/null
+++ b/tests/feedback/Mmakefile
@@ -0,0 +1,34 @@
+#-----------------------------------------------------------------------------#
+
+THIS_DIR = feedback
+
+#-----------------------------------------------------------------------------#
+
+AUTOPAR_REPORTS=mandelbrot \
+ mmc
+
+REPORTS=$(patsubst %,autopar_%,$(AUTOPAR_REPORTS))
+
+TESTS = $(patsubst %,%-nodepend,$(sort $(REPORTS)))
+TESTS_DIR = ..
+SUBDIRS=
+include $(TESTS_DIR)/Mmake.common
+
+FB_CREATE = ../../deep_profiler/mdprof_create_feedback
+FB_REPORT = ../../deep_profiler/mdprof_report_feedback
+
+%.runtest: %.res ;
+
+%.out: %.feedback
+ $(FB_REPORT) $< > $@
+
+autopar_%.feedback: %/Deep.data %/Deep.procrep
+ $(FB_CREATE) --implicit-parallelism $< $@
+
+%.realclean:
+ rm -rf $(@:.realclean=.feedback) \
+ $(@:.realclean=.out) \
+ $(@:.realclean=.res) \
+ $(@:.realclean=.res1) \
+ $(@:.realclean=.log)
+
diff --git a/tests/feedback/autopar_mandelbrot.exp b/tests/feedback/autopar_mandelbrot.exp
new file mode 100644
index 0000000..f0b32e8
--- /dev/null
+++ b/tests/feedback/autopar_mandelbrot.exp
@@ -0,0 +1,62 @@
+Feedback report for ./mandelbrot:
+
+ Candidate parallel conjunctions:
+ Desired parallelism: 8.000000
+ Intermodule var use: no
+ Sparking cost: 100
+ Sparking delay: 1000
+ Barrier cost: 100
+ Future signal cost: 100
+ Future wait cost: 200
+ Context wakeup delay: 1000
+ Clique threshold: 2000
+ Call site threshold: 2000
+ Speedup threshold: 1.010000
+ Dependent conjs: yes, use overlap calculation
+ BestParAlgorithm: complete-branches(1000)
+ # of par procs with conjs: 1
+ # of par conjunctions: 1
+ Parallel conjunctions:
+
+ pred mandelbrot.my_map/3-0
+
+ Path: s2-na;
+ Dependent: no
+ NumCalls: 200
+ SeqTime: 2,023,529.72
+ ParTime: 1,013,765.36
+ SparkCost: 100.00
+ BarrierCost: 200.00
+ SignalsCost: 0.00
+ WaitsCost: 0.00
+ ParOverheads total: 300.00
+ Speedup: 1.9961
+ Time saving: 1,009,764.36
+ First conj dead time: 1,001.00
+ Future dead time: 0.00
+ Total dead time: 1,001.00
+
+ Goals before:
+ % conjunction: s2-na;
+ % Cost: 0.00
+
+ % s2-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_2 => [|](X, Xs)
+
+ Parallel conjunction:
+ (
+ % s2-na;c2;c1;
+ % det
+ % cost: 1,011,764.36 (above threshold)
+ M((X, Y))
+ &
+ % s2-na;c2;c2;
+ % det
+ % cost: 1,011,765.36 (above threshold)
+ mandelbrot.my_map(V_8, V_9, M, Xs, Ys)
+ )
+
+ Goals after:
+
diff --git a/tests/feedback/autopar_mmc.exp b/tests/feedback/autopar_mmc.exp
new file mode 100644
index 0000000..75ecb98
--- /dev/null
+++ b/tests/feedback/autopar_mmc.exp
@@ -0,0 +1,9444 @@
+Feedback report for ../batch/profile.mercury_compile.01:
+
+ Candidate parallel conjunctions:
+ Desired parallelism: 8.000000
+ Intermodule var use: no
+ Sparking cost: 100
+ Sparking delay: 1000
+ Barrier cost: 100
+ Future signal cost: 100
+ Future wait cost: 200
+ Context wakeup delay: 1000
+ Clique threshold: 2000
+ Call site threshold: 2000
+ Speedup threshold: 1.010000
+ Dependent conjs: yes, use overlap calculation
+ BestParAlgorithm: complete-branches(1000)
+ # of par procs with conjs: 39
+ # of par conjunctions: 45
+ Parallel conjunctions:
+
+ pred check_hlds.check_typeclass.check_typeclass_constraints/4-0
+
+ Path:
+ Dependent: on TypeTable, V_10, V_11, V_14, V_17
+ NumCalls: 1
+ SeqTime: 212,216.00
+ ParTime: 205,797.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 500.00
+ WaitsCost: 1,200.00
+ ParOverheads total: 2,200.00
+ Speedup: 1.0312
+ Time saving: 6,419.00
+ First conj dead time: 91,909.00
+ Future dead time: 214,857.00
+ Total dead time: 306,766.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 0.00
+
+
+ Parallel conjunction:
+ (
+ % conjunction: c1;c1;
+ % Cost: 112,488.00
+
+ % c1;c1;c1;
+ % det
+ % cost: 2,694.00 (above threshold)
+ hlds.hlds_module.module_info_get_valid_predids(PredIds, V_4, V_8)
+ ,
+ % c1;c1;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_9 <= $closure_cons
+ ,
+ % c1;c1;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_13 <= $type_ctor_info_const
+ ,
+ % c1;c1;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_14: 1.00
+ V_14 <= $type_ctor_info_const
+ ,
+ % c1;c1;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_16 <= $type_ctor_info_const
+ ,
+ % c1;c1;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_15 <= $type_ctor_info_const
+ ,
+ % c1;c1;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_17: 1.00
+ V_17 <= $type_info_cell_constructor(V_16, V_15)
+ ,
+ % c1;c1;c8;
+ % det
+ % cost: 109,794.00 (above threshold)
+ % Productions:
+ % V_11: 109,793.00
+ % V_10: 109,793.00
+ % Consumptions:
+ % V_17: 0.00
+ % V_14: 0.00
+ list.foldl2(V_13, V_14, V_17, V_9, PredIds, V_8, V_10, V_6, V_11)
+ &
+ % c1;c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % TypeTable: 0.00
+ % Consumptions:
+ % V_10: 0.00
+ hlds.hlds_module.module_info_get_type_table(V_10, TypeTable)
+ &
+ % conjunction: c1;c3;
+ % Cost: 99,727.00
+
+ % c1;c3;c1;
+ % det
+ % cost: 8,917.00 (above threshold)
+ % Consumptions:
+ % TypeTable: 0.00
+ hlds.hlds_data.get_all_type_ctor_defns(TypeTable, TypeCtorsDefns)
+ ,
+ % c1;c3;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_12 <= $closure_cons
+ ,
+ % c1;c3;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_20 <= $type_ctor_info_const
+ ,
+ % c1;c3;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_18 <= $type_ctor_info_const
+ ,
+ % c1;c3;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_19 <= $type_ctor_info_const
+ ,
+ % c1;c3;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_21 <= $type_info_cell_constructor(V_20, V_18, V_19)
+ ,
+ % c1;c3;c7;
+ % det
+ % cost: 90,810.00 (above threshold)
+ % Consumptions:
+ % V_17: 0.00
+ % V_14: 0.00
+ % V_11: 0.00
+ % V_10: 0.00
+ list.foldl2(V_21, V_14, V_17, V_12, TypeCtorsDefns, V_10, V_5, V_11, V_7)
+ )
+
+ Goals after:
+
+ pred check_hlds.check_typeclass.check_typeclasses/6-0
+
+ Path: c14;s1-na;
+ Dependent: on V_22, V_23, V_27, V_28
+ NumCalls: 1
+ SeqTime: 233,601.00
+ ParTime: 218,219.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 400.00
+ WaitsCost: 800.00
+ ParOverheads total: 1,700.00
+ Speedup: 1.0705
+ Time saving: 15,382.00
+ First conj dead time: 198,533.00
+ Future dead time: 18,483.00
+ Total dead time: 217,016.00
+
+ Goals before:
+ % conjunction: c14;s1-na;
+ % Cost: 0.00
+
+
+ Parallel conjunction:
+ (
+ % conjunction: c14;s1-na;c1;c1;
+ % Cost: 18,486.00
+
+ % c14;s1-na;c1;c1;c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ scope (
+ % conjunction: c14;s1-na;c1;c1;c1;q;
+ % conjunction: det
+ % conjunction: cost: 1.00 (not above threshold)
+
+ % c14;s1-na;c1;c1;c1;q;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_get_io_state(V_14)
+ ,
+ % c14;s1-na;c1;c1;c1;q;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_15 <= "% Checking typeclass instances...
+"
+ ,
+ % c14;s1-na;c1;c1;c1;q;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ libs.file_util.maybe_write_string(Verbose, V_15, V_14, V_16)
+ ,
+ % c14;s1-na;c1;c1;c1;q;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_set_io_state(V_16)
+ )
+ ,
+ % c14;s1-na;c1;c1;c2;
+ % det
+ % cost: 12,120.00 (above threshold)
+ check_hlds.check_typeclass.check_instance_decls(V_3, V_17, V_5, V_6, V_13, V_18)
+ ,
+ % c14;s1-na;c1;c1;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ scope (
+ % conjunction: c14;s1-na;c1;c1;c3;q;
+ % conjunction: det
+ % conjunction: cost: 1.00 (not above threshold)
+
+ % c14;s1-na;c1;c1;c3;q;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_get_io_state(V_19)
+ ,
+ % c14;s1-na;c1;c1;c3;q;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_20 <= "% Checking for cyclic classes...
+"
+ ,
+ % c14;s1-na;c1;c1;c3;q;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ libs.file_util.maybe_write_string(Verbose, V_20, V_19, V_21)
+ ,
+ % c14;s1-na;c1;c1;c3;q;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_set_io_state(V_21)
+ )
+ ,
+ % c14;s1-na;c1;c1;c4;
+ % det
+ % cost: 6,363.00 (above threshold)
+ % Productions:
+ % V_23: 6,361.00
+ % V_22: 6,362.00
+ check_hlds.check_typeclass.check_for_cyclic_classes(V_17, V_22, V_18, V_23)
+ ,
+ % c14;s1-na;c1;c1;c5;
+ % det
+ % cost: 1.00 (not above threshold)
+ scope (
+ % conjunction: c14;s1-na;c1;c1;c5;q;
+ % conjunction: det
+ % conjunction: cost: 1.00 (not above threshold)
+
+ % c14;s1-na;c1;c1;c5;q;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_get_io_state(V_24)
+ ,
+ % c14;s1-na;c1;c1;c5;q;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_25 <= "% Checking for missing concrete instances...
+"
+ ,
+ % c14;s1-na;c1;c1;c5;q;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ libs.file_util.maybe_write_string(Verbose, V_25, V_24, V_26)
+ ,
+ % c14;s1-na;c1;c1;c5;q;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_set_io_state(V_26)
+ )
+ &
+ % conjunction: c14;s1-na;c1;c2;
+ % Cost: 296.00
+
+ % c14;s1-na;c1;c2;c1;
+ % det
+ % cost: 295.00 (not above threshold)
+ % Productions:
+ % V_28: 294.00
+ % V_27: 295.00
+ % Consumptions:
+ % V_23: 293.00
+ % V_22: 1.00
+ check_hlds.check_typeclass.check_for_missing_concrete_instances(V_22, V_27, V_23, V_28)
+ ,
+ % c14;s1-na;c1;c2;c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ scope (
+ % conjunction: c14;s1-na;c1;c2;c2;q;
+ % conjunction: det
+ % conjunction: cost: 1.00 (not above threshold)
+
+ % c14;s1-na;c1;c2;c2;q;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_get_io_state(V_29)
+ ,
+ % c14;s1-na;c1;c2;c2;q;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_30 <= "% Checking functional dependencies on instances...
+"
+ ,
+ % c14;s1-na;c1;c2;c2;q;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ libs.file_util.maybe_write_string(Verbose, V_30, V_29, V_31)
+ ,
+ % c14;s1-na;c1;c2;c2;q;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_set_io_state(V_31)
+ )
+ &
+ % conjunction: c14;s1-na;c1;c3;
+ % Cost: 214,819.00
+
+ % c14;s1-na;c1;c3;c1;
+ % det
+ % cost: 2,601.00 (above threshold)
+ % Consumptions:
+ % V_28: 48.00
+ % V_27: 1.00
+ check_hlds.check_typeclass.check_functional_dependencies(V_27, V_32, V_28, V_33)
+ ,
+ % c14;s1-na;c1;c3;c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ scope (
+ % conjunction: c14;s1-na;c1;c3;c2;q;
+ % conjunction: det
+ % conjunction: cost: 1.00 (not above threshold)
+
+ % c14;s1-na;c1;c3;c2;q;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_get_io_state(V_34)
+ ,
+ % c14;s1-na;c1;c3;c2;q;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_35 <= "% Checking typeclass constraints...
+"
+ ,
+ % c14;s1-na;c1;c3;c2;q;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ libs.file_util.maybe_write_string(Verbose, V_35, V_34, V_36)
+ ,
+ % c14;s1-na;c1;c3;c2;q;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_set_io_state(V_36)
+ )
+ ,
+ % c14;s1-na;c1;c3;c3;
+ % det
+ % cost: 212,217.00 (above threshold)
+ check_hlds.check_typeclass.check_typeclass_constraints(V_32, V_4, V_33, V_8)
+ )
+
+ Goals after:
+
+ pred check_hlds.det_analysis.determinism_pass/3-0
+
+ Path:
+ Dependent: on Debug, DeclaredProcs, Globals, UndeclaredProcs, V_15, V_21, Verbose
+ NumCalls: 1
+ SeqTime: 1,099,318.00
+ ParTime: 733,209.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 700.00
+ WaitsCost: 1,600.00
+ ParOverheads total: 2,800.00
+ Speedup: 1.4993
+ Time saving: 366,109.00
+ First conj dead time: 236,150.00
+ Future dead time: 621,509.00
+ Total dead time: 857,659.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 0.00
+
+
+ Parallel conjunction:
+ (
+ % conjunction: c1;c1;
+ % Cost: 495,559.00
+
+ % c1;c1;c1;
+ % det
+ % cost: 2.00 (not above threshold)
+ hlds.hlds_module.module_info_get_valid_predids(PredIds, V_11, V_13)
+ ,
+ % c1;c1;c2;
+ % det
+ % cost: 2.00 (not above threshold)
+ hlds.hlds_module.module_info_get_preds(V_13, PredTable)
+ ,
+ % c1;c1;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_36 <= []
+ ,
+ % c1;c1;c4;
+ % det
+ % cost: 123,776.00 (above threshold)
+ check_hlds.det_analysis.get_all_pred_procs_2(PredTable, PredIds, V_36, PredProcs)
+ ,
+ % c1;c1;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_37 <= []
+ ,
+ % c1;c1;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_38 <= []
+ ,
+ % c1;c1;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_39 <= []
+ ,
+ % c1;c1;c8;
+ % det
+ % cost: 113,399.00 (above threshold)
+ % Productions:
+ % UndeclaredProcs: 3,283.00
+ % DeclaredProcs: 3,283.00
+ check_hlds.det_analysis.segregate_procs_2(V_13, PredProcs, V_37, DeclaredProcs, V_38, UndeclaredProcs, V_39, NoInferProcs)
+ ,
+ % c1;c1;c9;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_14 <= $closure_cons
+ ,
+ % c1;c1;c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_31 <= $type_ctor_info_const
+ ,
+ % c1;c1;c11;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_32 <= $type_ctor_info_const
+ ,
+ % c1;c1;c12;
+ % det
+ % cost: 258,369.00 (above threshold)
+ % Productions:
+ % V_15: 258,368.00
+ list.foldl(V_31, V_32, V_14, NoInferProcs, V_13, V_15)
+ ,
+ % c1;c1;c13;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % Globals: 0.00
+ % Consumptions:
+ % V_15: 0.00
+ hlds.hlds_module.module_info_get_globals(V_15, Globals)
+ ,
+ % c1;c1;c14;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_16 <= verbose
+ ,
+ % c1;c1;c15;
+ % det
+ % cost: 10.00 (not above threshold)
+ % Productions:
+ % Verbose: 9.00
+ % Consumptions:
+ % Globals: 0.00
+ libs.globals.lookup_bool_option(Globals, V_16, Verbose)
+ &
+ % conjunction: c1;c2;
+ % Cost: 11.00
+
+ % c1;c2;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_17 <= debug_det
+ ,
+ % c1;c2;c2;
+ % det
+ % cost: 10.00 (not above threshold)
+ % Productions:
+ % Debug: 9.00
+ % Consumptions:
+ % Globals: 0.00
+ libs.globals.lookup_bool_option(Globals, V_17, Debug)
+ ,
+ % c1;c2;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_21: 0.00
+ % Consumptions:
+ % V_15: 0.00
+ % Debug: 0.00
+ % Verbose: 0.00
+ % UndeclaredProcs: 0.00
+ switch_can_not_fail_rep switch on UndeclaredProcs
+ (
+ % case []/0
+ % conjunction: c1;c2;c3;s1-na;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c1;c2;c3;s1-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ InferenceSpecs <= []
+ ,
+ % c1;c2;c3;s1-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_21: 1.00
+ % Consumptions:
+ % V_15: 0.00
+ V_21 := V_15
+ ;
+ % case [|]/2
+ % conjunction: c1;c2;c3;s2-na;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c1;c2;c3;s2-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ scope (
+ % conjunction: c1;c2;c3;s2-na;c1;q;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c1;c2;c3;s2-na;c1;q;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_get_io_state(V_18)
+ ,
+ % c1;c2;c3;s2-na;c1;q;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_19 <= "% Doing determinism inference...
+"
+ ,
+ % c1;c2;c3;s2-na;c1;q;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ libs.file_util.maybe_write_string(Verbose, V_19, V_18, V_20)
+ ,
+ % c1;c2;c3;s2-na;c1;q;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_set_io_state(V_20)
+ )
+ ,
+ % c1;c2;c3;s2-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ check_hlds.det_analysis.global_inference_pass(V_15, V_21, UndeclaredProcs, Debug, InferenceSpecs)
+ ,
+ % c1;c2;c3;s2-na;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ scope (
+ % conjunction: c1;c2;c3;s2-na;c3;q;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c1;c2;c3;s2-na;c3;q;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_get_io_state(V_22)
+ ,
+ % c1;c2;c3;s2-na;c3;q;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_23 <= "% done.
+"
+ ,
+ % c1;c2;c3;s2-na;c3;q;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ libs.file_util.maybe_write_string(Verbose, V_23, V_22, V_24)
+ ,
+ % c1;c2;c3;s2-na;c3;q;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_set_io_state(V_24)
+ )
+ )
+ ,
+ % c1;c2;c4;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Consumptions:
+ % Verbose: 0.00
+ scope (
+ % conjunction: c1;c2;c4;q;
+ % conjunction: det
+ % conjunction: cost: 1.00 (not above threshold)
+
+ % c1;c2;c4;q;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_get_io_state(V_25)
+ ,
+ % c1;c2;c4;q;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_26 <= "% Doing determinism checking...
+"
+ ,
+ % c1;c2;c4;q;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ libs.file_util.maybe_write_string(Verbose, V_26, V_25, V_27)
+ ,
+ % c1;c2;c4;q;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_set_io_state(V_27)
+ )
+ &
+ % c1;c3;
+ % det
+ % cost: 603,748.00 (above threshold)
+ % Consumptions:
+ % V_21: 2.00
+ % Debug: 2.00
+ % UndeclaredProcs: 594,287.00
+ % DeclaredProcs: 2.00
+ check_hlds.det_analysis.global_final_pass(V_21, V_12, UndeclaredProcs, DeclaredProcs, Debug, FinalSpecs)
+ )
+
+ Goals after:
+
+ pred check_hlds.det_analysis.global_final_pass/6-0
+
+ Path:
+ Dependent: on V_10, V_8
+ NumCalls: 1
+ SeqTime: 603,747.00
+ ParTime: 594,486.00
+ SparkCost: 100.00
+ BarrierCost: 200.00
+ SignalsCost: 200.00
+ WaitsCost: 400.00
+ ParOverheads total: 900.00
+ Speedup: 1.0156
+ Time saving: 9,261.00
+ First conj dead time: 0.00
+ Future dead time: 0.00
+ Total dead time: 0.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 0.00
+
+
+ Parallel conjunction:
+ (
+ % conjunction: c1;c1;
+ % Cost: 594,286.00
+
+ % c1;c1;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_9 <= []
+ ,
+ % c1;c1;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_11 <= unchanged
+ ,
+ % c1;c1;c3;
+ % det
+ % cost: 594,286.00 (above threshold)
+ % Productions:
+ % V_10: 165.00
+ % V_8: 165.00
+ check_hlds.det_analysis.global_inference_single_pass(DeclaredProcs, Debug, V_5, V_8, V_9, V_10, V_11, V_4)
+ &
+ % conjunction: c1;c2;
+ % Cost: 9,461.00
+
+ % c1;c2;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_13 <= $type_ctor_info_const
+ ,
+ % c1;c2;c2;
+ % det
+ % cost: 2.00 (not above threshold)
+ list.++(V_13, UndeclaredProcs, DeclaredProcs, V_12)
+ ,
+ % c1;c2;c3;
+ % det
+ % cost: 9,459.00 (above threshold)
+ % Consumptions:
+ % V_10: 0.00
+ % V_8: 0.00
+ check_hlds.det_report.global_checking_pass(V_12, V_8, V_6, V_10, V_7)
+ )
+
+ Goals after:
+
+ pred check_hlds.inst_check.check_insts_have_matching_types/3-0
+
+ Path:
+ Dependent: on AllTypeDefs, UserVisibleTypeDefs, V_19
+ NumCalls: 1
+ SeqTime: 164,034.00
+ ParTime: 157,095.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 300.00
+ WaitsCost: 600.00
+ ParOverheads total: 1,400.00
+ Speedup: 1.0442
+ Time saving: 6,939.00
+ First conj dead time: 146,013.00
+ Future dead time: 12,191.00
+ Total dead time: 158,204.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 4.00
+
+ % c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_get_inst_table(Module, InstTable)
+ ,
+ % c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_data.inst_table_get_user_insts(InstTable, UserInstTable)
+ ,
+ % c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_data.user_inst_table_get_inst_defns(UserInstTable, InstDefs)
+ ,
+ % c4;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_get_type_table(Module, TypeTable)
+
+ Parallel conjunction:
+ (
+ % conjunction: c5;c1;
+ % Cost: 9,877.00
+
+ % c5;c1;c1;
+ % det
+ % cost: 8,917.00 (above threshold)
+ hlds.hlds_data.get_all_type_ctor_defns(TypeTable, TypeCtorsDefns)
+ ,
+ % c5;c1;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_18 <= $type_ctor_info_const
+ ,
+ % c5;c1;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_19: 1.00
+ V_19 <= $type_ctor_info_const
+ ,
+ % c5;c1;c4;
+ % det
+ % cost: 960.00 (not above threshold)
+ % Productions:
+ % AllTypeDefs: 959.00
+ % Consumptions:
+ % V_19: 0.00
+ assoc_list.values(V_18, V_19, TypeCtorsDefns, AllTypeDefs)
+ &
+ % conjunction: c5;c2;
+ % Cost: 3,235.00
+
+ % c5;c2;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_15 <= section_implementation
+ ,
+ % c5;c2;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_14 <= $closure_cons(V_15)
+ ,
+ % c5;c2;c3;
+ % det
+ % cost: 2,875.00 (above threshold)
+ % Productions:
+ % UserVisibleTypeDefs: 2,874.00
+ % Consumptions:
+ % V_19: 0.00
+ % AllTypeDefs: 0.00
+ list.filter(V_19, V_14, AllTypeDefs, UserVisibleTypeDefs)
+ ,
+ % c5;c2;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_20 <= $type_ctor_info_const
+ ,
+ % c5;c2;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_21 <= $type_ctor_info_const
+ ,
+ % c5;c2;c6;
+ % det
+ % cost: 134.00 (not above threshold)
+ map.to_assoc_list(V_20, V_21, InstDefs, InstIdDefPairs)
+ ,
+ % c5;c2;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_16 <= $closure_cons
+ ,
+ % c5;c2;c8;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_22 <= $type_ctor_info_const
+ ,
+ % c5;c2;c9;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_23 <= $type_info_cell_constructor(V_22, V_20, V_21)
+ ,
+ % c5;c2;c10;
+ % det
+ % cost: 226.00 (not above threshold)
+ list.filter(V_23, V_16, InstIdDefPairs, InstIdDefPairsForCurrentModule)
+ &
+ % c5;c3;
+ % det
+ % cost: 150,917.00 (above threshold)
+ % Consumptions:
+ % UserVisibleTypeDefs: 1.00
+ check_hlds.inst_check.index_types_by_unqualified_functors(UserVisibleTypeDefs, FunctorsToTypeDefs)
+ )
+
+ Goals after:
+ % c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_17 <= $closure_cons(FunctorsToTypeDefs)
+ ,
+ % c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_25 <= $type_ctor_info_const
+ ,
+ % c8;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_24 <= $type_ctor_info_const
+ ,
+ % c9;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_26 <= $type_info_cell_constructor(V_25, V_24)
+ ,
+ % c10;
+ % det
+ % cost: 1.00 (not above threshold)
+ list.foldl(V_23, V_26, V_17, InstIdDefPairsForCurrentModule, V_12, V_13)
+
+ pred check_hlds.modes.check_pred_modes/6-0
+
+ Path: c6;s2-na;
+ Dependent: on V_22
+ NumCalls: 1
+ SeqTime: 370,397.00
+ ParTime: 275,252.00
+ SparkCost: 100.00
+ BarrierCost: 200.00
+ SignalsCost: 100.00
+ WaitsCost: 200.00
+ ParOverheads total: 600.00
+ Speedup: 1.3457
+ Time saving: 95,145.00
+ First conj dead time: 176,807.00
+ Future dead time: 0.00
+ Total dead time: 176,807.00
+
+ Goals before:
+ % conjunction: c6;s2-na;
+ % Cost: 0.00
+
+
+ Parallel conjunction:
+ (
+ % conjunction: c6;s2-na;c1;c1;
+ % Cost: 97,345.00
+
+ % c6;s2-na;c1;c1;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_21 <= include_detism_on_modes
+ ,
+ % c6;s2-na;c1;c1;c2;
+ % det
+ % cost: 97,343.00 (above threshold)
+ check_hlds.mode_errors.report_mode_inference_messages(V_16, V_21, PredIds, InferenceSpecs)
+ ,
+ % c6;s2-na;c1;c1;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_24 <= $type_ctor_info_const
+ ,
+ % c6;s2-na;c1;c1;c4;
+ % det
+ % cost: 2.00 (not above threshold)
+ % Productions:
+ % V_22: 1.00
+ list.++(V_24, InferenceSpecs, V_17, V_22)
+ &
+ % conjunction: c6;s2-na;c1;c2;
+ % Cost: 273,052.00
+
+ % c6;s2-na;c1;c2;c1;
+ % det
+ % cost: 2.00 (not above threshold)
+ hlds.hlds_module.module_info_get_valid_predids(PredIds, V_16, V_12)
+ ,
+ % c6;s2-na;c1;c2;c2;
+ % det
+ % cost: 273,050.00 (above threshold)
+ % Consumptions:
+ % V_22: 123,229.81
+ check_hlds.modes.pred_check_eval_methods(V_12, PredIds, V_22, V_13)
+ )
+
+ Goals after:
+
+ pred check_hlds.switch_detection.detect_switches_in_module/2-0
+
+ Path:
+ Dependent: on PredIdsInfos, V_12, ValidPredIdSet
+ NumCalls: 1
+ SeqTime: 672,313.00
+ ParTime: 665,312.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 300.00
+ WaitsCost: 600.00
+ ParOverheads total: 1,400.00
+ Speedup: 1.0105
+ Time saving: 7,001.00
+ First conj dead time: 551,667.00
+ Future dead time: 663,301.75
+ Total dead time: 1,214,968.75
+
+ Goals before:
+ % conjunction:
+ % Cost: 15.00
+
+ % c1;
+ % det
+ % cost: 13.00 (not above threshold)
+ check_hlds.switch_detection.init_switch_detect_info(V_8, Info)
+ ,
+ % c2;
+ % det
+ % cost: 2.00 (not above threshold)
+ hlds.hlds_module.module_info_get_valid_predids(ValidPredIds, V_8, V_10)
+ ,
+ % c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_11 <= $type_ctor_info_const
+
+ Parallel conjunction:
+ (
+ % c4;c1;
+ % det
+ % cost: 112,530.00 (above threshold)
+ % Productions:
+ % ValidPredIdSet: 112,529.00
+ set_tree234.list_to_set(V_11, ValidPredIds, ValidPredIdSet)
+ &
+ % conjunction: c4;c2;
+ % Cost: 554,721.00
+
+ % c4;c2;c1;
+ % det
+ % cost: 2.00 (not above threshold)
+ hlds.hlds_module.module_info_get_preds(V_10, PredMap0)
+ ,
+ % c4;c2;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_12: 1.00
+ V_12 <= $type_ctor_info_const
+ ,
+ % c4;c2;c3;
+ % det
+ % cost: 4,150.00 (above threshold)
+ % Consumptions:
+ % V_12: 0.00
+ map.to_assoc_list(V_11, V_12, PredMap0, PredIdsInfos0)
+ ,
+ % c4;c2;c4;
+ % det
+ % cost: 550,569.00 (above threshold)
+ % Productions:
+ % PredIdsInfos: 550,773.75
+ % Consumptions:
+ % ValidPredIdSet: 1.00
+ check_hlds.switch_detection.detect_switches_in_preds(Info, ValidPredIdSet, PredIdsInfos0, PredIdsInfos)
+ &
+ % c4;c3;
+ % det
+ % cost: 5,047.00 (above threshold)
+ % Consumptions:
+ % V_12: 0.00
+ % PredIdsInfos: 0.00
+ map.from_sorted_assoc_list(V_11, V_12, PredIdsInfos, PredMap)
+ )
+
+ Goals after:
+
+ pred check_hlds.typecheck.typecheck_module/4-0
+
+ Path:
+ Dependent: on FinalValidPredIdSet, OrigValidPredIdSet, PredMap, V_15, V_18
+ NumCalls: 1
+ SeqTime: 1,370,156.00
+ ParTime: 864,669.00
+ SparkCost: 300.00
+ BarrierCost: 400.00
+ SignalsCost: 500.00
+ WaitsCost: 1,000.00
+ ParOverheads total: 2,200.00
+ Speedup: 1.5846
+ Time saving: 505,487.00
+ First conj dead time: 344,749.00
+ Future dead time: 1,380,259.00
+ Total dead time: 1,725,008.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 14.00
+
+ % c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_get_globals(V_14, Globals)
+ ,
+ % c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_16 <= type_inference_iteration_limit
+ ,
+ % c3;
+ % det
+ % cost: 11.00 (not above threshold)
+ libs.globals.lookup_int_option(Globals, V_16, MaxIterations)
+ ,
+ % c4;
+ % det
+ % cost: 2.00 (not above threshold)
+ hlds.hlds_module.module_info_get_valid_predids(OrigValidPredIds, V_14, V_17)
+
+ Parallel conjunction:
+ (
+ % conjunction: c5;c1;
+ % Cost: 518,706.00
+
+ % c5;c1;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_21 <= $type_ctor_info_const
+ ,
+ % c5;c1;c2;
+ % det
+ % cost: 112,478.00 (above threshold)
+ % Productions:
+ % OrigValidPredIdSet: 112,477.00
+ set_tree234.list_to_set(V_21, OrigValidPredIds, OrigValidPredIdSet)
+ ,
+ % c5;c1;c3;
+ % det
+ % cost: 2.00 (not above threshold)
+ hlds.hlds_module.module_info_get_preds(V_17, PredMap0)
+ ,
+ % c5;c1;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_22 <= $type_ctor_info_const
+ ,
+ % c5;c1;c5;
+ % det
+ % cost: 5,369.00 (above threshold)
+ map.to_assoc_list(V_21, V_22, PredMap0, PredIdsInfos0)
+ ,
+ % c5;c1;c6;
+ % det
+ % cost: 395,813.00 (above threshold)
+ % Consumptions:
+ % OrigValidPredIdSet: 1.00
+ check_hlds.typecheck.prepare_for_typecheck(V_17, OrigValidPredIdSet, PredIdsInfos0, PredIdsInfos)
+ ,
+ % c5;c1;c7;
+ % det
+ % cost: 5,044.00 (above threshold)
+ % Productions:
+ % PredMap: 5,043.00
+ map.from_sorted_assoc_list(V_21, V_22, PredIdsInfos, PredMap)
+ &
+ % c5;c2;
+ % det
+ % cost: 2.00 (not above threshold)
+ % Productions:
+ % V_18: 1.00
+ % Consumptions:
+ % PredMap: 0.00
+ hlds.hlds_module.module_info_set_preds(PredMap, V_17, V_18)
+ &
+ % conjunction: c5;c3;
+ % Cost: 754,131.00
+
+ % c5;c3;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_19 <= 1
+ ,
+ % c5;c3;c2;
+ % det
+ % cost: 754,131.00 (above threshold)
+ % Productions:
+ % V_15: 754,131.00
+ % FinalValidPredIdSet: 754,131.00
+ % Consumptions:
+ % V_18: 1.00
+ % OrigValidPredIdSet: 4,153.00
+ check_hlds.typecheck.typecheck_to_fixpoint(V_19, MaxIterations, V_18, V_15, OrigValidPredIds, OrigValidPredIdSet, FinalValidPredIdSet, CheckSpecs, ExceededIterationLimit)
+ &
+ % conjunction: c5;c4;
+ % Cost: 97,303.00
+
+ % c5;c4;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_20 <= []
+ ,
+ % c5;c4;c2;
+ % det
+ % cost: 97,303.00 (above threshold)
+ % Consumptions:
+ % V_15: 1.00
+ % FinalValidPredIdSet: 2,690.00
+ check_hlds.typecheck.construct_type_inference_messages(V_15, FinalValidPredIdSet, OrigValidPredIds, V_20, InferSpecs)
+ )
+
+ Goals after:
+
+ pred check_hlds.typecheck.typecheck_module_one_iteration/10-0
+
+ Path: s2-na;c3;e;
+ Dependent: on ContainsErrors, PredChanged, PredInfo, PredSpecs, V_22, V_23, V_24
+ NumCalls: 175
+ SeqTime: 8,287.03
+ ParTime: 7,727.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 700.00
+ WaitsCost: 1,400.00
+ ParOverheads total: 2,600.00
+ Speedup: 1.0725
+ Time saving: 560.02
+ First conj dead time: 2,169.98
+ Future dead time: 4,430.02
+ Total dead time: 6,600.00
+
+ Goals before:
+ % conjunction: s2-na;c3;e;
+ % Cost: 0.00
+
+
+ Parallel conjunction:
+ (
+ % conjunction: s2-na;c3;e;c1;c1;
+ % Cost: 4,157.02
+
+ % s2-na;c3;e;c1;c1;c1;
+ % det
+ % cost: 4,154.02 (above threshold)
+ % Productions:
+ % PredChanged: 4,147.04
+ % PredSpecs: 4,147.04
+ % PredInfo: 4,146.14
+ check_hlds.typecheck.typecheck_pred_if_needed(ModuleInfo, PredId, PredInfo0, PredInfo, PredSpecs, PredChanged)
+ ,
+ % s2-na;c3;e;c1;c1;c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_get_globals(ModuleInfo, Globals)
+ ,
+ % s2-na;c3;e;c1;c1;c3;
+ % det
+ % cost: 2.00 (not above threshold)
+ % Productions:
+ % ContainsErrors: 175.00
+ % Consumptions:
+ % PredSpecs: 0.00
+ parse_tree.error_util.contains_errors(Globals, PredSpecs, ContainsErrors)
+ &
+ % conjunction: s2-na;c3;e;c1;c2;
+ % Cost: 3.00
+
+ % s2-na;c3;e;c1;c2;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_22: 0.00
+ % Consumptions:
+ % ContainsErrors: 0.00
+ switch_can_not_fail_rep switch on ContainsErrors
+ (
+ % case no/0
+ % s2-na;c3;e;c1;c2;c1;s1-na;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_22: 1.00
+ V_22 := V_5
+ ;
+ % case yes/0
+ % s2-na;c3;e;c1;c2;c1;s2-na;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_22 <= [|](PredId, V_5)
+ )
+ ,
+ % s2-na;c3;e;c1;c2;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % PredInfo: 0.00
+ PredIdInfo <= -(PredId, PredInfo)
+ ,
+ % s2-na;c3;e;c1;c2;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_26 <= $type_ctor_info_const
+ ,
+ % s2-na;c3;e;c1;c2;c4;
+ % det
+ % cost: 2.00 (not above threshold)
+ % Productions:
+ % V_23: 175.00
+ % Consumptions:
+ % PredSpecs: 0.00
+ list.++(V_26, PredSpecs, V_7, V_23)
+ ,
+ % s2-na;c3;e;c1;c2;c5;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % V_24: 0.00
+ % Consumptions:
+ % PredChanged: 0.00
+ bool.or(PredChanged, V_9, V_24)
+ &
+ % s2-na;c3;e;c1;c3;
+ % det
+ % cost: 4,127.00 (above threshold)
+ % Consumptions:
+ % V_24: 5.15
+ % V_23: 5.02
+ % V_22: 5.02
+ check_hlds.typecheck.typecheck_module_one_iteration(ModuleInfo, ValidPredIdSet, PredIdsInfos0, PredIdsInfos, V_22, V_6, V_23, V_8, V_24, V_10)
+ )
+
+ Goals after:
+
+ pred hlds.make_hlds.make_hlds_passes.do_parse_tree_to_hlds/11-0
+
+ Path:
+ Dependent: on InvalidTypes1, Pass2Specs, Statistics, V_26, V_27, V_28, V_29, V_30, V_31, V_39, V_40, V_41, V_49, V_52, V_53, V_63
+ NumCalls: 1
+ SeqTime: 5,114,523.00
+ ParTime: 2,688,829.36
+ SparkCost: 600.00
+ BarrierCost: 700.00
+ SignalsCost: 1,600.00
+ WaitsCost: 3,400.00
+ ParOverheads total: 6,300.00
+ Speedup: 1.9021
+ Time saving: 2,425,693.64
+ First conj dead time: 2,674,357.36
+ Future dead time: 8,036,791.27
+ Total dead time: 10,711,148.64
+
+ Goals before:
+ % conjunction:
+ % Cost: 0.00
+
+ % c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_1 => unit_module(Name, Items)
+
+ Parallel conjunction:
+ (
+ % conjunction: c2;c1;
+ % Cost: 13,072.00
+
+ % c2;c1;c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ parse_tree.module_qual.mq_info_get_partial_qualifier_info(MQInfo0, PQInfo)
+ ,
+ % c2;c1;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_24 <= no
+ ,
+ % c2;c1;c3;
+ % det
+ % cost: 13,070.00 (above threshold)
+ hlds.hlds_module.module_info_init(Name, DumpBaseFileName, Items, Globals, PQInfo, V_24, V_25)
+ ,
+ % c2;c1;c4;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % V_26: 0.00
+ hlds.hlds_module.module_info_set_used_modules(UsedModules, V_25, V_26)
+ ,
+ % c2;c1;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_27: 1.00
+ V_27 <= []
+ ,
+ % c2;c1;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_32 <= status_local
+ ,
+ % c2;c1;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_33 <= may_be_unqualified
+ ,
+ % c2;c1;c8;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_28: 1.00
+ V_28 <= item_status(V_32, V_33)
+ ,
+ % c2;c1;c9;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_30: 1.00
+ V_30 <= no
+ &
+ % conjunction: c2;c2;
+ % Cost: 2,322,980.00
+
+ % c2;c2;c1;
+ % det
+ % cost: 2,322,969.00 (above threshold)
+ % Productions:
+ % V_31: 2,323,280.56
+ % V_29: 2,323,280.56
+ % Consumptions:
+ % V_30: 2,308,366.56
+ % V_28: 15,647.10
+ % V_27: 78,844.57
+ % V_26: 17,073.29
+ hlds.make_hlds.make_hlds_passes.add_item_list_decls_pass_1(Items, V_28, V_26, V_29, V_30, InvalidModes0, V_27, V_31)
+ ,
+ % c2;c2;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_34 <= statistics
+ ,
+ % c2;c2;c3;
+ % det
+ % cost: 9.00 (not above threshold)
+ % Productions:
+ % Statistics: 8.00
+ libs.globals.lookup_bool_option(Globals, V_34, Statistics)
+ ,
+ % c2;c2;c4;
+ % det
+ % cost: 2.00 (not above threshold)
+ % Consumptions:
+ % Statistics: 0.00
+ scope (
+ % conjunction: c2;c2;c4;q;
+ % conjunction: det
+ % conjunction: cost: 2.00 (not above threshold)
+
+ % c2;c2;c4;q;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_get_io_state(V_35)
+ ,
+ % c2;c2;c4;q;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_36 <= "% Processed all items in pass 1
+"
+ ,
+ % c2;c2;c4;q;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ libs.file_util.maybe_write_string(Statistics, V_36, V_35, V_37)
+ ,
+ % c2;c2;c4;q;c4;
+ % det
+ % cost: 1.00 (not above threshold)
+ libs.file_util.maybe_report_stats(Statistics, V_37, V_38)
+ ,
+ % c2;c2;c4;q;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_set_io_state(V_38)
+ )
+ ,
+ % c2;c2;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_40: 1.00
+ V_40 <= []
+ &
+ % c2;c3;
+ % det
+ % cost: 378,098.00 (above threshold)
+ % Productions:
+ % V_39: 378,148.71
+ % Pass2Specs: 378,148.71
+ % Consumptions:
+ % V_40: 196,628.37
+ % V_29: 16,349.19
+ % V_28: 475,221,616.26
+ hlds.make_hlds.make_hlds_passes.add_item_list_decls_pass_2(Items, V_28, V_29, V_39, V_40, Pass2Specs)
+ &
+ % conjunction: c2;c4;
+ % Cost: 2.00
+
+ % c2;c4;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % InvalidTypes1: 0.00
+ % Consumptions:
+ % Pass2Specs: 0.00
+ switch_can_not_fail_rep switch on Pass2Specs
+ (
+ % case []/0
+ % c2;c4;c1;s1-na;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % InvalidTypes1: 1.00
+ InvalidTypes1 <= no
+ ;
+ % case [|]/2
+ % c2;c4;c1;s2-na;
+ % det
+ % cost: 0.00 (not above threshold)
+ InvalidTypes1 <= yes
+ )
+ ,
+ % c2;c4;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_63: 1.00
+ V_63 <= $type_ctor_info_const
+ ,
+ % c2;c4;c3;
+ % det
+ % cost: 2.00 (not above threshold)
+ % Productions:
+ % V_41: 1.00
+ % Consumptions:
+ % V_63: 0.00
+ % V_31: 0.00
+ % Pass2Specs: 0.00
+ list.++(V_63, Pass2Specs, V_31, V_41)
+ &
+ % conjunction: c2;c5;
+ % Cost: 773,506.00
+
+ % c2;c5;c1;
+ % det
+ % cost: 773,504.00 (above threshold)
+ % Productions:
+ % V_49: 773,503.00
+ % Consumptions:
+ % V_63: 245,135.00
+ % V_41: 245,135.00
+ % V_39: 0.00
+ % InvalidTypes1: 0.00
+ switch_can_not_fail_rep switch on InvalidTypes1
+ (
+ % case no/0
+ % conjunction: c2;c5;c1;s1-na;
+ % conjunction: det
+ % conjunction: cost: 773,504.00 (above threshold)
+
+ % c2;c5;c1;s1-na;c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_get_type_table(V_39, V_42)
+ ,
+ % c2;c5;c1;s1-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % V_39: 0.00
+ V_43 <= $closure_cons(V_39)
+ ,
+ % c2;c5;c1;s1-na;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_64 <= $type_ctor_info_const
+ ,
+ % c2;c5;c1;s1-na;c4;
+ % det
+ % cost: 245,133.00 (above threshold)
+ hlds.hlds_data.foldl_over_type_ctor_defns(V_64, V_43, V_42, V_42, V_44)
+ ,
+ % c2;c5;c1;s1-na;c5;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_set_type_table(V_44, V_39, V_45)
+ ,
+ % c2;c5;c1;s1-na;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_46 <= $closure_cons
+ ,
+ % c2;c5;c1;s1-na;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_47 <= no
+ ,
+ % c2;c5;c1;s1-na;c8;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_65 <= $type_ctor_info_const
+ ,
+ % c2;c5;c1;s1-na;c9;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_66 <= $type_ctor_info_const
+ ,
+ % c2;c5;c1;s1-na;c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_67 <= $type_ctor_info_const
+ ,
+ % c2;c5;c1;s1-na;c11;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % V_63: 0.00
+ V_68 <= $type_info_cell_constructor(V_67, V_63)
+ ,
+ % c2;c5;c1;s1-na;c12;
+ % det
+ % cost: 528,369.00 (above threshold)
+ hlds.hlds_data.foldl3_over_type_ctor_defns(V_65, V_66, V_68, V_46, V_44, V_47, InvalidTypes2, V_45, V_48, V_41, V_49)
+ ;
+ % case yes/0
+ % conjunction: c2;c5;c1;s2-na;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c2;c5;c1;s2-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ InvalidTypes2 <= yes
+ ,
+ % c2;c5;c1;s2-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_48 := V_39
+ ,
+ % c2;c5;c1;s2-na;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_49 := V_41
+ )
+ ,
+ % c2;c5;c2;
+ % det
+ % cost: 2.00 (not above threshold)
+ % Productions:
+ % V_52: 0.00
+ (
+ % conjunction: c2;c5;c2;?;
+ % conjunction: semidet
+ % conjunction: cost: 2.00 (not above threshold)
+
+ % c2;c5;c2;?;c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ mdbcomp.prim_data.mercury_public_builtin_module(V_71)
+ ,
+ % c2;c5;c2;?;c2;
+ % semidet
+ % cost: 1.00 (not above threshold)
+ hlds.make_hlds.make_hlds_passes.__Unify__(Name, V_71)
+ ,
+ % c2;c5;c2;?;c3;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ hlds.special_pred.compiler_generated_rtti_for_builtins(V_48)
+ ->
+ % conjunction: c2;c5;c2;t;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c2;c5;c2;t;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_50 <= $closure_cons
+ ,
+ % c2;c5;c2;t;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ parse_tree.prog_type.builtin_type_ctors_with_no_hlds_type_defn(V_51)
+ ,
+ % c2;c5;c2;t;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_69 <= $type_ctor_info_const
+ ,
+ % c2;c5;c2;t;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_70 <= $type_ctor_info_const
+ ,
+ % c2;c5;c2;t;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ list.foldl(V_69, V_70, V_50, V_51, V_48, V_52)
+ ;
+ % c2;c5;c2;e;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_52: 1.00
+ V_52 := V_48
+ )
+ &
+ % conjunction: c2;c6;
+ % Cost: 22.00
+
+ % c2;c6;c1;
+ % det
+ % cost: 20.00 (not above threshold)
+ % Productions:
+ % V_53: 19.00
+ % Consumptions:
+ % V_52: 0.00
+ hlds.hlds_module.module_info_optimize(V_52, V_53)
+ ,
+ % c2;c6;c2;
+ % det
+ % cost: 2.00 (not above threshold)
+ % Consumptions:
+ % Statistics: 0.00
+ scope (
+ % conjunction: c2;c6;c2;q;
+ % conjunction: det
+ % conjunction: cost: 2.00 (not above threshold)
+
+ % c2;c6;c2;q;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_get_io_state(V_54)
+ ,
+ % c2;c6;c2;q;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_55 <= "% Processed all items in pass 2
+"
+ ,
+ % c2;c6;c2;q;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ libs.file_util.maybe_write_string(Statistics, V_55, V_54, V_56)
+ ,
+ % c2;c6;c2;q;c4;
+ % det
+ % cost: 1.00 (not above threshold)
+ libs.file_util.maybe_report_stats(Statistics, V_56, V_57)
+ ,
+ % c2;c6;c2;q;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin private_builtin.trace_set_io_state(V_57)
+ )
+ &
+ % conjunction: c2;c7;
+ % Cost: 1,626,843.00
+
+ % c2;c7;c1;
+ % det
+ % cost: 6.00 (not above threshold)
+ hlds.make_hlds.qual_info.init_qual_info(MQInfo0, EqvMap, QualInfo0)
+ ,
+ % c2;c7;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_58 <= status_local
+ ,
+ % c2;c7;c3;
+ % det
+ % cost: 1,626,837.00 (above threshold)
+ % Consumptions:
+ % V_53: 53,068.76
+ % V_49: 62,323.36
+ hlds.make_hlds.make_hlds_passes.add_item_list_pass_3(Items, V_58, V_53, V_22, QualInfo0, QualInfo, V_49, V_23)
+ )
+
+ Goals after:
+
+ pred hlds.passes_aux.par_process_nonimported_procs_in_preds/5-0
+
+ Path: s2-na;c3;t;
+ Dependent: no
+ NumCalls: 80
+ SeqTime: 7,068.83
+ ParTime: 6,124.70
+ SparkCost: 100.00
+ BarrierCost: 200.00
+ SignalsCost: 0.00
+ WaitsCost: 0.00
+ ParOverheads total: 300.00
+ Speedup: 1.1542
+ Time saving: 944.12
+ First conj dead time: 2,180.58
+ Future dead time: 0.00
+ Total dead time: 2,180.58
+
+ Goals before:
+ % conjunction: s2-na;c3;t;
+ % Cost: 0.00
+
+
+ Parallel conjunction:
+ (
+ % conjunction: s2-na;c3;t;c1;c1;
+ % Cost: 2,944.12
+
+ % s2-na;c3;t;c1;c1;c1;
+ % det
+ % cost: 2,944.12 (above threshold)
+ hlds.passes_aux.par_process_nonimported_procs(ModuleInfo, Task, PredId, ProcIds, PredInfo0, PredInfo)
+ ,
+ % s2-na;c3;t;c1;c1;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ PredIdInfo <= -(PredId, PredInfo)
+ &
+ % s2-na;c3;t;c1;c2;
+ % det
+ % cost: 4,124.70 (above threshold)
+ hlds.passes_aux.par_process_nonimported_procs_in_preds(ModuleInfo, Task, ValidPredIdSet, PredIdsInfos0, PredIdsInfos)
+ )
+
+ Goals after:
+
+ Path: s2-na;c3;t;
+ Dependent: no
+ NumCalls: 80
+ SeqTime: 23,743.57
+ ParTime: 14,468.21
+ SparkCost: 100.00
+ BarrierCost: 200.00
+ SignalsCost: 0.00
+ WaitsCost: 0.00
+ ParOverheads total: 300.00
+ Speedup: 1.6411
+ Time saving: 9,275.36
+ First conj dead time: 2,192.85
+ Future dead time: 0.00
+ Total dead time: 2,192.85
+
+ Goals before:
+ % conjunction: s2-na;c3;t;
+ % Cost: 0.00
+
+
+ Parallel conjunction:
+ (
+ % conjunction: s2-na;c3;t;c1;c1;
+ % Cost: 11,275.36
+
+ % s2-na;c3;t;c1;c1;c1;
+ % det
+ % cost: 11,275.36 (above threshold)
+ hlds.passes_aux.par_process_nonimported_procs(ModuleInfo, Task, PredId, ProcIds, PredInfo0, PredInfo)
+ ,
+ % s2-na;c3;t;c1;c1;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ PredIdInfo <= -(PredId, PredInfo)
+ &
+ % s2-na;c3;t;c1;c2;
+ % det
+ % cost: 12,468.21 (above threshold)
+ hlds.passes_aux.par_process_nonimported_procs_in_preds(ModuleInfo, Task, ValidPredIdSet, PredIdsInfos0, PredIdsInfos)
+ )
+
+ Goals after:
+
+ Path: s2-na;c3;t;
+ Dependent: no
+ NumCalls: 80
+ SeqTime: 69,868.49
+ ParTime: 37,547.64
+ SparkCost: 100.00
+ BarrierCost: 200.00
+ SignalsCost: 0.00
+ WaitsCost: 0.00
+ ParOverheads total: 300.00
+ Speedup: 1.8608
+ Time saving: 32,320.85
+ First conj dead time: 2,226.79
+ Future dead time: 0.00
+ Total dead time: 2,226.79
+
+ Goals before:
+ % conjunction: s2-na;c3;t;
+ % Cost: 0.00
+
+
+ Parallel conjunction:
+ (
+ % conjunction: s2-na;c3;t;c1;c1;
+ % Cost: 34,320.85
+
+ % s2-na;c3;t;c1;c1;c1;
+ % det
+ % cost: 34,320.85 (above threshold)
+ hlds.passes_aux.par_process_nonimported_procs(ModuleInfo, Task, PredId, ProcIds, PredInfo0, PredInfo)
+ ,
+ % s2-na;c3;t;c1;c1;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ PredIdInfo <= -(PredId, PredInfo)
+ &
+ % s2-na;c3;t;c1;c2;
+ % det
+ % cost: 35,547.64 (above threshold)
+ hlds.passes_aux.par_process_nonimported_procs_in_preds(ModuleInfo, Task, ValidPredIdSet, PredIdsInfos0, PredIdsInfos)
+ )
+
+ Goals after:
+
+ pred ll_backend.frameopt.delay_frame_transform/13-0
+
+ Path:
+ Dependent: on V_28, V_30, V_31
+ NumCalls: 51
+ SeqTime: 19,147.41
+ ParTime: 16,612.08
+ SparkCost: 100.00
+ BarrierCost: 200.00
+ SignalsCost: 300.00
+ WaitsCost: 600.00
+ ParOverheads total: 1,200.00
+ Speedup: 1.1526
+ Time saving: 2,535.33
+ First conj dead time: 8,847.82
+ Future dead time: 0.00
+ Total dead time: 8,847.82
+
+ Goals before:
+ % conjunction:
+ % Cost: 1,328.92
+
+ % c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_47 <= $type_ctor_info_const
+ ,
+ % c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_48 <= $type_ctor_info_const
+ ,
+ % c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ map.init(V_47, V_48, V_22)
+ ,
+ % c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_23 <= can_transform
+ ,
+ % c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_24 <= 10000
+ ,
+ % c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_49 <= $type_ctor_info_const
+ ,
+ % c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_50 <= $type_info_cell_constructor(V_49, V_47)
+ ,
+ % c8;
+ % det
+ % cost: 1.00 (not above threshold)
+ map.init(V_47, V_50, V_25)
+ ,
+ % c9;
+ % det
+ % cost: 1.00 (not above threshold)
+ queue.init(V_47, V_26)
+ ,
+ % c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ PolyConst1 <= 1
+ ,
+ % c11;
+ % det
+ % cost: 1.00 (not above threshold)
+ private_builtin.type_info_from_typeclass_info(V_46, PolyConst1, V_52)
+ ,
+ % c12;
+ % det
+ % cost: 0.00 (not above threshold)
+ PolyConst1 <= 2
+ ,
+ % c13;
+ % det
+ % cost: 1.00 (not above threshold)
+ private_builtin.type_info_from_typeclass_info(V_46, PolyConst1, V_54)
+ ,
+ % c14;
+ % det
+ % cost: 1,323.92 (not above threshold)
+ ll_backend.frameopt.delay_frame_init(V_52, V_54, V_16, V_20, V_25, RevMap, V_26, SuccQueue, V_22, V_27)
+
+ Parallel conjunction:
+ (
+ % conjunction: c15;c1;
+ % Cost: 5,135.33
+
+ % c15;c1;c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ set.init(V_47, V_29)
+ ,
+ % c15;c1;c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ private_builtin.type_info_from_typeclass_info(V_46, PolyConst1, V_55)
+ ,
+ % c15;c1;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ private_builtin.type_info_from_typeclass_info(V_46, PolyConst1, V_56)
+ ,
+ % c15;c1;c4;
+ % det
+ % cost: 5,132.33 (above threshold)
+ % Productions:
+ % V_31: 39.97
+ % V_30: 39.97
+ % V_28: 39.97
+ ll_backend.frameopt.propagate_frame_requirement_to_successors(V_55, V_56, SuccQueue, V_20, V_27, V_28, V_29, V_24, V_30, V_23, V_31)
+ &
+ % conjunction: c15;c2;
+ % Cost: 12,683.16
+
+ % c15;c2;c1;
+ % det
+ % cost: 35.76 (not above threshold)
+ % Consumptions:
+ % V_28: 0.00
+ map.to_assoc_list(V_47, V_48, V_28, OrdNeedsFrameList)
+ ,
+ % c15;c2;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_32 <= $closure_cons
+ ,
+ % c15;c2;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_57 <= $type_ctor_info_const
+ ,
+ % c15;c2;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_58 <= $type_info_cell_constructor(V_57, V_47, V_48)
+ ,
+ % c15;c2;c5;
+ % det
+ % cost: 39.86 (not above threshold)
+ list.filter_map(V_58, V_47, V_32, OrdNeedsFrameList, Frontier)
+ ,
+ % c15;c2;c6;
+ % det
+ % cost: 1.00 (not above threshold)
+ queue.list_to_queue(V_47, Frontier, PredQueue)
+ ,
+ % c15;c2;c7;
+ % det
+ % cost: 1.00 (not above threshold)
+ private_builtin.type_info_from_typeclass_info(V_46, PolyConst1, V_59)
+ ,
+ % c15;c2;c8;
+ % det
+ % cost: 1.00 (not above threshold)
+ private_builtin.type_info_from_typeclass_info(V_46, PolyConst1, V_60)
+ ,
+ % c15;c2;c9;
+ % det
+ % cost: 12,604.53 (above threshold)
+ % Consumptions:
+ % V_31: 1.00
+ % V_30: 1.00
+ % V_28: 1.81
+ ll_backend.frameopt.propagate_frame_requirement_to_predecessors(V_59, V_60, PredQueue, V_20, RevMap, V_28, V_33, V_30, V_13, V_31, CanTransform)
+ )
+
+ Goals after:
+
+ pred ll_backend.labelopt.labelopt_main/5-0
+
+ Path:
+ Dependent: on Mod, RevInstrs, Useset
+ NumCalls: 72
+ SeqTime: 10,563.94
+ ParTime: 8,810.56
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 300.00
+ WaitsCost: 600.00
+ ParOverheads total: 1,400.00
+ Speedup: 1.1990
+ Time saving: 1,753.39
+ First conj dead time: 3,536.94
+ Future dead time: 4,203.95
+ Total dead time: 7,740.90
+
+ Goals before:
+ % conjunction:
+ % Cost: 0.00
+
+
+ Parallel conjunction:
+ (
+ % c1;c1;
+ % det
+ % cost: 4,173.61 (above threshold)
+ % Productions:
+ % Useset: 4,204.95
+ ll_backend.labelopt.build_useset(Instrs0, LayoutLabelSet, Useset)
+ &
+ % conjunction: c1;c2;
+ % Cost: 979.78
+
+ % c1;c2;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ Fallthrough <= yes
+ ,
+ % c1;c2;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_11 <= []
+ ,
+ % c1;c2;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_12 <= no
+ ,
+ % c1;c2;c4;
+ % det
+ % cost: 979.78 (not above threshold)
+ % Productions:
+ % RevInstrs: 135.14
+ % Mod: 135.14
+ % Consumptions:
+ % Useset: 1.00
+ ll_backend.labelopt.opt_labels_in_instr_list_2(Instrs0, V_11, RevInstrs, V_12, Mod, Fallthrough, Useset)
+ &
+ % conjunction: c1;c3;
+ % Cost: 5,410.56
+
+ % c1;c3;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_13 <= $type_ctor_info_const
+ ,
+ % c1;c3;c2;
+ % det
+ % cost: 128.58 (not above threshold)
+ % Consumptions:
+ % RevInstrs: 0.00
+ list.reverse(V_13, RevInstrs, Instrs1)
+ ,
+ % c1;c3;c3;
+ % det
+ % cost: 5,281.97 (above threshold)
+ % Consumptions:
+ % Mod: 0.00
+ (
+ % conjunction: c1;c3;c3;?;
+ % conjunction: semidet
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c1;c3;c3;?;c1;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ Final => yes
+ ,
+ % c1;c3;c3;?;c2;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % Mod: 0.00
+ Mod => yes
+ ->
+ % c1;c3;c3;t;
+ % det
+ % cost: 5,281.97 (above threshold)
+ ll_backend.labelopt.labelopt_main(Final, LayoutLabelSet, Instrs1, Instrs, V_8)
+ ;
+ % c1;c3;c3;e;
+ % det
+ % cost: 0.00 (not above threshold)
+ Instrs := Instrs1
+ )
+ )
+
+ Goals after:
+
+ pred ll_backend.llds_out.llds_out_file.output_comp_gen_c_module/6-0
+
+ Path:
+ Dependent: on V_22, V_24
+ NumCalls: 80
+ SeqTime: 14,186.98
+ ParTime: 13,280.88
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 200.00
+ WaitsCost: 400.00
+ ParOverheads total: 1,100.00
+ Speedup: 1.0682
+ Time saving: 906.10
+ First conj dead time: 8,074.77
+ Future dead time: 4,204.10
+ Total dead time: 12,278.88
+
+ Goals before:
+ % conjunction:
+ % Cost: 1.00
+
+ % c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ CompGenCModule => comp_gen_c_module(ModuleName, Procedures)
+ ,
+ % c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_11 <= "
+"
+ ,
+ % c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ io.write_string(V_11, V_9, V_12)
+ ,
+ % c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_13 <= $closure_cons(Info)
+ ,
+ % c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_28 <= $type_ctor_info_const
+ ,
+ % c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_29 <= $type_ctor_info_const
+ ,
+ % c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_30 <= $type_ctor_info_const
+
+ Parallel conjunction:
+ (
+ % conjunction: c8;c1;
+ % Cost: 4,105.10
+
+ % c8;c1;c1;
+ % det
+ % cost: 2,992.18 (above threshold)
+ list.foldl2(V_28, V_29, V_30, V_13, Procedures, V_7, V_8, V_12, V_14)
+ ,
+ % c8;c1;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_15 <= "
+"
+ ,
+ % c8;c1;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ io.write_string(V_15, V_14, V_16)
+ ,
+ % c8;c1;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_17 <= "MR_BEGIN_MODULE("
+ ,
+ % c8;c1;c5;
+ % det
+ % cost: 1.00 (not above threshold)
+ io.write_string(V_17, V_16, V_18)
+ ,
+ % c8;c1;c6;
+ % det
+ % cost: 1.00 (not above threshold)
+ io.write_string(ModuleName, V_18, V_19)
+ ,
+ % c8;c1;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_20 <= ")
+"
+ ,
+ % c8;c1;c8;
+ % det
+ % cost: 1.00 (not above threshold)
+ io.write_string(V_20, V_19, V_21)
+ ,
+ % c8;c1;c9;
+ % det
+ % cost: 110.66 (not above threshold)
+ ll_backend.llds_out.llds_out_file.gather_c_module_labels(Procedures, EntryLabels, InternalLabels)
+ ,
+ % c8;c1;c10;
+ % det
+ % cost: 998.26 (not above threshold)
+ % Productions:
+ % V_22: 997.26
+ ll_backend.llds_out.llds_out_file.output_c_label_inits(Info, EntryLabels, InternalLabels, V_21, V_22)
+ &
+ % conjunction: c8;c2;
+ % Cost: 1.00
+
+ % c8;c2;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_23 <= "MR_BEGIN_CODE
+"
+ ,
+ % c8;c2;c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % V_24: 0.00
+ % Consumptions:
+ % V_22: 0.00
+ io.write_string(V_23, V_22, V_24)
+ &
+ % conjunction: c8;c3;
+ % Cost: 10,079.88
+
+ % c8;c3;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_25 <= $closure_cons(Info)
+ ,
+ % c8;c3;c2;
+ % det
+ % cost: 10,079.88 (above threshold)
+ % Consumptions:
+ % V_24: 0.00
+ list.foldl(V_28, V_30, V_25, Procedures, V_24, V_26)
+ )
+
+ Goals after:
+
+ pred ll_backend.llds_out.llds_out_file.output_record_c_label_decls/7-0
+
+ Path:
+ Dependent: on InternalLabelMap
+ NumCalls: 1
+ SeqTime: 233,492.00
+ ParTime: 182,436.00
+ SparkCost: 100.00
+ BarrierCost: 200.00
+ SignalsCost: 100.00
+ WaitsCost: 200.00
+ ParOverheads total: 600.00
+ Speedup: 1.2799
+ Time saving: 51,056.00
+ First conj dead time: 127,058.00
+ Future dead time: 1,221.00
+ Total dead time: 128,279.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 1.00
+
+ % c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_15 <= $type_ctor_info_const
+ ,
+ % c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_16 <= $type_ctor_info_const
+ ,
+ % c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ multi_map.init(V_15, V_16, V_10)
+
+ Parallel conjunction:
+ (
+ % c4;c1;
+ % det
+ % cost: 54,277.00 (above threshold)
+ % Productions:
+ % InternalLabelMap: 921.00
+ ll_backend.llds_out.llds_out_file.group_decl_c_labels(InternalLabels, V_10, InternalLabelMap)
+ &
+ % conjunction: c4;c2;
+ % Cost: 179,214.00
+
+ % c4;c2;c1;
+ % det
+ % cost: 129.00 (not above threshold)
+ % Consumptions:
+ % InternalLabelMap: 0.00
+ multi_map.to_assoc_list(V_15, V_16, InternalLabelMap, InternalLabelList)
+ ,
+ % c4;c2;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_11 <= $closure_cons
+ ,
+ % c4;c2;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_19 <= $type_ctor_info_const
+ ,
+ % c4;c2;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_17 <= $type_ctor_info_const
+ ,
+ % c4;c2;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_18 <= $type_info_cell_constructor(V_17, V_16)
+ ,
+ % c4;c2;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_20 <= $type_info_cell_constructor(V_19, V_15, V_18)
+ ,
+ % c4;c2;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_21 <= $type_ctor_info_const
+ ,
+ % c4;c2;c8;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_22 <= $type_ctor_info_const
+ ,
+ % c4;c2;c9;
+ % det
+ % cost: 159,146.00 (above threshold)
+ list.foldl2(V_20, V_21, V_22, V_11, InternalLabelList, V_6, V_12, V_8, V_13)
+ ,
+ % c4;c2;c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_14 <= $closure_cons(Info)
+ ,
+ % c4;c2;c11;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_23 <= $type_ctor_info_const
+ ,
+ % c4;c2;c12;
+ % det
+ % cost: 19,939.00 (above threshold)
+ list.foldl2(V_23, V_21, V_22, V_14, EntryLabels, V_12, V_7, V_13, V_9)
+ )
+
+ Goals after:
+
+ pred ll_backend.llds_out.llds_out_file.output_single_c_file/7-0
+
+ Path:
+ Dependent: on V_102, V_103, V_104, V_105, V_118, V_119
+ NumCalls: 1
+ SeqTime: 1,443,031.00
+ ParTime: 1,147,541.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 600.00
+ WaitsCost: 1,200.00
+ ParOverheads total: 2,300.00
+ Speedup: 1.2575
+ Time saving: 295,490.00
+ First conj dead time: 838,310.00
+ Future dead time: 316,318.00
+ Total dead time: 1,154,628.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 127.00
+
+ % c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ CFile => c_file(ModuleName, C_HeaderLines, UserForeignCode, Exports, TablingInfoStructs, ScalarCommonDatas, VectorCommonDatas, RttiDatas, PseudoTypeInfos, HLDSVarNums, ShortLocns, LongLocns, UserEventVarNums, UserEvents, NoVarLabelLayouts, SVarLabelLayouts, LVarLabelLayouts, InternalLabelToLayoutMap, EntryLabelToLayoutMap, CallSiteStatics, CoveragePoints, ProcStatics, ProcHeadVarNums, ProcVarNames, ProcBodyBytecodes, TSStringTable, TableIoDecls, TableIoDeclMap, ProcEventLayouts, ExecTraces, ProcLayoutDatas, ModuleLayoutDatas, ClosureLayoutDatas, AllocSites, AllocSiteMap, Modules, UserInitPredCNames, UserFinalPredCNames, ComplexityProcs)
+ ,
+ % c2;
+ % det
+ % cost: 127.00 (not above threshold)
+ ll_backend.llds_out.llds_out_util.init_llds_out_info(ModuleName, Globals, InternalLabelToLayoutMap, EntryLabelToLayoutMap, TableIoDeclMap, AllocSiteMap, Info)
+
+ Parallel conjunction:
+ (
+ % conjunction: c3;c1;
+ % Cost: 307,704.00
+
+ % c3;c1;c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ library.version(Version)
+ ,
+ % c3;c1;c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ io.set_output_stream(FileStream, OutputStream, V_54, V_56)
+ ,
+ % c3;c1;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_57 <= ".m"
+ ,
+ % c3;c1;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_58 <= do_not_create_dirs
+ ,
+ % c3;c1;c5;
+ % det
+ % cost: 13.00 (not above threshold)
+ parse_tree.file_names.module_name_to_file_name(Globals, ModuleName, V_57, V_58, SourceFileName, V_56, V_59)
+ ,
+ % c3;c1;c6;
+ % det
+ % cost: 69.00 (not above threshold)
+ backend_libs.c_util.output_c_file_intro_and_grade(Globals, SourceFileName, Version, V_59, V_60)
+ ,
+ % c3;c1;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_116 <= $type_ctor_info_const
+ ,
+ % c3;c1;c8;
+ % det
+ % cost: 1.00 (not above threshold)
+ set.init(V_116, V_61)
+ ,
+ % c3;c1;c9;
+ % det
+ % cost: 401.00 (not above threshold)
+ ll_backend.llds_out.llds_out_file.module_gather_env_var_names(Modules, V_61, EnvVarNameSet)
+ ,
+ % c3;c1;c10;
+ % det
+ % cost: 1.00 (not above threshold)
+ set.to_sorted_list(V_116, EnvVarNameSet, EnvVarNames)
+ ,
+ % c3;c1;c11;
+ % det
+ % cost: 23.00 (not above threshold)
+ ll_backend.llds_out.llds_out_file.output_init_comment(ModuleName, UserInitPredCNames, UserFinalPredCNames, EnvVarNames, V_60, V_62)
+ ,
+ % c3;c1;c12;
+ % det
+ % cost: 5.00 (not above threshold)
+ ll_backend.llds_out.llds_out_file.output_c_file_mercury_headers(Info, V_62, V_63)
+ ,
+ % c3;c1;c13;
+ % det
+ % cost: 353.00 (not above threshold)
+ ll_backend.llds_out.llds_out_file.output_foreign_header_include_lines(Info, C_HeaderLines, V_63, V_64)
+ ,
+ % c3;c1;c14;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_65 <= "
+"
+ ,
+ % c3;c1;c15;
+ % det
+ % cost: 1.00 (not above threshold)
+ io.write_string(V_65, V_64, V_66)
+ ,
+ % c3;c1;c16;
+ % det
+ % cost: 8,539.00 (above threshold)
+ ll_backend.llds_out.llds_out_file.gather_c_file_labels(Modules, EntryLabels, InternalLabels)
+ ,
+ % c3;c1;c17;
+ % det
+ % cost: 6.00 (not above threshold)
+ ll_backend.llds_out.llds_out_file.output_static_linkage_define(V_66, V_67)
+ ,
+ % c3;c1;c18;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_68 <= $closure_cons
+ ,
+ % c3;c1;c19;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_117 <= $type_ctor_info_const
+ ,
+ % c3;c1;c20;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_118: 1.00
+ V_118 <= $type_ctor_info_const
+ ,
+ % c3;c1;c21;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_119: 1.00
+ V_119 <= $type_ctor_info_const
+ ,
+ % c3;c1;c22;
+ % det
+ % cost: 843.00 (not above threshold)
+ % Consumptions:
+ % V_119: 0.00
+ % V_118: 0.00
+ list.foldl2(V_117, V_118, V_119, V_68, ScalarCommonDatas, V_52, V_69, V_67, V_70)
+ ,
+ % c3;c1;c23;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_71 <= $closure_cons
+ ,
+ % c3;c1;c24;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_120 <= $type_ctor_info_const
+ ,
+ % c3;c1;c25;
+ % det
+ % cost: 142.00 (not above threshold)
+ % Consumptions:
+ % V_119: 0.00
+ % V_118: 0.00
+ list.foldl2(V_120, V_118, V_119, V_71, VectorCommonDatas, V_69, V_72, V_70, V_73)
+ ,
+ % c3;c1;c26;
+ % det
+ % cost: 608.00 (not above threshold)
+ ll_backend.rtti_out.output_rtti_data_decl_list(Info, RttiDatas, V_72, V_74, V_73, V_75)
+ ,
+ % c3;c1;c27;
+ % det
+ % cost: 233,493.00 (above threshold)
+ ll_backend.llds_out.llds_out_file.output_record_c_label_decls(Info, EntryLabels, InternalLabels, V_74, V_76, V_75, V_77)
+ ,
+ % c3;c1;c28;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_78 <= $closure_cons(Info)
+ ,
+ % c3;c1;c29;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_121 <= $type_ctor_info_const
+ ,
+ % c3;c1;c30;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Consumptions:
+ % V_119: 0.00
+ % V_118: 0.00
+ list.foldl2(V_121, V_118, V_119, V_78, TablingInfoStructs, V_76, V_79, V_77, V_80)
+ ,
+ % c3;c1;c31;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_81 <= $closure_cons(Info)
+ ,
+ % c3;c1;c32;
+ % det
+ % cost: 26,140.00 (above threshold)
+ % Consumptions:
+ % V_119: 0.00
+ % V_118: 0.00
+ list.foldl2(V_117, V_118, V_119, V_81, ScalarCommonDatas, V_79, V_82, V_80, V_83)
+ ,
+ % c3;c1;c33;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_84 <= $closure_cons(Info)
+ ,
+ % c3;c1;c34;
+ % det
+ % cost: 1,165.00 (not above threshold)
+ % Consumptions:
+ % V_119: 0.00
+ % V_118: 0.00
+ list.foldl2(V_120, V_118, V_119, V_84, VectorCommonDatas, V_82, V_85, V_83, V_86)
+ ,
+ % c3;c1;c35;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_87 <= $closure_cons(Info)
+ ,
+ % c3;c1;c36;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_122 <= $type_ctor_info_const
+ ,
+ % c3;c1;c37;
+ % det
+ % cost: 20,526.00 (above threshold)
+ % Consumptions:
+ % V_119: 0.00
+ % V_118: 0.00
+ list.foldl2(V_122, V_118, V_119, V_87, RttiDatas, V_85, V_88, V_86, V_89)
+ ,
+ % c3;c1;c38;
+ % det
+ % cost: 1.00 (not above threshold)
+ io.nl(V_89, V_90)
+ ,
+ % c3;c1;c39;
+ % det
+ % cost: 1.00 (not above threshold)
+ ll_backend.layout_out.output_layout_array_decls(Info, PseudoTypeInfos, HLDSVarNums, ShortLocns, LongLocns, UserEventVarNums, UserEvents, NoVarLabelLayouts, SVarLabelLayouts, LVarLabelLayouts, CallSiteStatics, CoveragePoints, ProcStatics, ProcHeadVarNums, ProcVarNames, ProcBodyBytecodes, TableIoDecls, ProcEventLayouts, ExecTraces, AllocSites, V_90, V_91)
+ ,
+ % c3;c1;c40;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_92 <= $closure_cons(Info)
+ ,
+ % c3;c1;c41;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_123 <= $type_ctor_info_const
+ ,
+ % c3;c1;c42;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Consumptions:
+ % V_119: 0.00
+ % V_118: 0.00
+ list.foldl2(V_123, V_118, V_119, V_92, ProcLayoutDatas, V_88, V_93, V_91, V_94)
+ ,
+ % c3;c1;c43;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_95 <= $closure_cons(Info)
+ ,
+ % c3;c1;c44;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_124 <= $type_ctor_info_const
+ ,
+ % c3;c1;c45;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Consumptions:
+ % V_119: 0.00
+ % V_118: 0.00
+ list.foldl2(V_124, V_118, V_119, V_95, ModuleLayoutDatas, V_93, V_96, V_94, V_97)
+ ,
+ % c3;c1;c46;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_98 <= $closure_cons(Info)
+ ,
+ % c3;c1;c47;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_125 <= $type_ctor_info_const
+ ,
+ % c3;c1;c48;
+ % det
+ % cost: 15,365.00 (above threshold)
+ % Consumptions:
+ % V_119: 0.00
+ % V_118: 0.00
+ list.foldl2(V_125, V_118, V_119, V_98, ClosureLayoutDatas, V_96, V_99, V_97, V_100)
+ ,
+ % c3;c1;c49;
+ % det
+ % cost: 1.00 (not above threshold)
+ io.nl(V_100, V_101)
+ ,
+ % c3;c1;c50;
+ % det
+ % cost: 2.00 (not above threshold)
+ % Productions:
+ % V_103: 1.00
+ % V_102: 1.00
+ ll_backend.llds_out.llds_out_data.output_record_rvals_decls(Info, PseudoTypeInfos, V_99, V_102, V_101, V_103)
+ &
+ % c3;c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % V_105: 0.00
+ % V_104: 0.00
+ % Consumptions:
+ % V_103: 0.00
+ % V_102: 0.00
+ ll_backend.layout_out.output_layout_array_defns(Info, PseudoTypeInfos, HLDSVarNums, ShortLocns, LongLocns, UserEventVarNums, UserEvents, NoVarLabelLayouts, SVarLabelLayouts, LVarLabelLayouts, CallSiteStatics, CoveragePoints, ProcStatics, ProcHeadVarNums, ProcVarNames, ProcBodyBytecodes, TableIoDecls, ProcEventLayouts, ExecTraces, TSStringTable, AllocSites, V_102, V_104, V_103, V_105)
+ &
+ % conjunction: c3;c3;
+ % Cost: 1,135,199.00
+
+ % c3;c3;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_106 <= $closure_cons(Info)
+ ,
+ % c3;c3;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_126 <= $type_ctor_info_const
+ ,
+ % c3;c3;c3;
+ % det
+ % cost: 1,135,199.00 (above threshold)
+ % Consumptions:
+ % V_119: 0.00
+ % V_118: 0.00
+ % V_105: 0.00
+ % V_104: 0.00
+ list.foldl2(V_126, V_118, V_119, V_106, Modules, V_104, V_107, V_105, V_108)
+ )
+
+ Goals after:
+
+ pred ll_backend.optimize.optimize_procs/4-0
+
+ Path: s2-na;
+ Dependent: no
+ NumCalls: 80
+ SeqTime: 202,430.23
+ ParTime: 103,215.61
+ SparkCost: 100.00
+ BarrierCost: 200.00
+ SignalsCost: 0.00
+ WaitsCost: 0.00
+ ParOverheads total: 300.00
+ Speedup: 1.9612
+ Time saving: 99,214.61
+ First conj dead time: 1,001.00
+ Future dead time: 0.00
+ Total dead time: 1,001.00
+
+ Goals before:
+ % conjunction: s2-na;
+ % Cost: 0.00
+
+ % s2-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_3 => [|](Proc0, Procs0)
+
+ Parallel conjunction:
+ (
+ % s2-na;c2;c1;
+ % det
+ % cost: 101,214.61 (above threshold)
+ ll_backend.optimize.optimize_proc(Globals, GlobalData, Proc0, Proc)
+ &
+ % s2-na;c2;c2;
+ % det
+ % cost: 101,215.61 (above threshold)
+ ll_backend.optimize.optimize_procs(Globals, GlobalData, Procs0, Procs)
+ )
+
+ Goals after:
+
+ pred parse_tree.equiv_type.expand_eqv_types/10-0
+
+ Path:
+ Dependent: on EqvInstMap, EqvMap, RevItems
+ NumCalls: 1
+ SeqTime: 1,397,101.00
+ ParTime: 1,369,153.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 300.00
+ WaitsCost: 600.00
+ ParOverheads total: 1,400.00
+ Speedup: 1.0204
+ Time saving: 27,948.00
+ First conj dead time: 1,344,963.00
+ Future dead time: 22,575.00
+ Total dead time: 1,367,538.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 0.00
+
+
+ Parallel conjunction:
+ (
+ % conjunction: c1;c1;
+ % Cost: 22,990.00
+
+ % c1;c1;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_24 <= $type_ctor_info_const
+ ,
+ % c1;c1;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_25 <= $type_ctor_info_const
+ ,
+ % c1;c1;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ map.init(V_24, V_25, EqvMap0)
+ ,
+ % c1;c1;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_26 <= $type_ctor_info_const
+ ,
+ % c1;c1;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_27 <= $type_ctor_info_const
+ ,
+ % c1;c1;c6;
+ % det
+ % cost: 1.00 (not above threshold)
+ map.init(V_26, V_27, EqvInstMap0)
+ ,
+ % c1;c1;c7;
+ % det
+ % cost: 22,988.00 (above threshold)
+ % Productions:
+ % EqvInstMap: 7,459.02
+ % EqvMap: 7,459.02
+ parse_tree.equiv_type.build_eqv_map(Items0, EqvMap0, EqvMap, EqvInstMap0, EqvInstMap)
+ &
+ % conjunction: c1;c2;
+ % Cost: 1,366,653.00
+
+ % c1;c2;c1;
+ % det
+ % cost: 3.00 (not above threshold)
+ parse_tree.prog_data.used_modules_init(V_17)
+ ,
+ % c1;c2;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_18 <= []
+ ,
+ % c1;c2;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_19 <= eqv_type_out_of_module
+ ,
+ % c1;c2;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_20 <= []
+ ,
+ % c1;c2;c5;
+ % det
+ % cost: 1,366,650.00 (above threshold)
+ % Productions:
+ % RevItems: 22,372.00
+ % Consumptions:
+ % EqvInstMap: 360,434,987.08
+ % EqvMap: 98,882,130.42
+ parse_tree.equiv_type.replace_in_item_list(ModuleName, V_19, Items0, EqvMap, EqvInstMap, V_20, RevItems, V_14, V_21, V_17, V_22, V_18, V_23)
+ &
+ % conjunction: c1;c3;
+ % Cost: 7,458.00
+
+ % c1;c3;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_28 <= $type_ctor_info_const
+ ,
+ % c1;c3;c2;
+ % det
+ % cost: 7,458.00 (above threshold)
+ % Consumptions:
+ % RevItems: 0.00
+ list.reverse(V_28, RevItems, Items)
+ )
+
+ Goals after:
+
+ pred parse_tree.module_qual.module_qualify_items/13-0
+
+ Path:
+ Dependent: on V_23, V_24
+ NumCalls: 1
+ SeqTime: 116,918.00
+ ParTime: 105,963.41
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 200.00
+ WaitsCost: 400.00
+ ParOverheads total: 1,100.00
+ Speedup: 1.1034
+ Time saving: 10,954.59
+ First conj dead time: 91,827.41
+ Future dead time: 77,229.14
+ Total dead time: 169,056.56
+
+ Goals before:
+ % conjunction:
+ % Cost: 0.00
+
+
+ Parallel conjunction:
+ (
+ % conjunction: c1;c1;
+ % Cost: 13,036.00
+
+ % c1;c1;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ switch_can_not_fail_rep switch on MaybeFileName
+ (
+ % case no/0
+ % c1;c1;c1;s1-na;
+ % det
+ % cost: 0.00 (not above threshold)
+ ReportErrors <= no
+ ;
+ % case yes/1
+ % c1;c1;c1;s2-na;
+ % det
+ % cost: 0.00 (not above threshold)
+ ReportErrors <= yes
+ )
+ ,
+ % c1;c1;c2;
+ % det
+ % cost: 13,036.00 (above threshold)
+ % Productions:
+ % V_23: 13,036.00
+ parse_tree.module_qual.init_mq_info(Items0, Globals, ReportErrors, ModuleName, V_23)
+ &
+ % c1;c2;
+ % det
+ % cost: 73,191.00 (above threshold)
+ % Productions:
+ % V_24: 73,202.36
+ % Consumptions:
+ % V_23: 8,179.27
+ parse_tree.module_qual.collect_mq_info(Items0, V_23, V_24)
+ &
+ % c1;c3;
+ % det
+ % cost: 30,691.00 (above threshold)
+ % Consumptions:
+ % V_24: 1,129.95
+ parse_tree.module_qual.do_module_qualify_items(Items0, Items, V_24, V_25, V_21, V_26)
+ )
+
+ Goals after:
+
+ pred parse_tree.modules.check_imports_accessibility/5-0
+
+ Path:
+ Dependent: on AccessibleSubModules
+ NumCalls: 1
+ SeqTime: 26,113.00
+ ParTime: 18,731.00
+ SparkCost: 100.00
+ BarrierCost: 200.00
+ SignalsCost: 100.00
+ WaitsCost: 200.00
+ ParOverheads total: 600.00
+ Speedup: 1.3941
+ Time saving: 7,382.00
+ First conj dead time: 0.00
+ Future dead time: 7,758.00
+ Total dead time: 7,758.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 0.00
+
+
+ Parallel conjunction:
+ (
+ % conjunction: c1;c1;
+ % Cost: 18,631.00
+
+ % c1;c1;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_12 <= yes
+ ,
+ % c1;c1;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_13 <= []
+ ,
+ % c1;c1;c3;
+ % det
+ % cost: 18,631.00 (above threshold)
+ % Productions:
+ % AccessibleSubModules: 7,458.00
+ parse_tree.modules.get_accessible_children_2(V_12, Items, V_13, AccessibleSubModules)
+ &
+ % conjunction: c1;c2;
+ % Cost: 7,482.00
+
+ % c1;c2;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % AccessibleSubModules: 0.00
+ V_7 <= $closure_cons(ModuleName, AccessibleSubModules, Items)
+ ,
+ % c1;c2;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_8 <= $type_ctor_info_const
+ ,
+ % c1;c2;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_10 <= $type_ctor_info_const
+ ,
+ % c1;c2;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_9 <= $type_ctor_info_const
+ ,
+ % c1;c2;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_11 <= $type_info_cell_constructor(V_10, V_9)
+ ,
+ % c1;c2;c6;
+ % det
+ % cost: 7,482.00 (above threshold)
+ list.foldl(V_8, V_11, V_7, Imports, V_5, V_6)
+ )
+
+ Goals after:
+
+ pred parse_tree.modules.grab_imported_modules/11-0
+
+ Path:
+ Dependent: on ImpImportedModules, ImpUsedModules, IntImpIndirectImports1, IntImportedModules, IntIndirectImports1, IntUsedModules, V_174, V_91, V_92
+ NumCalls: 1
+ SeqTime: 8,608,366.00
+ ParTime: 6,887,607.57
+ SparkCost: 100.00
+ BarrierCost: 200.00
+ SignalsCost: 900.00
+ WaitsCost: 1,800.00
+ ParOverheads total: 3,000.00
+ Speedup: 1.2498
+ Time saving: 1,720,758.43
+ First conj dead time: 5,127,691.57
+ Future dead time: 33,651.57
+ Total dead time: 5,161,343.14
+
+ Goals before:
+ % conjunction:
+ % Cost: 3.00
+
+ % c1;
+ % det
+ % cost: 3.00 (not above threshold)
+ mdbcomp.prim_data.get_ancestors(ModuleName, AncestorModules)
+
+ Parallel conjunction:
+ (
+ % conjunction: c2;c1;
+ % Cost: 1,758,010.00
+
+ % c2;c1;c1;
+ % det
+ % cost: 2,860.00 (above threshold)
+ parse_tree.module_imports.get_dependencies_int_imp(Items0, IntImportedModules0, IntUsedModules0, ImpImportedModules0, ImpUsedModules0)
+ ,
+ % c2;c1;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_174: 1.00
+ V_174 <= $type_ctor_info_const
+ ,
+ % c2;c1;c3;
+ % det
+ % cost: 8.00 (not above threshold)
+ % Consumptions:
+ % V_174: 0.00
+ list.++(V_174, IntImportedModules0, ImpImportedModules0, ImportedModules0)
+ ,
+ % c2;c1;c4;
+ % det
+ % cost: 2.00 (not above threshold)
+ % Consumptions:
+ % V_174: 0.00
+ list.++(V_174, IntUsedModules0, ImpUsedModules0, UsedModules0)
+ ,
+ % c2;c1;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_56 <= []
+ ,
+ % c2;c1;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_57 <= ".m"
+ ,
+ % c2;c1;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_58 <= do_not_create_dirs
+ ,
+ % c2;c1;c8;
+ % det
+ % cost: 16.00 (not above threshold)
+ parse_tree.file_names.module_name_to_file_name(Globals, ModuleName, V_57, V_58, FileName, V_54, V_59)
+ ,
+ % c2;c1;c9;
+ % det
+ % cost: 249.00 (not above threshold)
+ parse_tree.modules.warn_if_import_self_or_ancestor(ModuleName, FileName, AncestorModules, ImportedModules0, UsedModules0, V_56, V_60)
+ ,
+ % c2;c1;c10;
+ % det
+ % cost: 896.00 (not above threshold)
+ % Productions:
+ % ImpUsedModules: 896.00
+ % ImpImportedModules: 896.00
+ parse_tree.modules.warn_if_duplicate_use_import_decls(ModuleName, FileName, IntImportedModules0, IntImportedModules1, IntUsedModules0, IntUsedModules1, ImpImportedModules0, ImpImportedModules, ImpUsedModules0, ImpUsedModules, V_60, V_61)
+ ,
+ % c2;c1;c11;
+ % det
+ % cost: 286.00 (not above threshold)
+ parse_tree.module_imports.get_fact_table_dependencies(Items0, FactDeps)
+ ,
+ % c2;c1;c12;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_62 <= no
+ ,
+ % c2;c1;c13;
+ % det
+ % cost: 920.00 (not above threshold)
+ parse_tree.modules.get_interface_and_implementation(ModuleName, V_62, Items0, InterfaceItems, ImplItems)
+ ,
+ % c2;c1;c14;
+ % det
+ % cost: 11.00 (not above threshold)
+ parse_tree.modules.get_children(InterfaceItems, PublicChildren)
+ ,
+ % c2;c1;c15;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Consumptions:
+ % V_174: 0.00
+ switch_can_not_fail_rep switch on MaybeTimestamp
+ (
+ % case no/0
+ % c2;c1;c15;s1-na;
+ % det
+ % cost: 0.00 (not above threshold)
+ MaybeTimestamps <= no
+ ;
+ % case yes/1
+ % conjunction: c2;c1;c15;s2-na;
+ % conjunction: det
+ % conjunction: cost: 1.00 (not above threshold)
+
+ % c2;c1;c15;s2-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ MaybeTimestamp => yes(Timestamp)
+ ,
+ % c2;c1;c15;s2-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_175 <= $type_ctor_info_const
+ ,
+ % c2;c1;c15;s2-na;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_65 <= ".m"
+ ,
+ % c2;c1;c15;s2-na;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_66 <= may_be_unqualified
+ ,
+ % c2;c1;c15;s2-na;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_64 <= module_timestamp(V_65, Timestamp, V_66)
+ ,
+ % c2;c1;c15;s2-na;c6;
+ % det
+ % cost: 1.00 (not above threshold)
+ map.singleton(V_174, V_175, ModuleName, V_64, V_63)
+ ,
+ % c2;c1;c15;s2-na;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ MaybeTimestamps <= yes(V_63)
+ )
+ ,
+ % c2;c1;c16;
+ % det
+ % cost: 1,999.00 (not above threshold)
+ parse_tree.modules.init_module_and_imports(SourceFileName, SourceFileModuleName, ModuleName, Items0, V_61, PublicChildren, NestedChildren, FactDeps, MaybeTimestamps, V_67)
+ ,
+ % c2;c1;c17;
+ % det
+ % cost: 286.00 (not above threshold)
+ parse_tree.modules.get_children(Items0, Children)
+ ,
+ % c2;c1;c18;
+ % det
+ % cost: 0.00 (not above threshold)
+ switch_can_not_fail_rep switch on Children
+ (
+ % case []/0
+ % conjunction: c2;c1;c18;s1-na;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c2;c1;c18;s1-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ Items1 := Items0
+ ,
+ % c2;c1;c18;s1-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_78 := V_67
+ ;
+ % case [|]/2
+ % conjunction: c2;c1;c18;s2-na;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c2;c1;c18;s2-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ parse_tree.modules.split_clauses_and_decls(ImplItems, Clauses, ImplDecls)
+ ,
+ % c2;c1;c18;s2-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_176 <= $type_ctor_info_const
+ ,
+ % c2;c1;c18;s2-na;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_71 <= md_interface
+ ,
+ % c2;c1;c18;s2-na;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_71, V_70)
+ ,
+ % c2;c1;c18;s2-na;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_68 <= [|](V_70, InterfaceItems)
+ ,
+ % c2;c1;c18;s2-na;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_75 <= md_private_interface
+ ,
+ % c2;c1;c18;s2-na;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_75, V_74)
+ ,
+ % c2;c1;c18;s2-na;c8;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_72 <= [|](V_74, ImplDecls)
+ ,
+ % c2;c1;c18;s2-na;c9;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_77 <= md_implementation
+ ,
+ % c2;c1;c18;s2-na;c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_77, V_76)
+ ,
+ % c2;c1;c18;s2-na;c11;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_73 <= [|](V_76, Clauses)
+ ,
+ % c2;c1;c18;s2-na;c12;
+ % det
+ % cost: 0.00 (not above threshold)
+ list.++(V_176, V_72, V_73, V_69)
+ ,
+ % c2;c1;c18;s2-na;c13;
+ % det
+ % cost: 0.00 (not above threshold)
+ list.++(V_176, V_68, V_69, Items1)
+ ,
+ % c2;c1;c18;s2-na;c14;
+ % det
+ % cost: 0.00 (not above threshold)
+ cord.from_list(V_176, Items1, V_79)
+ ,
+ % c2;c1;c18;s2-na;c15;
+ % det
+ % cost: 0.00 (not above threshold)
+ scope (
+ % conjunction: c2;c1;c18;s2-na;c15;q;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c2;c1;c18;s2-na;c15;q;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_67 => module_and_imports(V_154, V_155, V_156, V_157, V_158, V_159, V_160, V_161, V_162, V_163, V_164, V_165, V_166, V_167, V_168, V_169, V_170, V_171, V_172, V_173)
+ ,
+ % c2;c1;c18;s2-na;c15;q;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_78 <= module_and_imports(V_154, V_155, V_156, V_157, V_158, V_159, V_160, V_161, V_162, V_163, V_164, V_165, V_166, V_167, V_79, V_169, V_170, V_171, V_172, V_173)
+ )
+ )
+ ,
+ % c2;c1;c19;
+ % det
+ % cost: 5,807.00 (above threshold)
+ parse_tree.module_imports.add_implicit_imports(Items1, Globals, IntImportedModules1, IntImportedModules2, IntUsedModules1, IntUsedModules2)
+ ,
+ % c2;c1;c20;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_85 <= import_locn_ancestor_private_interface
+ ,
+ % c2;c1;c21;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_84 <= md_imported(V_85)
+ ,
+ % c2;c1;c22;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_84, V_80)
+ ,
+ % c2;c1;c23;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_86 <= md_abstract_imported
+ ,
+ % c2;c1;c24;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_86, V_81)
+ ,
+ % c2;c1;c25;
+ % det
+ % cost: 19,834.00 (above threshold)
+ % Productions:
+ % IntUsedModules: 157.00
+ % IntImportedModules: 157.00
+ parse_tree.modules.process_module_private_interfaces(Globals, HaveReadModuleMap, AncestorModules, V_80, V_81, IntImportedModules2, IntImportedModules, IntUsedModules2, IntUsedModules, V_78, V_82, V_59, V_83)
+ ,
+ % c2;c1;c26;
+ % det
+ % cost: 0.00 (not above threshold)
+ IntIndirectImports0 <= []
+ ,
+ % c2;c1;c27;
+ % det
+ % cost: 0.00 (not above threshold)
+ IntImpIndirectImports0 <= []
+ ,
+ % c2;c1;c28;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_87 <= may_be_unqualified
+ ,
+ % c2;c1;c29;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_88 <= ".int"
+ ,
+ % c2;c1;c30;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_94 <= import_locn_interface
+ ,
+ % c2;c1;c31;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_93 <= md_imported(V_94)
+ ,
+ % c2;c1;c32;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_93, V_89)
+ ,
+ % c2;c1;c33;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_95 <= md_abstract_imported
+ ,
+ % c2;c1;c34;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_95, V_90)
+ ,
+ % c2;c1;c35;
+ % det
+ % cost: 1,724,827.00 (above threshold)
+ % Productions:
+ % V_92: 173.57
+ % V_91: 173.57
+ % IntImpIndirectImports1: 173.57
+ % IntIndirectImports1: 173.57
+ % Consumptions:
+ % IntImportedModules: 1.00
+ parse_tree.modules.process_module_long_interfaces(Globals, HaveReadModuleMap, V_87, IntImportedModules, V_88, V_89, V_90, IntIndirectImports0, IntIndirectImports1, IntImpIndirectImports0, IntImpIndirectImports1, V_82, V_91, V_83, V_92)
+ &
+ % conjunction: c2;c2;
+ % Cost: 6,850,350.00
+
+ % c2;c2;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ ImpIndirectImports0 <= []
+ ,
+ % c2;c2;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ ImpImpIndirectImports0 <= []
+ ,
+ % c2;c2;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_96 <= may_be_unqualified
+ ,
+ % c2;c2;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_97 <= ".int"
+ ,
+ % c2;c2;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_103 <= import_locn_implementation
+ ,
+ % c2;c2;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_102 <= md_imported(V_103)
+ ,
+ % c2;c2;c7;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_102, V_98)
+ ,
+ % c2;c2;c8;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_104 <= md_abstract_imported
+ ,
+ % c2;c2;c9;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_104, V_99)
+ ,
+ % c2;c2;c10;
+ % det
+ % cost: 5,694,961.00 (above threshold)
+ % Consumptions:
+ % V_92: 3,451.68
+ % V_91: 1.00
+ % ImpImportedModules: 1.00
+ parse_tree.modules.process_module_long_interfaces(Globals, HaveReadModuleMap, V_96, ImpImportedModules, V_97, V_98, V_99, ImpIndirectImports0, ImpIndirectImports1, ImpImpIndirectImports0, ImpImpIndirectImports1, V_91, V_100, V_92, V_101)
+ ,
+ % c2;c2;c11;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_105 <= must_be_qualified
+ ,
+ % c2;c2;c12;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_106 <= ".int"
+ ,
+ % c2;c2;c13;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_112 <= import_locn_interface
+ ,
+ % c2;c2;c14;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_111 <= md_used(V_112)
+ ,
+ % c2;c2;c15;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_111, V_107)
+ ,
+ % c2;c2;c16;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_113 <= md_abstract_imported
+ ,
+ % c2;c2;c17;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_113, V_108)
+ ,
+ % c2;c2;c18;
+ % det
+ % cost: 69,957.00 (above threshold)
+ % Consumptions:
+ % IntImpIndirectImports1: 89.00
+ % IntIndirectImports1: 7.00
+ % IntUsedModules: 1.00
+ parse_tree.modules.process_module_long_interfaces(Globals, HaveReadModuleMap, V_105, IntUsedModules, V_106, V_107, V_108, IntIndirectImports1, IntIndirectImports, IntImpIndirectImports1, IntImpIndirectImports2, V_100, V_109, V_101, V_110)
+ ,
+ % c2;c2;c19;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_114 <= must_be_qualified
+ ,
+ % c2;c2;c20;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_115 <= ".int"
+ ,
+ % c2;c2;c21;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_121 <= import_locn_implementation
+ ,
+ % c2;c2;c22;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_120 <= md_used(V_121)
+ ,
+ % c2;c2;c23;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_120, V_116)
+ ,
+ % c2;c2;c24;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_122 <= md_abstract_imported
+ ,
+ % c2;c2;c25;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_122, V_117)
+ ,
+ % c2;c2;c26;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Consumptions:
+ % ImpUsedModules: 1.00
+ parse_tree.modules.process_module_long_interfaces(Globals, HaveReadModuleMap, V_114, ImpUsedModules, V_115, V_116, V_117, ImpIndirectImports1, ImpIndirectImports, ImpImpIndirectImports1, ImpImpIndirectImports2, V_109, V_118, V_110, V_119)
+ ,
+ % c2;c2;c27;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_123 <= md_transitively_imported
+ ,
+ % c2;c2;c28;
+ % det
+ % cost: 5.00 (not above threshold)
+ parse_tree.modules.append_pseudo_decl(V_123, V_118, V_124)
+ ,
+ % c2;c2;c29;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_125 <= ".int2"
+ ,
+ % c2;c2;c30;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_111, V_126)
+ ,
+ % c2;c2;c31;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_130 <= md_abstract_imported
+ ,
+ % c2;c2;c32;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_130, V_127)
+ ,
+ % c2;c2;c33;
+ % det
+ % cost: 497,076.00 (above threshold)
+ parse_tree.modules.process_module_short_interfaces_transitively(Globals, HaveReadModuleMap, IntIndirectImports, V_125, V_126, V_127, IntImpIndirectImports2, IntImpIndirectImports, V_124, V_128, V_119, V_129)
+ ,
+ % c2;c2;c34;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_131 <= ".int2"
+ ,
+ % c2;c2;c35;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_120, V_132)
+ ,
+ % c2;c2;c36;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_136 <= md_abstract_imported
+ ,
+ % c2;c2;c37;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_136, V_133)
+ ,
+ % c2;c2;c38;
+ % det
+ % cost: 552,675.00 (above threshold)
+ parse_tree.modules.process_module_short_interfaces_transitively(Globals, HaveReadModuleMap, ImpIndirectImports, V_131, V_132, V_133, ImpImpIndirectImports2, ImpImpIndirectImports, V_128, V_134, V_129, V_135)
+ ,
+ % c2;c2;c39;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_137 <= ".int2"
+ ,
+ % c2;c2;c40;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_142 <= md_abstract_imported
+ ,
+ % c2;c2;c41;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_142, V_138)
+ ,
+ % c2;c2;c42;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_143 <= md_abstract_imported
+ ,
+ % c2;c2;c43;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_143, V_139)
+ ,
+ % c2;c2;c44;
+ % det
+ % cost: 257.00 (not above threshold)
+ parse_tree.modules.process_module_short_interfaces_and_impls_transitively(Globals, HaveReadModuleMap, IntImpIndirectImports, V_137, V_138, V_139, V_134, V_140, V_135, V_141)
+ ,
+ % c2;c2;c45;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_144 <= ".int2"
+ ,
+ % c2;c2;c46;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_148 <= md_abstract_imported
+ ,
+ % c2;c2;c47;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_148, V_145)
+ ,
+ % c2;c2;c48;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_149 <= md_abstract_imported
+ ,
+ % c2;c2;c49;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.modules.make_pseudo_decl(V_149, V_146)
+ ,
+ % c2;c2;c50;
+ % det
+ % cost: 1,534.00 (not above threshold)
+ parse_tree.modules.process_module_short_interfaces_and_impls_transitively(Globals, HaveReadModuleMap, ImpImpIndirectImports, V_144, V_145, V_146, V_140, V_147, V_141, V_55)
+ ,
+ % c2;c2;c51;
+ % det
+ % cost: 7,684.00 (above threshold)
+ parse_tree.module_imports.module_and_imports_get_results(V_147, Items, V_50, V_51)
+ ,
+ % c2;c2;c52;
+ % det
+ % cost: 46.00 (not above threshold)
+ % Consumptions:
+ % V_174: 0.00
+ % ImpUsedModules: 0.00
+ % ImpImportedModules: 0.00
+ list.++(V_174, ImpImportedModules, ImpUsedModules, V_153)
+ ,
+ % c2;c2;c53;
+ % det
+ % cost: 3.00 (not above threshold)
+ % Consumptions:
+ % V_174: 0.00
+ % IntUsedModules: 0.00
+ list.++(V_174, IntUsedModules, V_153, V_152)
+ ,
+ % c2;c2;c54;
+ % det
+ % cost: 9.00 (not above threshold)
+ % Consumptions:
+ % V_174: 0.00
+ % IntImportedModules: 0.00
+ list.++(V_174, IntImportedModules, V_152, V_150)
+ ,
+ % c2;c2;c55;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_151 <= []
+ ,
+ % c2;c2;c56;
+ % det
+ % cost: 26,114.00 (above threshold)
+ parse_tree.modules.check_imports_accessibility(ModuleName, V_150, Items, V_151, AccessSpecs)
+ )
+
+ Goals after:
+ % c3;
+ % det
+ % cost: 3.00 (not above threshold)
+ parse_tree.module_imports.module_and_imports_add_specs(AccessSpecs, V_147, V_53)
+
+ pred parse_tree.modules.process_module_long_interfaces/15-0
+
+ Path: s2-na;c3;e;
+ Dependent: on ImplIndirectImports1, ImplIndirectUses1, IndirectImports1, IndirectUses1, LongIntError, MaybeTimestamp, Statistics, V_38, V_42, V_44, V_46, V_48, V_50
+ NumCalls: 1
+ SeqTime: 209,759.00
+ ParTime: 143,712.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 1,300.00
+ WaitsCost: 2,600.00
+ ParOverheads total: 4,400.00
+ Speedup: 1.4596
+ Time saving: 66,047.00
+ First conj dead time: 72,031.00
+ Future dead time: 69,485.00
+ Total dead time: 141,516.00
+
+ Goals before:
+ % conjunction: s2-na;c3;e;
+ % Cost: 0.00
+
+ % s2-na;c3;e;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_12 => module_and_imports(V_107, V_108, V_109, V_110, V_111, V_112, V_113, V_114, V_115, V_116, V_117, V_118, V_119, V_120, V_121, V_122, V_123, V_35, V_124, V_125)
+ ,
+ % s2-na;c3;e;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_151 <= $type_ctor_info_const
+ ,
+ % s2-na;c3;e;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_149 <= $type_ctor_info_const
+
+ Parallel conjunction:
+ (
+ % conjunction: s2-na;c3;e;c4;c1;
+ % Cost: 69,781.00
+
+ % s2-na;c3;e;c4;c1;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_150 <= $type_ctor_info_const
+ ,
+ % s2-na;c3;e;c4;c1;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_152 <= $type_info_cell_constructor(V_151, V_149, V_150)
+ ,
+ % s2-na;c3;e;c4;c1;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ parse_tree.modules.maybe_return_timestamp(V_152, V_35, ReturnTimestamp)
+ ,
+ % s2-na;c3;e;c4;c1;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_36 <= "Reading interface for module"
+ ,
+ % s2-na;c3;e;c4;c1;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_37 <= do_search
+ ,
+ % s2-na;c3;e;c4;c1;c6;
+ % det
+ % cost: 69,385.00 (above threshold)
+ % Productions:
+ % V_38: 69,384.00
+ % MaybeTimestamp: 69,384.00
+ % LongIntError: 69,384.00
+ parse_tree.read_modules.maybe_read_module(Globals, HaveReadModuleMap, Import, V_5, V_36, V_37, ReturnTimestamp, LongIntItems0, LongIntSpecs, LongIntError, _LongIntFileName, MaybeTimestamp, V_14, V_38)
+ ,
+ % s2-na;c3;e;c4;c1;c7;
+ % det
+ % cost: 135.00 (not above threshold)
+ % Productions:
+ % ImplIndirectUses1: 134.00
+ % ImplIndirectImports1: 134.00
+ % IndirectUses1: 134.00
+ % IndirectImports1: 134.00
+ parse_tree.module_imports.get_dependencies_int_imp(LongIntItems0, IndirectImports1, IndirectUses1, ImplIndirectImports1, ImplIndirectUses1)
+ ,
+ % s2-na;c3;e;c4;c1;c8;
+ % det
+ % cost: 242.00 (not above threshold)
+ parse_tree.modules.replace_section_decls(IntStatusItem, ImpStatusItem, LongIntItems0, LongIntItems)
+ ,
+ % s2-na;c3;e;c4;c1;c9;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_153 <= $type_ctor_info_const
+ ,
+ % s2-na;c3;e;c4;c1;c10;
+ % det
+ % cost: 1.00 (not above threshold)
+ cord.from_list(V_153, LongIntItems, V_39)
+ ,
+ % s2-na;c3;e;c4;c1;c11;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.module_imports.module_and_imports_add_items(V_39, V_12, V_40)
+ ,
+ % s2-na;c3;e;c4;c1;c12;
+ % det
+ % cost: 3.00 (not above threshold)
+ parse_tree.module_imports.module_and_imports_add_specs(LongIntSpecs, V_40, V_41)
+ ,
+ % s2-na;c3;e;c4;c1;c13;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % V_42: 0.00
+ % Consumptions:
+ % LongIntError: 0.00
+ parse_tree.module_imports.module_and_imports_add_interface_error(LongIntError, V_41, V_42)
+ ,
+ % s2-na;c3;e;c4;c1;c14;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_43 <= detailed_statistics
+ ,
+ % s2-na;c3;e;c4;c1;c15;
+ % det
+ % cost: 11.00 (not above threshold)
+ % Productions:
+ % Statistics: 10.00
+ libs.globals.lookup_bool_option(Globals, V_43, Statistics)
+ &
+ % conjunction: s2-na;c3;e;c4;c2;
+ % Cost: 66.00
+
+ % s2-na;c3;e;c4;c2;c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % V_44: 0.00
+ % Consumptions:
+ % V_38: 0.00
+ % Statistics: 0.00
+ libs.file_util.maybe_report_stats(Statistics, V_38, V_44)
+ ,
+ % s2-na;c3;e;c4;c2;c2;
+ % det
+ % cost: 17.00 (not above threshold)
+ % Consumptions:
+ % V_42: 1.00
+ % MaybeTimestamp: 1.00
+ % LongIntError: 0.00
+ switch_can_not_fail_rep switch on LongIntError
+ (
+ % case fatal_module_errors/0
+ % conjunction: s2-na;c3;e;c4;c2;c2;s1-na;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % s2-na;c3;e;c4;c2;c2;s1-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ ModImplementationImports := ModImplementationImports0
+ ,
+ % s2-na;c3;e;c4;c2;c2;s1-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_45 := V_42
+ ;
+ % case no_module_errors/0
+ % case some_module_errors/0
+ % conjunction: s2-na;c3;e;c4;c2;c2;s2-na;
+ % conjunction: det
+ % conjunction: cost: 17.00 (not above threshold)
+
+ % s2-na;c3;e;c4;c2;c2;s2-na;c1;
+ % det
+ % cost: 17.00 (not above threshold)
+ parse_tree.modules.maybe_record_timestamp(Import, V_5, NeedQualifier, MaybeTimestamp, V_42, V_45)
+ ,
+ % s2-na;c3;e;c4;c2;c2;s2-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ ModImplementationImports <= [|](Import, ModImplementationImports0)
+ )
+ ,
+ % s2-na;c3;e;c4;c2;c3;
+ % det
+ % cost: 3.00 (not above threshold)
+ % Consumptions:
+ % IndirectUses1: 0.00
+ % IndirectImports1: 0.00
+ list.++(V_149, IndirectImports1, IndirectUses1, V_47)
+ ,
+ % s2-na;c3;e;c4;c2;c4;
+ % det
+ % cost: 39.00 (not above threshold)
+ % Productions:
+ % V_46: 38.00
+ list.++(V_149, V_8, V_47, V_46)
+ ,
+ % s2-na;c3;e;c4;c2;c5;
+ % det
+ % cost: 2.00 (not above threshold)
+ % Consumptions:
+ % ImplIndirectUses1: 0.00
+ % ImplIndirectImports1: 0.00
+ list.++(V_149, ImplIndirectImports1, ImplIndirectUses1, V_49)
+ ,
+ % s2-na;c3;e;c4;c2;c6;
+ % det
+ % cost: 4.00 (not above threshold)
+ % Productions:
+ % V_48: 3.00
+ list.++(V_149, V_10, V_49, V_48)
+ ,
+ % s2-na;c3;e;c4;c2;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_50: 0.00
+ scope (
+ % conjunction: s2-na;c3;e;c4;c2;c7;q;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % s2-na;c3;e;c4;c2;c7;q;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_45 => module_and_imports(V_126, V_127, V_128, V_129, V_130, V_131, V_132, V_133, V_134, V_135, V_136, V_137, V_138, V_139, V_140, V_141, V_142, V_143, V_144, V_145)
+ ,
+ % s2-na;c3;e;c4;c2;c7;q;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_50: 1.00
+ V_50 <= module_and_imports(V_126, V_127, V_128, V_129, V_130, ModImplementationImports, V_132, V_133, V_134, V_135, V_136, V_137, V_138, V_139, V_140, V_141, V_142, V_143, V_144, V_145)
+ )
+ &
+ % s2-na;c3;e;c4;c3;
+ % det
+ % cost: 139,912.00 (above threshold)
+ % Consumptions:
+ % V_50: 1.00
+ % V_48: 45.00
+ % V_46: 4.00
+ % V_44: 110.00
+ parse_tree.modules.process_module_long_interfaces(Globals, HaveReadModuleMap, NeedQualifier, Imports, V_5, IntStatusItem, ImpStatusItem, V_46, V_9, V_48, V_11, V_50, V_13, V_44, V_15)
+ )
+
+ Goals after:
+
+ pred parse_tree.modules.process_module_private_interfaces/13-0
+
+ Path: s2-na;c3;e;e;
+ Dependent: on PrivateIntError, PrivateIntItems, V_36, V_43, V_45, V_46, V_47, V_48
+ NumCalls: 1
+ SeqTime: 59,496.00
+ ParTime: 43,466.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 800.00
+ WaitsCost: 1,600.00
+ ParOverheads total: 2,900.00
+ Speedup: 1.3688
+ Time saving: 16,030.00
+ First conj dead time: 22,325.00
+ Future dead time: 19,715.00
+ Total dead time: 42,040.00
+
+ Goals before:
+ % conjunction: s2-na;c3;e;e;
+ % Cost: 0.00
+
+ % s2-na;c3;e;e;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_10 => module_and_imports(V_67, V_68, V_69, V_70, V_71, V_72, V_73, V_74, V_75, V_76, V_77, V_78, V_79, V_80, V_81, V_82, V_83, V_32, V_84, V_85)
+ ,
+ % s2-na;c3;e;e;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_109 <= $type_ctor_info_const
+ ,
+ % s2-na;c3;e;e;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_107 <= $type_ctor_info_const
+
+ Parallel conjunction:
+ (
+ % conjunction: s2-na;c3;e;e;c4;c1;
+ % Cost: 19,741.00
+
+ % s2-na;c3;e;e;c4;c1;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_108 <= $type_ctor_info_const
+ ,
+ % s2-na;c3;e;e;c4;c1;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_110 <= $type_info_cell_constructor(V_109, V_107, V_108)
+ ,
+ % s2-na;c3;e;e;c4;c1;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ parse_tree.modules.maybe_return_timestamp(V_110, V_32, ReturnTimestamp)
+ ,
+ % s2-na;c3;e;e;c4;c1;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_33 <= ".int0"
+ ,
+ % s2-na;c3;e;e;c4;c1;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_34 <= "Reading private interface for module"
+ ,
+ % s2-na;c3;e;e;c4;c1;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_35 <= do_search
+ ,
+ % s2-na;c3;e;e;c4;c1;c7;
+ % det
+ % cost: 19,626.00 (above threshold)
+ % Productions:
+ % V_36: 19,625.00
+ % PrivateIntError: 19,625.00
+ parse_tree.read_modules.maybe_read_module(Globals, HaveReadModuleMap, Ancestor, V_33, V_34, V_35, ReturnTimestamp, PrivateIntItems0, PrivateIntSpecs, PrivateIntError, _AncestorFileName, MaybeTimestamp, V_12, V_36)
+ ,
+ % s2-na;c3;e;e;c4;c1;c8;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_37 <= ".int0"
+ ,
+ % s2-na;c3;e;e;c4;c1;c9;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_38 <= may_be_unqualified
+ ,
+ % s2-na;c3;e;e;c4;c1;c10;
+ % det
+ % cost: 5.00 (not above threshold)
+ parse_tree.modules.maybe_record_timestamp(Ancestor, V_37, V_38, MaybeTimestamp, V_10, V_39)
+ ,
+ % s2-na;c3;e;e;c4;c1;c11;
+ % det
+ % cost: 102.00 (not above threshold)
+ % Productions:
+ % PrivateIntItems: 101.00
+ parse_tree.modules.replace_section_decls(IntStatusItem, ImpStatusItem, PrivateIntItems0, PrivateIntItems)
+ ,
+ % s2-na;c3;e;e;c4;c1;c12;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_111 <= $type_ctor_info_const
+ ,
+ % s2-na;c3;e;e;c4;c1;c13;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Consumptions:
+ % PrivateIntItems: 0.00
+ cord.from_list(V_111, PrivateIntItems, V_40)
+ ,
+ % s2-na;c3;e;e;c4;c1;c14;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.module_imports.module_and_imports_add_items(V_40, V_39, V_41)
+ ,
+ % s2-na;c3;e;e;c4;c1;c15;
+ % det
+ % cost: 3.00 (not above threshold)
+ parse_tree.module_imports.module_and_imports_add_specs(PrivateIntSpecs, V_41, V_42)
+ ,
+ % s2-na;c3;e;e;c4;c1;c16;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % V_43: 0.00
+ % Consumptions:
+ % PrivateIntError: 0.00
+ parse_tree.module_imports.module_and_imports_add_interface_error(PrivateIntError, V_42, V_43)
+ &
+ % conjunction: s2-na;c3;e;e;c4;c2;
+ % Cost: 89.00
+
+ % s2-na;c3;e;e;c4;c2;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_44 <= detailed_statistics
+ ,
+ % s2-na;c3;e;e;c4;c2;c2;
+ % det
+ % cost: 11.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_44, Statistics)
+ ,
+ % s2-na;c3;e;e;c4;c2;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % V_45: 0.00
+ % Consumptions:
+ % V_36: 0.00
+ libs.file_util.maybe_report_stats(Statistics, V_36, V_45)
+ ,
+ % s2-na;c3;e;e;c4;c2;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % PrivateIntError: 0.00
+ switch_can_not_fail_rep switch on PrivateIntError
+ (
+ % case fatal_module_errors/0
+ % s2-na;c3;e;e;c4;c2;c4;s1-na;
+ % det
+ % cost: 0.00 (not above threshold)
+ ModAncestors := ModAncestors0
+ ;
+ % case no_module_errors/0
+ % case some_module_errors/0
+ % s2-na;c3;e;e;c4;c2;c4;s2-na;
+ % det
+ % cost: 0.00 (not above threshold)
+ ModAncestors <= [|](Ancestor, ModAncestors0)
+ )
+ ,
+ % s2-na;c3;e;e;c4;c2;c5;
+ % det
+ % cost: 65.00 (not above threshold)
+ % Consumptions:
+ % PrivateIntItems: 0.00
+ parse_tree.module_imports.get_dependencies(PrivateIntItems, AncDirectImports, AncDirectUses)
+ ,
+ % s2-na;c3;e;e;c4;c2;c6;
+ % det
+ % cost: 9.00 (not above threshold)
+ % Productions:
+ % V_46: 8.00
+ list.++(V_107, V_6, AncDirectImports, V_46)
+ ,
+ % s2-na;c3;e;e;c4;c2;c7;
+ % det
+ % cost: 3.00 (not above threshold)
+ % Productions:
+ % V_47: 2.00
+ list.++(V_107, V_8, AncDirectUses, V_47)
+ ,
+ % s2-na;c3;e;e;c4;c2;c8;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_48: 0.00
+ % Consumptions:
+ % V_43: 0.00
+ scope (
+ % conjunction: s2-na;c3;e;e;c4;c2;c8;q;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % s2-na;c3;e;e;c4;c2;c8;q;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % V_43: 0.00
+ V_43 => module_and_imports(V_86, V_87, V_88, V_89, V_90, V_91, V_92, V_93, V_94, V_95, V_96, V_97, V_98, V_99, V_100, V_101, V_102, V_103, V_104, V_105)
+ ,
+ % s2-na;c3;e;e;c4;c2;c8;q;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_48: 1.00
+ V_48 <= module_and_imports(V_86, V_87, V_88, ModAncestors, V_90, V_91, V_92, V_93, V_94, V_95, V_96, V_97, V_98, V_99, V_100, V_101, V_102, V_103, V_104, V_105)
+ )
+ &
+ % s2-na;c3;e;e;c4;c3;
+ % det
+ % cost: 39,666.00 (above threshold)
+ % Consumptions:
+ % V_48: 1.00
+ % V_47: 75.00
+ % V_46: 66.00
+ % V_45: 4.00
+ parse_tree.modules.process_module_private_interfaces(Globals, HaveReadModuleMap, Ancestors, IntStatusItem, ImpStatusItem, V_46, V_7, V_47, V_9, V_48, V_11, V_45, V_13)
+ )
+
+ Goals after:
+
+ pred top_level.mercury_compile.mercury_compile/11-0
+
+ Path:
+ Dependent: on Errors1, Errors2, HLDS1, HLDS20, MaybeTimestamps, QualInfo, UndefModes, UndefTypes, V_34, V_39, V_40, V_41, V_42, V_43
+ NumCalls: 1
+ SeqTime: 75,468,255.00
+ ParTime: 68,774,220.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 1,400.00
+ WaitsCost: 3,000.00
+ ParOverheads total: 4,900.00
+ Speedup: 1.0973
+ Time saving: 6,694,035.00
+ First conj dead time: 62,073,765.00
+ Future dead time: 27,749,181.00
+ Total dead time: 89,822,946.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 21.00
+
+ % c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ parse_tree.module_imports.module_and_imports_get_module_name(ModuleAndImports, ModuleName)
+ ,
+ % c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_37 <= typecheck_only
+ ,
+ % c3;
+ % det
+ % cost: 9.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_37, TypeCheckOnly)
+ ,
+ % c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_38 <= errorcheck_only
+ ,
+ % c5;
+ % det
+ % cost: 11.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_38, ErrorCheckOnly)
+
+ Parallel conjunction:
+ (
+ % conjunction: c6;c1;
+ % Cost: 6,698,534.00
+
+ % c6;c1;c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ bool.or(TypeCheckOnly, ErrorCheckOnly, DontWriteDFile)
+ ,
+ % c6;c1;c2;
+ % det
+ % cost: 6,698,533.00 (above threshold)
+ % Productions:
+ % V_41: 6,698,533.00
+ % V_40: 6,636,505.00
+ % V_39: 6,636,618.00
+ % Errors1: 6,636,505.00
+ % UndefModes: 6,636,513.00
+ % UndefTypes: 6,636,512.00
+ % MaybeTimestamps: 7,801.00
+ % QualInfo: 6,636,498.00
+ % HLDS1: 6,698,533.00
+ top_level.mercury_compile.pre_hlds_pass(Globals, ModuleAndImports, DontWriteDFile, HLDS1, QualInfo, MaybeTimestamps, UndefTypes, UndefModes, Errors1, V_31, V_39, V_33, V_40, V_35, V_41)
+ &
+ % c6;c2;
+ % det
+ % cost: 21,050,648.00 (above threshold)
+ % Productions:
+ % V_43: 21,050,647.00
+ % V_42: 21,050,647.00
+ % V_34: 21,050,647.00
+ % HLDS20: 21,050,647.00
+ % Errors2: 21,050,647.00
+ % Consumptions:
+ % V_41: 0.00
+ % V_40: 0.00
+ % V_39: 0.00
+ % Errors1: 0.00
+ % UndefModes: 0.00
+ % UndefTypes: 0.00
+ % QualInfo: 0.00
+ % HLDS1: 0.00
+ top_level.mercury_compile_front_end.frontend_pass(QualInfo, UndefTypes, UndefModes, Errors1, Errors2, HLDS1, HLDS20, V_39, V_42, V_40, V_34, V_41, V_43)
+ &
+ % c6;c3;
+ % det
+ % cost: 47,719,052.00 (above threshold)
+ % Consumptions:
+ % V_43: 32.00
+ % V_42: 129.00
+ % V_34: 22,339,920.00
+ % HLDS20: 20.00
+ % Errors2: 0.00
+ % Errors1: 0.00
+ % MaybeTimestamps: 47,718,940.00
+ (
+ % conjunction: c6;c3;?;
+ % conjunction: semidet
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c6;c3;?;c1;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % Errors1: 0.00
+ Errors1 => no
+ ,
+ % c6;c3;?;c2;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % Errors2: 0.00
+ Errors2 => no
+ ->
+ % conjunction: c6;c3;t;
+ % conjunction: det
+ % conjunction: cost: 47,719,052.00 (above threshold)
+
+ % c6;c3;t;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_44 <= verbose
+ ,
+ % c6;c3;t;c2;
+ % det
+ % cost: 10.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_44, Verbose)
+ ,
+ % c6;c3;t;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_45 <= statistics
+ ,
+ % c6;c3;t;c4;
+ % det
+ % cost: 9.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_45, Stats)
+ ,
+ % c6;c3;t;c5;
+ % det
+ % cost: 13.00 (not above threshold)
+ top_level.mercury_compile.maybe_write_dependency_graph(Verbose, Stats, HLDS20, HLDS21, V_43, V_46)
+ ,
+ % c6;c3;t;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_47 <= make_optimization_interface
+ ,
+ % c6;c3;t;c7;
+ % det
+ % cost: 10.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_47, MakeOptInt)
+ ,
+ % c6;c3;t;c8;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_48 <= make_transitive_opt_interface
+ ,
+ % c6;c3;t;c9;
+ % det
+ % cost: 11.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_48, MakeTransOptInt)
+ ,
+ % c6;c3;t;c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_49 <= make_analysis_registry
+ ,
+ % c6;c3;t;c11;
+ % det
+ % cost: 9.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_49, MakeAnalysisRegistry)
+ ,
+ % c6;c3;t;c12;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_50 <= make_xml_documentation
+ ,
+ % c6;c3;t;c13;
+ % det
+ % cost: 11.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_50, MakeXmlDocumentation)
+ ,
+ % c6;c3;t;c14;
+ % det
+ % cost: 47,718,979.00 (above threshold)
+ (
+ % c6;c3;t;c14;?;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ TypeCheckOnly => yes
+ ->
+ % conjunction: c6;c3;t;c14;t;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c6;c3;t;c14;t;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ ExtraObjFiles <= []
+ ,
+ % c6;c3;t;c14;t;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_36 := V_46
+ ,
+ % c6;c3;t;c14;t;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_32 := V_42
+ ;
+ % c6;c3;t;c14;e;
+ % det
+ % cost: 47,718,979.00 (above threshold)
+ (
+ % c6;c3;t;c14;e;?;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ ErrorCheckOnly => yes
+ ->
+ % conjunction: c6;c3;t;c14;e;t;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c6;c3;t;c14;e;t;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_51 <= warn_unused_args
+ ,
+ % c6;c3;t;c14;e;t;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_51, UnusedArgs)
+ ,
+ % c6;c3;t;c14;e;t;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ switch_can_not_fail_rep switch on UnusedArgs
+ (
+ % case no/0
+ % c6;c3;t;c14;e;t;c3;s1-na;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_36 := V_46
+ ;
+ % case yes/0
+ % conjunction: c6;c3;t;c14;e;t;c3;s2-na;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c6;c3;t;c14;e;t;c3;s2-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_52 <= optimize_unused_args
+ ,
+ % c6;c3;t;c14;e;t;c3;s2-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_54 <= no
+ ,
+ % c6;c3;t;c14;e;t;c3;s2-na;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_53 <= bool(V_54)
+ ,
+ % c6;c3;t;c14;e;t;c3;s2-na;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ libs.globals.set_option(V_52, V_53, Globals, NoOptUnusedArgsGlobals)
+ ,
+ % c6;c3;t;c14;e;t;c3;s2-na;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ hlds.hlds_module.module_info_set_globals(NoOptUnusedArgsGlobals, HLDS21, HLDS21a)
+ ,
+ % c6;c3;t;c14;e;t;c3;s2-na;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_unused_args(Verbose, Stats, HLDS21a, _HLDS22, V_46, V_36)
+ )
+ ,
+ % c6;c3;t;c14;e;t;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ ExtraObjFiles <= []
+ ,
+ % c6;c3;t;c14;e;t;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_32 := V_42
+ ;
+ % c6;c3;t;c14;e;e;
+ % det
+ % cost: 47,718,979.00 (above threshold)
+ (
+ % c6;c3;t;c14;e;e;?;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ MakeOptInt => yes
+ ->
+ % conjunction: c6;c3;t;c14;e;e;t;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c6;c3;t;c14;e;e;t;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ ExtraObjFiles <= []
+ ,
+ % c6;c3;t;c14;e;e;t;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_36 := V_46
+ ,
+ % c6;c3;t;c14;e;e;t;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_32 := V_42
+ ;
+ % c6;c3;t;c14;e;e;e;
+ % det
+ % cost: 47,718,979.00 (above threshold)
+ (
+ % c6;c3;t;c14;e;e;e;?;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ MakeTransOptInt => yes
+ ->
+ % conjunction: c6;c3;t;c14;e;e;e;t;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c6;c3;t;c14;e;e;e;t;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.output_trans_opt_file(HLDS21, V_42, V_32, V_46, V_36)
+ ,
+ % c6;c3;t;c14;e;e;e;t;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ ExtraObjFiles <= []
+ ;
+ % c6;c3;t;c14;e;e;e;e;
+ % det
+ % cost: 47,718,979.00 (above threshold)
+ (
+ % c6;c3;t;c14;e;e;e;e;?;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ MakeAnalysisRegistry => yes
+ ->
+ % conjunction: c6;c3;t;c14;e;e;e;e;t;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c6;c3;t;c14;e;e;e;e;t;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ top_level.mercury_compile.prepare_for_intermodule_analysis(Globals, Verbose, Stats, HLDS21, HLDS22, V_46, V_55)
+ ,
+ % c6;c3;t;c14;e;e;e;e;t;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.output_analysis_file(HLDS22, V_42, V_32, V_55, V_36)
+ ,
+ % c6;c3;t;c14;e;e;e;e;t;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ ExtraObjFiles <= []
+ ;
+ % c6;c3;t;c14;e;e;e;e;e;
+ % det
+ % cost: 47,718,979.00 (above threshold)
+ (
+ % c6;c3;t;c14;e;e;e;e;e;?;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ MakeXmlDocumentation => yes
+ ->
+ % conjunction: c6;c3;t;c14;e;e;e;e;e;t;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c6;c3;t;c14;e;e;e;e;e;t;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ check_hlds.xml_documentation.xml_documentation(HLDS21, V_46, V_36)
+ ,
+ % c6;c3;t;c14;e;e;e;e;e;t;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ ExtraObjFiles <= []
+ ,
+ % c6;c3;t;c14;e;e;e;e;e;t;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_32 := V_42
+ ;
+ % conjunction: c6;c3;t;c14;e;e;e;e;e;e;
+ % conjunction: det
+ % conjunction: cost: 47,718,979.00 (above threshold)
+
+ % c6;c3;t;c14;e;e;e;e;e;e;c1;
+ % det
+ % cost: 12.00 (not above threshold)
+ top_level.mercury_compile.maybe_prepare_for_intermodule_analysis(Globals, Verbose, Stats, HLDS21, HLDS22, V_46, V_56)
+ ,
+ % c6;c3;t;c14;e;e;e;e;e;e;c2;
+ % det
+ % cost: 47,718,967.00 (above threshold)
+ top_level.mercury_compile.mercury_compile_after_front_end(NestedSubModules, FindTimestampFiles, MaybeTimestamps, ModuleName, HLDS22, V_34, ExtraObjFiles, V_42, V_32, V_56, V_36)
+ )
+ )
+ )
+ )
+ )
+ )
+ ;
+ % conjunction: c6;c3;e;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c6;c3;e;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ io.get_exit_status(ExitStatus, V_43, V_57)
+ ,
+ % c6;c3;e;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ (
+ % c6;c3;e;c2;?;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ ExitStatus => 0
+ ->
+ % conjunction: c6;c3;e;c2;t;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c6;c3;e;c2;t;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_58 <= 1
+ ,
+ % c6;c3;e;c2;t;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ io.set_exit_status(V_58, V_57, V_36)
+ ;
+ % c6;c3;e;c2;e;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_36 := V_57
+ )
+ ,
+ % c6;c3;e;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ ExtraObjFiles <= []
+ ,
+ % c6;c3;e;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_32 := V_42
+ )
+ )
+
+ Goals after:
+
+ pred top_level.mercury_compile.process_arg_list/10-0
+
+ Path: s2-na;
+ Dependent: on ArgExtraObjFiles, ArgModules, V_15, V_16, V_17, V_19
+ NumCalls: 1
+ SeqTime: 254,636,129.00
+ ParTime: 169,761,020.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 600.00
+ WaitsCost: 1,200.00
+ ParOverheads total: 2,300.00
+ Speedup: 1.5000
+ Time saving: 84,875,109.00
+ First conj dead time: 84,881,015.00
+ Future dead time: 84,878,804.00
+ Total dead time: 169,759,819.00
+
+ Goals before:
+ % conjunction: s2-na;
+ % Cost: 0.00
+
+ % s2-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_4 => [|](Arg, Args)
+
+ Parallel conjunction:
+ (
+ % s2-na;c2;c1;
+ % det
+ % cost: 84,878,705.00 (above threshold)
+ % Productions:
+ % V_15: 84,878,704.00
+ % ArgExtraObjFiles: 84,878,705.00
+ % ArgModules: 84,878,705.00
+ top_level.mercury_compile.process_arg(Globals, OptionVariables, OptionArgs, Arg, ArgModules, ArgExtraObjFiles, V_9, V_15)
+ &
+ % conjunction: s2-na;c2;c2;
+ % Cost: 4.00
+
+ % s2-na;c2;c2;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_16: 0.00
+ % Consumptions:
+ % V_15: 0.00
+ switch_can_not_fail_rep switch on Args
+ (
+ % case []/0
+ % s2-na;c2;c2;c1;s1-na;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_16: 1.00
+ % Consumptions:
+ % V_15: 0.00
+ V_16 := V_15
+ ;
+ % case [|]/2
+ % s2-na;c2;c2;c1;s2-na;
+ % det
+ % cost: 0.00 (not above threshold)
+ gc.garbage_collect(V_15, V_16)
+ )
+ ,
+ % s2-na;c2;c2;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_21 <= $type_ctor_info_const
+ ,
+ % s2-na;c2;c2;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Consumptions:
+ % ArgModules: 0.00
+ cord.from_list(V_21, ArgModules, V_18)
+ ,
+ % s2-na;c2;c2;c4;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % V_17: 0.00
+ cord.++(V_21, V_5, V_18, V_17)
+ ,
+ % s2-na;c2;c2;c5;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Consumptions:
+ % ArgExtraObjFiles: 0.00
+ cord.from_list(V_21, ArgExtraObjFiles, V_20)
+ ,
+ % s2-na;c2;c2;c6;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % V_19: 0.00
+ cord.++(V_21, V_7, V_20, V_19)
+ &
+ % s2-na;c2;c3;
+ % det
+ % cost: 169,757,420.00 (above threshold)
+ % Consumptions:
+ % V_19: 4.00
+ % V_17: 2.00
+ % V_16: 21.00
+ top_level.mercury_compile.process_arg_list(Globals, OptionVariables, OptionArgs, Args, V_17, V_6, V_19, V_8, V_16, V_10)
+ )
+
+ Goals after:
+
+ pred top_level.mercury_compile_front_end.frontend_pass/13-0
+
+ Path: c4;s1-na;
+ Dependent: on PostTypeSpecs, QualInfo, TypeClassErrors, TypeClassSpecs, V_28, V_31, V_34, V_35, V_37, V_41, V_42, V_43, V_48
+ NumCalls: 1
+ SeqTime: 21,050,636.00
+ ParTime: 20,791,877.00
+ SparkCost: 300.00
+ BarrierCost: 400.00
+ SignalsCost: 1,300.00
+ WaitsCost: 2,600.00
+ ParOverheads total: 4,600.00
+ Speedup: 1.0124
+ Time saving: 258,759.00
+ First conj dead time: 20,526,332.00
+ Future dead time: 262,843.00
+ Total dead time: 20,789,175.00
+
+ Goals before:
+ % conjunction: c4;s1-na;
+ % Cost: 1.00
+
+ % c4;s1-na;c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_error_util.maybe_write_out_errors(Verbose, Globals, V_13, V_22, V_17, V_23, V_19, V_24)
+
+ Parallel conjunction:
+ (
+ % conjunction: c4;s1-na;c2;c1;
+ % Cost: 263,844.00
+
+ % c4;s1-na;c2;c1;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_25 <= "% Post-processing type definitions...
+"
+ ,
+ % c4;s1-na;c2;c1;c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ libs.file_util.maybe_write_string(Verbose, V_25, V_24, V_26)
+ ,
+ % c4;s1-na;c2;c1;c3;
+ % det
+ % cost: 26,966.00 (above threshold)
+ % Productions:
+ % PostTypeSpecs: 26,965.00
+ hlds.make_tags.post_process_type_defns(V_22, V_27, PostTypeSpecs)
+ ,
+ % c4;s1-na;c2;c1;c4;
+ % det
+ % cost: 2.00 (not above threshold)
+ % Consumptions:
+ % PostTypeSpecs: 0.00
+ parse_tree.error_util.contains_errors(Globals, PostTypeSpecs, PostTypeErrors)
+ ,
+ % c4;s1-na;c2;c1;c5;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % V_28: 0.00
+ bool.or(PostTypeErrors, V_11, V_28)
+ ,
+ % c4;s1-na;c2;c1;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_29 <= 3
+ ,
+ % c4;s1-na;c2;c1;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_30 <= "typedefn"
+ ,
+ % c4;s1-na;c2;c1;c8;
+ % det
+ % cost: 105.00 (not above threshold)
+ % Productions:
+ % V_31: 104.00
+ hlds.passes_aux.maybe_dump_hlds(V_27, V_29, V_30, V_15, V_31, V_26, V_32)
+ ,
+ % c4;s1-na;c2;c1;c9;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_33 <= "% Checking typeclasses...
+"
+ ,
+ % c4;s1-na;c2;c1;c10;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % V_34: 0.00
+ libs.file_util.maybe_write_string(Verbose, V_33, V_32, V_34)
+ ,
+ % c4;s1-na;c2;c1;c11;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_36 <= []
+ ,
+ % c4;s1-na;c2;c1;c12;
+ % det
+ % cost: 236,768.00 (above threshold)
+ % Productions:
+ % V_35: 236,767.00
+ % TypeClassSpecs: 236,767.00
+ % QualInfo: 236,767.00
+ check_hlds.check_typeclass.check_typeclasses(V_27, V_35, QualInfo0, QualInfo, V_36, TypeClassSpecs)
+ &
+ % c4;s1-na;c2;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_48: 1.00
+ V_48 <= $type_ctor_info_const
+ &
+ % conjunction: c4;s1-na;c2;c3;
+ % Cost: 115.00
+
+ % c4;s1-na;c2;c3;c1;
+ % det
+ % cost: 2.00 (not above threshold)
+ % Consumptions:
+ % V_48: 0.00
+ % TypeClassSpecs: 0.00
+ list.++(V_48, TypeClassSpecs, V_23, V_38)
+ ,
+ % c4;s1-na;c2;c3;c2;
+ % det
+ % cost: 2.00 (not above threshold)
+ % Productions:
+ % V_37: 1.00
+ % Consumptions:
+ % V_48: 0.00
+ % PostTypeSpecs: 0.00
+ list.++(V_48, PostTypeSpecs, V_38, V_37)
+ ,
+ % c4;s1-na;c2;c3;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_39 <= 5
+ ,
+ % c4;s1-na;c2;c3;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_40 <= "typeclass"
+ ,
+ % c4;s1-na;c2;c3;c5;
+ % det
+ % cost: 105.00 (not above threshold)
+ % Productions:
+ % V_42: 104.00
+ % V_41: 104.00
+ % Consumptions:
+ % V_35: 0.00
+ % V_34: 0.00
+ % V_31: 0.00
+ hlds.passes_aux.maybe_dump_hlds(V_35, V_39, V_40, V_31, V_41, V_34, V_42)
+ ,
+ % c4;s1-na;c2;c3;c6;
+ % det
+ % cost: 4.00 (not above threshold)
+ % Productions:
+ % V_43: 3.00
+ % Consumptions:
+ % V_35: 0.00
+ % QualInfo: 0.00
+ hlds.make_hlds.set_module_recomp_info(QualInfo, V_35, V_43)
+ ,
+ % c4;s1-na;c2;c3;c7;
+ % det
+ % cost: 2.00 (not above threshold)
+ % Productions:
+ % TypeClassErrors: 1.00
+ % Consumptions:
+ % TypeClassSpecs: 0.00
+ parse_tree.error_util.contains_errors(Globals, TypeClassSpecs, TypeClassErrors)
+ &
+ % c4;s1-na;c2;c4;
+ % det
+ % cost: 20,786,676.00 (above threshold)
+ % Consumptions:
+ % V_43: 1.00
+ % V_42: 70.00
+ % V_41: 70.00
+ % V_37: 70.00
+ % V_28: 4,489,431.00
+ % TypeClassErrors: 0.00
+ switch_can_not_fail_rep switch on TypeClassErrors
+ (
+ % case no/0
+ % c4;s1-na;c2;c4;s1-na;
+ % det
+ % cost: 20,786,676.00 (above threshold)
+ top_level.mercury_compile_front_end.frontend_pass_after_typeclass_check(FoundUndefModeError, V_28, V_12, V_43, V_14, V_41, V_16, V_37, V_18, V_42, V_20)
+ ;
+ % case yes/0
+ % conjunction: c4;s1-na;c2;c4;s2-na;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c4;s1-na;c2;c4;s2-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_12 <= yes
+ ,
+ % c4;s1-na;c2;c4;s2-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_14 := V_43
+ ,
+ % c4;s1-na;c2;c4;s2-na;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_16 := V_41
+ ,
+ % c4;s1-na;c2;c4;s2-na;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_18 := V_37
+ ,
+ % c4;s1-na;c2;c4;s2-na;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_20 := V_42
+ )
+ )
+
+ Goals after:
+
+ pred top_level.mercury_compile_front_end.frontend_pass_by_phases/9-0
+
+ Path:
+ Dependent: on FoundModeError, SafeToContinue, V_30, V_36, V_40, V_41, V_42, V_43, V_44
+ NumCalls: 1
+ SeqTime: 13,373,914.00
+ ParTime: 11,318,438.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 900.00
+ WaitsCost: 1,800.00
+ ParOverheads total: 3,200.00
+ Speedup: 1.1816
+ Time saving: 2,055,476.00
+ First conj dead time: 9,257,343.00
+ Future dead time: 5,975,452.00
+ Total dead time: 15,232,795.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 20.00
+
+ % c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_get_globals(V_12, Globals)
+ ,
+ % c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_20 <= verbose
+ ,
+ % c3;
+ % det
+ % cost: 10.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_20, Verbose)
+ ,
+ % c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_21 <= statistics
+ ,
+ % c5;
+ % det
+ % cost: 9.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_21, Stats)
+
+ Parallel conjunction:
+ (
+ % conjunction: c6;c1;
+ % Cost: 2,059,675.00
+
+ % c6;c1;c1;
+ % det
+ % cost: 2,059,334.00 (above threshold)
+ top_level.mercury_compile_front_end.maybe_polymorphism(Verbose, Stats, V_12, V_22, V_16, V_23, V_18, V_24)
+ ,
+ % c6;c1;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_25 <= 30
+ ,
+ % c6;c1;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_26 <= "polymorphism"
+ ,
+ % c6;c1;c4;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_22, V_25, V_26, V_14, V_27, V_24, V_28)
+ ,
+ % c6;c1;c5;
+ % det
+ % cost: 13.00 (not above threshold)
+ % Productions:
+ % V_30: 13.00
+ top_level.mercury_compile_front_end.maybe_unused_imports(Verbose, Stats, V_22, V_29, V_23, V_30, V_28, V_31)
+ ,
+ % c6;c1;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_32 <= 31
+ ,
+ % c6;c1;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_33 <= "unused_imports"
+ ,
+ % c6;c1;c8;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_29, V_32, V_33, V_27, V_34, V_31, V_35)
+ ,
+ % c6;c1;c9;
+ % det
+ % cost: 13.00 (not above threshold)
+ % Productions:
+ % V_36: 13.00
+ top_level.mercury_compile_front_end.maybe_mode_constraints(Verbose, Stats, V_29, V_36, V_35, V_37)
+ ,
+ % c6;c1;c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_38 <= 33
+ ,
+ % c6;c1;c11;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_39 <= "mode_constraints"
+ ,
+ % c6;c1;c12;
+ % det
+ % cost: 105.00 (not above threshold)
+ % Productions:
+ % V_41: 104.00
+ % V_40: 104.00
+ % Consumptions:
+ % V_36: 0.00
+ hlds.passes_aux.maybe_dump_hlds(V_36, V_38, V_39, V_34, V_40, V_37, V_41)
+ &
+ % c6;c2;
+ % det
+ % cost: 3,915,984.00 (above threshold)
+ % Productions:
+ % V_44: 3,915,983.00
+ % V_43: 3,915,981.00
+ % V_42: 3,915,981.00
+ % SafeToContinue: 3,915,977.00
+ % FoundModeError: 3,915,980.00
+ % Consumptions:
+ % V_41: 2.00
+ % V_36: 1.00
+ % V_30: 2.00
+ top_level.mercury_compile_front_end.modecheck(Verbose, Stats, V_36, V_42, FoundModeError, SafeToContinue, V_30, V_43, V_41, V_44)
+ &
+ % conjunction: c6;c3;
+ % Cost: 7,398,235.00
+
+ % c6;c3;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_45 <= 35
+ ,
+ % c6;c3;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_46 <= "modecheck"
+ ,
+ % c6;c3;c3;
+ % det
+ % cost: 105.00 (not above threshold)
+ % Consumptions:
+ % V_44: 0.00
+ % V_42: 0.00
+ % V_40: 0.00
+ hlds.passes_aux.maybe_dump_hlds(V_42, V_45, V_46, V_40, V_47, V_44, V_48)
+ ,
+ % c6;c3;c4;
+ % det
+ % cost: 7,398,130.00 (above threshold)
+ % Consumptions:
+ % V_43: 3,811,253.00
+ % V_42: 3.00
+ % SafeToContinue: 0.00
+ % FoundModeError: 10,321,226.00
+ switch_can_not_fail_rep switch on SafeToContinue
+ (
+ % case modes_safe_to_continue/0
+ % conjunction: c6;c3;c4;s1-na;
+ % conjunction: det
+ % conjunction: cost: 7,398,130.00 (above threshold)
+
+ % c6;c3;c4;s1-na;c1;
+ % det
+ % cost: 672,321.00 (above threshold)
+ top_level.mercury_compile_front_end.detect_switches(Verbose, Stats, V_42, V_49, V_48, V_50)
+ ,
+ % c6;c3;c4;s1-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_51 <= 40
+ ,
+ % c6;c3;c4;s1-na;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_52 <= "switch_detect"
+ ,
+ % c6;c3;c4;s1-na;c4;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_49, V_51, V_52, V_47, V_53, V_50, V_54)
+ ,
+ % c6;c3;c4;s1-na;c5;
+ % det
+ % cost: 2,039,399.00 (above threshold)
+ top_level.mercury_compile_front_end.detect_cse(Verbose, Stats, V_49, V_55, V_54, V_56)
+ ,
+ % c6;c3;c4;s1-na;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_57 <= 45
+ ,
+ % c6;c3;c4;s1-na;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_58 <= "cse"
+ ,
+ % c6;c3;c4;s1-na;c8;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_55, V_57, V_58, V_53, V_59, V_56, V_60)
+ ,
+ % c6;c3;c4;s1-na;c9;
+ % det
+ % cost: 1,099,331.00 (above threshold)
+ top_level.mercury_compile_front_end.check_determinism(Verbose, Stats, V_55, V_61, V_43, V_62, V_60, V_63)
+ ,
+ % c6;c3;c4;s1-na;c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_64 <= 50
+ ,
+ % c6;c3;c4;s1-na;c11;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_65 <= "determinism"
+ ,
+ % c6;c3;c4;s1-na;c12;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_61, V_64, V_65, V_59, V_66, V_63, V_67)
+ ,
+ % c6;c3;c4;s1-na;c13;
+ % det
+ % cost: 3,584,273.00 (above threshold)
+ top_level.mercury_compile_front_end.check_unique_modes(Verbose, Stats, V_61, V_68, FoundUniqError, V_62, V_69, V_67, V_70)
+ ,
+ % c6;c3;c4;s1-na;c14;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_71 <= 55
+ ,
+ % c6;c3;c4;s1-na;c15;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_72 <= "unique_modes"
+ ,
+ % c6;c3;c4;s1-na;c16;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_68, V_71, V_72, V_66, V_73, V_70, V_74)
+ ,
+ % c6;c3;c4;s1-na;c17;
+ % det
+ % cost: 14.00 (not above threshold)
+ top_level.mercury_compile_front_end.check_stratification(Verbose, Stats, V_68, V_75, FoundStratError, V_69, V_76, V_74, V_77)
+ ,
+ % c6;c3;c4;s1-na;c18;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_78 <= 60
+ ,
+ % c6;c3;c4;s1-na;c19;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_79 <= "stratification"
+ ,
+ % c6;c3;c4;s1-na;c20;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_75, V_78, V_79, V_73, V_80, V_77, V_81)
+ ,
+ % c6;c3;c4;s1-na;c21;
+ % det
+ % cost: 28.00 (not above threshold)
+ top_level.mercury_compile_front_end.process_try_goals(Verbose, Stats, V_75, V_82, FoundTryError, V_76, V_83, V_81, V_84)
+ ,
+ % c6;c3;c4;s1-na;c22;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_85 <= 62
+ ,
+ % c6;c3;c4;s1-na;c23;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_86 <= "try"
+ ,
+ % c6;c3;c4;s1-na;c24;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_82, V_85, V_86, V_80, V_87, V_84, V_88)
+ ,
+ % c6;c3;c4;s1-na;c25;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_89 <= yes
+ ,
+ % c6;c3;c4;s1-na;c26;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_90 <= simplify_pass_frontend
+ ,
+ % c6;c3;c4;s1-na;c27;
+ % det
+ % cost: 2,925,110.00 (above threshold)
+ top_level.mercury_compile_front_end.maybe_simplify(V_89, V_90, Verbose, Stats, V_82, V_91, V_83, V_92, V_88, V_93)
+ ,
+ % c6;c3;c4;s1-na;c28;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_94 <= 65
+ ,
+ % c6;c3;c4;s1-na;c29;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_95 <= "frontend_simplify"
+ ,
+ % c6;c3;c4;s1-na;c30;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_91, V_94, V_95, V_87, V_96, V_93, V_97)
+ ,
+ % c6;c3;c4;s1-na;c31;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_98 <= "AfterFrontEnd"
+ ,
+ % c6;c3;c4;s1-na;c32;
+ % det
+ % cost: 13.00 (not above threshold)
+ top_level.mercury_compile_front_end.maybe_proc_statistics(Verbose, Stats, V_98, V_91, V_13, V_92, V_17, V_97, V_99)
+ ,
+ % c6;c3;c4;s1-na;c33;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_get_num_errors(V_13, NumErrors)
+ ,
+ % c6;c3;c4;s1-na;c34;
+ % det
+ % cost: 1.00 (not above threshold)
+ io.get_exit_status(ExitStatus, V_99, V_100)
+ ,
+ % c6;c3;c4;s1-na;c35;
+ % det
+ % cost: 0.00 (not above threshold)
+ (
+ % conjunction: c6;c3;c4;s1-na;c35;?;
+ % conjunction: semidet
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c6;c3;c4;s1-na;c35;?;c1;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % FoundModeError: 0.00
+ FoundModeError => no
+ ,
+ % c6;c3;c4;s1-na;c35;?;c2;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ FoundUniqError => no
+ ,
+ % c6;c3;c4;s1-na;c35;?;c3;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ FoundStratError => no
+ ,
+ % c6;c3;c4;s1-na;c35;?;c4;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ FoundTryError => no
+ ,
+ % c6;c3;c4;s1-na;c35;?;c5;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ NumErrors => 0
+ ,
+ % c6;c3;c4;s1-na;c35;?;c6;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ ExitStatus => 0
+ ->
+ % c6;c3;c4;s1-na;c35;t;
+ % det
+ % cost: 0.00 (not above threshold)
+ FoundError <= no
+ ;
+ % c6;c3;c4;s1-na;c35;e;
+ % det
+ % cost: 0.00 (not above threshold)
+ FoundError <= yes
+ )
+ ;
+ % case modes_unsafe_to_continue/0
+ % conjunction: c6;c3;c4;s2-na;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c6;c3;c4;s2-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ FoundError <= yes
+ ,
+ % c6;c3;c4;s2-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_13 := V_42
+ ,
+ % c6;c3;c4;s2-na;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_96 := V_47
+ ,
+ % c6;c3;c4;s2-na;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_17 := V_43
+ ,
+ % c6;c3;c4;s2-na;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_100 := V_48
+ )
+ )
+
+ Goals after:
+
+ Path: c22;s1-na;
+ Dependent: on V_61, V_62, V_66, V_67, V_68, V_69, V_70
+ NumCalls: 1
+ SeqTime: 10,321,106.00
+ ParTime: 7,398,130.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 700.00
+ WaitsCost: 1,400.00
+ ParOverheads total: 2,600.00
+ Speedup: 1.3951
+ Time saving: 2,922,976.00
+ First conj dead time: 3,585,364.00
+ Future dead time: 7,621,522.00
+ Total dead time: 11,206,886.00
+
+ Goals before:
+ % conjunction: c22;s1-na;
+ % Cost: 0.00
+
+
+ Parallel conjunction:
+ (
+ % conjunction: c22;s1-na;c1;c1;
+ % Cost: 3,811,366.00
+
+ % c22;s1-na;c1;c1;c1;
+ % det
+ % cost: 672,321.00 (above threshold)
+ top_level.mercury_compile_front_end.detect_switches(Verbose, Stats, V_42, V_49, V_48, V_50)
+ ,
+ % c22;s1-na;c1;c1;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_51 <= 40
+ ,
+ % c22;s1-na;c1;c1;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_52 <= "switch_detect"
+ ,
+ % c22;s1-na;c1;c1;c4;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_49, V_51, V_52, V_47, V_53, V_50, V_54)
+ ,
+ % c22;s1-na;c1;c1;c5;
+ % det
+ % cost: 2,039,399.00 (above threshold)
+ top_level.mercury_compile_front_end.detect_cse(Verbose, Stats, V_49, V_55, V_54, V_56)
+ ,
+ % c22;s1-na;c1;c1;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_57 <= 45
+ ,
+ % c22;s1-na;c1;c1;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_58 <= "cse"
+ ,
+ % c22;s1-na;c1;c1;c8;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_55, V_57, V_58, V_53, V_59, V_56, V_60)
+ ,
+ % c22;s1-na;c1;c1;c9;
+ % det
+ % cost: 1,099,331.00 (above threshold)
+ % Productions:
+ % V_62: 1,099,328.00
+ % V_61: 1,099,328.00
+ top_level.mercury_compile_front_end.check_determinism(Verbose, Stats, V_55, V_61, V_43, V_62, V_60, V_63)
+ ,
+ % c22;s1-na;c1;c1;c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_64 <= 50
+ ,
+ % c22;s1-na;c1;c1;c11;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_65 <= "determinism"
+ ,
+ % c22;s1-na;c1;c1;c12;
+ % det
+ % cost: 105.00 (not above threshold)
+ % Productions:
+ % V_67: 104.00
+ % V_66: 104.00
+ % Consumptions:
+ % V_61: 0.00
+ hlds.passes_aux.maybe_dump_hlds(V_61, V_64, V_65, V_59, V_66, V_63, V_67)
+ &
+ % c22;s1-na;c1;c2;
+ % det
+ % cost: 3,584,273.00 (above threshold)
+ % Productions:
+ % V_70: 3,584,272.00
+ % V_69: 3,584,270.00
+ % V_68: 3,584,270.00
+ % Consumptions:
+ % V_67: 2.00
+ % V_62: 2.00
+ % V_61: 1.00
+ top_level.mercury_compile_front_end.check_unique_modes(Verbose, Stats, V_61, V_68, FoundUniqError, V_62, V_69, V_67, V_70)
+ &
+ % conjunction: c22;s1-na;c1;c3;
+ % Cost: 2,925,467.00
+
+ % c22;s1-na;c1;c3;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_71 <= 55
+ ,
+ % c22;s1-na;c1;c3;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_72 <= "unique_modes"
+ ,
+ % c22;s1-na;c1;c3;c3;
+ % det
+ % cost: 105.00 (not above threshold)
+ % Consumptions:
+ % V_70: 0.00
+ % V_68: 0.00
+ % V_66: 0.00
+ hlds.passes_aux.maybe_dump_hlds(V_68, V_71, V_72, V_66, V_73, V_70, V_74)
+ ,
+ % c22;s1-na;c1;c3;c4;
+ % det
+ % cost: 14.00 (not above threshold)
+ % Consumptions:
+ % V_69: 14.00
+ % V_68: 1.00
+ top_level.mercury_compile_front_end.check_stratification(Verbose, Stats, V_68, V_75, FoundStratError, V_69, V_76, V_74, V_77)
+ ,
+ % c22;s1-na;c1;c3;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_78 <= 60
+ ,
+ % c22;s1-na;c1;c3;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_79 <= "stratification"
+ ,
+ % c22;s1-na;c1;c3;c7;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_75, V_78, V_79, V_73, V_80, V_77, V_81)
+ ,
+ % c22;s1-na;c1;c3;c8;
+ % det
+ % cost: 28.00 (not above threshold)
+ top_level.mercury_compile_front_end.process_try_goals(Verbose, Stats, V_75, V_82, FoundTryError, V_76, V_83, V_81, V_84)
+ ,
+ % c22;s1-na;c1;c3;c9;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_85 <= 62
+ ,
+ % c22;s1-na;c1;c3;c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_86 <= "try"
+ ,
+ % c22;s1-na;c1;c3;c11;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_82, V_85, V_86, V_80, V_87, V_84, V_88)
+ ,
+ % c22;s1-na;c1;c3;c12;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_89 <= yes
+ ,
+ % c22;s1-na;c1;c3;c13;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_90 <= simplify_pass_frontend
+ ,
+ % c22;s1-na;c1;c3;c14;
+ % det
+ % cost: 2,925,110.00 (above threshold)
+ top_level.mercury_compile_front_end.maybe_simplify(V_89, V_90, Verbose, Stats, V_82, V_91, V_83, V_92, V_88, V_93)
+ )
+
+ Goals after:
+
+ pred top_level.mercury_compile_llds_back_end.llds_backend_pass_by_phases/9-0
+
+ Path:
+ Dependent: on V_6, V_61, V_65, V_66, V_67, V_70, V_71, V_72, V_73, V_74, V_8
+ NumCalls: 1
+ SeqTime: 22,822,726.00
+ ParTime: 14,214,220.00
+ SparkCost: 500.00
+ BarrierCost: 600.00
+ SignalsCost: 1,100.00
+ WaitsCost: 3,000.00
+ ParOverheads total: 5,200.00
+ Speedup: 1.6056
+ Time saving: 8,608,506.00
+ First conj dead time: 6,056,007.00
+ Future dead time: 28,986,132.00
+ Total dead time: 35,042,139.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 20.00
+
+ % c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_get_globals(V_5, Globals)
+ ,
+ % c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_14 <= verbose
+ ,
+ % c3;
+ % det
+ % cost: 10.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_14, Verbose)
+ ,
+ % c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_15 <= statistics
+ ,
+ % c5;
+ % det
+ % cost: 9.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_15, Stats)
+
+ Parallel conjunction:
+ (
+ % conjunction: c6;c1;
+ % Cost: 8,156,893.00
+
+ % c6;c1;c1;
+ % det
+ % cost: 1,399,392.00 (above threshold)
+ top_level.mercury_compile_llds_back_end.maybe_saved_vars(Verbose, Stats, V_5, V_16, V_12, V_17)
+ ,
+ % c6;c1;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_18 <= 310
+ ,
+ % c6;c1;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_19 <= "saved_vars_const"
+ ,
+ % c6;c1;c4;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_16, V_18, V_19, V_10, V_20, V_17, V_21)
+ ,
+ % c6;c1;c5;
+ % det
+ % cost: 12.00 (not above threshold)
+ top_level.mercury_compile_llds_back_end.maybe_stack_opt(Verbose, Stats, V_16, V_22, V_21, V_23)
+ ,
+ % c6;c1;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_24 <= 315
+ ,
+ % c6;c1;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_25 <= "saved_vars_cell"
+ ,
+ % c6;c1;c8;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_22, V_24, V_25, V_20, V_26, V_23, V_27)
+ ,
+ % c6;c1;c9;
+ % det
+ % cost: 755,643.00 (above threshold)
+ top_level.mercury_compile_llds_back_end.maybe_followcode(Verbose, Stats, V_22, V_28, V_27, V_29)
+ ,
+ % c6;c1;c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_30 <= 320
+ ,
+ % c6;c1;c11;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_31 <= "followcode"
+ ,
+ % c6;c1;c12;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_28, V_30, V_31, V_26, V_32, V_29, V_33)
+ ,
+ % c6;c1;c13;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_34 <= no
+ ,
+ % c6;c1;c14;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_35 <= simplify_pass_ll_backend
+ ,
+ % c6;c1;c15;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_37 <= []
+ ,
+ % c6;c1;c16;
+ % det
+ % cost: 1,919,283.00 (above threshold)
+ top_level.mercury_compile_front_end.maybe_simplify(V_34, V_35, Verbose, Stats, V_28, V_36, V_37, SimplifySpecs, V_33, V_38)
+ ,
+ % c6;c1;c17;
+ % det
+ % cost: 2.00 (not above threshold)
+ parse_tree.error_util.contains_errors(Globals, SimplifySpecs, V_43)
+ ,
+ % c6;c1;c18;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_44 <= no
+ ,
+ % c6;c1;c19;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_39 <= $closure_cons(V_43, V_44)
+ ,
+ % c6;c1;c20;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_40 <= "top_level.mercury_compile_llds_back_end"
+ ,
+ % c6;c1;c21;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_41 <= "predicate `top_level.mercury_compile_llds_back_end.llds_backend_pass_by_phases'/9"
+ ,
+ % c6;c1;c22;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_42 <= "simplify has errors"
+ ,
+ % c6;c1;c23;
+ % det
+ % cost: 2.00 (not above threshold)
+ require.expect(V_39, V_40, V_41, V_42)
+ ,
+ % c6;c1;c24;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_45 <= 325
+ ,
+ % c6;c1;c25;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_46 <= "ll_backend_simplify"
+ ,
+ % c6;c1;c26;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_36, V_45, V_46, V_32, V_47, V_38, V_48)
+ ,
+ % c6;c1;c27;
+ % det
+ % cost: 2,962,741.00 (above threshold)
+ top_level.mercury_compile_llds_back_end.compute_liveness(Verbose, Stats, V_36, V_49, V_48, V_50)
+ ,
+ % c6;c1;c28;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_51 <= 330
+ ,
+ % c6;c1;c29;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_52 <= "liveness"
+ ,
+ % c6;c1;c30;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_49, V_51, V_52, V_47, V_53, V_50, V_54)
+ ,
+ % c6;c1;c31;
+ % det
+ % cost: 13.00 (not above threshold)
+ top_level.mercury_compile_llds_back_end.maybe_mark_tail_rec_calls(Verbose, Stats, V_49, V_55, V_54, V_56)
+ ,
+ % c6;c1;c32;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_57 <= 332
+ ,
+ % c6;c1;c33;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_58 <= "mark_debug_tailrec_calls"
+ ,
+ % c6;c1;c34;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_55, V_57, V_58, V_53, V_59, V_56, V_60)
+ ,
+ % c6;c1;c35;
+ % det
+ % cost: 1,119,070.00 (above threshold)
+ % Productions:
+ % V_61: 1,119,067.00
+ top_level.mercury_compile_llds_back_end.compute_stack_vars(Verbose, Stats, V_55, V_61, V_60, V_62)
+ ,
+ % c6;c1;c36;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_63 <= 335
+ ,
+ % c6;c1;c37;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_64 <= "stackvars"
+ ,
+ % c6;c1;c38;
+ % det
+ % cost: 105.00 (not above threshold)
+ % Productions:
+ % V_66: 104.00
+ % V_65: 104.00
+ % Consumptions:
+ % V_61: 0.00
+ hlds.passes_aux.maybe_dump_hlds(V_61, V_63, V_64, V_59, V_65, V_62, V_66)
+ &
+ % c6;c2;
+ % det
+ % cost: 452,571.00 (above threshold)
+ % Productions:
+ % V_67: 452,570.00
+ % V_6: 452,568.00
+ % Consumptions:
+ % V_66: 1.00
+ % V_61: 3.00
+ top_level.mercury_compile_llds_back_end.allocate_store_map(Verbose, Stats, V_61, V_6, V_66, V_67)
+ &
+ % conjunction: c6;c3;
+ % Cost: 105.00
+
+ % c6;c3;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_68 <= 340
+ ,
+ % c6;c3;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_69 <= "store_map"
+ ,
+ % c6;c3;c3;
+ % det
+ % cost: 105.00 (not above threshold)
+ % Productions:
+ % V_70: 104.00
+ % Consumptions:
+ % V_67: 0.00
+ % V_65: 0.00
+ % V_6: 0.00
+ hlds.passes_aux.maybe_dump_hlds(V_6, V_68, V_69, V_65, V_11, V_67, V_70)
+ &
+ % c6;c4;
+ % det
+ % cost: 6,111,451.00 (above threshold)
+ % Productions:
+ % V_73: 6,111,450.00
+ % V_72: 6,111,448.00
+ % V_71: 6,111,448.00
+ % Consumptions:
+ % V_70: 1.00
+ % V_6: 3.00
+ top_level.mercury_compile_llds_back_end.generate_llds_code_for_module(V_6, Verbose, Stats, V_7, V_71, V_72, V_70, V_73)
+ &
+ % c6;c5;
+ % det
+ % cost: 4,421.00 (above threshold)
+ % Productions:
+ % V_74: 4,420.00
+ % V_8: 4,418.00
+ % Consumptions:
+ % V_73: 1.00
+ % V_72: 3.00
+ % V_71: 3.00
+ % V_6: 3.00
+ top_level.mercury_compile_llds_back_end.maybe_generate_stack_layouts(V_6, V_72, Verbose, Stats, V_71, V_8, V_73, V_74)
+ &
+ % c6;c6;
+ % det
+ % cost: 8,097,265.00 (above threshold)
+ % Consumptions:
+ % V_74: 11.00
+ % V_72: 13.00
+ % V_8: 13.00
+ % V_6: 1.00
+ top_level.mercury_compile_llds_back_end.maybe_optimize_llds(V_6, V_8, Verbose, Stats, V_72, V_9, V_74, V_13)
+ )
+
+ Goals after:
+
+ pred top_level.mercury_compile_middle_passes.middle_pass/7-0
+
+ Path:
+ Dependent: on V_101, V_102, V_103, V_107, V_108, V_97
+ NumCalls: 1
+ SeqTime: 22,339,687.00
+ ParTime: 15,870,054.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 600.00
+ WaitsCost: 1,200.00
+ ParOverheads total: 2,300.00
+ Speedup: 1.4077
+ Time saving: 6,469,633.00
+ First conj dead time: 9,395,374.00
+ Future dead time: 6,473,109.00
+ Total dead time: 15,868,483.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 55.00
+
+ % c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_get_globals(V_7, Globals)
+ ,
+ % c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_13 <= verbose
+ ,
+ % c3;
+ % det
+ % cost: 10.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_13, Verbose)
+ ,
+ % c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_14 <= statistics
+ ,
+ % c5;
+ % det
+ % cost: 9.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_14, Stats)
+ ,
+ % c6;
+ % det
+ % cost: 35.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_read_experimental_complexity_file(V_7, V_15, V_11, V_16)
+
+ Parallel conjunction:
+ (
+ % conjunction: c7;c1;
+ % Cost: 6,473,115.00
+
+ % c7;c1;c1;
+ % det
+ % cost: 293,622.00 (above threshold)
+ top_level.mercury_compile_middle_passes.tabling(Verbose, Stats, V_15, V_17, V_16, V_18)
+ ,
+ % c7;c1;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_19 <= 105
+ ,
+ % c7;c1;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_20 <= "tabling"
+ ,
+ % c7;c1;c4;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_17, V_19, V_20, V_9, V_21, V_18, V_22)
+ ,
+ % c7;c1;c5;
+ % det
+ % cost: 485,829.00 (above threshold)
+ top_level.mercury_compile_middle_passes.process_lambdas(Verbose, Stats, V_17, V_23, V_22, V_24)
+ ,
+ % c7;c1;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_25 <= 110
+ ,
+ % c7;c1;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_26 <= "lambda"
+ ,
+ % c7;c1;c8;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_23, V_25, V_26, V_21, V_27, V_24, V_28)
+ ,
+ % c7;c1;c9;
+ % det
+ % cost: 746,846.00 (above threshold)
+ top_level.mercury_compile_middle_passes.process_stms(Verbose, Stats, V_23, V_29, V_28, V_30)
+ ,
+ % c7;c1;c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_31 <= 113
+ ,
+ % c7;c1;c11;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_32 <= "stm"
+ ,
+ % c7;c1;c12;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_29, V_31, V_32, V_27, V_33, V_30, V_34)
+ ,
+ % c7;c1;c13;
+ % det
+ % cost: 3,431,063.00 (above threshold)
+ top_level.mercury_compile_middle_passes.expand_equiv_types_hlds(Verbose, Stats, V_29, V_35, V_34, V_36)
+ ,
+ % c7;c1;c14;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_37 <= 115
+ ,
+ % c7;c1;c15;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_38 <= "equiv_types"
+ ,
+ % c7;c1;c16;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_35, V_37, V_38, V_33, V_39, V_36, V_40)
+ ,
+ % c7;c1;c17;
+ % det
+ % cost: 12.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_closure_analysis(Verbose, Stats, V_35, V_41, V_40, V_42)
+ ,
+ % c7;c1;c18;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_43 <= 117
+ ,
+ % c7;c1;c19;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_44 <= "closure_analysis"
+ ,
+ % c7;c1;c20;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_41, V_43, V_44, V_39, V_45, V_42, V_46)
+ ,
+ % c7;c1;c21;
+ % det
+ % cost: 13.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_exception_analysis(Verbose, Stats, V_41, V_47, V_46, V_48)
+ ,
+ % c7;c1;c22;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_49 <= 118
+ ,
+ % c7;c1;c23;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_50 <= "exception_analysis"
+ ,
+ % c7;c1;c24;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_47, V_49, V_50, V_45, V_51, V_48, V_52)
+ ,
+ % c7;c1;c25;
+ % det
+ % cost: 23.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_termination(Verbose, Stats, V_47, V_53, V_52, V_54)
+ ,
+ % c7;c1;c26;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_55 <= 120
+ ,
+ % c7;c1;c27;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_56 <= "termination"
+ ,
+ % c7;c1;c28;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_53, V_55, V_56, V_51, V_57, V_54, V_58)
+ ,
+ % c7;c1;c29;
+ % det
+ % cost: 24.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_termination2(Verbose, Stats, V_53, V_59, V_58, V_60)
+ ,
+ % c7;c1;c30;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_61 <= 121
+ ,
+ % c7;c1;c31;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_62 <= "termination2"
+ ,
+ % c7;c1;c32;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_59, V_61, V_62, V_57, V_63, V_60, V_64)
+ ,
+ % c7;c1;c33;
+ % det
+ % cost: 11,948.00 (above threshold)
+ top_level.mercury_compile_middle_passes.maybe_type_ctor_infos(Verbose, Stats, V_59, V_65, V_64, V_66)
+ ,
+ % c7;c1;c34;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_67 <= 125
+ ,
+ % c7;c1;c35;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_68 <= "type_ctor_infos"
+ ,
+ % c7;c1;c36;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_65, V_67, V_68, V_63, V_69, V_66, V_70)
+ ,
+ % c7;c1;c37;
+ % det
+ % cost: 12.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_warn_dead_procs(Verbose, Stats, V_65, V_71, V_70, V_72)
+ ,
+ % c7;c1;c38;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_73 <= 130
+ ,
+ % c7;c1;c39;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_74 <= "warn_dead_procs"
+ ,
+ % c7;c1;c40;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_71, V_73, V_74, V_69, V_75, V_72, V_76)
+ ,
+ % c7;c1;c41;
+ % det
+ % cost: 12.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_bytecodes(V_71, ModuleName, Verbose, Stats, V_75, V_77, V_76, V_78)
+ ,
+ % c7;c1;c42;
+ % det
+ % cost: 13.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_untuple_arguments(Verbose, Stats, V_71, V_79, V_78, V_80)
+ ,
+ % c7;c1;c43;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_81 <= 133
+ ,
+ % c7;c1;c44;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_82 <= "untupling"
+ ,
+ % c7;c1;c45;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_79, V_81, V_82, V_77, V_83, V_80, V_84)
+ ,
+ % c7;c1;c46;
+ % det
+ % cost: 12.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_tuple_arguments(Verbose, Stats, V_79, V_85, V_84, V_86)
+ ,
+ % c7;c1;c47;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_87 <= 134
+ ,
+ % c7;c1;c48;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_88 <= "tupling"
+ ,
+ % c7;c1;c49;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_85, V_87, V_88, V_83, V_89, V_86, V_90)
+ ,
+ % c7;c1;c50;
+ % det
+ % cost: 1,502,192.00 (above threshold)
+ top_level.mercury_compile_middle_passes.maybe_higher_order(Verbose, Stats, V_85, V_91, V_90, V_92)
+ ,
+ % c7;c1;c51;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_93 <= 135
+ ,
+ % c7;c1;c52;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_94 <= "higher_order"
+ ,
+ % c7;c1;c53;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_91, V_93, V_94, V_89, V_95, V_92, V_96)
+ ,
+ % c7;c1;c54;
+ % det
+ % cost: 24.00 (not above threshold)
+ % Productions:
+ % V_97: 24.00
+ top_level.mercury_compile_middle_passes.maybe_ssdb(Verbose, Stats, V_91, V_97, V_96, V_98)
+ ,
+ % c7;c1;c55;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_99 <= 137
+ ,
+ % c7;c1;c56;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_100 <= "ssdb"
+ ,
+ % c7;c1;c57;
+ % det
+ % cost: 105.00 (not above threshold)
+ % Productions:
+ % V_102: 104.00
+ % V_101: 104.00
+ % Consumptions:
+ % V_97: 0.00
+ hlds.passes_aux.maybe_dump_hlds(V_97, V_99, V_100, V_95, V_101, V_98, V_102)
+ &
+ % conjunction: c7;c2;
+ % Cost: 118.00
+
+ % c7;c2;c1;
+ % det
+ % cost: 13.00 (not above threshold)
+ % Productions:
+ % V_103: 13.00
+ % Consumptions:
+ % V_102: 13.00
+ % V_97: 1.00
+ top_level.mercury_compile_middle_passes.maybe_introduce_accumulators(Verbose, Stats, V_97, V_103, V_102, V_104)
+ ,
+ % c7;c2;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_105 <= 140
+ ,
+ % c7;c2;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_106 <= "accum"
+ ,
+ % c7;c2;c4;
+ % det
+ % cost: 105.00 (not above threshold)
+ % Productions:
+ % V_108: 104.00
+ % V_107: 104.00
+ % Consumptions:
+ % V_103: 0.00
+ % V_101: 0.00
+ hlds.passes_aux.maybe_dump_hlds(V_103, V_105, V_106, V_101, V_107, V_104, V_108)
+ &
+ % conjunction: c7;c3;
+ % Cost: 15,866,189.00
+
+ % c7;c3;c1;
+ % det
+ % cost: 1,419,835.00 (above threshold)
+ % Consumptions:
+ % V_108: 39.00
+ % V_103: 1.00
+ top_level.mercury_compile_middle_passes.maybe_do_inlining(Verbose, Stats, V_103, V_109, V_108, V_110)
+ ,
+ % c7;c3;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_111 <= 145
+ ,
+ % c7;c3;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_112 <= "inlining"
+ ,
+ % c7;c3;c4;
+ % det
+ % cost: 105.00 (not above threshold)
+ % Consumptions:
+ % V_107: 0.00
+ hlds.passes_aux.maybe_dump_hlds(V_109, V_111, V_112, V_107, V_113, V_110, V_114)
+ ,
+ % c7;c3;c5;
+ % det
+ % cost: 765,998.00 (above threshold)
+ top_level.mercury_compile_middle_passes.maybe_loop_inv(Verbose, Stats, V_109, V_115, V_113, V_116, V_114, V_117)
+ ,
+ % c7;c3;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_118 <= 150
+ ,
+ % c7;c3;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_119 <= "loop_inv"
+ ,
+ % c7;c3;c8;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_115, V_118, V_119, V_116, V_120, V_117, V_121)
+ ,
+ % c7;c3;c9;
+ % det
+ % cost: 11,916,371.00 (above threshold)
+ top_level.mercury_compile_middle_passes.maybe_deforestation(Verbose, Stats, V_115, V_122, V_121, V_123)
+ ,
+ % c7;c3;c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_124 <= 155
+ ,
+ % c7;c3;c11;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_125 <= "deforestation"
+ ,
+ % c7;c3;c12;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_122, V_124, V_125, V_120, V_126, V_123, V_127)
+ ,
+ % c7;c3;c13;
+ % det
+ % cost: 281,474.00 (above threshold)
+ top_level.mercury_compile_middle_passes.maybe_delay_construct(Verbose, Stats, V_122, V_128, V_127, V_129)
+ ,
+ % c7;c3;c14;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_130 <= 160
+ ,
+ % c7;c3;c15;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_131 <= "delay_construct"
+ ,
+ % c7;c3;c16;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_128, V_130, V_131, V_126, V_132, V_129, V_133)
+ ,
+ % c7;c3;c17;
+ % det
+ % cost: 12.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_structure_sharing_analysis(Verbose, Stats, V_128, V_134, V_133, V_135)
+ ,
+ % c7;c3;c18;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_136 <= 162
+ ,
+ % c7;c3;c19;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_137 <= "structure_sharing"
+ ,
+ % c7;c3;c20;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_134, V_136, V_137, V_132, V_138, V_135, V_139)
+ ,
+ % c7;c3;c21;
+ % det
+ % cost: 11.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_structure_reuse_analysis(Verbose, Stats, V_134, V_140, V_139, V_141)
+ ,
+ % c7;c3;c22;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_142 <= 163
+ ,
+ % c7;c3;c23;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_143 <= "structure_reuse"
+ ,
+ % c7;c3;c24;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_140, V_142, V_143, V_138, V_144, V_141, V_145)
+ ,
+ % c7;c3;c25;
+ % det
+ % cost: 1,180,438.00 (above threshold)
+ top_level.mercury_compile_middle_passes.maybe_unused_args(Verbose, Stats, V_140, V_146, V_145, V_147)
+ ,
+ % c7;c3;c26;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_148 <= 165
+ ,
+ % c7;c3;c27;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_149 <= "unused_args"
+ ,
+ % c7;c3;c28;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_146, V_148, V_149, V_144, V_150, V_147, V_151)
+ ,
+ % c7;c3;c29;
+ % det
+ % cost: 13.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_analyse_trail_usage(Verbose, Stats, V_146, V_152, V_151, V_153)
+ ,
+ % c7;c3;c30;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_154 <= 167
+ ,
+ % c7;c3;c31;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_155 <= "trail_usage"
+ ,
+ % c7;c3;c32;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_152, V_154, V_155, V_150, V_156, V_153, V_157)
+ ,
+ % c7;c3;c33;
+ % det
+ % cost: 13.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_unneeded_code(Verbose, Stats, V_152, V_158, V_157, V_159)
+ ,
+ % c7;c3;c34;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_160 <= 170
+ ,
+ % c7;c3;c35;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_161 <= "unneeded_code"
+ ,
+ % c7;c3;c36;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_158, V_160, V_161, V_156, V_162, V_159, V_163)
+ ,
+ % c7;c3;c37;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_164 <= no
+ ,
+ % c7;c3;c38;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_165 <= simplify_pass_pre_implicit_parallelism
+ ,
+ % c7;c3;c39;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_167 <= []
+ ,
+ % c7;c3;c40;
+ % det
+ % cost: 158.00 (not above threshold)
+ top_level.mercury_compile_front_end.maybe_simplify(V_164, V_165, Verbose, Stats, V_158, V_166, V_167, _SimplifySpecsPreImpPar, V_163, V_168)
+ ,
+ % c7;c3;c41;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_169 <= 172
+ ,
+ % c7;c3;c42;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_170 <= "pre_implicit_parallelism_simplify"
+ ,
+ % c7;c3;c43;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_166, V_169, V_170, V_162, V_171, V_168, V_172)
+ ,
+ % c7;c3;c44;
+ % det
+ % cost: 12.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_implicit_parallelism(Verbose, Stats, V_166, V_173, V_172, V_174)
+ ,
+ % c7;c3;c45;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_175 <= 173
+ ,
+ % c7;c3;c46;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_176 <= "implicit_parallelism"
+ ,
+ % c7;c3;c47;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_173, V_175, V_176, V_171, V_177, V_174, V_178)
+ ,
+ % c7;c3;c48;
+ % det
+ % cost: 6.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_analyse_mm_tabling(Verbose, Stats, V_173, V_179, V_178, V_180)
+ ,
+ % c7;c3;c49;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_181 <= 185
+ ,
+ % c7;c3;c50;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_182 <= "mm_tabling_analysis"
+ ,
+ % c7;c3;c51;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_179, V_181, V_182, V_177, V_183, V_180, V_184)
+ ,
+ % c7;c3;c52;
+ % det
+ % cost: 34.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_control_granularity(Verbose, Stats, V_179, V_185, V_184, V_186)
+ ,
+ % c7;c3;c53;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_187 <= 200
+ ,
+ % c7;c3;c54;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_188 <= "granularity"
+ ,
+ % c7;c3;c55;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_185, V_187, V_188, V_183, V_189, V_186, V_190)
+ ,
+ % c7;c3;c56;
+ % det
+ % cost: 35.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_control_distance_granularity(Verbose, Stats, V_185, V_191, V_190, V_192)
+ ,
+ % c7;c3;c57;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_193 <= 201
+ ,
+ % c7;c3;c58;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_194 <= "distance_granularity"
+ ,
+ % c7;c3;c59;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_191, V_193, V_194, V_189, V_195, V_192, V_196)
+ ,
+ % c7;c3;c60;
+ % det
+ % cost: 2.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_impl_dependent_par_conjs(Verbose, Stats, V_191, V_197, V_196, V_198)
+ ,
+ % c7;c3;c61;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_199 <= 205
+ ,
+ % c7;c3;c62;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_200 <= "dependent_par_conj"
+ ,
+ % c7;c3;c63;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_197, V_199, V_200, V_195, V_201, V_198, V_202)
+ ,
+ % c7;c3;c64;
+ % det
+ % cost: 12.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_par_loop_control(Verbose, Stats, V_197, V_203, V_202, V_204)
+ ,
+ % c7;c3;c65;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_205 <= 206
+ ,
+ % c7;c3;c66;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_206 <= "par_loop_control"
+ ,
+ % c7;c3;c67;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_203, V_205, V_206, V_201, V_207, V_204, V_208)
+ ,
+ % c7;c3;c68;
+ % det
+ % cost: 8.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_lco(Verbose, Stats, V_203, V_209, V_208, V_210)
+ ,
+ % c7;c3;c69;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_211 <= 210
+ ,
+ % c7;c3;c70;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_212 <= "lco"
+ ,
+ % c7;c3;c71;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_209, V_211, V_212, V_207, V_213, V_210, V_214)
+ ,
+ % c7;c3;c72;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_215 <= no
+ ,
+ % c7;c3;c73;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_216 <= simplify_pass_pre_prof_transforms
+ ,
+ % c7;c3;c74;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_218 <= []
+ ,
+ % c7;c3;c75;
+ % det
+ % cost: 157.00 (not above threshold)
+ top_level.mercury_compile_front_end.maybe_simplify(V_215, V_216, Verbose, Stats, V_209, V_217, V_218, _SimplifySpecsPreProf, V_214, V_219)
+ ,
+ % c7;c3;c76;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_220 <= 215
+ ,
+ % c7;c3;c77;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_221 <= "pre_prof_transforms_simplify"
+ ,
+ % c7;c3;c78;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_217, V_220, V_221, V_213, V_222, V_219, V_223)
+ ,
+ % c7;c3;c79;
+ % det
+ % cost: 23.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_term_size_prof(Verbose, Stats, V_217, V_224, V_223, V_225)
+ ,
+ % c7;c3;c80;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_226 <= 220
+ ,
+ % c7;c3;c81;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_227 <= "term_size_prof"
+ ,
+ % c7;c3;c82;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_224, V_226, V_227, V_222, V_228, V_225, V_229)
+ ,
+ % c7;c3;c83;
+ % det
+ % cost: 10.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_deep_profiling(Verbose, Stats, V_224, V_230, V_229, V_231)
+ ,
+ % c7;c3;c84;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_232 <= 225
+ ,
+ % c7;c3;c85;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_233 <= "deep_profiling"
+ ,
+ % c7;c3;c86;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_230, V_232, V_233, V_228, V_234, V_231, V_235)
+ ,
+ % c7;c3;c87;
+ % det
+ % cost: 2.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_experimental_complexity(Verbose, Stats, V_230, V_236, V_235, V_237)
+ ,
+ % c7;c3;c88;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_238 <= 230
+ ,
+ % c7;c3;c89;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_239 <= "complexity"
+ ,
+ % c7;c3;c90;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_236, V_238, V_239, V_234, V_240, V_237, V_241)
+ ,
+ % c7;c3;c91;
+ % det
+ % cost: 13.00 (not above threshold)
+ top_level.mercury_compile_middle_passes.maybe_region_analysis(Verbose, Stats, V_236, V_242, V_241, V_243)
+ ,
+ % c7;c3;c92;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_244 <= 240
+ ,
+ % c7;c3;c93;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_245 <= "region_analysis"
+ ,
+ % c7;c3;c94;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_242, V_244, V_245, V_240, V_246, V_243, V_247)
+ ,
+ % c7;c3;c95;
+ % det
+ % cost: 299,242.00 (above threshold)
+ top_level.mercury_compile_middle_passes.maybe_eliminate_dead_procs(Verbose, Stats, V_242, V_8, V_247, V_248)
+ )
+
+ Goals after:
+ % c8;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_249 <= 250
+ ,
+ % c9;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_250 <= "dead_procs"
+ ,
+ % c10;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_8, V_249, V_250, V_246, V_251, V_248, V_252)
+ ,
+ % c11;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_253 <= 299
+ ,
+ % c12;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_254 <= "middle_pass"
+ ,
+ % c13;
+ % det
+ % cost: 105.00 (not above threshold)
+ hlds.passes_aux.maybe_dump_hlds(V_8, V_253, V_254, V_251, V_10, V_252, V_12)
+
+ pred transform_hlds.dead_proc_elim.dead_proc_analyze/3-0
+
+ Path:
+ Dependent: on Classes, Instances, Queue0, V_26, V_27, V_4, V_6
+ NumCalls: 1
+ SeqTime: 193,612.00
+ ParTime: 103,729.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 700.00
+ WaitsCost: 1,400.00
+ ParOverheads total: 2,600.00
+ Speedup: 1.8665
+ Time saving: 89,883.00
+ First conj dead time: 9,372.00
+ Future dead time: 92,854.00
+ Total dead time: 102,226.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 1.00
+
+ % c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_7 <= $type_ctor_info_const
+ ,
+ % c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ set_tree234.init(V_7, Examined0)
+
+ Parallel conjunction:
+ (
+ % conjunction: c3;c1;
+ % Cost: 92,856.00
+
+ % c3;c1;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_28 <= $type_ctor_info_const
+ ,
+ % c3;c1;c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ queue.init(V_28, V_16)
+ ,
+ % c3;c1;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_29 <= $type_ctor_info_const
+ ,
+ % c3;c1;c4;
+ % det
+ % cost: 1.00 (not above threshold)
+ map.init(V_28, V_29, V_17)
+ ,
+ % c3;c1;c5;
+ % det
+ % cost: 2,722.00 (above threshold)
+ % Productions:
+ % V_4: 2,721.00
+ hlds.hlds_module.module_info_get_valid_predids(PredIds, V_3, V_4)
+ ,
+ % c3;c1;c6;
+ % det
+ % cost: 2.00 (not above threshold)
+ % Consumptions:
+ % V_4: 0.00
+ hlds.hlds_module.module_info_get_preds(V_4, PredTable)
+ ,
+ % c3;c1;c7;
+ % det
+ % cost: 90,059.00 (above threshold)
+ transform_hlds.dead_proc_elim.dead_proc_initialize_preds(PredIds, PredTable, V_16, V_18, V_17, V_19)
+ ,
+ % c3;c1;c8;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Consumptions:
+ % V_4: 0.00
+ hlds.hlds_module.module_info_get_pragma_exported_procs(V_4, PragmaExports)
+ ,
+ % c3;c1;c9;
+ % det
+ % cost: 1.00 (not above threshold)
+ transform_hlds.dead_proc_elim.dead_proc_initialize_pragma_exports(PragmaExports, V_18, V_20, V_19, V_21)
+ ,
+ % c3;c1;c10;
+ % det
+ % cost: 4.00 (not above threshold)
+ % Consumptions:
+ % V_4: 0.00
+ hlds.hlds_module.module_info_user_init_pred_procs(V_4, InitProcs)
+ ,
+ % c3;c1;c11;
+ % det
+ % cost: 1.00 (not above threshold)
+ transform_hlds.dead_proc_elim.dead_proc_initialize_init_fn_procs(InitProcs, V_20, V_22, V_21, V_23)
+ ,
+ % c3;c1;c12;
+ % det
+ % cost: 4.00 (not above threshold)
+ % Consumptions:
+ % V_4: 0.00
+ hlds.hlds_module.module_info_user_final_pred_procs(V_4, FinalPreds)
+ ,
+ % c3;c1;c13;
+ % det
+ % cost: 1.00 (not above threshold)
+ transform_hlds.dead_proc_elim.dead_proc_initialize_init_fn_procs(FinalPreds, V_22, V_24, V_23, V_25)
+ ,
+ % c3;c1;c14;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Consumptions:
+ % V_4: 0.00
+ hlds.hlds_module.module_info_get_type_ctor_gen_infos(V_4, TypeCtorGenInfos)
+ ,
+ % c3;c1;c15;
+ % det
+ % cost: 56.00 (not above threshold)
+ % Productions:
+ % V_27: 7.00
+ % V_26: 7.00
+ transform_hlds.dead_proc_elim.dead_proc_initialize_type_ctor_infos(TypeCtorGenInfos, V_24, V_26, V_25, V_27)
+ ,
+ % c3;c1;c16;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % Classes: 0.00
+ % Consumptions:
+ % V_4: 0.00
+ hlds.hlds_module.module_info_get_class_table(V_4, Classes)
+ ,
+ % c3;c1;c17;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % Instances: 0.00
+ % Consumptions:
+ % V_4: 0.00
+ hlds.hlds_module.module_info_get_instance_table(V_4, Instances)
+ &
+ % c3;c2;
+ % det
+ % cost: 627.00 (not above threshold)
+ % Productions:
+ % V_6: 626.00
+ % Queue0: 626.00
+ % Consumptions:
+ % V_27: 135.00
+ % V_26: 135.00
+ % Instances: 1.00
+ % Classes: 214.00
+ transform_hlds.dead_proc_elim.dead_proc_initialize_class_methods(Classes, Instances, V_26, Queue0, V_27, V_6)
+ &
+ % c3;c3;
+ % det
+ % cost: 100,128.00 (above threshold)
+ % Consumptions:
+ % V_6: 17,545.00
+ % V_4: 17,544.99
+ % Queue0: 1.00
+ transform_hlds.dead_proc_elim.dead_proc_examine(Queue0, Examined0, V_4, V_6, V_5)
+ )
+
+ Goals after:
+
+ Path:
+ Dependent: on Classes, Instances, Queue0, V_26, V_27, V_4, V_6
+ NumCalls: 1
+ SeqTime: 192,884.00
+ ParTime: 103,410.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 700.00
+ WaitsCost: 1,400.00
+ ParOverheads total: 2,600.00
+ Speedup: 1.8652
+ Time saving: 89,474.00
+ First conj dead time: 9,462.00
+ Future dead time: 92,445.00
+ Total dead time: 101,907.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 1.00
+
+ % c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_7 <= $type_ctor_info_const
+ ,
+ % c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ set_tree234.init(V_7, Examined0)
+
+ Parallel conjunction:
+ (
+ % conjunction: c3;c1;
+ % Cost: 92,447.00
+
+ % c3;c1;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_28 <= $type_ctor_info_const
+ ,
+ % c3;c1;c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ queue.init(V_28, V_16)
+ ,
+ % c3;c1;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_29 <= $type_ctor_info_const
+ ,
+ % c3;c1;c4;
+ % det
+ % cost: 1.00 (not above threshold)
+ map.init(V_28, V_29, V_17)
+ ,
+ % c3;c1;c5;
+ % det
+ % cost: 2,712.00 (above threshold)
+ % Productions:
+ % V_4: 2,711.00
+ hlds.hlds_module.module_info_get_valid_predids(PredIds, V_3, V_4)
+ ,
+ % c3;c1;c6;
+ % det
+ % cost: 2.00 (not above threshold)
+ % Consumptions:
+ % V_4: 0.00
+ hlds.hlds_module.module_info_get_preds(V_4, PredTable)
+ ,
+ % c3;c1;c7;
+ % det
+ % cost: 89,660.00 (above threshold)
+ transform_hlds.dead_proc_elim.dead_proc_initialize_preds(PredIds, PredTable, V_16, V_18, V_17, V_19)
+ ,
+ % c3;c1;c8;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Consumptions:
+ % V_4: 0.00
+ hlds.hlds_module.module_info_get_pragma_exported_procs(V_4, PragmaExports)
+ ,
+ % c3;c1;c9;
+ % det
+ % cost: 1.00 (not above threshold)
+ transform_hlds.dead_proc_elim.dead_proc_initialize_pragma_exports(PragmaExports, V_18, V_20, V_19, V_21)
+ ,
+ % c3;c1;c10;
+ % det
+ % cost: 4.00 (not above threshold)
+ % Consumptions:
+ % V_4: 0.00
+ hlds.hlds_module.module_info_user_init_pred_procs(V_4, InitProcs)
+ ,
+ % c3;c1;c11;
+ % det
+ % cost: 1.00 (not above threshold)
+ transform_hlds.dead_proc_elim.dead_proc_initialize_init_fn_procs(InitProcs, V_20, V_22, V_21, V_23)
+ ,
+ % c3;c1;c12;
+ % det
+ % cost: 4.00 (not above threshold)
+ % Consumptions:
+ % V_4: 0.00
+ hlds.hlds_module.module_info_user_final_pred_procs(V_4, FinalPreds)
+ ,
+ % c3;c1;c13;
+ % det
+ % cost: 1.00 (not above threshold)
+ transform_hlds.dead_proc_elim.dead_proc_initialize_init_fn_procs(FinalPreds, V_22, V_24, V_23, V_25)
+ ,
+ % c3;c1;c14;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Consumptions:
+ % V_4: 0.00
+ hlds.hlds_module.module_info_get_type_ctor_gen_infos(V_4, TypeCtorGenInfos)
+ ,
+ % c3;c1;c15;
+ % det
+ % cost: 56.00 (not above threshold)
+ % Productions:
+ % V_27: 7.00
+ % V_26: 7.00
+ transform_hlds.dead_proc_elim.dead_proc_initialize_type_ctor_infos(TypeCtorGenInfos, V_24, V_26, V_25, V_27)
+ ,
+ % c3;c1;c16;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % Classes: 0.00
+ % Consumptions:
+ % V_4: 0.00
+ hlds.hlds_module.module_info_get_class_table(V_4, Classes)
+ ,
+ % c3;c1;c17;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % Instances: 0.00
+ % Consumptions:
+ % V_4: 0.00
+ hlds.hlds_module.module_info_get_instance_table(V_4, Instances)
+ &
+ % c3;c2;
+ % det
+ % cost: 627.00 (not above threshold)
+ % Productions:
+ % V_6: 626.00
+ % Queue0: 626.00
+ % Consumptions:
+ % V_27: 135.00
+ % V_26: 135.00
+ % Instances: 1.00
+ % Classes: 214.00
+ transform_hlds.dead_proc_elim.dead_proc_initialize_class_methods(Classes, Instances, V_26, Queue0, V_27, V_6)
+ &
+ % c3;c3;
+ % det
+ % cost: 99,809.00 (above threshold)
+ % Consumptions:
+ % V_6: 15,241.34
+ % V_4: 15,241.33
+ % Queue0: 1.00
+ transform_hlds.dead_proc_elim.dead_proc_examine(Queue0, Examined0, V_4, V_6, V_5)
+ )
+
+ Goals after:
+
+ pred transform_hlds.dead_proc_elim.dead_proc_elim/4-0
+
+ Path:
+ Dependent: on Needed, PredIds, ProcElimInfo0, V_6
+ NumCalls: 1
+ SeqTime: 299,092.00
+ ParTime: 193,813.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 400.00
+ WaitsCost: 800.00
+ ParOverheads total: 1,700.00
+ Speedup: 1.5432
+ Time saving: 105,279.00
+ First conj dead time: 0.00
+ Future dead time: 111,409.37
+ Total dead time: 111,409.37
+
+ Goals before:
+ % conjunction:
+ % Cost: 0.00
+
+
+ Parallel conjunction:
+ (
+ % c1;c1;
+ % det
+ % cost: 193,613.00 (above threshold)
+ % Productions:
+ % V_6: 2,725.00
+ % Needed: 111,413.37
+ transform_hlds.dead_proc_elim.dead_proc_analyze(V_4, V_6, Needed)
+ &
+ % conjunction: c1;c2;
+ % Cost: 4.00
+
+ % c1;c2;c1;
+ % det
+ % cost: 2.00 (not above threshold)
+ % Productions:
+ % PredIds: 1.00
+ % Consumptions:
+ % V_6: 0.00
+ hlds.hlds_module.module_info_get_valid_predids(PredIds, V_6, V_16)
+ ,
+ % c1;c2;c2;
+ % det
+ % cost: 2.00 (not above threshold)
+ hlds.hlds_module.module_info_get_preds(V_16, PredTable0)
+ ,
+ % c1;c2;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ Changed0 <= no
+ ,
+ % c1;c2;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_17 <= []
+ ,
+ % c1;c2;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % ProcElimInfo0: 1.00
+ % Consumptions:
+ % Needed: 0.00
+ ProcElimInfo0 <= proc_elim_info(Needed, V_16, PredTable0, Changed0, V_17)
+ &
+ % conjunction: c1;c3;
+ % Cost: 105,475.00
+
+ % c1;c3;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_18 <= $closure_cons(ElimOptImported)
+ ,
+ % c1;c3;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_23 <= $type_ctor_info_const
+ ,
+ % c1;c3;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_24 <= $type_ctor_info_const
+ ,
+ % c1;c3;c4;
+ % det
+ % cost: 105,475.00 (above threshold)
+ % Consumptions:
+ % ProcElimInfo0: 0.00
+ % PredIds: 0.00
+ list.foldl(V_23, V_24, V_18, PredIds, ProcElimInfo0, ProcElimInfo)
+ )
+
+ Goals after:
+
+ pred transform_hlds.dependency_graph.build_dependency_graph/4-0
+
+ Path:
+ Dependent: on DepGraph, DepGraph1
+ NumCalls: 1
+ SeqTime: 272,425.00
+ ParTime: 262,028.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 200.00
+ WaitsCost: 400.00
+ ParOverheads total: 1,100.00
+ Speedup: 1.0397
+ Time saving: 10,397.00
+ First conj dead time: 150,760.00
+ Future dead time: 260,122.00
+ Total dead time: 410,882.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 0.00
+
+ % c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ PolyConst1 <= 1
+
+ Parallel conjunction:
+ (
+ % conjunction: c2;c1;
+ % Cost: 110,168.00
+
+ % c2;c1;c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_15)
+ ,
+ % c2;c1;c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ digraph.init(V_15, DepGraph0)
+ ,
+ % c2;c1;c3;
+ % det
+ % cost: 110,166.00 (above threshold)
+ % Productions:
+ % DepGraph1: 110,166.00
+ method 1 of V_13((PredIds, ModuleInfo, Imported, DepGraph0, DepGraph1))
+ &
+ % conjunction: c2;c2;
+ % Cost: 149,660.00
+
+ % c2;c2;c1;
+ % det
+ % cost: 149,655.00 (above threshold)
+ % Productions:
+ % DepGraph: 149,655.00
+ % Consumptions:
+ % DepGraph1: 0.00
+ method 2 of V_13((PredIds, ModuleInfo, Imported, DepGraph1, DepGraph))
+ ,
+ % c2;c2;c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_16)
+ ,
+ % c2;c2;c3;
+ % det
+ % cost: 2.00 (not above threshold)
+ hlds.hlds_module.hlds_dependency_info_init(V_16, V_10)
+ ,
+ % c2;c2;c4;
+ % det
+ % cost: 1.00 (not above threshold)
+ private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_17)
+ ,
+ % c2;c2;c5;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Consumptions:
+ % DepGraph: 0.00
+ hlds.hlds_module.hlds_dependency_info_set_dependency_graph(V_17, DepGraph, V_10, V_11)
+ &
+ % conjunction: c2;c3;
+ % Cost: 12,597.00
+
+ % c2;c3;c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_18)
+ ,
+ % c2;c3;c2;
+ % det
+ % cost: 12,596.00 (above threshold)
+ % Consumptions:
+ % DepGraph: 0.00
+ digraph.atsort(V_18, DepGraph, DepOrd0)
+ )
+
+ Goals after:
+
+ Path:
+ Dependent: on DepGraph, DepGraph1
+ NumCalls: 1
+ SeqTime: 264,943.00
+ ParTime: 253,734.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 200.00
+ WaitsCost: 400.00
+ ParOverheads total: 1,100.00
+ Speedup: 1.0442
+ Time saving: 11,209.00
+ First conj dead time: 142,722.00
+ Future dead time: 251,828.00
+ Total dead time: 394,550.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 0.00
+
+ % c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ PolyConst1 <= 1
+
+ Parallel conjunction:
+ (
+ % conjunction: c2;c1;
+ % Cost: 109,912.00
+
+ % c2;c1;c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_15)
+ ,
+ % c2;c1;c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ digraph.init(V_15, DepGraph0)
+ ,
+ % c2;c1;c3;
+ % det
+ % cost: 109,910.00 (above threshold)
+ % Productions:
+ % DepGraph1: 109,910.00
+ method 1 of V_13((PredIds, ModuleInfo, Imported, DepGraph0, DepGraph1))
+ &
+ % conjunction: c2;c2;
+ % Cost: 141,622.00
+
+ % c2;c2;c1;
+ % det
+ % cost: 141,617.00 (above threshold)
+ % Productions:
+ % DepGraph: 141,617.00
+ % Consumptions:
+ % DepGraph1: 0.00
+ method 2 of V_13((PredIds, ModuleInfo, Imported, DepGraph1, DepGraph))
+ ,
+ % c2;c2;c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_16)
+ ,
+ % c2;c2;c3;
+ % det
+ % cost: 2.00 (not above threshold)
+ hlds.hlds_module.hlds_dependency_info_init(V_16, V_10)
+ ,
+ % c2;c2;c4;
+ % det
+ % cost: 1.00 (not above threshold)
+ private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_17)
+ ,
+ % c2;c2;c5;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Consumptions:
+ % DepGraph: 0.00
+ hlds.hlds_module.hlds_dependency_info_set_dependency_graph(V_17, DepGraph, V_10, V_11)
+ &
+ % conjunction: c2;c3;
+ % Cost: 13,409.00
+
+ % c2;c3;c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_18)
+ ,
+ % c2;c3;c2;
+ % det
+ % cost: 13,408.00 (above threshold)
+ % Consumptions:
+ % DepGraph: 0.00
+ digraph.atsort(V_18, DepGraph, DepOrd0)
+ )
+
+ Goals after:
+
+ pred transform_hlds.equiv_type_hlds.replace_in_hlds/2-0
+
+ Path:
+ Dependent: on EqvMap, InstCache0, Insts0, V_25, V_40
+ NumCalls: 1
+ SeqTime: 3,431,057.00
+ ParTime: 3,202,016.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 500.00
+ WaitsCost: 1,200.00
+ ParOverheads total: 2,200.00
+ Speedup: 1.0715
+ Time saving: 229,041.00
+ First conj dead time: 2,947,425.00
+ Future dead time: 274,036.00
+ Total dead time: 3,221,461.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 3.00
+
+ % c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_get_type_table(V_17, TypeTable0)
+ ,
+ % c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_19 <= $closure_cons
+ ,
+ % c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_30 <= $type_ctor_info_const
+ ,
+ % c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_31 <= $type_ctor_info_const
+ ,
+ % c5;
+ % det
+ % cost: 1.00 (not above threshold)
+ map.init(V_30, V_31, V_20)
+ ,
+ % c6;
+ % det
+ % cost: 1.00 (not above threshold)
+ set.init(V_30, V_21)
+ ,
+ % c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_32 <= $type_ctor_info_const
+ ,
+ % c8;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_33 <= $type_info_cell_constructor(V_32, V_30, V_31)
+ ,
+ % c9;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_34 <= $type_ctor_info_const
+ ,
+ % c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_35 <= $type_info_cell_constructor(V_34, V_30)
+
+ Parallel conjunction:
+ (
+ % conjunction: c11;c1;
+ % Cost: 253,388.00
+
+ % c11;c1;c1;
+ % det
+ % cost: 21,457.00 (above threshold)
+ % Productions:
+ % EqvMap: 21,456.00
+ hlds.hlds_data.foldl2_over_type_ctor_defns(V_33, V_35, V_19, TypeTable0, V_20, EqvMap, V_21, EqvExportTypes)
+ ,
+ % c11;c1;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_22 <= $closure_cons
+ ,
+ % c11;c1;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_36 <= $type_ctor_info_const
+ ,
+ % c11;c1;c4;
+ % det
+ % cost: 2.00 (not above threshold)
+ set.fold(V_30, V_36, V_22, EqvExportTypes, TypeTable0, TypeTable1)
+ ,
+ % c11;c1;c5;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_get_maybe_recompilation_info(V_17, MaybeRecompInfo0)
+ ,
+ % c11;c1;c6;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_get_name(V_17, ModuleName)
+ ,
+ % c11;c1;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % EqvMap: 0.00
+ V_23 <= $closure_cons(ModuleName, EqvMap)
+ ,
+ % c11;c1;c8;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_38 <= $type_ctor_info_const
+ ,
+ % c11;c1;c9;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_37 <= $type_ctor_info_const
+ ,
+ % c11;c1;c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_39 <= $type_info_cell_constructor(V_38, V_37)
+ ,
+ % c11;c1;c11;
+ % det
+ % cost: 231,925.00 (above threshold)
+ hlds.hlds_data.map_foldl_over_type_ctor_defns(V_39, V_23, TypeTable1, TypeTable, MaybeRecompInfo0, MaybeRecompInfo)
+ ,
+ % c11;c1;c12;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_set_type_table(TypeTable, V_17, V_24)
+ ,
+ % c11;c1;c13;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % V_25: 0.00
+ hlds.hlds_module.module_info_set_maybe_recompilation_info(MaybeRecompInfo, V_24, V_25)
+ &
+ % conjunction: c11;c2;
+ % Cost: 2.00
+
+ % c11;c2;c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % Insts0: 0.00
+ % Consumptions:
+ % V_25: 0.00
+ hlds.hlds_module.module_info_get_inst_table(V_25, Insts0)
+ ,
+ % c11;c2;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_40: 1.00
+ V_40 <= $type_ctor_info_const
+ ,
+ % c11;c2;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % InstCache0: 0.00
+ % Consumptions:
+ % V_40: 0.00
+ map.init(V_40, V_40, InstCache0)
+ &
+ % conjunction: c11;c3;
+ % Cost: 3,177,664.00
+
+ % c11;c3;c1;
+ % det
+ % cost: 234,069.00 (above threshold)
+ % Consumptions:
+ % InstCache0: 1,458.00
+ % Insts0: 1.00
+ % EqvMap: 7.00
+ transform_hlds.equiv_type_hlds.replace_in_inst_table(EqvMap, Insts0, Insts, InstCache0, InstCache)
+ ,
+ % c11;c3;c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Consumptions:
+ % V_25: 0.00
+ hlds.hlds_module.module_info_set_inst_table(Insts, V_25, V_26)
+ ,
+ % c11;c3;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_get_cons_table(V_26, ConsTable0)
+ ,
+ % c11;c3;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % EqvMap: 0.00
+ V_44 <= $closure_cons(EqvMap)
+ ,
+ % c11;c3;c5;
+ % det
+ % cost: 181,587.00 (above threshold)
+ hlds.hlds_data.replace_cons_defns_in_cons_table(V_44, ConsTable0, ConsTable)
+ ,
+ % c11;c3;c6;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_set_cons_table(ConsTable, V_26, V_27)
+ ,
+ % c11;c3;c7;
+ % det
+ % cost: 2.00 (not above threshold)
+ hlds.hlds_module.module_info_get_valid_predids(PredIds, V_27, V_28)
+ ,
+ % c11;c3;c8;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % EqvMap: 0.00
+ V_29 <= $closure_cons(EqvMap)
+ ,
+ % c11;c3;c9;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_41 <= $type_ctor_info_const
+ ,
+ % c11;c3;c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_42 <= $type_ctor_info_const
+ ,
+ % c11;c3;c11;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % V_40: 0.00
+ V_43 <= $type_info_cell_constructor(V_32, V_40, V_40)
+ ,
+ % c11;c3;c12;
+ % det
+ % cost: 2,762,003.00 (above threshold)
+ list.foldl2(V_41, V_42, V_43, V_29, PredIds, V_28, V_18, InstCache, V_16)
+ )
+
+ Goals after:
+
+ pred transform_hlds.equiv_type_hlds.replace_in_inst_table/5-0
+
+ Path:
+ Dependent: on V_20
+ NumCalls: 1
+ SeqTime: 234,038.00
+ ParTime: 165,552.00
+ SparkCost: 100.00
+ BarrierCost: 200.00
+ SignalsCost: 100.00
+ WaitsCost: 200.00
+ ParOverheads total: 600.00
+ Speedup: 1.4137
+ Time saving: 68,486.00
+ First conj dead time: 0.00
+ Future dead time: 36,371.00
+ Total dead time: 36,371.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 2.00
+
+ % c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_data.inst_table_get_unify_insts(V_15, UnifyInsts0)
+ ,
+ % c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_data.inst_table_get_merge_insts(V_15, MergeInsts0)
+
+ Parallel conjunction:
+ (
+ % conjunction: c3;c1;
+ % Cost: 165,450.00
+
+ % c3;c1;c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_data.inst_table_get_ground_insts(V_15, GroundInsts0)
+ ,
+ % c3;c1;c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_data.inst_table_get_any_insts(V_15, AnyInsts0)
+ ,
+ % c3;c1;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_data.inst_table_get_shared_insts(V_15, SharedInsts0)
+ ,
+ % c3;c1;c4;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_data.inst_table_get_mostly_uniq_insts(V_15, MostlyUniqInsts0)
+ ,
+ % c3;c1;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_19 <= $closure_cons(EqvMap)
+ ,
+ % c3;c1;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_30 <= $type_ctor_info_const
+ ,
+ % c3;c1;c7;
+ % det
+ % cost: 165,446.00 (above threshold)
+ % Productions:
+ % V_20: 36,807.00
+ transform_hlds.equiv_type_hlds.replace_in_inst_table(V_30, V_19, EqvMap, UnifyInsts0, UnifyInsts, V_17, V_20)
+ &
+ % c3;c2;
+ % det
+ % cost: 68,586.00 (above threshold)
+ % Consumptions:
+ % V_20: 640.00
+ transform_hlds.equiv_type_hlds.replace_in_merge_inst_table(EqvMap, MergeInsts0, MergeInsts, V_20, V_21)
+ )
+
+ Goals after:
+
+ pred transform_hlds.higher_order.process_ho_spec_requests/4-0
+
+ Path: c13;s2-na;
+ Dependent: on NewPredList, PredProcs, V_16, V_18, V_19
+ NumCalls: 1
+ SeqTime: 260,501.00
+ ParTime: 182,750.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 500.00
+ WaitsCost: 1,000.00
+ ParOverheads total: 2,000.00
+ Speedup: 1.4255
+ Time saving: 77,751.00
+ First conj dead time: 100,301.00
+ Future dead time: 106,704.00
+ Total dead time: 207,005.00
+
+ Goals before:
+ % conjunction: c13;s2-na;
+ % Cost: 0.00
+
+ % c13;s2-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_34 <= $type_ctor_info_const
+
+ Parallel conjunction:
+ (
+ % conjunction: c13;s2-na;c2;c1;
+ % Cost: 81,149.00
+
+ % c13;s2-na;c2;c1;c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ set.init(V_34, V_13)
+ ,
+ % c13;s2-na;c2;c1;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_14 <= []
+ ,
+ % c13;s2-na;c2;c1;c3;
+ % det
+ % cost: 81,147.00 (above threshold)
+ % Productions:
+ % V_16: 81,146.00
+ % NewPredList: 81,146.00
+ transform_hlds.higher_order.create_new_preds(Requests, V_14, NewPredList, V_13, V_15, V_11, V_16, V_12, V_10)
+ ,
+ % c13;s2-na;c2;c1;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % V_16: 0.00
+ V_17 <= $closure_cons(V_16)
+ ,
+ % c13;s2-na;c2;c1;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_35 <= $type_ctor_info_const
+ ,
+ % c13;s2-na;c2;c1;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_36 <= $type_ctor_info_const
+ ,
+ % c13;s2-na;c2;c1;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_37 <= $type_info_cell_constructor(V_36, V_34)
+ ,
+ % c13;s2-na;c2;c1;c8;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % V_18: 0.00
+ list.foldl(V_35, V_37, V_17, LoopRequests, V_15, V_18)
+ &
+ % conjunction: c13;s2-na;c2;c2;
+ % Cost: 25,258.00
+
+ % c13;s2-na;c2;c2;c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % PredProcs: 0.00
+ % Consumptions:
+ % V_18: 0.00
+ set.to_sorted_list(V_34, V_18, PredProcs)
+ ,
+ % c13;s2-na;c2;c2;c2;
+ % det
+ % cost: 25,257.00 (above threshold)
+ % Productions:
+ % V_19: 25,256.00
+ % Consumptions:
+ % V_16: 114.00
+ % NewPredList: 1.00
+ transform_hlds.higher_order.ho_fixup_specialized_versions(NewPredList, V_16, V_19)
+ &
+ % c13;s2-na;c2;c3;
+ % det
+ % cost: 154,094.00 (above threshold)
+ % Consumptions:
+ % V_19: 1.00
+ % PredProcs: 1.00
+ transform_hlds.higher_order.ho_fixup_preds(PredProcs, V_19, V_20)
+ )
+
+ Goals after:
+
+ pred transform_hlds.higher_order.specialize_higher_order/4-0
+
+ Path:
+ Dependent: on UserSpecPredList, V_50, V_51, V_52
+ NumCalls: 1
+ SeqTime: 1,423,394.00
+ ParTime: 1,108,022.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 400.00
+ WaitsCost: 800.00
+ ParOverheads total: 1,700.00
+ Speedup: 1.2846
+ Time saving: 315,372.00
+ First conj dead time: 1,000.00
+ Future dead time: 1,185,449.00
+ Total dead time: 1,186,449.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 52.00
+
+ % c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_get_globals(V_22, Globals)
+ ,
+ % c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_26 <= optimize_higher_order
+ ,
+ % c3;
+ % det
+ % cost: 9.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_26, HigherOrder)
+ ,
+ % c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_27 <= type_specialization
+ ,
+ % c5;
+ % det
+ % cost: 11.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_27, TypeSpec)
+ ,
+ % c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_28 <= user_guided_type_specialization
+ ,
+ % c7;
+ % det
+ % cost: 9.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_28, UserTypeSpec)
+ ,
+ % c8;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_29 <= higher_order_size_limit
+ ,
+ % c9;
+ % det
+ % cost: 11.00 (not above threshold)
+ libs.globals.lookup_int_option(Globals, V_29, SizeLimit)
+ ,
+ % c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_30 <= higher_order_arg_limit
+ ,
+ % c11;
+ % det
+ % cost: 10.00 (not above threshold)
+ libs.globals.lookup_int_option(Globals, V_30, ArgLimit)
+ ,
+ % c12;
+ % det
+ % cost: 0.00 (not above threshold)
+ Params <= ho_params(HigherOrder, TypeSpec, UserTypeSpec, SizeLimit, ArgLimit)
+ ,
+ % c13;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_70 <= $type_ctor_info_const
+ ,
+ % c14;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_72 <= $type_ctor_info_const
+ ,
+ % c15;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_71 <= $type_ctor_info_const
+ ,
+ % c16;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_73 <= $type_info_cell_constructor(V_72, V_71)
+ ,
+ % c17;
+ % det
+ % cost: 1.00 (not above threshold)
+ map.init(V_70, V_73, NewPreds0)
+ ,
+ % c18;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_74 <= $type_ctor_info_const
+
+ Parallel conjunction:
+ (
+ % conjunction: c19;c1;
+ % Cost: 1,105,770.00
+
+ % c19;c1;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_75 <= $type_ctor_info_const
+ ,
+ % c19;c1;c2;
+ % det
+ % cost: 1.00 (not above threshold)
+ map.init(V_74, V_75, GoalSizes0)
+ ,
+ % c19;c1;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_76 <= $type_ctor_info_const
+ ,
+ % c19;c1;c4;
+ % det
+ % cost: 1.00 (not above threshold)
+ set.init(V_76, Requests0)
+ ,
+ % c19;c1;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_77 <= $type_ctor_info_const
+ ,
+ % c19;c1;c6;
+ % det
+ % cost: 1.00 (not above threshold)
+ map.init(V_70, V_77, VersionInfo0)
+ ,
+ % c19;c1;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_33 <= 1
+ ,
+ % c19;c1;c8;
+ % det
+ % cost: 1.00 (not above threshold)
+ counter.init(V_33, V_32)
+ ,
+ % c19;c1;c9;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_31 <= higher_order_global_info(Requests0, NewPreds0, VersionInfo0, V_22, GoalSizes0, Params, V_32)
+ ,
+ % c19;c1;c10;
+ % det
+ % cost: 2.00 (not above threshold)
+ hlds.hlds_module.module_info_get_valid_predids(PredIds0, V_22, V_34)
+ ,
+ % c19;c1;c11;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_get_type_spec_info(V_34, TypeSpecInfo)
+ ,
+ % c19;c1;c12;
+ % det
+ % cost: 0.00 (not above threshold)
+ TypeSpecInfo => type_spec_info(V_14, UserSpecPreds, V_16, V_17)
+ ,
+ % c19;c1;c13;
+ % det
+ % cost: 315,749.00 (above threshold)
+ % Productions:
+ % UserSpecPredList: 80,772.00
+ (
+ % c19;c1;c13;?;
+ % semidet
+ % cost: 1.00 (not above threshold)
+ set.empty(V_74, UserSpecPreds)
+ ->
+ % conjunction: c19;c1;c13;t;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c19;c1;c13;t;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ PredIds := PredIds0
+ ,
+ % c19;c1;c13;t;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ UserSpecPredList <= []
+ ,
+ % c19;c1;c13;t;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_41 := V_31
+ ,
+ % c19;c1;c13;t;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_42 := V_24
+ ;
+ % conjunction: c19;c1;c13;e;
+ % conjunction: det
+ % conjunction: cost: 315,748.00 (above threshold)
+
+ % c19;c1;c13;e;c1;
+ % det
+ % cost: 72,705.00 (above threshold)
+ set.list_to_set(V_74, PredIds0, PredIdSet0)
+ ,
+ % c19;c1;c13;e;c2;
+ % det
+ % cost: 8,066.00 (above threshold)
+ set.difference(V_74, PredIdSet0, UserSpecPreds, PredIdSet)
+ ,
+ % c19;c1;c13;e;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ set.to_sorted_list(V_74, PredIdSet, PredIds)
+ ,
+ % c19;c1;c13;e;c4;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Productions:
+ % UserSpecPredList: 0.00
+ set.to_sorted_list(V_74, UserSpecPreds, UserSpecPredList)
+ ,
+ % c19;c1;c13;e;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_36 <= yes
+ ,
+ % c19;c1;c13;e;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_31 => higher_order_global_info(V_53, V_54, V_55, V_56, V_57, V_37, V_58)
+ ,
+ % c19;c1;c13;e;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ scope (
+ % conjunction: c19;c1;c13;e;c7;q;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c19;c1;c13;e;c7;q;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_37 => ho_params(V_59, V_60, V_61, V_62, V_63)
+ ,
+ % c19;c1;c13;e;c7;q;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_38 <= ho_params(V_59, V_60, V_36, V_62, V_63)
+ )
+ ,
+ % c19;c1;c13;e;c8;
+ % det
+ % cost: 0.00 (not above threshold)
+ scope (
+ % c19;c1;c13;e;c8;q;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_35 <= higher_order_global_info(V_53, V_54, V_55, V_56, V_57, V_38, V_58)
+ )
+ ,
+ % c19;c1;c13;e;c9;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_39 <= $closure_cons
+ ,
+ % c19;c1;c13;e;c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_78 <= $type_ctor_info_const
+ ,
+ % c19;c1;c13;e;c11;
+ % det
+ % cost: 49,871.00 (above threshold)
+ % Consumptions:
+ % UserSpecPredList: 0.00
+ list.foldl(V_74, V_78, V_39, UserSpecPredList, V_35, V_40)
+ ,
+ % c19;c1;c13;e;c12;
+ % det
+ % cost: 263,876.00 (above threshold)
+ transform_hlds.higher_order.process_ho_spec_requests(V_40, V_41, V_24, V_42)
+ )
+ ,
+ % c19;c1;c14;
+ % det
+ % cost: 790,014.00 (above threshold)
+ % Productions:
+ % V_50: 790,014.00
+ (
+ % conjunction: c19;c1;c14;?;
+ % conjunction: semidet
+ % conjunction: cost: 1.00 (not above threshold)
+
+ % c19;c1;c14;?;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_47 <= []
+ ,
+ % c19;c1;c14;?;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_46 <= [|](UserTypeSpec, V_47)
+ ,
+ % c19;c1;c14;?;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_45 <= [|](TypeSpec, V_46)
+ ,
+ % c19;c1;c14;?;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_43 <= [|](HigherOrder, V_45)
+ ,
+ % c19;c1;c14;?;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_44 <= yes
+ ,
+ % c19;c1;c14;?;c6;
+ % det
+ % cost: 1.00 (not above threshold)
+ bool.or_list(V_43, V_81)
+ ,
+ % c19;c1;c14;?;c7;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ V_81 == V_44
+ ->
+ % conjunction: c19;c1;c14;t;
+ % conjunction: det
+ % conjunction: cost: 790,013.00 (above threshold)
+
+ % c19;c1;c14;t;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_48 <= $closure_cons
+ ,
+ % c19;c1;c14;t;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_79 <= $type_ctor_info_const
+ ,
+ % c19;c1;c14;t;c3;
+ % det
+ % cost: 790,011.00 (above threshold)
+ list.foldl(V_74, V_79, V_48, PredIds, V_41, V_49)
+ ,
+ % c19;c1;c14;t;c4;
+ % det
+ % cost: 2.00 (not above threshold)
+ transform_hlds.higher_order.recursively_process_ho_spec_requests(V_49, V_50, V_42, V_25)
+ ;
+ % conjunction: c19;c1;c14;e;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c19;c1;c14;e;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_50 := V_41
+ ,
+ % c19;c1;c14;e;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_25 := V_42
+ )
+ &
+ % conjunction: c19;c2;
+ % Cost: 0.00
+
+ % c19;c2;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_51: 1.00
+ V_51 <= $closure_cons
+ ,
+ % c19;c2;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Productions:
+ % V_52: 1.00
+ % Consumptions:
+ % V_50: 0.00
+ V_50 => higher_order_global_info(V_64, V_65, V_66, V_52, V_67, V_68, V_69)
+ &
+ % conjunction: c19;c3;
+ % Cost: 317,572.00
+
+ % c19;c3;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_80 <= $type_ctor_info_const
+ ,
+ % c19;c3;c2;
+ % det
+ % cost: 317,572.00 (above threshold)
+ % Consumptions:
+ % V_52: 0.00
+ % V_51: 0.00
+ % UserSpecPredList: 0.00
+ list.foldl(V_74, V_80, V_51, UserSpecPredList, V_52, V_23)
+ )
+
+ Goals after:
+
+ Path: c31;e;
+ Dependent: no
+ NumCalls: 1
+ SeqTime: 394,520.00
+ ParTime: 315,748.00
+ SparkCost: 100.00
+ BarrierCost: 200.00
+ SignalsCost: 0.00
+ WaitsCost: 0.00
+ ParOverheads total: 300.00
+ Speedup: 1.2495
+ Time saving: 78,772.00
+ First conj dead time: 233,976.00
+ Future dead time: 0.00
+ Total dead time: 233,976.00
+
+ Goals before:
+ % conjunction: c31;e;
+ % Cost: 0.00
+
+
+ Parallel conjunction:
+ (
+ % conjunction: c31;e;c1;c1;
+ % Cost: 80,772.00
+
+ % c31;e;c1;c1;c1;
+ % det
+ % cost: 72,705.00 (above threshold)
+ set.list_to_set(V_74, PredIds0, PredIdSet0)
+ ,
+ % c31;e;c1;c1;c2;
+ % det
+ % cost: 8,066.00 (above threshold)
+ set.difference(V_74, PredIdSet0, UserSpecPreds, PredIdSet)
+ ,
+ % c31;e;c1;c1;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ set.to_sorted_list(V_74, PredIdSet, PredIds)
+ &
+ % conjunction: c31;e;c1;c2;
+ % Cost: 313,748.00
+
+ % c31;e;c1;c2;c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ set.to_sorted_list(V_74, UserSpecPreds, UserSpecPredList)
+ ,
+ % c31;e;c1;c2;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_36 <= yes
+ ,
+ % c31;e;c1;c2;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_31 => higher_order_global_info(V_53, V_54, V_55, V_56, V_57, V_37, V_58)
+ ,
+ % c31;e;c1;c2;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ scope (
+ % conjunction: c31;e;c1;c2;c4;q;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c31;e;c1;c2;c4;q;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_37 => ho_params(V_59, V_60, V_61, V_62, V_63)
+ ,
+ % c31;e;c1;c2;c4;q;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_38 <= ho_params(V_59, V_60, V_36, V_62, V_63)
+ )
+ ,
+ % c31;e;c1;c2;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ scope (
+ % c31;e;c1;c2;c5;q;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_35 <= higher_order_global_info(V_53, V_54, V_55, V_56, V_57, V_38, V_58)
+ )
+ ,
+ % c31;e;c1;c2;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_39 <= $closure_cons
+ ,
+ % c31;e;c1;c2;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_78 <= $type_ctor_info_const
+ ,
+ % c31;e;c1;c2;c8;
+ % det
+ % cost: 49,871.00 (above threshold)
+ list.foldl(V_74, V_78, V_39, UserSpecPredList, V_35, V_40)
+ ,
+ % c31;e;c1;c2;c9;
+ % det
+ % cost: 263,876.00 (above threshold)
+ transform_hlds.higher_order.process_ho_spec_requests(V_40, V_41, V_24, V_42)
+ )
+
+ Goals after:
+
+ pred transform_hlds.inlining.inlining/2-0
+
+ Path:
+ Dependent: on NeededMap, V_28, V_29
+ NumCalls: 1
+ SeqTime: 1,419,790.00
+ ParTime: 1,230,304.00
+ SparkCost: 200.00
+ BarrierCost: 300.00
+ SignalsCost: 300.00
+ WaitsCost: 600.00
+ ParOverheads total: 1,400.00
+ Speedup: 1.1540
+ Time saving: 189,486.00
+ First conj dead time: 1,036,145.00
+ Future dead time: 458,388.00
+ Total dead time: 1,494,533.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 74.00
+
+ % c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_get_globals(V_17, Globals)
+ ,
+ % c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_19 <= inline_simple
+ ,
+ % c3;
+ % det
+ % cost: 9.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_19, Simple)
+ ,
+ % c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_20 <= inline_single_use
+ ,
+ % c5;
+ % det
+ % cost: 10.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_20, SingleUse)
+ ,
+ % c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_21 <= inline_call_cost
+ ,
+ % c7;
+ % det
+ % cost: 11.00 (not above threshold)
+ libs.globals.lookup_int_option(Globals, V_21, CallCost)
+ ,
+ % c8;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_22 <= inline_compound_threshold
+ ,
+ % c9;
+ % det
+ % cost: 8.00 (not above threshold)
+ libs.globals.lookup_int_option(Globals, V_22, CompoundThreshold)
+ ,
+ % c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_23 <= inline_simple_threshold
+ ,
+ % c11;
+ % det
+ % cost: 11.00 (not above threshold)
+ libs.globals.lookup_int_option(Globals, V_23, SimpleThreshold)
+ ,
+ % c12;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_24 <= inline_vars_threshold
+ ,
+ % c13;
+ % det
+ % cost: 10.00 (not above threshold)
+ libs.globals.lookup_int_option(Globals, V_24, VarThreshold)
+ ,
+ % c14;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_25 <= highlevel_code
+ ,
+ % c15;
+ % det
+ % cost: 10.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_25, HighLevelCode)
+ ,
+ % c16;
+ % det
+ % cost: 1.00 (not above threshold)
+ libs.globals.get_trace_level(Globals, TraceLevel)
+ ,
+ % c17;
+ % det
+ % cost: 2.00 (not above threshold)
+ libs.trace_params.given_trace_level_is_none(TraceLevel, V_26)
+ ,
+ % c18;
+ % det
+ % cost: 1.00 (not above threshold)
+ bool.not(V_26, AnyTracing)
+ ,
+ % c19;
+ % det
+ % cost: 0.00 (not above threshold)
+ Params <= params(Simple, SingleUse, CallCost, CompoundThreshold, SimpleThreshold, VarThreshold, HighLevelCode, AnyTracing)
+
+ Parallel conjunction:
+ (
+ % c20;c1;
+ % det
+ % cost: 192,885.00 (above threshold)
+ % Productions:
+ % V_28: 192,884.00
+ % NeededMap: 192,884.00
+ (
+ % c20;c1;?;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ (
+ % c20;c1;?;d1;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ SingleUse => yes
+ ;
+ % conjunction: c20;c1;?;d2;
+ % conjunction: semidet
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c20;c1;?;d2;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_27 <= 0
+ ,
+ % c20;c1;?;d2;c2;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ builtin int.>(CompoundThreshold, V_27)
+ )
+ ->
+ % c20;c1;t;
+ % det
+ % cost: 192,885.00 (above threshold)
+ transform_hlds.dead_proc_elim.dead_proc_analyze(V_17, V_28, NeededMap)
+ ;
+ % conjunction: c20;c1;e;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c20;c1;e;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_31 <= $type_ctor_info_const
+ ,
+ % c20;c1;e;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_32 <= $type_ctor_info_const
+ ,
+ % c20;c1;e;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ map.init(V_31, V_32, NeededMap)
+ ,
+ % c20;c1;e;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_28 := V_17
+ )
+ &
+ % c20;c2;
+ % det
+ % cost: 265,205.00 (above threshold)
+ % Productions:
+ % V_29: 265,204.00
+ % Consumptions:
+ % V_28: 0.00
+ transform_hlds.dependency_graph.module_info_ensure_dependency_info(V_28, V_29)
+ &
+ % conjunction: c20;c3;
+ % Cost: 961,626.00
+
+ % c20;c3;c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ % Consumptions:
+ % V_29: 0.00
+ hlds.hlds_module.module_info_dependency_info(V_29, DepInfo)
+ ,
+ % c20;c3;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_33 <= $type_ctor_info_const
+ ,
+ % c20;c3;c3;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.hlds_dependency_info_get_dependency_ordering(V_33, DepInfo, SCCs)
+ ,
+ % c20;c3;c4;
+ % det
+ % cost: 383.00 (not above threshold)
+ list.condense(V_33, SCCs, PredProcs)
+ ,
+ % c20;c3;c5;
+ % det
+ % cost: 1.00 (not above threshold)
+ set.init(V_33, InlinedProcs0)
+ ,
+ % c20;c3;c6;
+ % det
+ % cost: 961,240.00 (above threshold)
+ % Consumptions:
+ % V_29: 132.00
+ % NeededMap: 945,369.55
+ transform_hlds.inlining.do_inlining(PredProcs, NeededMap, Params, InlinedProcs0, V_29, V_30)
+ )
+
+ Goals after:
+
+ pred transform_hlds.unused_args.unused_args_pass/5-0
+
+ Path:
+ Dependent: on Changed, V_8
+ NumCalls: 5
+ SeqTime: 100,201.68
+ ParTime: 64,062.88
+ SparkCost: 100.00
+ BarrierCost: 200.00
+ SignalsCost: 200.00
+ WaitsCost: 400.00
+ ParOverheads total: 900.00
+ Speedup: 1.5641
+ Time saving: 36,138.80
+ First conj dead time: 24,324.08
+ Future dead time: 0.00
+ Total dead time: 24,324.08
+
+ Goals before:
+ % conjunction:
+ % Cost: 0.00
+
+
+ Parallel conjunction:
+ (
+ % conjunction: c1;c1;
+ % Cost: 38,538.80
+
+ % c1;c1;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_7 <= no
+ ,
+ % c1;c1;c2;
+ % det
+ % cost: 38,538.80 (above threshold)
+ % Productions:
+ % V_8: 133.00
+ % Changed: 133.00
+ transform_hlds.unused_args.unused_args_single_pass(LocalPredProcs, V_7, Changed, V_5, V_8)
+ &
+ % c1;c2;
+ % det
+ % cost: 61,662.88 (above threshold)
+ % Consumptions:
+ % V_8: 2.40
+ % Changed: 0.00
+ switch_can_not_fail_rep switch on Changed
+ (
+ % case no/0
+ % c1;c2;s1-na;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % V_8: 0.00
+ V_6 := V_8
+ ;
+ % case yes/0
+ % conjunction: c1;c2;s2-na;
+ % conjunction: det
+ % conjunction: cost: 77,078.60 (above threshold)
+
+ % c1;c2;s2-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_10 <= 1
+ ,
+ % c1;c2;s2-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ builtin int.+(PassNum, V_10, V_9)
+ ,
+ % c1;c2;s2-na;c3;
+ % det
+ % cost: 77,078.60 (above threshold)
+ transform_hlds.unused_args.unused_args_pass(V_9, ModuleInfo, LocalPredProcs, V_8, V_6)
+ )
+ )
+
+ Goals after:
+
+ pred transform_hlds.unused_args.unused_args_process_module/6-0
+
+ Path:
+ Dependent: on PredProcs, ProcCallInfo0, V_36, VarUsage0
+ NumCalls: 1
+ SeqTime: 1,180,392.00
+ ParTime: 613,512.00
+ SparkCost: 100.00
+ BarrierCost: 200.00
+ SignalsCost: 400.00
+ WaitsCost: 800.00
+ ParOverheads total: 1,500.00
+ Speedup: 1.9240
+ Time saving: 566,880.00
+ First conj dead time: 0.00
+ Future dead time: 3,007.00
+ Total dead time: 3,007.00
+
+ Goals before:
+ % conjunction:
+ % Cost: 12.00
+
+ % c1;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_get_globals(V_29, Globals)
+ ,
+ % c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_35 <= very_verbose
+ ,
+ % c3;
+ % det
+ % cost: 11.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_35, VeryVerbose)
+
+ Parallel conjunction:
+ (
+ % c4;c1;
+ % det
+ % cost: 613,100.00 (above threshold)
+ % Productions:
+ % V_36: 2,714.00
+ % ProcCallInfo0: 2,714.00
+ % PredProcs: 2,714.00
+ % VarUsage0: 2,714.00
+ transform_hlds.unused_args.init_var_usage(VarUsage0, PredProcs, ProcCallInfo0, V_29, V_36)
+ &
+ % conjunction: c4;c2;
+ % Cost: 567,280.00
+
+ % c4;c2;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_37 <= 0
+ ,
+ % c4;c2;c2;
+ % det
+ % cost: 192,699.00 (above threshold)
+ % Consumptions:
+ % V_36: 231,238.80
+ % PredProcs: 7.00
+ % VarUsage0: 7.00
+ transform_hlds.unused_args.unused_args_pass(V_37, V_36, PredProcs, VarUsage0, VarUsage)
+ ,
+ % c4;c2;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_66 <= $type_ctor_info_const
+ ,
+ % c4;c2;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_68 <= $type_ctor_info_const
+ ,
+ % c4;c2;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_67 <= $type_ctor_info_const
+ ,
+ % c4;c2;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_69 <= $type_info_cell_constructor(V_68, V_67)
+ ,
+ % c4;c2;c7;
+ % det
+ % cost: 1.00 (not above threshold)
+ map.init(V_66, V_69, UnusedArgInfo0)
+ ,
+ % c4;c2;c8;
+ % det
+ % cost: 13,868.00 (above threshold)
+ % Consumptions:
+ % V_36: 2,364.91
+ % PredProcs: 1.00
+ transform_hlds.unused_args.get_unused_arg_info(V_36, PredProcs, VarUsage, UnusedArgInfo0, UnusedArgInfo)
+ ,
+ % c4;c2;c9;
+ % det
+ % cost: 258.00 (not above threshold)
+ map.keys(V_66, V_69, UnusedArgInfo, PredProcsToFix)
+ ,
+ % c4;c2;c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_38 <= make_optimization_interface
+ ,
+ % c4;c2;c11;
+ % det
+ % cost: 10.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_38, MakeOpt)
+ ,
+ % c4;c2;c12;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_39 <= intermodule_analysis
+ ,
+ % c4;c2;c13;
+ % det
+ % cost: 11.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_39, IntermodAnalysis)
+ ,
+ % c4;c2;c14;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % V_36: 0.00
+ (
+ % conjunction: c4;c2;c14;?;
+ % conjunction: semidet
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c4;c2;c14;?;c1;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ MakeOpt => yes
+ ,
+ % c4;c2;c14;?;c2;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ IntermodAnalysis => no
+ ->
+ % conjunction: c4;c2;c14;t;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c4;c2;c14;t;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ hlds.hlds_module.module_info_get_name(V_36, ModuleName)
+ ,
+ % c4;c2;c14;t;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_40 <= ".opt.tmp"
+ ,
+ % c4;c2;c14;t;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_41 <= do_not_create_dirs
+ ,
+ % c4;c2;c14;t;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ parse_tree.file_names.module_name_to_file_name(Globals, ModuleName, V_40, V_41, OptFileName, V_33, V_42)
+ ,
+ % c4;c2;c14;t;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ io.open_append(OptFileName, OptFileRes, V_42, V_43)
+ ,
+ % c4;c2;c14;t;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ switch_can_not_fail_rep switch on OptFileRes
+ (
+ % case error/1
+ % conjunction: c4;c2;c14;t;c6;s1-na;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c4;c2;c14;t;c6;s1-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ OptFileRes => error(IOError)
+ ,
+ % c4;c2;c14;t;c6;s1-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ io.error_message(IOError, IOErrorMessage)
+ ,
+ % c4;c2;c14;t;c6;s1-na;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_46 <= "Cannot open `"
+ ,
+ % c4;c2;c14;t;c6;s1-na;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_49 <= "' for output: "
+ ,
+ % c4;c2;c14;t;c6;s1-na;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_51 <= []
+ ,
+ % c4;c2;c14;t;c6;s1-na;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_50 <= [|](IOErrorMessage, V_51)
+ ,
+ % c4;c2;c14;t;c6;s1-na;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_48 <= [|](V_49, V_50)
+ ,
+ % c4;c2;c14;t;c6;s1-na;c8;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_47 <= [|](OptFileName, V_48)
+ ,
+ % c4;c2;c14;t;c6;s1-na;c9;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_44 <= [|](V_46, V_47)
+ ,
+ % c4;c2;c14;t;c6;s1-na;c10;
+ % det
+ % cost: 0.00 (not above threshold)
+ io.write_strings(V_44, V_43, V_45)
+ ,
+ % c4;c2;c14;t;c6;s1-na;c11;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_52 <= 1
+ ,
+ % c4;c2;c14;t;c6;s1-na;c12;
+ % det
+ % cost: 0.00 (not above threshold)
+ io.set_exit_status(V_52, V_45, V_53)
+ ,
+ % c4;c2;c14;t;c6;s1-na;c13;
+ % det
+ % cost: 0.00 (not above threshold)
+ MaybeOptFile <= no
+ ;
+ % case ok/1
+ % conjunction: c4;c2;c14;t;c6;s2-na;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c4;c2;c14;t;c6;s2-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ OptFileRes => ok(OptFile)
+ ,
+ % c4;c2;c14;t;c6;s2-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ MaybeOptFile <= yes(OptFile)
+ ,
+ % c4;c2;c14;t;c6;s2-na;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_53 := V_43
+ )
+ ;
+ % conjunction: c4;c2;c14;e;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c4;c2;c14;e;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ MaybeOptFile <= no
+ ,
+ % c4;c2;c14;e;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_53 := V_33
+ )
+ ,
+ % c4;c2;c15;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_54 <= warn_unused_args
+ ,
+ % c4;c2;c16;
+ % det
+ % cost: 11.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_54, DoWarn)
+ ,
+ % c4;c2;c17;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % V_36: 0.00
+ (
+ % c4;c2;c17;?;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ (
+ % c4;c2;c17;?;d1;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ DoWarn => yes
+ ;
+ % c4;c2;c17;?;d2;
+ % semidet
+ % cost: 0.00 (not above threshold)
+ MakeOpt => yes
+ )
+ ->
+ % conjunction: c4;c2;c17;t;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c4;c2;c17;t;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_70 <= $type_ctor_info_const
+ ,
+ % c4;c2;c17;t;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ set.init(V_70, WarnedPredIds0)
+ ,
+ % c4;c2;c17;t;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ transform_hlds.unused_args.output_warnings_and_pragmas(V_36, UnusedArgInfo, MaybeOptFile, DoWarn, PredProcsToFix, WarnedPredIds0, V_31, V_32, V_53, V_55)
+ ;
+ % conjunction: c4;c2;c17;e;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c4;c2;c17;e;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_55 := V_53
+ ,
+ % c4;c2;c17;e;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_32 := V_31
+ )
+ ,
+ % c4;c2;c18;
+ % det
+ % cost: 0.00 (not above threshold)
+ switch_can_not_fail_rep switch on MaybeOptFile
+ (
+ % case no/0
+ % c4;c2;c18;s1-na;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_56 := V_55
+ ;
+ % case yes/1
+ % conjunction: c4;c2;c18;s2-na;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c4;c2;c18;s2-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ MaybeOptFile => yes(OptFile2)
+ ,
+ % c4;c2;c18;s2-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ io.close_output(OptFile2, V_55, V_56)
+ )
+ ,
+ % c4;c2;c19;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_57 <= make_analysis_registry
+ ,
+ % c4;c2;c20;
+ % det
+ % cost: 9.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_57, MakeAnalysisRegistry)
+ ,
+ % c4;c2;c21;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % V_36: 0.00
+ % PredProcs: 0.00
+ switch_can_not_fail_rep switch on MakeAnalysisRegistry
+ (
+ % case no/0
+ % c4;c2;c21;s1-na;
+ % det
+ % cost: 0.00 (not above threshold)
+ % Consumptions:
+ % V_36: 0.00
+ V_61 := V_36
+ ;
+ % case yes/0
+ % conjunction: c4;c2;c21;s2-na;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c4;c2;c21;s2-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ hlds.hlds_module.module_info_get_analysis_info(V_36, AnalysisInfo0)
+ ,
+ % c4;c2;c21;s2-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ hlds.hlds_module.module_info_get_valid_predids(PredIds, V_36, V_58)
+ ,
+ % c4;c2;c21;s2-na;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_59 <= $closure_cons(V_58, UnusedArgInfo)
+ ,
+ % c4;c2;c21;s2-na;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_71 <= $type_ctor_info_const
+ ,
+ % c4;c2;c21;s2-na;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_72 <= $type_ctor_info_const
+ ,
+ % c4;c2;c21;s2-na;c6;
+ % det
+ % cost: 0.00 (not above threshold)
+ list.foldl(V_71, V_72, V_59, PredIds, AnalysisInfo0, AnalysisInfo1)
+ ,
+ % c4;c2;c21;s2-na;c7;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_60 <= $closure_cons(V_58)
+ ,
+ % c4;c2;c21;s2-na;c8;
+ % det
+ % cost: 0.00 (not above threshold)
+ list.foldl(V_66, V_72, V_60, PredProcs, AnalysisInfo1, AnalysisInfo)
+ ,
+ % c4;c2;c21;s2-na;c9;
+ % det
+ % cost: 0.00 (not above threshold)
+ hlds.hlds_module.module_info_set_analysis_info(AnalysisInfo, V_58, V_61)
+ )
+ ,
+ % c4;c2;c22;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_62 <= optimize_unused_args
+ ,
+ % c4;c2;c23;
+ % det
+ % cost: 10.00 (not above threshold)
+ libs.globals.lookup_bool_option(Globals, V_62, DoFixup)
+ ,
+ % c4;c2;c24;
+ % det
+ % cost: 360,403.00 (above threshold)
+ % Consumptions:
+ % ProcCallInfo0: 0.00
+ % PredProcs: 16,683.00
+ switch_can_not_fail_rep switch on DoFixup
+ (
+ % case no/0
+ % conjunction: c4;c2;c24;s1-na;
+ % conjunction: det
+ % conjunction: cost: 0.00 (not above threshold)
+
+ % c4;c2;c24;s1-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_30 := V_61
+ ,
+ % c4;c2;c24;s1-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_34 := V_56
+ ;
+ % case yes/0
+ % conjunction: c4;c2;c24;s2-na;
+ % conjunction: det
+ % conjunction: cost: 360,403.00 (above threshold)
+
+ % c4;c2;c24;s2-na;c1;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_63 <= $closure_cons(UnusedArgInfo)
+ ,
+ % c4;c2;c24;s2-na;c2;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_74 <= $type_ctor_info_const
+ ,
+ % c4;c2;c24;s2-na;c3;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_73 <= $type_ctor_info_const
+ ,
+ % c4;c2;c24;s2-na;c4;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_75 <= $type_info_cell_constructor(V_74, V_66, V_73)
+ ,
+ % c4;c2;c24;s2-na;c5;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_76 <= $type_ctor_info_const
+ ,
+ % c4;c2;c24;s2-na;c6;
+ % det
+ % cost: 16,682.00 (above threshold)
+ list.foldl2(V_66, V_75, V_76, V_63, PredProcsToFix, ProcCallInfo0, ProcCallInfo, V_61, V_64)
+ ,
+ % c4;c2;c24;s2-na;c7;
+ % det
+ % cost: 343,719.00 (above threshold)
+ transform_hlds.unused_args.unused_args_fixup_module(VarUsage, PredProcs, ProcCallInfo, V_64, V_65, VeryVerbose, V_56, V_34)
+ ,
+ % c4;c2;c24;s2-na;c8;
+ % det
+ % cost: 2.00 (not above threshold)
+ (
+ % c4;c2;c24;s2-na;c8;?;
+ % semidet
+ % cost: 1.00 (not above threshold)
+ map.is_empty(V_66, V_73, ProcCallInfo)
+ ->
+ % c4;c2;c24;s2-na;c8;t;
+ % det
+ % cost: 0.00 (not above threshold)
+ V_30 := V_65
+ ;
+ % c4;c2;c24;s2-na;c8;e;
+ % det
+ % cost: 1.00 (not above threshold)
+ hlds.hlds_module.module_info_clobber_dependency_info(V_65, V_30)
+ )
+ )
+ )
+
+ Goals after:
+
diff --git a/tests/feedback/mandelbrot/Deep.data b/tests/feedback/mandelbrot/Deep.data
new file mode 100644
index 0000000..da745d2
Binary files /dev/null and b/tests/feedback/mandelbrot/Deep.data differ
diff --git a/tests/feedback/mandelbrot/Deep.procrep b/tests/feedback/mandelbrot/Deep.procrep
new file mode 100644
index 0000000..087b516
Binary files /dev/null and b/tests/feedback/mandelbrot/Deep.procrep differ
diff --git a/tests/feedback/mmc/Deep.data b/tests/feedback/mmc/Deep.data
new file mode 100644
index 0000000..09f3960
Binary files /dev/null and b/tests/feedback/mmc/Deep.data differ
diff --git a/tests/feedback/mmc/Deep.procrep b/tests/feedback/mmc/Deep.procrep
new file mode 100644
index 0000000..cc9896f
Binary files /dev/null and b/tests/feedback/mmc/Deep.procrep differ
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 489 bytes
Desc: Digital signature
URL: <http://lists.mercurylang.org/archives/reviews/attachments/20111107/e7d194c3/attachment.sig>
More information about the reviews
mailing list