Files
mercury/tests/feedback/autopar_mmc.exp
Paul Bone 9da8d34dc7 Update expected test output due to changes in the best parallelisation search
algorithm.

The new code does not adjust the borders of the parallelisations, so our
previous test data differs from this test data in that respect.  The new code
also seems to have fixed a problem that affected the recorded goal paths.

tests/feedback/autopar_mandelbrot.exp:
tests/feedback/autopar_mmc.exp:
    As above.
2012-04-04 05:24:22 +00:00

10143 lines
305 KiB
Plaintext

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,220.00
SparkCost: 200.00
BarrierCost: 300.00
SignalsCost: 400.00
WaitsCost: 800.00
ParOverheads total: 1,700.00
Speedup: 1.0705
Time saving: 15,381.00
First conj dead time: 198,535.00
Future dead time: 18,481.00
Total dead time: 217,016.00
Goals before:
% conjunction: c14;s1-na;
% Cost: 1.00
% c14;s1-na;c1;
% det
% cost: 1.00 (not above threshold)
scope (
% conjunction: c14;s1-na;c1;q;
% conjunction: det
% conjunction: cost: 1.00 (not above threshold)
% c14;s1-na;c1;q;c1;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_get_io_state(V_14)
,
% c14;s1-na;c1;q;c2;
% det
% cost: 0.00 (not above threshold)
V_15 <= "% Checking typeclass instances...
"
,
% c14;s1-na;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;q;c4;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_set_io_state(V_16)
)
Parallel conjunction:
(
% conjunction: c14;s1-na;c2;c1;
% Cost: 18,484.00
% c14;s1-na;c2;c1;c1;
% 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;c2;c1;c2;
% det
% cost: 1.00 (not above threshold)
scope (
% conjunction: c14;s1-na;c2;c1;c2;q;
% conjunction: det
% conjunction: cost: 1.00 (not above threshold)
% c14;s1-na;c2;c1;c2;q;c1;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_get_io_state(V_19)
,
% c14;s1-na;c2;c1;c2;q;c2;
% det
% cost: 0.00 (not above threshold)
V_20 <= "% Checking for cyclic classes...
"
,
% c14;s1-na;c2;c1;c2;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;c2;c1;c2;q;c4;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_set_io_state(V_21)
)
,
% c14;s1-na;c2;c1;c3;
% 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)
&
% conjunction: c14;s1-na;c2;c2;
% Cost: 297.00
% c14;s1-na;c2;c2;c1;
% det
% cost: 1.00 (not above threshold)
scope (
% conjunction: c14;s1-na;c2;c2;c1;q;
% conjunction: det
% conjunction: cost: 1.00 (not above threshold)
% c14;s1-na;c2;c2;c1;q;c1;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_get_io_state(V_24)
,
% c14;s1-na;c2;c2;c1;q;c2;
% det
% cost: 0.00 (not above threshold)
V_25 <= "% Checking for missing concrete instances...
"
,
% c14;s1-na;c2;c2;c1;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;c2;c2;c1;q;c4;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_set_io_state(V_26)
)
,
% c14;s1-na;c2;c2;c2;
% 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;c2;c2;c3;
% det
% cost: 1.00 (not above threshold)
scope (
% conjunction: c14;s1-na;c2;c2;c3;q;
% conjunction: det
% conjunction: cost: 1.00 (not above threshold)
% c14;s1-na;c2;c2;c3;q;c1;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_get_io_state(V_29)
,
% c14;s1-na;c2;c2;c3;q;c2;
% det
% cost: 0.00 (not above threshold)
V_30 <= "% Checking functional dependencies on instances...
"
,
% c14;s1-na;c2;c2;c3;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;c2;c2;c3;q;c4;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_set_io_state(V_31)
)
&
% conjunction: c14;s1-na;c2;c3;
% Cost: 214,819.00
% c14;s1-na;c2;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;c2;c3;c2;
% det
% cost: 1.00 (not above threshold)
scope (
% conjunction: c14;s1-na;c2;c3;c2;q;
% conjunction: det
% conjunction: cost: 1.00 (not above threshold)
% c14;s1-na;c2;c3;c2;q;c1;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_get_io_state(V_34)
,
% c14;s1-na;c2;c3;c2;q;c2;
% det
% cost: 0.00 (not above threshold)
V_35 <= "% Checking typeclass constraints...
"
,
% c14;s1-na;c2;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;c2;c3;c2;q;c4;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_set_io_state(V_36)
)
,
% c14;s1-na;c2;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,321.00
ParTime: 733,312.00
SparkCost: 200.00
BarrierCost: 300.00
SignalsCost: 700.00
WaitsCost: 1,600.00
ParOverheads total: 2,800.00
Speedup: 1.4991
Time saving: 366,009.00
First conj dead time: 236,360.00
Future dead time: 621,400.00
Total dead time: 857,760.00
Goals before:
% conjunction:
% Cost: 4.00
% c1;
% det
% cost: 2.00 (not above threshold)
hlds.hlds_module.module_info_get_valid_predids(PredIds, V_11, V_13)
,
% c2;
% det
% cost: 2.00 (not above threshold)
hlds.hlds_module.module_info_get_preds(V_13, PredTable)
,
% c3;
% det
% cost: 0.00 (not above threshold)
V_36 <= []
Parallel conjunction:
(
% conjunction: c4;c1;
% Cost: 495,545.00
% c4;c1;c1;
% det
% cost: 123,776.00 (above threshold)
check_hlds.det_analysis.get_all_pred_procs_2(PredTable, PredIds, V_36, PredProcs)
,
% c4;c1;c2;
% det
% cost: 0.00 (not above threshold)
V_37 <= []
,
% c4;c1;c3;
% det
% cost: 0.00 (not above threshold)
V_38 <= []
,
% c4;c1;c4;
% det
% cost: 0.00 (not above threshold)
V_39 <= []
,
% c4;c1;c5;
% 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)
,
% c4;c1;c6;
% det
% cost: 0.00 (not above threshold)
V_14 <= $closure_cons
,
% c4;c1;c7;
% det
% cost: 0.00 (not above threshold)
V_31 <= $type_ctor_info_const
,
% c4;c1;c8;
% det
% cost: 0.00 (not above threshold)
V_32 <= $type_ctor_info_const
,
% c4;c1;c9;
% 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)
,
% c4;c1;c10;
% 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)
&
% conjunction: c4;c2;
% Cost: 20.00
% c4;c2;c1;
% det
% cost: 0.00 (not above threshold)
V_16 <= verbose
,
% c4;c2;c2;
% det
% cost: 10.00 (not above threshold)
% Productions:
% Verbose: 9.00
% Consumptions:
% Globals: 0.00
libs.globals.lookup_bool_option(Globals, V_16, Verbose)
,
% c4;c2;c3;
% det
% cost: 0.00 (not above threshold)
V_17 <= debug_det
,
% c4;c2;c4;
% det
% cost: 10.00 (not above threshold)
% Productions:
% Debug: 9.00
% Consumptions:
% Globals: 0.00
libs.globals.lookup_bool_option(Globals, V_17, Debug)
,
% c4;c2;c5;
% 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: c4;c2;c5;s1-na;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c4;c2;c5;s1-na;c1;
% det
% cost: 0.00 (not above threshold)
InferenceSpecs <= []
,
% c4;c2;c5;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: c4;c2;c5;s2-na;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c4;c2;c5;s2-na;c1;
% det
% cost: 0.00 (not above threshold)
scope (
% conjunction: c4;c2;c5;s2-na;c1;q;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c4;c2;c5;s2-na;c1;q;c1;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_get_io_state(V_18)
,
% c4;c2;c5;s2-na;c1;q;c2;
% det
% cost: 0.00 (not above threshold)
V_19 <= "% Doing determinism inference...
"
,
% c4;c2;c5;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)
,
% c4;c2;c5;s2-na;c1;q;c4;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_set_io_state(V_20)
)
,
% c4;c2;c5;s2-na;c2;
% det
% cost: 0.00 (not above threshold)
check_hlds.det_analysis.global_inference_pass(V_15, V_21, UndeclaredProcs, Debug, InferenceSpecs)
,
% c4;c2;c5;s2-na;c3;
% det
% cost: 0.00 (not above threshold)
scope (
% conjunction: c4;c2;c5;s2-na;c3;q;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c4;c2;c5;s2-na;c3;q;c1;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_get_io_state(V_22)
,
% c4;c2;c5;s2-na;c3;q;c2;
% det
% cost: 0.00 (not above threshold)
V_23 <= "% done.
"
,
% c4;c2;c5;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)
,
% c4;c2;c5;s2-na;c3;q;c4;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_set_io_state(V_24)
)
)
&
% conjunction: c4;c3;
% Cost: 603,749.00
% c4;c3;c1;
% det
% cost: 1.00 (not above threshold)
% Consumptions:
% Verbose: 0.00
scope (
% conjunction: c4;c3;c1;q;
% conjunction: det
% conjunction: cost: 1.00 (not above threshold)
% c4;c3;c1;q;c1;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_get_io_state(V_25)
,
% c4;c3;c1;q;c2;
% det
% cost: 0.00 (not above threshold)
V_26 <= "% Doing determinism checking...
"
,
% c4;c3;c1;q;c3;
% det
% cost: 1.00 (not above threshold)
libs.file_util.maybe_write_string(Verbose, V_26, V_25, V_27)
,
% c4;c3;c1;q;c4;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_set_io_state(V_27)
)
,
% c4;c3;c2;
% 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:
% c5;
% det
% cost: 0.00 (not above threshold)
V_33 <= $type_ctor_info_const
,
% c6;
% det
% cost: 2.00 (not above threshold)
list.++(V_33, InferenceSpecs, FinalSpecs, Specs)
,
% c7;
% det
% cost: 1.00 (not above threshold)
scope (
% conjunction: c7;q;
% conjunction: det
% conjunction: cost: 1.00 (not above threshold)
% c7;q;c1;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_get_io_state(V_28)
,
% c7;q;c2;
% det
% cost: 0.00 (not above threshold)
V_29 <= "% done.
"
,
% c7;q;c3;
% det
% cost: 1.00 (not above threshold)
libs.file_util.maybe_write_string(Verbose, V_29, V_28, V_30)
,
% c7;q;c4;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_set_io_state(V_30)
)
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
% c1;
% det
% cost: 0.00 (not above threshold)
V_9 <= []
,
% c2;
% det
% cost: 0.00 (not above threshold)
V_11 <= unchanged
Parallel conjunction:
(
% c3;c1;
% 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: c3;c2;
% Cost: 9,461.00
% c3;c2;c1;
% det
% cost: 0.00 (not above threshold)
V_13 <= $type_ctor_info_const
,
% c3;c2;c2;
% det
% cost: 2.00 (not above threshold)
list.++(V_13, UndeclaredProcs, DeclaredProcs, V_12)
,
% c3;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
% c6;s2-na;c1;
% det
% cost: 0.00 (not above threshold)
V_21 <= include_detism_on_modes
Parallel conjunction:
(
% conjunction: c6;s2-na;c2;c1;
% Cost: 97,345.00
% c6;s2-na;c2;c1;c1;
% det
% cost: 97,343.00 (above threshold)
check_hlds.mode_errors.report_mode_inference_messages(V_16, V_21, PredIds, InferenceSpecs)
,
% c6;s2-na;c2;c1;c2;
% det
% cost: 0.00 (not above threshold)
V_24 <= $type_ctor_info_const
,
% c6;s2-na;c2;c1;c3;
% det
% cost: 2.00 (not above threshold)
% Productions:
% V_22: 1.00
list.++(V_24, InferenceSpecs, V_17, V_22)
&
% conjunction: c6;s2-na;c2;c2;
% Cost: 273,052.00
% c6;s2-na;c2;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;c2;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:
% c6;s2-na;c3;
% det
% cost: 0.00 (not above threshold)
SafeToContinue := SafeToContinue0
pred check_hlds.switch_detection.detect_switches_in_module/2-0
Path:
Dependent: on PredIdsInfos, V_12, ValidPredIdSet
NumCalls: 1
SeqTime: 672,315.00
ParTime: 665,314.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,401.75
Total dead time: 1,215,068.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:
% c5;
% det
% cost: 2.00 (not above threshold)
hlds.hlds_module.module_info_set_preds(PredMap, V_10, V_9)
pred check_hlds.typecheck.typecheck_module/4-0
Path:
Dependent: on FinalValidPredIdSet, OrigValidPredIdSet, PredMap, V_15, V_18
NumCalls: 1
SeqTime: 1,370,158.00
ParTime: 864,671.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,359.00
Total dead time: 1,725,108.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)
,
% c5;
% det
% cost: 0.00 (not above threshold)
V_21 <= $type_ctor_info_const
Parallel conjunction:
(
% conjunction: c6;c1;
% Cost: 518,706.00
% c6;c1;c1;
% det
% cost: 112,478.00 (above threshold)
% Productions:
% OrigValidPredIdSet: 112,477.00
set_tree234.list_to_set(V_21, OrigValidPredIds, OrigValidPredIdSet)
,
% c6;c1;c2;
% det
% cost: 2.00 (not above threshold)
hlds.hlds_module.module_info_get_preds(V_17, PredMap0)
,
% c6;c1;c3;
% det
% cost: 0.00 (not above threshold)
V_22 <= $type_ctor_info_const
,
% c6;c1;c4;
% det
% cost: 5,369.00 (above threshold)
map.to_assoc_list(V_21, V_22, PredMap0, PredIdsInfos0)
,
% c6;c1;c5;
% det
% cost: 395,813.00 (above threshold)
% Consumptions:
% OrigValidPredIdSet: 1.00
check_hlds.typecheck.prepare_for_typecheck(V_17, OrigValidPredIdSet, PredIdsInfos0, PredIdsInfos)
,
% c6;c1;c6;
% det
% cost: 5,044.00 (above threshold)
% Productions:
% PredMap: 5,043.00
map.from_sorted_assoc_list(V_21, V_22, PredIdsInfos, PredMap)
&
% c6;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: c6;c3;
% Cost: 754,131.00
% c6;c3;c1;
% det
% cost: 0.00 (not above threshold)
V_19 <= 1
,
% c6;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: c6;c4;
% Cost: 97,303.00
% c6;c4;c1;
% det
% cost: 0.00 (not above threshold)
V_20 <= []
,
% c6;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:
% c7;
% det
% cost: 0.00 (not above threshold)
V_23 <= $type_ctor_info_const
,
% c8;
% det
% cost: 2.00 (not above threshold)
list.++(V_23, InferSpecs, CheckSpecs, Specs)
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_48, V_49, V_53, V_63
NumCalls: 1
SeqTime: 5,114,530.00
ParTime: 2,688,837.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,692.64
First conj dead time: 2,674,358.36
Future dead time: 8,036,789.27
Total dead time: 10,711,147.64
Goals before:
% conjunction:
% Cost: 1.00
% c1;
% det
% cost: 0.00 (not above threshold)
V_1 => unit_module(Name, Items)
,
% c2;
% det
% cost: 1.00 (not above threshold)
parse_tree.module_qual.mq_info_get_partial_qualifier_info(MQInfo0, PQInfo)
,
% c3;
% det
% cost: 0.00 (not above threshold)
V_24 <= no
Parallel conjunction:
(
% conjunction: c4;c1;
% Cost: 13,071.00
% c4;c1;c1;
% det
% cost: 13,070.00 (above threshold)
hlds.hlds_module.module_info_init(Name, DumpBaseFileName, Items, Globals, PQInfo, V_24, V_25)
,
% c4;c1;c2;
% 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)
,
% c4;c1;c3;
% det
% cost: 0.00 (not above threshold)
% Productions:
% V_27: 1.00
V_27 <= []
,
% c4;c1;c4;
% det
% cost: 0.00 (not above threshold)
V_32 <= status_local
,
% c4;c1;c5;
% det
% cost: 0.00 (not above threshold)
V_33 <= may_be_unqualified
,
% c4;c1;c6;
% det
% cost: 0.00 (not above threshold)
% Productions:
% V_28: 1.00
V_28 <= item_status(V_32, V_33)
,
% c4;c1;c7;
% det
% cost: 0.00 (not above threshold)
% Productions:
% V_30: 1.00
V_30 <= no
&
% conjunction: c4;c2;
% Cost: 2,322,980.00
% c4;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)
,
% c4;c2;c2;
% det
% cost: 0.00 (not above threshold)
V_34 <= statistics
,
% c4;c2;c3;
% det
% cost: 9.00 (not above threshold)
% Productions:
% Statistics: 8.00
libs.globals.lookup_bool_option(Globals, V_34, Statistics)
,
% c4;c2;c4;
% det
% cost: 2.00 (not above threshold)
% Consumptions:
% Statistics: 0.00
scope (
% conjunction: c4;c2;c4;q;
% conjunction: det
% conjunction: cost: 2.00 (not above threshold)
% c4;c2;c4;q;c1;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_get_io_state(V_35)
,
% c4;c2;c4;q;c2;
% det
% cost: 0.00 (not above threshold)
V_36 <= "% Processed all items in pass 1
"
,
% c4;c2;c4;q;c3;
% det
% cost: 1.00 (not above threshold)
libs.file_util.maybe_write_string(Statistics, V_36, V_35, V_37)
,
% c4;c2;c4;q;c4;
% det
% cost: 1.00 (not above threshold)
libs.file_util.maybe_report_stats(Statistics, V_37, V_38)
,
% c4;c2;c4;q;c5;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_set_io_state(V_38)
)
,
% c4;c2;c5;
% det
% cost: 0.00 (not above threshold)
% Productions:
% V_40: 1.00
V_40 <= []
&
% c4;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: c4;c4;
% Cost: 2.00
% c4;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
% c4;c4;c1;s1-na;
% det
% cost: 0.00 (not above threshold)
% Productions:
% InvalidTypes1: 1.00
InvalidTypes1 <= no
;
% case [|]/2
% c4;c4;c1;s2-na;
% det
% cost: 0.00 (not above threshold)
InvalidTypes1 <= yes
)
,
% c4;c4;c2;
% det
% cost: 0.00 (not above threshold)
% Productions:
% V_63: 1.00
V_63 <= $type_ctor_info_const
,
% c4;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)
&
% c4;c5;
% det
% cost: 773,504.00 (above threshold)
% Productions:
% V_49: 773,503.00
% V_48: 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: c4;c5;s1-na;
% conjunction: det
% conjunction: cost: 773,504.00 (above threshold)
% c4;c5;s1-na;c1;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_module.module_info_get_type_table(V_39, V_42)
,
% c4;c5;s1-na;c2;
% det
% cost: 0.00 (not above threshold)
% Consumptions:
% V_39: 0.00
V_43 <= $closure_cons(V_39)
,
% c4;c5;s1-na;c3;
% det
% cost: 0.00 (not above threshold)
V_64 <= $type_ctor_info_const
,
% c4;c5;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)
,
% c4;c5;s1-na;c5;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_module.module_info_set_type_table(V_44, V_39, V_45)
,
% c4;c5;s1-na;c6;
% det
% cost: 0.00 (not above threshold)
V_46 <= $closure_cons
,
% c4;c5;s1-na;c7;
% det
% cost: 0.00 (not above threshold)
V_47 <= no
,
% c4;c5;s1-na;c8;
% det
% cost: 0.00 (not above threshold)
V_65 <= $type_ctor_info_const
,
% c4;c5;s1-na;c9;
% det
% cost: 0.00 (not above threshold)
V_66 <= $type_ctor_info_const
,
% c4;c5;s1-na;c10;
% det
% cost: 0.00 (not above threshold)
V_67 <= $type_ctor_info_const
,
% c4;c5;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)
,
% c4;c5;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: c4;c5;s2-na;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c4;c5;s2-na;c1;
% det
% cost: 0.00 (not above threshold)
InvalidTypes2 <= yes
,
% c4;c5;s2-na;c2;
% det
% cost: 0.00 (not above threshold)
V_48 := V_39
,
% c4;c5;s2-na;c3;
% det
% cost: 0.00 (not above threshold)
V_49 := V_41
)
&
% conjunction: c4;c6;
% Cost: 24.00
% c4;c6;c1;
% det
% cost: 2.00 (not above threshold)
% Consumptions:
% V_48: 2.00
(
% conjunction: c4;c6;c1;?;
% conjunction: semidet
% conjunction: cost: 2.00 (not above threshold)
% c4;c6;c1;?;c1;
% det
% cost: 1.00 (not above threshold)
mdbcomp.prim_data.mercury_public_builtin_module(V_71)
,
% c4;c6;c1;?;c2;
% semidet
% cost: 1.00 (not above threshold)
hlds.make_hlds.make_hlds_passes.__Unify__(Name, V_71)
,
% c4;c6;c1;?;c3;
% semidet
% cost: 0.00 (not above threshold)
hlds.special_pred.compiler_generated_rtti_for_builtins(V_48)
->
% conjunction: c4;c6;c1;t;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c4;c6;c1;t;c1;
% det
% cost: 0.00 (not above threshold)
V_50 <= $closure_cons
,
% c4;c6;c1;t;c2;
% det
% cost: 0.00 (not above threshold)
parse_tree.prog_type.builtin_type_ctors_with_no_hlds_type_defn(V_51)
,
% c4;c6;c1;t;c3;
% det
% cost: 0.00 (not above threshold)
V_69 <= $type_ctor_info_const
,
% c4;c6;c1;t;c4;
% det
% cost: 0.00 (not above threshold)
V_70 <= $type_ctor_info_const
,
% c4;c6;c1;t;c5;
% det
% cost: 0.00 (not above threshold)
list.foldl(V_69, V_70, V_50, V_51, V_48, V_52)
;
% c4;c6;c1;e;
% det
% cost: 0.00 (not above threshold)
% Consumptions:
% V_48: 0.00
V_52 := V_48
)
,
% c4;c6;c2;
% det
% cost: 20.00 (not above threshold)
% Productions:
% V_53: 19.00
hlds.hlds_module.module_info_optimize(V_52, V_53)
,
% c4;c6;c3;
% det
% cost: 2.00 (not above threshold)
% Consumptions:
% Statistics: 0.00
scope (
% conjunction: c4;c6;c3;q;
% conjunction: det
% conjunction: cost: 2.00 (not above threshold)
% c4;c6;c3;q;c1;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_get_io_state(V_54)
,
% c4;c6;c3;q;c2;
% det
% cost: 0.00 (not above threshold)
V_55 <= "% Processed all items in pass 2
"
,
% c4;c6;c3;q;c3;
% det
% cost: 1.00 (not above threshold)
libs.file_util.maybe_write_string(Statistics, V_55, V_54, V_56)
,
% c4;c6;c3;q;c4;
% det
% cost: 1.00 (not above threshold)
libs.file_util.maybe_report_stats(Statistics, V_56, V_57)
,
% c4;c6;c3;q;c5;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_set_io_state(V_57)
)
&
% conjunction: c4;c7;
% Cost: 1,626,843.00
% c4;c7;c1;
% det
% cost: 6.00 (not above threshold)
hlds.make_hlds.qual_info.init_qual_info(MQInfo0, EqvMap, QualInfo0)
,
% c4;c7;c2;
% det
% cost: 0.00 (not above threshold)
V_58 <= status_local
,
% c4;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:
% c5;
% det
% cost: 1.00 (not above threshold)
scope (
% conjunction: c5;q;
% conjunction: det
% conjunction: cost: 1.00 (not above threshold)
% c5;q;c1;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_get_io_state(V_59)
,
% c5;q;c2;
% det
% cost: 0.00 (not above threshold)
V_60 <= "% Processed all items in pass 3
"
,
% c5;q;c3;
% det
% cost: 1.00 (not above threshold)
libs.file_util.maybe_write_string(Statistics, V_60, V_59, V_61)
,
% c5;q;c4;
% det
% cost: 0.00 (not above threshold)
builtin private_builtin.trace_set_io_state(V_61)
)
,
% c6;
% det
% cost: 1.00 (not above threshold)
hlds.make_hlds.qual_info.qual_info_get_mq_info(QualInfo, MQInfo)
,
% c7;
% det
% cost: 1.00 (not above threshold)
parse_tree.module_qual.mq_info_get_type_error_flag(MQInfo, InvalidTypes3)
,
% c8;
% det
% cost: 1.00 (not above threshold)
bool.or(InvalidTypes1, InvalidTypes2, V_62)
,
% c9;
% det
% cost: 1.00 (not above threshold)
bool.or(V_62, InvalidTypes3, InvalidTypes)
,
% c10;
% det
% cost: 1.00 (not above threshold)
parse_tree.module_qual.mq_info_get_mode_error_flag(MQInfo, InvalidModes1)
,
% c11;
% det
% cost: 1.00 (not above threshold)
bool.or(InvalidModes0, InvalidModes1, InvalidModes)
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,825.31
ParTime: 17,292.98
SparkCost: 100.00
BarrierCost: 200.00
SignalsCost: 300.00
WaitsCost: 600.00
ParOverheads total: 1,200.00
Speedup: 1.1464
Time saving: 2,532.33
First conj dead time: 8,850.82
Future dead time: 0.00
Total dead time: 8,850.82
Goals before:
% conjunction:
% Cost: 1,331.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)
,
% c15;
% det
% cost: 1.00 (not above threshold)
set.init(V_47, V_29)
,
% c16;
% det
% cost: 1.00 (not above threshold)
private_builtin.type_info_from_typeclass_info(V_46, PolyConst1, V_55)
,
% c17;
% det
% cost: 1.00 (not above threshold)
private_builtin.type_info_from_typeclass_info(V_46, PolyConst1, V_56)
Parallel conjunction:
(
% c18;c1;
% 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: c18;c2;
% Cost: 12,683.16
% c18;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)
,
% c18;c2;c2;
% det
% cost: 0.00 (not above threshold)
V_32 <= $closure_cons
,
% c18;c2;c3;
% det
% cost: 0.00 (not above threshold)
V_57 <= $type_ctor_info_const
,
% c18;c2;c4;
% det
% cost: 0.00 (not above threshold)
V_58 <= $type_info_cell_constructor(V_57, V_47, V_48)
,
% c18;c2;c5;
% det
% cost: 39.86 (not above threshold)
list.filter_map(V_58, V_47, V_32, OrdNeedsFrameList, Frontier)
,
% c18;c2;c6;
% det
% cost: 1.00 (not above threshold)
queue.list_to_queue(V_47, Frontier, PredQueue)
,
% c18;c2;c7;
% det
% cost: 1.00 (not above threshold)
private_builtin.type_info_from_typeclass_info(V_46, PolyConst1, V_59)
,
% c18;c2;c8;
% det
% cost: 1.00 (not above threshold)
private_builtin.type_info_from_typeclass_info(V_46, PolyConst1, V_60)
,
% c18;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:
% c19;
% det
% cost: 677.90 (not above threshold)
switch_can_not_fail_rep switch on CanTransform
(
% case can_transform/0
% conjunction: c19;s1-na;
% conjunction: det
% conjunction: cost: 1,728.65 (not above threshold)
% c19;s1-na;c1;
% det
% cost: 1.00 (not above threshold)
map.init(V_47, V_47, V_38)
,
% c19;s1-na;c2;
% det
% cost: 0.00 (not above threshold)
V_36 <= setup_par_map(V_38)
,
% c19;s1-na;c3;
% det
% cost: 1.00 (not above threshold)
map.init(V_47, V_47, V_39)
,
% c19;s1-na;c4;
% det
% cost: 0.00 (not above threshold)
V_37 <= exit_par_map(V_39)
,
% c19;s1-na;c5;
% det
% cost: 925.15 (not above threshold)
ll_backend.frameopt.process_frame_delay(V_46, V_16, V_33, ProcLabel, V_18, V_34, V_20, V_35, V_36, SetupParMap, V_37, ExitParMap)
,
% c19;s1-na;c6;
% det
% cost: 801.50 (not above threshold)
ll_backend.frameopt.create_parallels(V_46, V_16, V_17, EntryInfo, ProcLabel, V_34, V_19, V_33, SetupParMap, ExitParMap, PredMap, V_35, V_21)
;
% case cannot_transform/0
% conjunction: c19;s2-na;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c19;s2-na;c1;
% det
% cost: 0.00 (not above threshold)
V_17 := V_16
,
% c19;s2-na;c2;
% det
% cost: 0.00 (not above threshold)
V_19 := V_18
,
% c19;s2-na;c3;
% det
% cost: 0.00 (not above threshold)
V_21 := V_20
)
,
% c20;
% det
% cost: 0.00 (not above threshold)
switch_can_not_fail_rep switch on AddComments
(
% case no/0
% conjunction: c20;s1-na;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c20;s1-na;c1;
% det
% cost: 0.00 (not above threshold)
TransformComments <= []
,
% c20;s1-na;c2;
% det
% cost: 0.00 (not above threshold)
DescComments <= []
;
% case yes/0
% conjunction: c20;s2-na;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c20;s2-na;c1;
% det
% cost: 0.00 (not above threshold)
scope (
% conjunction: c20;s2-na;c1;q;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c20;s2-na;c1;q;c1;
% det
% cost: 0.00 (not above threshold)
V_41 <= []
,
% c20;s2-na;c1;q;c2;
% det
% cost: 0.00 (not above threshold)
V_43 <= ""
,
% c20;s2-na;c1;q;c3;
% det
% cost: 0.00 (not above threshold)
V_44 <= "delaying stack frame"
,
% c20;s2-na;c1;q;c4;
% det
% cost: 0.00 (not above threshold)
V_42 <= comment(V_44)
,
% c20;s2-na;c1;q;c5;
% det
% cost: 0.00 (not above threshold)
V_40 <= llds_instr(V_42, V_43)
,
% c20;s2-na;c1;q;c6;
% det
% cost: 0.00 (not above threshold)
TransformComments <= [|](V_40, V_41)
)
,
% c20;s2-na;c2;
% det
% cost: 0.00 (not above threshold)
V_45 <= $closure_cons(V_46, V_21, V_33, PredMap, ProcLabel)
,
% c20;s2-na;c3;
% det
% cost: 0.00 (not above threshold)
V_61 <= $type_ctor_info_const
,
% c20;s2-na;c4;
% det
% cost: 0.00 (not above threshold)
list.map(V_47, V_61, V_45, V_17, DescComments)
)
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,187.98
ParTime: 13,281.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:
% c9;
% det
% cost: 0.00 (not above threshold)
V_27 <= "MR_END_MODULE
"
,
% c10;
% det
% cost: 1.00 (not above threshold)
io.write_string(V_27, V_26, V_10)
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_101, V_102, V_103, V_118, V_119, V_99
NumCalls: 1
SeqTime: 1,444,677.00
ParTime: 1,148,887.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,790.00
First conj dead time: 838,012.00
Future dead time: 314,277.00
Total dead time: 1,152,289.00
Goals before:
% conjunction:
% Cost: 996.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)
,
% c3;
% det
% cost: 1.00 (not above threshold)
library.version(Version)
,
% c4;
% det
% cost: 1.00 (not above threshold)
io.set_output_stream(FileStream, OutputStream, V_54, V_56)
,
% c5;
% det
% cost: 0.00 (not above threshold)
V_57 <= ".m"
,
% c6;
% det
% cost: 0.00 (not above threshold)
V_58 <= do_not_create_dirs
,
% c7;
% 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)
,
% c8;
% det
% cost: 69.00 (not above threshold)
backend_libs.c_util.output_c_file_intro_and_grade(Globals, SourceFileName, Version, V_59, V_60)
,
% c9;
% det
% cost: 0.00 (not above threshold)
V_116 <= $type_ctor_info_const
,
% c10;
% det
% cost: 1.00 (not above threshold)
set.init(V_116, V_61)
,
% c11;
% det
% cost: 401.00 (not above threshold)
ll_backend.llds_out.llds_out_file.module_gather_env_var_names(Modules, V_61, EnvVarNameSet)
,
% c12;
% det
% cost: 1.00 (not above threshold)
set.to_sorted_list(V_116, EnvVarNameSet, EnvVarNames)
,
% c13;
% 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)
,
% c14;
% det
% cost: 5.00 (not above threshold)
ll_backend.llds_out.llds_out_file.output_c_file_mercury_headers(Info, V_62, V_63)
,
% c15;
% 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)
,
% c16;
% det
% cost: 0.00 (not above threshold)
V_65 <= "
"
,
% c17;
% det
% cost: 1.00 (not above threshold)
io.write_string(V_65, V_64, V_66)
Parallel conjunction:
(
% conjunction: c18;c1;
% Cost: 306,833.00
% c18;c1;c1;
% det
% cost: 8,539.00 (above threshold)
ll_backend.llds_out.llds_out_file.gather_c_file_labels(Modules, EntryLabels, InternalLabels)
,
% c18;c1;c2;
% det
% cost: 6.00 (not above threshold)
ll_backend.llds_out.llds_out_file.output_static_linkage_define(V_66, V_67)
,
% c18;c1;c3;
% det
% cost: 0.00 (not above threshold)
V_68 <= $closure_cons
,
% c18;c1;c4;
% det
% cost: 0.00 (not above threshold)
V_117 <= $type_ctor_info_const
,
% c18;c1;c5;
% det
% cost: 0.00 (not above threshold)
% Productions:
% V_118: 1.00
V_118 <= $type_ctor_info_const
,
% c18;c1;c6;
% det
% cost: 0.00 (not above threshold)
% Productions:
% V_119: 1.00
V_119 <= $type_ctor_info_const
,
% c18;c1;c7;
% 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)
,
% c18;c1;c8;
% det
% cost: 0.00 (not above threshold)
V_71 <= $closure_cons
,
% c18;c1;c9;
% det
% cost: 0.00 (not above threshold)
V_120 <= $type_ctor_info_const
,
% c18;c1;c10;
% 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)
,
% c18;c1;c11;
% 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)
,
% c18;c1;c12;
% 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)
,
% c18;c1;c13;
% det
% cost: 0.00 (not above threshold)
V_78 <= $closure_cons(Info)
,
% c18;c1;c14;
% det
% cost: 0.00 (not above threshold)
V_121 <= $type_ctor_info_const
,
% c18;c1;c15;
% 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)
,
% c18;c1;c16;
% det
% cost: 0.00 (not above threshold)
V_81 <= $closure_cons(Info)
,
% c18;c1;c17;
% 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)
,
% c18;c1;c18;
% det
% cost: 0.00 (not above threshold)
V_84 <= $closure_cons(Info)
,
% c18;c1;c19;
% 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)
,
% c18;c1;c20;
% det
% cost: 0.00 (not above threshold)
V_87 <= $closure_cons(Info)
,
% c18;c1;c21;
% det
% cost: 0.00 (not above threshold)
V_122 <= $type_ctor_info_const
,
% c18;c1;c22;
% 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)
,
% c18;c1;c23;
% det
% cost: 1.00 (not above threshold)
io.nl(V_89, V_90)
,
% c18;c1;c24;
% 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)
,
% c18;c1;c25;
% det
% cost: 0.00 (not above threshold)
V_92 <= $closure_cons(Info)
,
% c18;c1;c26;
% det
% cost: 0.00 (not above threshold)
V_123 <= $type_ctor_info_const
,
% c18;c1;c27;
% 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)
,
% c18;c1;c28;
% det
% cost: 0.00 (not above threshold)
V_95 <= $closure_cons(Info)
,
% c18;c1;c29;
% det
% cost: 0.00 (not above threshold)
V_124 <= $type_ctor_info_const
,
% c18;c1;c30;
% 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)
,
% c18;c1;c31;
% det
% cost: 0.00 (not above threshold)
V_98 <= $closure_cons(Info)
,
% c18;c1;c32;
% det
% cost: 0.00 (not above threshold)
V_125 <= $type_ctor_info_const
,
% c18;c1;c33;
% det
% cost: 15,365.00 (above threshold)
% Productions:
% V_99: 15,364.00
% 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)
,
% c18;c1;c34;
% det
% cost: 1.00 (not above threshold)
% Productions:
% V_101: 0.00
io.nl(V_100, V_101)
&
% c18;c2;
% det
% cost: 2.00 (not above threshold)
% Productions:
% V_103: 1.00
% V_102: 1.00
% Consumptions:
% V_101: 0.00
% V_99: 0.00
ll_backend.llds_out.llds_out_data.output_record_rvals_decls(Info, PseudoTypeInfos, V_99, V_102, V_101, V_103)
&
% conjunction: c18;c3;
% Cost: 1,135,200.00
% c18;c3;c1;
% det
% cost: 1.00 (not above threshold)
% 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)
,
% c18;c3;c2;
% det
% cost: 0.00 (not above threshold)
V_106 <= $closure_cons(Info)
,
% c18;c3;c3;
% det
% cost: 0.00 (not above threshold)
V_126 <= $type_ctor_info_const
,
% c18;c3;c4;
% det
% cost: 1,135,199.00 (above threshold)
% Consumptions:
% V_119: 0.00
% V_118: 0.00
list.foldl2(V_126, V_118, V_119, V_106, Modules, V_104, V_107, V_105, V_108)
)
Goals after:
% c19;
% det
% cost: 0.00 (not above threshold)
V_109 <= $closure_cons(Info)
,
% c20;
% det
% cost: 0.00 (not above threshold)
V_127 <= $type_ctor_info_const
,
% c21;
% det
% cost: 1.00 (not above threshold)
list.foldl(V_127, V_119, V_109, UserForeignCode, V_108, V_110)
,
% c22;
% det
% cost: 0.00 (not above threshold)
V_111 <= $closure_cons
,
% c23;
% det
% cost: 1.00 (not above threshold)
list.foldl(V_116, V_119, V_111, Exports, V_110, V_112)
,
% c24;
% det
% cost: 0.00 (not above threshold)
V_113 <= "
"
,
% c25;
% det
% cost: 1.00 (not above threshold)
io.write_string(V_113, V_112, V_114)
,
% c26;
% det
% cost: 1,642.00 (not above threshold)
ll_backend.llds_out.llds_out_file.output_c_module_init_list(Info, ModuleName, Modules, RttiDatas, ProcLayoutDatas, ModuleLayoutDatas, ComplexityProcs, TSStringTable, AllocSites, UserInitPredCNames, UserFinalPredCNames, V_107, V_53, V_114, V_115)
,
% c27;
% det
% cost: 1.00 (not above threshold)
io.set_output_stream(OutputStream, V_51, V_115, V_55)
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:
% s2-na;c3;
% det
% cost: 0.00 (not above threshold)
V_4 <= [|](Proc, Procs)
pred parse_tree.equiv_type.expand_eqv_types/10-0
Path:
Dependent: on EqvInstMap, EqvMap, RevItems
NumCalls: 1
SeqTime: 1,397,107.00
ParTime: 1,369,161.00
SparkCost: 200.00
BarrierCost: 300.00
SignalsCost: 300.00
WaitsCost: 600.00
ParOverheads total: 1,400.00
Speedup: 1.0204
Time saving: 27,946.00
First conj dead time: 1,344,965.00
Future dead time: 22,675.00
Total dead time: 1,367,640.00
Goals before:
% conjunction:
% Cost: 2.00
% c1;
% det
% cost: 0.00 (not above threshold)
V_24 <= $type_ctor_info_const
,
% c2;
% det
% cost: 0.00 (not above threshold)
V_25 <= $type_ctor_info_const
,
% c3;
% det
% cost: 1.00 (not above threshold)
map.init(V_24, V_25, EqvMap0)
,
% c4;
% det
% cost: 0.00 (not above threshold)
V_26 <= $type_ctor_info_const
,
% c5;
% det
% cost: 0.00 (not above threshold)
V_27 <= $type_ctor_info_const
,
% c6;
% det
% cost: 1.00 (not above threshold)
map.init(V_26, V_27, EqvInstMap0)
Parallel conjunction:
(
% c7;c1;
% 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: c7;c2;
% Cost: 1,366,653.00
% c7;c2;c1;
% det
% cost: 3.00 (not above threshold)
parse_tree.prog_data.used_modules_init(V_17)
,
% c7;c2;c2;
% det
% cost: 0.00 (not above threshold)
V_18 <= []
,
% c7;c2;c3;
% det
% cost: 0.00 (not above threshold)
V_19 <= eqv_type_out_of_module
,
% c7;c2;c4;
% det
% cost: 0.00 (not above threshold)
V_20 <= []
,
% c7;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: c7;c3;
% Cost: 7,458.00
% c7;c3;c1;
% det
% cost: 0.00 (not above threshold)
V_28 <= $type_ctor_info_const
,
% c7;c3;c2;
% det
% cost: 7,458.00 (above threshold)
% Consumptions:
% RevItems: 0.00
list.reverse(V_28, RevItems, Items)
)
Goals after:
% c8;
% det
% cost: 0.00 (not above threshold)
V_29 <= $type_ctor_info_const
,
% c9;
% det
% cost: 0.00 (not above threshold)
V_30 <= $type_ctor_info_const
,
% c10;
% det
% cost: 2.00 (not above threshold)
map.to_assoc_list(V_29, V_30, EventSpecMap0, EventSpecList0)
,
% c11;
% det
% cost: 1.00 (not above threshold)
parse_tree.equiv_type.replace_in_event_spec_list(EventSpecList0, EventSpecList, EqvMap, EqvInstMap, V_21, V_15, V_22, V_13, V_23, V_16)
,
% c12;
% det
% cost: 3.00 (not above threshold)
map.from_sorted_assoc_list(V_29, V_30, EventSpecList, EventSpecMap)
pred parse_tree.module_qual.module_qualify_items/13-0
Path:
Dependent: on V_23, V_24
NumCalls: 1
SeqTime: 116,927.00
ParTime: 106,072.41
SparkCost: 200.00
BarrierCost: 300.00
SignalsCost: 200.00
WaitsCost: 400.00
ParOverheads total: 1,100.00
Speedup: 1.1023
Time saving: 10,854.59
First conj dead time: 91,927.41
Future dead time: 77,329.14
Total dead time: 169,256.56
Goals before:
% conjunction:
% Cost: 0.00
% c1;
% det
% cost: 0.00 (not above threshold)
switch_can_not_fail_rep switch on MaybeFileName
(
% case no/0
% c1;s1-na;
% det
% cost: 0.00 (not above threshold)
ReportErrors <= no
;
% case yes/1
% c1;s2-na;
% det
% cost: 0.00 (not above threshold)
ReportErrors <= yes
)
Parallel conjunction:
(
% c2;c1;
% 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)
&
% c2;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)
&
% c2;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:
% c3;
% det
% cost: 0.00 (not above threshold)
V_28 <= $type_ctor_info_const
,
% c4;
% det
% cost: 0.00 (not above threshold)
V_29 <= $type_ctor_info_const
,
% c5;
% det
% cost: 2.00 (not above threshold)
map.to_assoc_list(V_28, V_29, EventSpecMap0, EventSpecList0)
,
% c6;
% det
% cost: 1.00 (not above threshold)
parse_tree.module_qual.do_module_qualify_event_specs(EventSpecFileName, EventSpecList0, EventSpecList, V_25, V_20, V_26, V_27)
,
% c7;
% det
% cost: 2.00 (not above threshold)
map.from_assoc_list(V_28, V_29, EventSpecList, EventSpecMap)
,
% c8;
% det
% cost: 0.00 (not above threshold)
V_20 => mq_info(V_32, V_33, V_34, V_35, V_36, V_37, V_38, V_39, V_40, V_41, V_42, V_43, V_44, UndefTypes, UndefModes, V_45, V_46, V_47, V_48, V_49)
,
% c9;
% det
% cost: 4.00 (not above threshold)
switch_can_not_fail_rep switch on MaybeFileName
(
% case no/0
% c9;s1-na;
% det
% cost: 0.00 (not above threshold)
V_22 := V_27
;
% case yes/1
% conjunction: c9;s2-na;
% conjunction: det
% conjunction: cost: 4.00 (not above threshold)
% c9;s2-na;c1;
% det
% cost: 0.00 (not above threshold)
MaybeFileName => yes(FileName)
,
% c9;s2-na;c2;
% det
% cost: 1.00 (not above threshold)
parse_tree.module_qual.mq_info_get_unused_interface_modules(V_20, UnusedImports0)
,
% c9;s2-na;c3;
% det
% cost: 1.00 (not above threshold)
parse_tree.module_qual.mq_info_get_exported_instances_flag(V_20, ModuleExportsInstances)
,
% c9;s2-na;c4;
% det
% cost: 0.00 (not above threshold)
switch_can_not_fail_rep switch on ModuleExportsInstances
(
% case no/0
% c9;s2-na;c4;s1-na;
% det
% cost: 0.00 (not above threshold)
UnusedImports1 := UnusedImports0
;
% case yes/0
% conjunction: c9;s2-na;c4;s2-na;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c9;s2-na;c4;s2-na;c1;
% det
% cost: 0.00 (not above threshold)
parse_tree.module_qual.mq_info_get_imported_instance_modules(V_20, InstanceImports)
,
% c9;s2-na;c4;s2-na;c2;
% det
% cost: 0.00 (not above threshold)
V_30 <= $type_ctor_info_const
,
% c9;s2-na;c4;s2-na;c3;
% det
% cost: 0.00 (not above threshold)
set.difference(V_30, UnusedImports0, InstanceImports, UnusedImports1)
)
,
% c9;s2-na;c5;
% det
% cost: 0.00 (not above threshold)
V_31 <= $type_ctor_info_const
,
% c9;s2-na;c6;
% det
% cost: 1.00 (not above threshold)
set.to_sorted_list(V_31, UnusedImports1, UnusedImports)
,
% c9;s2-na;c7;
% det
% cost: 1.00 (not above threshold)
parse_tree.module_qual.maybe_warn_unused_interface_imports(ModuleName, FileName, UnusedImports, V_27, V_22)
)
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
% c1;
% det
% cost: 0.00 (not above threshold)
V_12 <= yes
,
% c2;
% det
% cost: 0.00 (not above threshold)
V_13 <= []
Parallel conjunction:
(
% c3;c1;
% 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: c3;c2;
% Cost: 7,482.00
% c3;c2;c1;
% det
% cost: 0.00 (not above threshold)
% Consumptions:
% AccessibleSubModules: 0.00
V_7 <= $closure_cons(ModuleName, AccessibleSubModules, Items)
,
% c3;c2;c2;
% det
% cost: 0.00 (not above threshold)
V_8 <= $type_ctor_info_const
,
% c3;c2;c3;
% det
% cost: 0.00 (not above threshold)
V_10 <= $type_ctor_info_const
,
% c3;c2;c4;
% det
% cost: 0.00 (not above threshold)
V_9 <= $type_ctor_info_const
,
% c3;c2;c5;
% det
% cost: 0.00 (not above threshold)
V_11 <= $type_info_cell_constructor(V_10, V_9)
,
% c3;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,713.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,046.00
First conj dead time: 72,032.00
Future dead time: 69,484.00
Total dead time: 141,516.00
Goals before:
% conjunction: s2-na;c3;e;
% Cost: 1.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
,
% s2-na;c3;e;c4;
% det
% cost: 0.00 (not above threshold)
V_150 <= $type_ctor_info_const
,
% s2-na;c3;e;c5;
% det
% cost: 0.00 (not above threshold)
V_152 <= $type_info_cell_constructor(V_151, V_149, V_150)
,
% s2-na;c3;e;c6;
% det
% cost: 1.00 (not above threshold)
parse_tree.modules.maybe_return_timestamp(V_152, V_35, ReturnTimestamp)
,
% s2-na;c3;e;c7;
% det
% cost: 0.00 (not above threshold)
V_36 <= "Reading interface for module"
,
% s2-na;c3;e;c8;
% det
% cost: 0.00 (not above threshold)
V_37 <= do_search
Parallel conjunction:
(
% conjunction: s2-na;c3;e;c9;c1;
% Cost: 69,780.00
% s2-na;c3;e;c9;c1;c1;
% 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;c9;c1;c2;
% 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;c9;c1;c3;
% det
% cost: 242.00 (not above threshold)
parse_tree.modules.replace_section_decls(IntStatusItem, ImpStatusItem, LongIntItems0, LongIntItems)
,
% s2-na;c3;e;c9;c1;c4;
% det
% cost: 0.00 (not above threshold)
V_153 <= $type_ctor_info_const
,
% s2-na;c3;e;c9;c1;c5;
% det
% cost: 1.00 (not above threshold)
cord.from_list(V_153, LongIntItems, V_39)
,
% s2-na;c3;e;c9;c1;c6;
% 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;c9;c1;c7;
% 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;c9;c1;c8;
% 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;c9;c1;c9;
% det
% cost: 0.00 (not above threshold)
V_43 <= detailed_statistics
,
% s2-na;c3;e;c9;c1;c10;
% 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;c9;c2;
% Cost: 66.00
% s2-na;c3;e;c9;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;c9;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;c9;c2;c2;s1-na;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% s2-na;c3;e;c9;c2;c2;s1-na;c1;
% det
% cost: 0.00 (not above threshold)
ModImplementationImports := ModImplementationImports0
,
% s2-na;c3;e;c9;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;c9;c2;c2;s2-na;
% conjunction: det
% conjunction: cost: 17.00 (not above threshold)
% s2-na;c3;e;c9;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;c9;c2;c2;s2-na;c2;
% det
% cost: 0.00 (not above threshold)
ModImplementationImports <= [|](Import, ModImplementationImports0)
)
,
% s2-na;c3;e;c9;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;c9;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;c9;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;c9;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;c9;c2;c7;
% det
% cost: 0.00 (not above threshold)
% Productions:
% V_50: 0.00
scope (
% conjunction: s2-na;c3;e;c9;c2;c7;q;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% s2-na;c3;e;c9;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;c9;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;c9;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,467.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,029.00
First conj dead time: 22,326.00
Future dead time: 19,714.00
Total dead time: 42,040.00
Goals before:
% conjunction: s2-na;c3;e;e;
% Cost: 1.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
,
% s2-na;c3;e;e;c4;
% det
% cost: 0.00 (not above threshold)
V_108 <= $type_ctor_info_const
,
% s2-na;c3;e;e;c5;
% det
% cost: 0.00 (not above threshold)
V_110 <= $type_info_cell_constructor(V_109, V_107, V_108)
,
% s2-na;c3;e;e;c6;
% det
% cost: 1.00 (not above threshold)
parse_tree.modules.maybe_return_timestamp(V_110, V_32, ReturnTimestamp)
,
% s2-na;c3;e;e;c7;
% det
% cost: 0.00 (not above threshold)
V_33 <= ".int0"
,
% s2-na;c3;e;e;c8;
% det
% cost: 0.00 (not above threshold)
V_34 <= "Reading private interface for module"
,
% s2-na;c3;e;e;c9;
% det
% cost: 0.00 (not above threshold)
V_35 <= do_search
Parallel conjunction:
(
% conjunction: s2-na;c3;e;e;c10;c1;
% Cost: 19,740.00
% s2-na;c3;e;e;c10;c1;c1;
% 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;c10;c1;c2;
% det
% cost: 0.00 (not above threshold)
V_37 <= ".int0"
,
% s2-na;c3;e;e;c10;c1;c3;
% det
% cost: 0.00 (not above threshold)
V_38 <= may_be_unqualified
,
% s2-na;c3;e;e;c10;c1;c4;
% 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;c10;c1;c5;
% 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;c10;c1;c6;
% det
% cost: 0.00 (not above threshold)
V_111 <= $type_ctor_info_const
,
% s2-na;c3;e;e;c10;c1;c7;
% det
% cost: 1.00 (not above threshold)
% Consumptions:
% PrivateIntItems: 0.00
cord.from_list(V_111, PrivateIntItems, V_40)
,
% s2-na;c3;e;e;c10;c1;c8;
% 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;c10;c1;c9;
% 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;c10;c1;c10;
% 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;c10;c2;
% Cost: 89.00
% s2-na;c3;e;e;c10;c2;c1;
% det
% cost: 0.00 (not above threshold)
V_44 <= detailed_statistics
,
% s2-na;c3;e;e;c10;c2;c2;
% det
% cost: 11.00 (not above threshold)
libs.globals.lookup_bool_option(Globals, V_44, Statistics)
,
% s2-na;c3;e;e;c10;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;c10;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;c10;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;c10;c2;c4;s2-na;
% det
% cost: 0.00 (not above threshold)
ModAncestors <= [|](Ancestor, ModAncestors0)
)
,
% s2-na;c3;e;e;c10;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;c10;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;c10;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;c10;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;c10;c2;c8;q;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% s2-na;c3;e;e;c10;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;c10;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;c10;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,221.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,034.00
First conj dead time: 62,073,766.00
Future dead time: 27,749,180.00
Total dead time: 89,822,946.00
Goals before:
% conjunction:
% Cost: 22.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)
,
% c6;
% det
% cost: 1.00 (not above threshold)
bool.or(TypeCheckOnly, ErrorCheckOnly, DontWriteDFile)
Parallel conjunction:
(
% c7;c1;
% 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)
&
% c7;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)
&
% c7;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: c7;c3;?;
% conjunction: semidet
% conjunction: cost: 0.00 (not above threshold)
% c7;c3;?;c1;
% semidet
% cost: 0.00 (not above threshold)
% Consumptions:
% Errors1: 0.00
Errors1 => no
,
% c7;c3;?;c2;
% semidet
% cost: 0.00 (not above threshold)
% Consumptions:
% Errors2: 0.00
Errors2 => no
->
% conjunction: c7;c3;t;
% conjunction: det
% conjunction: cost: 47,719,052.00 (above threshold)
% c7;c3;t;c1;
% det
% cost: 0.00 (not above threshold)
V_44 <= verbose
,
% c7;c3;t;c2;
% det
% cost: 10.00 (not above threshold)
libs.globals.lookup_bool_option(Globals, V_44, Verbose)
,
% c7;c3;t;c3;
% det
% cost: 0.00 (not above threshold)
V_45 <= statistics
,
% c7;c3;t;c4;
% det
% cost: 9.00 (not above threshold)
libs.globals.lookup_bool_option(Globals, V_45, Stats)
,
% c7;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)
,
% c7;c3;t;c6;
% det
% cost: 0.00 (not above threshold)
V_47 <= make_optimization_interface
,
% c7;c3;t;c7;
% det
% cost: 10.00 (not above threshold)
libs.globals.lookup_bool_option(Globals, V_47, MakeOptInt)
,
% c7;c3;t;c8;
% det
% cost: 0.00 (not above threshold)
V_48 <= make_transitive_opt_interface
,
% c7;c3;t;c9;
% det
% cost: 11.00 (not above threshold)
libs.globals.lookup_bool_option(Globals, V_48, MakeTransOptInt)
,
% c7;c3;t;c10;
% det
% cost: 0.00 (not above threshold)
V_49 <= make_analysis_registry
,
% c7;c3;t;c11;
% det
% cost: 9.00 (not above threshold)
libs.globals.lookup_bool_option(Globals, V_49, MakeAnalysisRegistry)
,
% c7;c3;t;c12;
% det
% cost: 0.00 (not above threshold)
V_50 <= make_xml_documentation
,
% c7;c3;t;c13;
% det
% cost: 11.00 (not above threshold)
libs.globals.lookup_bool_option(Globals, V_50, MakeXmlDocumentation)
,
% c7;c3;t;c14;
% det
% cost: 47,718,979.00 (above threshold)
(
% c7;c3;t;c14;?;
% semidet
% cost: 0.00 (not above threshold)
TypeCheckOnly => yes
->
% conjunction: c7;c3;t;c14;t;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c7;c3;t;c14;t;c1;
% det
% cost: 0.00 (not above threshold)
ExtraObjFiles <= []
,
% c7;c3;t;c14;t;c2;
% det
% cost: 0.00 (not above threshold)
V_36 := V_46
,
% c7;c3;t;c14;t;c3;
% det
% cost: 0.00 (not above threshold)
V_32 := V_42
;
% c7;c3;t;c14;e;
% det
% cost: 47,718,979.00 (above threshold)
(
% c7;c3;t;c14;e;?;
% semidet
% cost: 0.00 (not above threshold)
ErrorCheckOnly => yes
->
% conjunction: c7;c3;t;c14;e;t;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c7;c3;t;c14;e;t;c1;
% det
% cost: 0.00 (not above threshold)
V_51 <= warn_unused_args
,
% c7;c3;t;c14;e;t;c2;
% det
% cost: 0.00 (not above threshold)
libs.globals.lookup_bool_option(Globals, V_51, UnusedArgs)
,
% c7;c3;t;c14;e;t;c3;
% det
% cost: 0.00 (not above threshold)
switch_can_not_fail_rep switch on UnusedArgs
(
% case no/0
% c7;c3;t;c14;e;t;c3;s1-na;
% det
% cost: 0.00 (not above threshold)
V_36 := V_46
;
% case yes/0
% conjunction: c7;c3;t;c14;e;t;c3;s2-na;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c7;c3;t;c14;e;t;c3;s2-na;c1;
% det
% cost: 0.00 (not above threshold)
V_52 <= optimize_unused_args
,
% c7;c3;t;c14;e;t;c3;s2-na;c2;
% det
% cost: 0.00 (not above threshold)
V_54 <= no
,
% c7;c3;t;c14;e;t;c3;s2-na;c3;
% det
% cost: 0.00 (not above threshold)
V_53 <= bool(V_54)
,
% c7;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)
,
% c7;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)
,
% c7;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)
)
,
% c7;c3;t;c14;e;t;c4;
% det
% cost: 0.00 (not above threshold)
ExtraObjFiles <= []
,
% c7;c3;t;c14;e;t;c5;
% det
% cost: 0.00 (not above threshold)
V_32 := V_42
;
% c7;c3;t;c14;e;e;
% det
% cost: 47,718,979.00 (above threshold)
(
% c7;c3;t;c14;e;e;?;
% semidet
% cost: 0.00 (not above threshold)
MakeOptInt => yes
->
% conjunction: c7;c3;t;c14;e;e;t;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c7;c3;t;c14;e;e;t;c1;
% det
% cost: 0.00 (not above threshold)
ExtraObjFiles <= []
,
% c7;c3;t;c14;e;e;t;c2;
% det
% cost: 0.00 (not above threshold)
V_36 := V_46
,
% c7;c3;t;c14;e;e;t;c3;
% det
% cost: 0.00 (not above threshold)
V_32 := V_42
;
% c7;c3;t;c14;e;e;e;
% det
% cost: 47,718,979.00 (above threshold)
(
% c7;c3;t;c14;e;e;e;?;
% semidet
% cost: 0.00 (not above threshold)
MakeTransOptInt => yes
->
% conjunction: c7;c3;t;c14;e;e;e;t;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c7;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)
,
% c7;c3;t;c14;e;e;e;t;c2;
% det
% cost: 0.00 (not above threshold)
ExtraObjFiles <= []
;
% c7;c3;t;c14;e;e;e;e;
% det
% cost: 47,718,979.00 (above threshold)
(
% c7;c3;t;c14;e;e;e;e;?;
% semidet
% cost: 0.00 (not above threshold)
MakeAnalysisRegistry => yes
->
% conjunction: c7;c3;t;c14;e;e;e;e;t;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c7;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)
,
% c7;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)
,
% c7;c3;t;c14;e;e;e;e;t;c3;
% det
% cost: 0.00 (not above threshold)
ExtraObjFiles <= []
;
% c7;c3;t;c14;e;e;e;e;e;
% det
% cost: 47,718,979.00 (above threshold)
(
% c7;c3;t;c14;e;e;e;e;e;?;
% semidet
% cost: 0.00 (not above threshold)
MakeXmlDocumentation => yes
->
% conjunction: c7;c3;t;c14;e;e;e;e;e;t;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c7;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)
,
% c7;c3;t;c14;e;e;e;e;e;t;c2;
% det
% cost: 0.00 (not above threshold)
ExtraObjFiles <= []
,
% c7;c3;t;c14;e;e;e;e;e;t;c3;
% det
% cost: 0.00 (not above threshold)
V_32 := V_42
;
% conjunction: c7;c3;t;c14;e;e;e;e;e;e;
% conjunction: det
% conjunction: cost: 47,718,979.00 (above threshold)
% c7;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)
,
% c7;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: c7;c3;e;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c7;c3;e;c1;
% det
% cost: 0.00 (not above threshold)
io.get_exit_status(ExitStatus, V_43, V_57)
,
% c7;c3;e;c2;
% det
% cost: 0.00 (not above threshold)
(
% c7;c3;e;c2;?;
% semidet
% cost: 0.00 (not above threshold)
ExitStatus => 0
->
% conjunction: c7;c3;e;c2;t;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c7;c3;e;c2;t;c1;
% det
% cost: 0.00 (not above threshold)
V_58 <= 1
,
% c7;c3;e;c2;t;c2;
% det
% cost: 0.00 (not above threshold)
io.set_exit_status(V_58, V_57, V_36)
;
% c7;c3;e;c2;e;
% det
% cost: 0.00 (not above threshold)
V_36 := V_57
)
,
% c7;c3;e;c3;
% det
% cost: 0.00 (not above threshold)
ExtraObjFiles <= []
,
% c7;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,878.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,758.00
First conj dead time: 20,526,333.00
Future dead time: 262,842.00
Total dead time: 20,789,175.00
Goals before:
% conjunction: c4;s1-na;
% Cost: 2.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)
,
% c4;s1-na;c2;
% det
% cost: 0.00 (not above threshold)
V_25 <= "% Post-processing type definitions...
"
,
% c4;s1-na;c3;
% det
% cost: 1.00 (not above threshold)
libs.file_util.maybe_write_string(Verbose, V_25, V_24, V_26)
Parallel conjunction:
(
% conjunction: c4;s1-na;c4;c1;
% Cost: 263,843.00
% c4;s1-na;c4;c1;c1;
% 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;c4;c1;c2;
% det
% cost: 2.00 (not above threshold)
% Consumptions:
% PostTypeSpecs: 0.00
parse_tree.error_util.contains_errors(Globals, PostTypeSpecs, PostTypeErrors)
,
% c4;s1-na;c4;c1;c3;
% det
% cost: 1.00 (not above threshold)
% Productions:
% V_28: 0.00
bool.or(PostTypeErrors, V_11, V_28)
,
% c4;s1-na;c4;c1;c4;
% det
% cost: 0.00 (not above threshold)
V_29 <= 3
,
% c4;s1-na;c4;c1;c5;
% det
% cost: 0.00 (not above threshold)
V_30 <= "typedefn"
,
% c4;s1-na;c4;c1;c6;
% 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;c4;c1;c7;
% det
% cost: 0.00 (not above threshold)
V_33 <= "% Checking typeclasses...
"
,
% c4;s1-na;c4;c1;c8;
% 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;c4;c1;c9;
% det
% cost: 0.00 (not above threshold)
V_36 <= []
,
% c4;s1-na;c4;c1;c10;
% 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;c4;c2;
% det
% cost: 0.00 (not above threshold)
% Productions:
% V_48: 1.00
V_48 <= $type_ctor_info_const
&
% conjunction: c4;s1-na;c4;c3;
% Cost: 115.00
% c4;s1-na;c4;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;c4;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;c4;c3;c3;
% det
% cost: 0.00 (not above threshold)
V_39 <= 5
,
% c4;s1-na;c4;c3;c4;
% det
% cost: 0.00 (not above threshold)
V_40 <= "typeclass"
,
% c4;s1-na;c4;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;c4;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;c4;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;c4;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;c4;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;c4;c4;s2-na;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c4;s1-na;c4;c4;s2-na;c1;
% det
% cost: 0.00 (not above threshold)
V_12 <= yes
,
% c4;s1-na;c4;c4;s2-na;c2;
% det
% cost: 0.00 (not above threshold)
V_14 := V_43
,
% c4;s1-na;c4;c4;s2-na;c3;
% det
% cost: 0.00 (not above threshold)
V_16 := V_41
,
% c4;s1-na;c4;c4;s2-na;c4;
% det
% cost: 0.00 (not above threshold)
V_18 := V_37
,
% c4;s1-na;c4;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,374,139.00
ParTime: 11,318,763.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,376.00
First conj dead time: 9,257,563.00
Future dead time: 5,975,552.00
Total dead time: 15,233,115.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,355.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,250.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,250.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:
% c7;
% det
% cost: 0.00 (not above threshold)
V_101 <= 99
,
% c8;
% det
% cost: 0.00 (not above threshold)
V_102 <= "front_end"
,
% c9;
% det
% cost: 105.00 (not above threshold)
hlds.passes_aux.maybe_dump_hlds(V_13, V_101, V_102, V_96, V_15, V_100, V_19)
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,226.00
ParTime: 7,398,250.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,622.00
Total dead time: 11,206,986.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:
% c22;s1-na;c2;
% det
% cost: 0.00 (not above threshold)
V_94 <= 65
,
% c22;s1-na;c3;
% det
% cost: 0.00 (not above threshold)
V_95 <= "frontend_simplify"
,
% c22;s1-na;c4;
% 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)
,
% c22;s1-na;c5;
% det
% cost: 0.00 (not above threshold)
V_98 <= "AfterFrontEnd"
,
% c22;s1-na;c6;
% 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)
,
% c22;s1-na;c7;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_module.module_info_get_num_errors(V_13, NumErrors)
,
% c22;s1-na;c8;
% det
% cost: 1.00 (not above threshold)
io.get_exit_status(ExitStatus, V_99, V_100)
,
% c22;s1-na;c9;
% det
% cost: 0.00 (not above threshold)
(
% conjunction: c22;s1-na;c9;?;
% conjunction: semidet
% conjunction: cost: 0.00 (not above threshold)
% c22;s1-na;c9;?;c1;
% semidet
% cost: 0.00 (not above threshold)
FoundModeError => no
,
% c22;s1-na;c9;?;c2;
% semidet
% cost: 0.00 (not above threshold)
FoundUniqError => no
,
% c22;s1-na;c9;?;c3;
% semidet
% cost: 0.00 (not above threshold)
FoundStratError => no
,
% c22;s1-na;c9;?;c4;
% semidet
% cost: 0.00 (not above threshold)
FoundTryError => no
,
% c22;s1-na;c9;?;c5;
% semidet
% cost: 0.00 (not above threshold)
NumErrors => 0
,
% c22;s1-na;c9;?;c6;
% semidet
% cost: 0.00 (not above threshold)
ExitStatus => 0
->
% c22;s1-na;c9;t;
% det
% cost: 0.00 (not above threshold)
FoundError <= no
;
% c22;s1-na;c9;e;
% det
% cost: 0.00 (not above threshold)
FoundError <= yes
)
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,731.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,881.00
First conj dead time: 9,374.00
Future dead time: 92,852.00
Total dead time: 102,226.00
Goals before:
% conjunction:
% Cost: 3.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)
,
% c3;
% det
% cost: 0.00 (not above threshold)
V_28 <= $type_ctor_info_const
,
% c4;
% det
% cost: 1.00 (not above threshold)
queue.init(V_28, V_16)
,
% c5;
% det
% cost: 0.00 (not above threshold)
V_29 <= $type_ctor_info_const
,
% c6;
% det
% cost: 1.00 (not above threshold)
map.init(V_28, V_29, V_17)
Parallel conjunction:
(
% conjunction: c7;c1;
% Cost: 92,854.00
% c7;c1;c1;
% 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)
,
% c7;c1;c2;
% det
% cost: 2.00 (not above threshold)
% Consumptions:
% V_4: 0.00
hlds.hlds_module.module_info_get_preds(V_4, PredTable)
,
% c7;c1;c3;
% 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)
,
% c7;c1;c4;
% det
% cost: 1.00 (not above threshold)
% Consumptions:
% V_4: 0.00
hlds.hlds_module.module_info_get_pragma_exported_procs(V_4, PragmaExports)
,
% c7;c1;c5;
% 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)
,
% c7;c1;c6;
% det
% cost: 4.00 (not above threshold)
% Consumptions:
% V_4: 0.00
hlds.hlds_module.module_info_user_init_pred_procs(V_4, InitProcs)
,
% c7;c1;c7;
% 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)
,
% c7;c1;c8;
% det
% cost: 4.00 (not above threshold)
% Consumptions:
% V_4: 0.00
hlds.hlds_module.module_info_user_final_pred_procs(V_4, FinalPreds)
,
% c7;c1;c9;
% 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)
,
% c7;c1;c10;
% 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)
,
% c7;c1;c11;
% 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)
,
% c7;c1;c12;
% 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)
,
% c7;c1;c13;
% 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)
&
% c7;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)
&
% c7;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,412.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,472.00
First conj dead time: 9,464.00
Future dead time: 92,443.00
Total dead time: 101,907.00
Goals before:
% conjunction:
% Cost: 3.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)
,
% c3;
% det
% cost: 0.00 (not above threshold)
V_28 <= $type_ctor_info_const
,
% c4;
% det
% cost: 1.00 (not above threshold)
queue.init(V_28, V_16)
,
% c5;
% det
% cost: 0.00 (not above threshold)
V_29 <= $type_ctor_info_const
,
% c6;
% det
% cost: 1.00 (not above threshold)
map.init(V_28, V_29, V_17)
Parallel conjunction:
(
% conjunction: c7;c1;
% Cost: 92,445.00
% c7;c1;c1;
% 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)
,
% c7;c1;c2;
% det
% cost: 2.00 (not above threshold)
% Consumptions:
% V_4: 0.00
hlds.hlds_module.module_info_get_preds(V_4, PredTable)
,
% c7;c1;c3;
% 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)
,
% c7;c1;c4;
% det
% cost: 1.00 (not above threshold)
% Consumptions:
% V_4: 0.00
hlds.hlds_module.module_info_get_pragma_exported_procs(V_4, PragmaExports)
,
% c7;c1;c5;
% 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)
,
% c7;c1;c6;
% det
% cost: 4.00 (not above threshold)
% Consumptions:
% V_4: 0.00
hlds.hlds_module.module_info_user_init_pred_procs(V_4, InitProcs)
,
% c7;c1;c7;
% 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)
,
% c7;c1;c8;
% det
% cost: 4.00 (not above threshold)
% Consumptions:
% V_4: 0.00
hlds.hlds_module.module_info_user_final_pred_procs(V_4, FinalPreds)
,
% c7;c1;c9;
% 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)
,
% c7;c1;c10;
% 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)
,
% c7;c1;c11;
% 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)
,
% c7;c1;c12;
% 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)
,
% c7;c1;c13;
% 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)
&
% c7;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)
&
% c7;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,224.00
ParTime: 193,945.00
SparkCost: 200.00
BarrierCost: 300.00
SignalsCost: 400.00
WaitsCost: 800.00
ParOverheads total: 1,700.00
Speedup: 1.5428
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:
% c2;
% det
% cost: 0.00 (not above threshold)
ProcElimInfo => proc_elim_info(V_19, V_20, PredTable, Changed, Specs)
,
% c3;
% det
% cost: 2.00 (not above threshold)
hlds.hlds_module.module_info_set_preds(PredTable, V_20, V_21)
,
% c4;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_module.module_info_get_type_ctor_gen_infos(V_21, TypeCtorGenInfos0)
,
% c5;
% det
% cost: 127.00 (not above threshold)
transform_hlds.dead_proc_elim.dead_proc_eliminate_type_ctor_infos(TypeCtorGenInfos0, V_19, TypeCtorGenInfos)
,
% c6;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_module.module_info_set_type_ctor_gen_infos(TypeCtorGenInfos, V_21, V_22)
,
% c7;
% det
% cost: 1.00 (not above threshold)
switch_can_not_fail_rep switch on Changed
(
% case no/0
% c7;s1-na;
% det
% cost: 0.00 (not above threshold)
V_5 := V_22
;
% case yes/0
% c7;s2-na;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_module.module_info_clobber_dependency_info(V_22, V_5)
)
pred transform_hlds.dependency_graph.build_dependency_graph/4-0
Path:
Dependent: on DepGraph, DepGraph1
NumCalls: 1
SeqTime: 272,685.00
ParTime: 262,283.00
SparkCost: 200.00
BarrierCost: 300.00
SignalsCost: 200.00
WaitsCost: 400.00
ParOverheads total: 1,100.00
Speedup: 1.0397
Time saving: 10,402.00
First conj dead time: 150,755.00
Future dead time: 260,217.00
Total dead time: 410,972.00
Goals before:
% conjunction:
% Cost: 2.00
% c1;
% det
% cost: 0.00 (not above threshold)
PolyConst1 <= 1
,
% c2;
% det
% cost: 1.00 (not above threshold)
private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_15)
,
% c3;
% det
% cost: 1.00 (not above threshold)
digraph.init(V_15, DepGraph0)
Parallel conjunction:
(
% c4;c1;
% det
% cost: 110,166.00 (above threshold)
% Productions:
% DepGraph1: 110,166.00
method 1 of V_13((PredIds, ModuleInfo, Imported, DepGraph0, DepGraph1))
&
% c4;c2;
% 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))
&
% conjunction: c4;c3;
% Cost: 12,602.00
% c4;c3;c1;
% det
% cost: 1.00 (not above threshold)
private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_16)
,
% c4;c3;c2;
% det
% cost: 2.00 (not above threshold)
hlds.hlds_module.hlds_dependency_info_init(V_16, V_10)
,
% c4;c3;c3;
% det
% cost: 1.00 (not above threshold)
private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_17)
,
% c4;c3;c4;
% 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)
,
% c4;c3;c5;
% det
% cost: 1.00 (not above threshold)
private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_18)
,
% c4;c3;c6;
% det
% cost: 12,596.00 (above threshold)
% Consumptions:
% DepGraph: 0.00
digraph.atsort(V_18, DepGraph, DepOrd0)
)
Goals after:
% c5;
% det
% cost: 0.00 (not above threshold)
V_12 <= []
,
% c6;
% det
% cost: 1.00 (not above threshold)
private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_19)
,
% c7;
% det
% cost: 257.00 (not above threshold)
transform_hlds.dependency_graph.sets_to_lists(V_19, DepOrd0, V_12, DepOrd)
,
% c8;
% det
% cost: 1.00 (not above threshold)
private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_20)
,
% c9;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_module.hlds_dependency_info_set_dependency_ordering(V_20, DepOrd, V_11, V_9)
Path:
Dependent: on DepGraph, DepGraph1
NumCalls: 1
SeqTime: 265,199.00
ParTime: 253,985.00
SparkCost: 200.00
BarrierCost: 300.00
SignalsCost: 200.00
WaitsCost: 400.00
ParOverheads total: 1,100.00
Speedup: 1.0442
Time saving: 11,214.00
First conj dead time: 142,717.00
Future dead time: 251,923.00
Total dead time: 394,640.00
Goals before:
% conjunction:
% Cost: 2.00
% c1;
% det
% cost: 0.00 (not above threshold)
PolyConst1 <= 1
,
% c2;
% det
% cost: 1.00 (not above threshold)
private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_15)
,
% c3;
% det
% cost: 1.00 (not above threshold)
digraph.init(V_15, DepGraph0)
Parallel conjunction:
(
% c4;c1;
% det
% cost: 109,910.00 (above threshold)
% Productions:
% DepGraph1: 109,910.00
method 1 of V_13((PredIds, ModuleInfo, Imported, DepGraph0, DepGraph1))
&
% c4;c2;
% 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))
&
% conjunction: c4;c3;
% Cost: 13,414.00
% c4;c3;c1;
% det
% cost: 1.00 (not above threshold)
private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_16)
,
% c4;c3;c2;
% det
% cost: 2.00 (not above threshold)
hlds.hlds_module.hlds_dependency_info_init(V_16, V_10)
,
% c4;c3;c3;
% det
% cost: 1.00 (not above threshold)
private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_17)
,
% c4;c3;c4;
% 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)
,
% c4;c3;c5;
% det
% cost: 1.00 (not above threshold)
private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_18)
,
% c4;c3;c6;
% det
% cost: 13,408.00 (above threshold)
% Consumptions:
% DepGraph: 0.00
digraph.atsort(V_18, DepGraph, DepOrd0)
)
Goals after:
% c5;
% det
% cost: 0.00 (not above threshold)
V_12 <= []
,
% c6;
% det
% cost: 1.00 (not above threshold)
private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_19)
,
% c7;
% det
% cost: 253.00 (not above threshold)
transform_hlds.dependency_graph.sets_to_lists(V_19, DepOrd0, V_12, DepOrd)
,
% c8;
% det
% cost: 1.00 (not above threshold)
private_builtin.type_info_from_typeclass_info(V_13, PolyConst1, V_20)
,
% c9;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_module.hlds_dependency_info_set_dependency_ordering(V_20, DepOrd, V_11, V_9)
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,068.00
ParTime: 165,582.00
SparkCost: 100.00
BarrierCost: 200.00
SignalsCost: 100.00
WaitsCost: 200.00
ParOverheads total: 600.00
Speedup: 1.4136
Time saving: 68,486.00
First conj dead time: 0.00
Future dead time: 36,467.00
Total dead time: 36,467.00
Goals before:
% conjunction:
% Cost: 6.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)
,
% c3;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_data.inst_table_get_ground_insts(V_15, GroundInsts0)
,
% c4;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_data.inst_table_get_any_insts(V_15, AnyInsts0)
,
% c5;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_data.inst_table_get_shared_insts(V_15, SharedInsts0)
,
% c6;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_data.inst_table_get_mostly_uniq_insts(V_15, MostlyUniqInsts0)
,
% c7;
% det
% cost: 0.00 (not above threshold)
V_19 <= $closure_cons(EqvMap)
,
% c8;
% det
% cost: 0.00 (not above threshold)
V_30 <= $type_ctor_info_const
Parallel conjunction:
(
% c9;c1;
% 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)
&
% c9;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:
% c10;
% det
% cost: 6.00 (not above threshold)
transform_hlds.equiv_type_hlds.replace_in_inst_table(V_30, V_19, EqvMap, GroundInsts0, GroundInsts, V_21, V_22)
,
% c11;
% det
% cost: 6.00 (not above threshold)
transform_hlds.equiv_type_hlds.replace_in_inst_table(V_30, V_19, EqvMap, AnyInsts0, AnyInsts, V_22, V_23)
,
% c12;
% det
% cost: 0.00 (not above threshold)
V_24 <= $closure_cons(EqvMap)
,
% c13;
% det
% cost: 0.00 (not above threshold)
V_31 <= $type_ctor_info_const
,
% c14;
% det
% cost: 6.00 (not above threshold)
transform_hlds.equiv_type_hlds.replace_in_inst_table(V_31, V_24, EqvMap, SharedInsts0, SharedInsts, V_23, V_18)
,
% c15;
% det
% cost: 6.00 (not above threshold)
transform_hlds.equiv_type_hlds.replace_in_inst_table(V_31, V_24, EqvMap, MostlyUniqInsts0, MostlyUniqInsts, V_18, V_14)
,
% c16;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_data.inst_table_set_unify_insts(UnifyInsts, V_15, V_25)
,
% c17;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_data.inst_table_set_merge_insts(MergeInsts, V_25, V_26)
,
% c18;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_data.inst_table_set_ground_insts(GroundInsts, V_26, V_27)
,
% c19;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_data.inst_table_set_any_insts(AnyInsts, V_27, V_28)
,
% c20;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_data.inst_table_set_shared_insts(SharedInsts, V_28, V_29)
,
% c21;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_data.inst_table_set_mostly_uniq_insts(MostlyUniqInsts, V_29, V_16)
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,502.00
ParTime: 182,852.00
SparkCost: 200.00
BarrierCost: 300.00
SignalsCost: 500.00
WaitsCost: 1,000.00
ParOverheads total: 2,000.00
Speedup: 1.4247
Time saving: 77,650.00
First conj dead time: 100,402.00
Future dead time: 106,803.00
Total dead time: 207,205.00
Goals before:
% conjunction: c13;s2-na;
% Cost: 1.00
% c13;s2-na;c1;
% det
% cost: 0.00 (not above threshold)
V_34 <= $type_ctor_info_const
,
% c13;s2-na;c2;
% det
% cost: 1.00 (not above threshold)
set.init(V_34, V_13)
,
% c13;s2-na;c3;
% det
% cost: 0.00 (not above threshold)
V_14 <= []
Parallel conjunction:
(
% conjunction: c13;s2-na;c4;c1;
% Cost: 81,148.00
% c13;s2-na;c4;c1;c1;
% 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;c4;c1;c2;
% det
% cost: 0.00 (not above threshold)
% Consumptions:
% V_16: 0.00
V_17 <= $closure_cons(V_16)
,
% c13;s2-na;c4;c1;c3;
% det
% cost: 0.00 (not above threshold)
V_35 <= $type_ctor_info_const
,
% c13;s2-na;c4;c1;c4;
% det
% cost: 0.00 (not above threshold)
V_36 <= $type_ctor_info_const
,
% c13;s2-na;c4;c1;c5;
% det
% cost: 0.00 (not above threshold)
V_37 <= $type_info_cell_constructor(V_36, V_34)
,
% c13;s2-na;c4;c1;c6;
% 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;c4;c2;
% Cost: 25,258.00
% c13;s2-na;c4;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;c4;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;c4;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:
% c13;s2-na;c5;
% det
% cost: 1.00 (not above threshold)
switch_can_not_fail_rep switch on NewPredList
(
% case []/0
% c13;s2-na;c5;s1-na;
% det
% cost: 0.00 (not above threshold)
V_8 := V_20
;
% case [|]/2
% conjunction: c13;s2-na;c5;s2-na;
% conjunction: det
% conjunction: cost: 1.00 (not above threshold)
% c13;s2-na;c5;s2-na;c1;
% det
% cost: 0.00 (not above threshold)
V_20 => higher_order_global_info(V_21, V_22, V_23, ModuleInfo0, V_24, V_25, V_26)
,
% c13;s2-na;c5;s2-na;c2;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_module.module_info_clobber_dependency_info(ModuleInfo0, ModuleInfo)
,
% c13;s2-na;c5;s2-na;c3;
% det
% cost: 0.00 (not above threshold)
scope (
% conjunction: c13;s2-na;c5;s2-na;c3;q;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c13;s2-na;c5;s2-na;c3;q;c1;
% det
% cost: 0.00 (not above threshold)
V_20 => higher_order_global_info(V_27, V_28, V_29, V_30, V_31, V_32, V_33)
,
% c13;s2-na;c5;s2-na;c3;q;c2;
% det
% cost: 0.00 (not above threshold)
V_8 <= higher_order_global_info(V_27, V_28, V_29, ModuleInfo, V_31, V_32, V_33)
)
)
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,435.00
Total dead time: 1,186,435.00
Goals before:
% conjunction:
% Cost: 59.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
,
% c19;
% det
% cost: 0.00 (not above threshold)
V_75 <= $type_ctor_info_const
,
% c20;
% det
% cost: 1.00 (not above threshold)
map.init(V_74, V_75, GoalSizes0)
,
% c21;
% det
% cost: 0.00 (not above threshold)
V_76 <= $type_ctor_info_const
,
% c22;
% det
% cost: 1.00 (not above threshold)
set.init(V_76, Requests0)
,
% c23;
% det
% cost: 0.00 (not above threshold)
V_77 <= $type_ctor_info_const
,
% c24;
% det
% cost: 1.00 (not above threshold)
map.init(V_70, V_77, VersionInfo0)
,
% c25;
% det
% cost: 0.00 (not above threshold)
V_33 <= 1
,
% c26;
% det
% cost: 1.00 (not above threshold)
counter.init(V_33, V_32)
,
% c27;
% det
% cost: 0.00 (not above threshold)
V_31 <= higher_order_global_info(Requests0, NewPreds0, VersionInfo0, V_22, GoalSizes0, Params, V_32)
,
% c28;
% det
% cost: 2.00 (not above threshold)
hlds.hlds_module.module_info_get_valid_predids(PredIds0, V_22, V_34)
,
% c29;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_module.module_info_get_type_spec_info(V_34, TypeSpecInfo)
,
% c30;
% det
% cost: 0.00 (not above threshold)
TypeSpecInfo => type_spec_info(V_14, UserSpecPreds, V_16, V_17)
Parallel conjunction:
(
% conjunction: c31;c1;
% Cost: 1,105,763.00
% c31;c1;c1;
% det
% cost: 315,749.00 (above threshold)
% Productions:
% UserSpecPredList: 80,772.00
(
% c31;c1;c1;?;
% semidet
% cost: 1.00 (not above threshold)
set.empty(V_74, UserSpecPreds)
->
% conjunction: c31;c1;c1;t;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c31;c1;c1;t;c1;
% det
% cost: 0.00 (not above threshold)
PredIds := PredIds0
,
% c31;c1;c1;t;c2;
% det
% cost: 0.00 (not above threshold)
UserSpecPredList <= []
,
% c31;c1;c1;t;c3;
% det
% cost: 0.00 (not above threshold)
V_41 := V_31
,
% c31;c1;c1;t;c4;
% det
% cost: 0.00 (not above threshold)
V_42 := V_24
;
% conjunction: c31;c1;c1;e;
% conjunction: det
% conjunction: cost: 315,748.00 (above threshold)
% c31;c1;c1;e;c1;
% det
% cost: 72,705.00 (above threshold)
set.list_to_set(V_74, PredIds0, PredIdSet0)
,
% c31;c1;c1;e;c2;
% det
% cost: 8,066.00 (above threshold)
set.difference(V_74, PredIdSet0, UserSpecPreds, PredIdSet)
,
% c31;c1;c1;e;c3;
% det
% cost: 1.00 (not above threshold)
set.to_sorted_list(V_74, PredIdSet, PredIds)
,
% c31;c1;c1;e;c4;
% det
% cost: 1.00 (not above threshold)
% Productions:
% UserSpecPredList: 0.00
set.to_sorted_list(V_74, UserSpecPreds, UserSpecPredList)
,
% c31;c1;c1;e;c5;
% det
% cost: 0.00 (not above threshold)
V_36 <= yes
,
% c31;c1;c1;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)
,
% c31;c1;c1;e;c7;
% det
% cost: 0.00 (not above threshold)
scope (
% conjunction: c31;c1;c1;e;c7;q;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c31;c1;c1;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)
,
% c31;c1;c1;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)
)
,
% c31;c1;c1;e;c8;
% det
% cost: 0.00 (not above threshold)
scope (
% c31;c1;c1;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)
)
,
% c31;c1;c1;e;c9;
% det
% cost: 0.00 (not above threshold)
V_39 <= $closure_cons
,
% c31;c1;c1;e;c10;
% det
% cost: 0.00 (not above threshold)
V_78 <= $type_ctor_info_const
,
% c31;c1;c1;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)
,
% c31;c1;c1;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)
)
,
% c31;c1;c2;
% det
% cost: 790,014.00 (above threshold)
% Productions:
% V_50: 790,014.00
(
% conjunction: c31;c1;c2;?;
% conjunction: semidet
% conjunction: cost: 1.00 (not above threshold)
% c31;c1;c2;?;c1;
% det
% cost: 0.00 (not above threshold)
V_47 <= []
,
% c31;c1;c2;?;c2;
% det
% cost: 0.00 (not above threshold)
V_46 <= [|](UserTypeSpec, V_47)
,
% c31;c1;c2;?;c3;
% det
% cost: 0.00 (not above threshold)
V_45 <= [|](TypeSpec, V_46)
,
% c31;c1;c2;?;c4;
% det
% cost: 0.00 (not above threshold)
V_43 <= [|](HigherOrder, V_45)
,
% c31;c1;c2;?;c5;
% det
% cost: 0.00 (not above threshold)
V_44 <= yes
,
% c31;c1;c2;?;c6;
% det
% cost: 1.00 (not above threshold)
bool.or_list(V_43, V_81)
,
% c31;c1;c2;?;c7;
% semidet
% cost: 0.00 (not above threshold)
V_81 == V_44
->
% conjunction: c31;c1;c2;t;
% conjunction: det
% conjunction: cost: 790,013.00 (above threshold)
% c31;c1;c2;t;c1;
% det
% cost: 0.00 (not above threshold)
V_48 <= $closure_cons
,
% c31;c1;c2;t;c2;
% det
% cost: 0.00 (not above threshold)
V_79 <= $type_ctor_info_const
,
% c31;c1;c2;t;c3;
% det
% cost: 790,011.00 (above threshold)
list.foldl(V_74, V_79, V_48, PredIds, V_41, V_49)
,
% c31;c1;c2;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: c31;c1;c2;e;
% conjunction: det
% conjunction: cost: 0.00 (not above threshold)
% c31;c1;c2;e;c1;
% det
% cost: 0.00 (not above threshold)
V_50 := V_41
,
% c31;c1;c2;e;c2;
% det
% cost: 0.00 (not above threshold)
V_25 := V_42
)
&
% conjunction: c31;c2;
% Cost: 0.00
% c31;c2;c1;
% det
% cost: 0.00 (not above threshold)
% Productions:
% V_51: 1.00
V_51 <= $closure_cons
,
% c31;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: c31;c3;
% Cost: 317,572.00
% c31;c3;c1;
% det
% cost: 0.00 (not above threshold)
V_80 <= $type_ctor_info_const
,
% c31;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,791.00
ParTime: 1,230,405.00
SparkCost: 200.00
BarrierCost: 300.00
SignalsCost: 300.00
WaitsCost: 600.00
ParOverheads total: 1,400.00
Speedup: 1.1539
Time saving: 189,386.00
First conj dead time: 1,036,245.00
Future dead time: 458,488.00
Total dead time: 1,494,733.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:
% c21;
% det
% cost: 1.00 (not above threshold)
hlds.hlds_module.module_info_clobber_dependency_info(V_30, V_18)
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
% c1;
% det
% cost: 0.00 (not above threshold)
V_7 <= no
Parallel conjunction:
(
% c2;c1;
% 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)
&
% c2;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
% c2;c2;s1-na;
% det
% cost: 0.00 (not above threshold)
% Consumptions:
% V_8: 0.00
V_6 := V_8
;
% case yes/0
% conjunction: c2;c2;s2-na;
% conjunction: det
% conjunction: cost: 77,078.60 (above threshold)
% c2;c2;s2-na;c1;
% det
% cost: 0.00 (not above threshold)
V_10 <= 1
,
% c2;c2;s2-na;c2;
% det
% cost: 0.00 (not above threshold)
builtin int.+(PassNum, V_10, V_9)
,
% c2;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: