mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-06 07:49:02 +00:00
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.
10143 lines
305 KiB
Plaintext
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:
|
|
|