[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