[m-rev.] for post-commit review: more enhancements of potentional parallelism
Zoltan Somogyi
zs at csse.unimelb.edu.au
Mon Aug 23 17:37:12 AEST 2010
Avoid more dependencies between the processing of different procedures
when the compiler is executed in parallel.
compiler/accumulator.m:
Instead of printing out error messages here, pass error_specs back
to the top level.
compiler/complexity.m:
Use trace goals to print progress messages.
compiler/passes_aux.m:
Add the traversal type now needed by accumulator.m, and remove others
that are no longer needed. Since now NO task needs I/O states, make
the traversal predicates not take I/O state pair arguments any more.
compiler/deforest.m:
compiler/mercury_compile_llds_back_end.m:
compiler/mercury_compile_mlds_back_end.m:
compiler/mercury_compile_middle_passes.m:
compiler/ssdebug.m:
compiler/structure_reuse.analysis.m:
compiler/structure_sharing.analysis.m:
Conform to the changes in passes_aux.m and in accumulator.m.
compiler/error_util.m:
compiler/pd_util.m:
Style fixes.
tests/warnings/arg_order_rearrangement.exp:
Expect the new and improved warning message.
tests/warnings/arg_order_rearrangement.exp2:
Mark this file as not an expected output, since a part of it
doesn't seem to be ever generated by the compiler anymore.
Zoltan.
cvs diff: Diffing .
cvs diff: Diffing analysis
cvs diff: Diffing bindist
cvs diff: Diffing boehm_gc
cvs diff: Diffing boehm_gc/Mac_files
cvs diff: Diffing boehm_gc/cord
cvs diff: Diffing boehm_gc/cord/private
cvs diff: Diffing boehm_gc/doc
cvs diff: Diffing boehm_gc/extra
cvs diff: Diffing boehm_gc/include
cvs diff: Diffing boehm_gc/include/extra
cvs diff: Diffing boehm_gc/include/private
cvs diff: Diffing boehm_gc/libatomic_ops
cvs diff: Diffing boehm_gc/libatomic_ops/doc
cvs diff: Diffing boehm_gc/libatomic_ops/src
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/armcc
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/gcc
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/hpc
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/ibmc
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/icc
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/msftc
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/sunc
cvs diff: Diffing boehm_gc/libatomic_ops/tests
cvs diff: Diffing boehm_gc/libatomic_ops-1.2
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/doc
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops/sysdeps
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/tests
cvs diff: Diffing boehm_gc/m4
cvs diff: Diffing boehm_gc/tests
cvs diff: Diffing browser
cvs diff: Diffing bytecode
cvs diff: Diffing compiler
Index: compiler/accumulator.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/accumulator.m,v
retrieving revision 1.78
diff -u -b -r1.78 accumulator.m
--- compiler/accumulator.m 5 Aug 2010 03:07:08 -0000 1.78
+++ compiler/accumulator.m 5 Aug 2010 08:56:11 -0000
@@ -148,11 +148,16 @@
:- import_module hlds.hlds_module.
:- import_module hlds.hlds_pred.
-:- import_module io.
+:- import_module univ.
-:- pred accumulator.process_proc(pred_proc_id::in,
+ % Attempt to transform a procedure into accumulator recursive form.
+ % If we succeed, we will add the recursive version of the procedure
+ % to the module_info. However, we may also encounter errors, which
+ % we will add to the list of error_specs in the univ accumulator.
+ %
+:- pred accumulator.process_proc(pred_proc_id::in, pred_info::in,
proc_info::in, proc_info::out, module_info::in, module_info::out,
- io::di, io::uo) is det.
+ univ::in, univ::out) is det.
%-----------------------------------------------------------------------------%
%-----------------------------------------------------------------------------%
@@ -182,8 +187,10 @@
:- import_module assoc_list.
:- import_module bool.
:- import_module int.
+:- import_module io.
:- import_module list.
:- import_module map.
+:- import_module maybe.
:- import_module pair.
:- import_module set.
:- import_module solutions.
@@ -228,15 +235,13 @@
%-----------------------------------------------------------------------------%
- % Attempt to transform a procedure into accumulator recursive form.
- %
-process_proc(proc(PredId, ProcId), !ProcInfo, !ModuleInfo, !IO) :-
+process_proc(proc(PredId, ProcId), PredInfo, !ProcInfo, !ModuleInfo,
+ !Cookie) :-
module_info_get_globals(!.ModuleInfo, Globals),
globals.lookup_bool_option(Globals,
optimize_constructor_last_call_accumulator, DoLCO),
globals.lookup_bool_option(Globals, fully_strict, FullyStrict),
(
- module_info_pred_info(!.ModuleInfo, PredId, PredInfo),
attempt_transform(ProcId, PredId, PredInfo, DoLCO, FullyStrict,
!ProcInfo, !ModuleInfo, Warnings)
->
@@ -252,35 +257,39 @@
VeryVerbose = no
),
- globals.lookup_bool_option(Globals, inhibit_accumulator_warnings,
- InhibitWarnings),
(
- ( InhibitWarnings = yes
- ; Warnings = []
- )
- ->
- true
+ Warnings = []
;
+ Warnings = [_ | _],
pred_info_get_context(PredInfo, Context),
PredPieces = describe_one_pred_name(!.ModuleInfo,
should_module_qualify, PredId),
- write_error_pieces(Globals, Context, 0, [words("In") | PredPieces],
- !IO),
+ InPieces = [words("In") | PredPieces] ++ [suffix(":"), nl],
+ InMsg = simple_msg(Context,
+ [option_is_set(inhibit_accumulator_warnings, no,
+ [always(InPieces)])]),
proc_info_get_varset(!.ProcInfo, VarSet),
- output_warnings(Warnings, VarSet, !.ModuleInfo, !IO),
-
- Pieces1 = [words("Please ensure that these"),
+ generate_warnings(!.ModuleInfo, VarSet, Warnings, WarnMsgs),
+ (
+ Warnings = [_],
+ EnsurePieces = [words("Please ensure that this"),
+ words("argument rearrangement does not introduce"),
+ words("performance problems.")]
+ ;
+ Warnings = [_, _ | _],
+ EnsurePieces = [words("Please ensure that these"),
words("argument rearrangements do not introduce"),
- words("performance problems."),
- words("These warnings can be suppressed by"),
+ words("performance problems.")]
+ ),
+ SuppressPieces =
+ [words("These warnings can be suppressed by"),
words("`--inhibit-accumulator-warnings'.")],
- write_error_pieces(Globals, Context, 2, Pieces1, !IO),
+ EnsureSuppressMsg = simple_msg(Context,
+ [option_is_set(inhibit_accumulator_warnings, no,
+ [always(EnsurePieces), always(SuppressPieces)])]),
- globals.lookup_bool_option(Globals, verbose_errors, VerboseErrors),
- (
- VerboseErrors = yes,
- Pieces2 = [words("If a predicate has been declared"),
+ VerbosePieces = [words("If a predicate has been declared"),
words("associative via a `promise' declaration,"),
words("the compiler will rearrange the order of"),
words("the arguments in calls to that predicate,"),
@@ -289,23 +298,20 @@
words("will issue this warning. If this reordering"),
words("changes the performance characteristics"),
words("of the call to the predicate, use"),
- words("`--no-accumulator-introduction' to turn"),
- words("the optimization off, or "),
- words("`--inhibit-accumulator-warnings' to turn off"),
- words("the warnings.")],
- write_error_pieces(Globals, Context, 2, Pieces2, !IO)
- ;
- VerboseErrors = no,
- globals.io_set_extra_error_info(yes, !IO)
- ),
- globals.lookup_bool_option(Globals, halt_at_warn, HaltAtWarn),
- (
- HaltAtWarn = yes,
- io.set_exit_status(1, !IO),
- module_info_incr_errors(!ModuleInfo)
- ;
- HaltAtWarn = no
- )
+ words("`--no-accumulator-introduction'"),
+ words("to turn the optimization off, or "),
+ words("`--inhibit-accumulator-warnings'"),
+ words("to turn off the warnings.")],
+ VerboseMsg = simple_msg(Context, [verbose_only(VerbosePieces)]),
+
+ Severity = severity_conditional(inhibit_accumulator_warnings, no,
+ severity_warning, no),
+ Msgs = [InMsg | WarnMsgs] ++ [EnsureSuppressMsg, VerboseMsg],
+ Spec = error_spec(Severity, phase_accumulator_intro, Msgs),
+
+ det_univ_to_type(!.Cookie, Specs0),
+ Specs = [Spec | Specs0],
+ type_to_univ(Specs, !:Cookie)
)
;
true
@@ -314,33 +320,30 @@
%-----------------------------------------------------------------------------%
%-----------------------------------------------------------------------------%
-:- pred output_warnings(list(warning)::in, prog_varset::in,
- module_info::in, io::di, io::uo) is det.
+:- pred generate_warnings(module_info::in, prog_varset::in, list(warning)::in,
+ list(error_msg)::out) is det.
-output_warnings([], _, _, !IO).
-output_warnings([W | Ws], VarSet, ModuleInfo, !IO) :-
- output_warning(W, VarSet, ModuleInfo, Context, Format),
- module_info_get_globals(ModuleInfo, Globals),
- write_error_pieces(Globals, Context, 2, Format, !IO),
- output_warnings(Ws, VarSet, ModuleInfo, !IO).
+generate_warnings(_, _, [], []).
+generate_warnings(ModuleInfo, VarSet, [Warning | Warnings], [Msg | Msgs]) :-
+ generate_warning(ModuleInfo, VarSet, Warning, Msg),
+ generate_warnings(ModuleInfo, VarSet, Warnings, Msgs).
-:- pred output_warning(warning::in, prog_varset::in, module_info::in,
- prog_context::out, list(format_component)::out) is det.
+:- pred generate_warning(module_info::in, prog_varset::in, warning::in,
+ error_msg::out) is det.
-output_warning(warn(Context, PredId, VarA, VarB), VarSet, ModuleInfo,
- Context, Formats) :-
+generate_warning(ModuleInfo, VarSet, Warning, Msg) :-
+ Warning = warn(Context, PredId, VarA, VarB),
PredPieces = describe_one_pred_name(ModuleInfo, should_module_qualify,
PredId),
- varset.lookup_name(VarSet, VarA, VarAStr0),
- varset.lookup_name(VarSet, VarB, VarBStr0),
- VarAStr = string.append_list(["`", VarAStr0, "'"]),
- VarBStr = string.append_list(["`", VarBStr0, "'"]),
+ varset.lookup_name(VarSet, VarA, VarAName),
+ varset.lookup_name(VarSet, VarB, VarBName),
- Formats = [words("warning: the call to")] ++ PredPieces ++
+ Pieces = [words("warning: the call to")] ++ PredPieces ++
[words("has had the location of the variables"),
- words(VarAStr), words("and"), words(VarBStr),
- words("swapped to allow accumulator introduction.")].
+ quote(VarAName), words("and"), quote(VarBName),
+ words("swapped to allow accumulator introduction."), nl],
+ Msg = simple_msg(Context, [always(Pieces)]).
%-----------------------------------------------------------------------------%
%-----------------------------------------------------------------------------%
@@ -723,7 +726,7 @@
construct(N - I, K, GoalStore, !.Sets, FullyStrict, VarTypes,
ModuleInfo)
->
- !:Sets = !.Sets ^ construct :=
+ !Sets ^ construct :=
set.insert(!.Sets ^ construct, N - I),
stage1_2(N - (I+1), K, M, GoalStore, FullyStrict, VarTypes,
ModuleInfo, !Sets)
@@ -731,7 +734,7 @@
construct_assoc(N - I, K, GoalStore, !.Sets, FullyStrict, VarTypes,
ModuleInfo)
->
- !:Sets = !.Sets ^ construct_assoc :=
+ !Sets ^ construct_assoc :=
set.insert(!.Sets ^ construct_assoc, N-I),
stage1_2(N - (I+1), K, M, GoalStore, FullyStrict, VarTypes,
ModuleInfo, !Sets)
@@ -739,11 +742,11 @@
update(N - I, K, GoalStore, !.Sets, FullyStrict, VarTypes,
ModuleInfo)
->
- !:Sets = !.Sets ^ update := set.insert(!.Sets ^ update, N - I),
+ !Sets ^ update := set.insert(!.Sets ^ update, N - I),
stage1_2(N - (I+1), K, M, GoalStore, FullyStrict, VarTypes,
ModuleInfo, !Sets)
;
- !:Sets = !.Sets ^ reject := set.insert(!.Sets ^ reject, N - I)
+ !Sets ^ reject := set.insert(!.Sets ^ reject, N - I)
)
).
@@ -1395,9 +1398,8 @@
%-----------------------------------------------------------------------------%
% stage3 creates the accumulator version of the predicate using
- % the substitutions determined in stage2, it also redefines the
- % original procedure to call the accumulator version of the
- % procedure.
+ % the substitutions determined in stage2. It also redefines the
+ % original procedure to call the accumulator version of the procedure.
%
:- pred stage3(goal_id::in, prog_vars::in, prog_varset::in, vartypes::in,
goal_store::in, goal_store::in, substs::in, subst::in,
Index: compiler/complexity.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/complexity.m,v
retrieving revision 1.36
diff -u -b -r1.36 complexity.m
--- compiler/complexity.m 5 Aug 2010 03:07:08 -0000 1.36
+++ compiler/complexity.m 5 Aug 2010 04:35:08 -0000
@@ -51,7 +51,7 @@
%
:- pred process_proc_msg(int::in, complexity_proc_map::in,
pred_proc_id::in, proc_info::in, proc_info::out,
- module_info::in, module_info::out, io::di, io::uo) is det.
+ module_info::in, module_info::out) is det.
%-----------------------------------------------------------------------------%
%-----------------------------------------------------------------------------%
@@ -64,6 +64,7 @@
:- import_module hlds.goal_util.
:- import_module hlds.hlds_goal.
:- import_module hlds.instmap.
+:- import_module hlds.passes_aux.
:- import_module hlds.pred_table.
:- import_module libs.compiler_util.
:- import_module libs.globals.
@@ -158,7 +159,7 @@
%-----------------------------------------------------------------------------%
process_proc_msg(NumProcs, ProcMap, proc(PredId, ProcId), !ProcInfo,
- !ModuleInfo, !IO) :-
+ !ModuleInfo) :-
IsInMap = is_in_complexity_proc_map(ProcMap, !.ModuleInfo,
PredId, ProcId),
(
@@ -168,14 +169,11 @@
globals.lookup_bool_option(Globals, verbose, Verbose),
(
Verbose = yes,
- pred_id_to_int(PredId, PredIdInt),
- proc_id_to_int(ProcId, ProcIdInt),
- Pieces =
- [words("% Applying complexity experiment transformation to "),
- fixed(FullName ++ ":"),
- fixed(int_to_string(PredIdInt) ++ "/" ++
- int_to_string(ProcIdInt))],
- write_error_pieces_plain(Globals, Pieces, !IO)
+ trace [io(!IO)] (
+ write_proc_progress_message(
+ "% Applying complexity experiment transformation to ",
+ PredId, ProcId, !.ModuleInfo, !IO)
+ )
;
Verbose = no
),
Index: compiler/deforest.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/deforest.m,v
retrieving revision 1.94
diff -u -b -r1.94 deforest.m
--- compiler/deforest.m 5 Aug 2010 03:07:08 -0000 1.94
+++ compiler/deforest.m 5 Aug 2010 04:30:31 -0000
@@ -99,7 +99,7 @@
% Find out which arguments of each procedure are switched on at the top
% level or are constructed in a way which is possibly deforestable.
Task0 = update_module_cookie(get_branch_vars_proc_univ, UnivProcArgInfo0),
- process_all_nonimported_procs_update(Task0, Task, !ModuleInfo, !IO),
+ process_all_nonimported_procs_update(Task0, Task, !ModuleInfo),
(
Task = update_module_cookie(_, UnivProcArgInfo),
univ_to_type(UnivProcArgInfo, ProcArgInfo1)
@@ -177,13 +177,10 @@
get_branch_vars_proc_univ(PredProcId, ProcInfo, ProcInfo,
!ModuleInfo, UnivProcArgInfo0, UnivProcArgInfo) :-
- ( univ_to_type(UnivProcArgInfo0, ProcArgInfo0) ->
- pd_util.get_branch_vars_proc(PredProcId, ProcInfo,
- !ModuleInfo, ProcArgInfo0, ProcArgInfo),
- type_to_univ(ProcArgInfo, UnivProcArgInfo)
- ;
- unexpected(this_file, "get_branch_vars_proc_univ")
- ).
+ det_univ_to_type(UnivProcArgInfo0, ProcArgInfo0),
+ pd_util.get_branch_vars_proc(PredProcId, ProcInfo, !ModuleInfo,
+ ProcArgInfo0, ProcArgInfo),
+ type_to_univ(ProcArgInfo, UnivProcArgInfo).
:- pred deforest_proc(pred_proc_id::in, pd_info::in, pd_info::out) is det.
Index: compiler/error_util.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/error_util.m,v
retrieving revision 1.74
diff -u -b -r1.74 error_util.m
--- compiler/error_util.m 4 Jul 2010 10:24:07 -0000 1.74
+++ compiler/error_util.m 5 Aug 2010 07:49:25 -0000
@@ -184,9 +184,7 @@
% that help debug the compiler itself.
:- typeclass print_anything(T) where [
-
pred print_anything(T::in, io::di, io::uo) is det
-
].
%-----------------------------------------------------------------------------%
Index: compiler/mercury_compile_llds_back_end.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/mercury_compile_llds_back_end.m,v
retrieving revision 1.7
diff -u -b -r1.7 mercury_compile_llds_back_end.m
--- compiler/mercury_compile_llds_back_end.m 5 Aug 2010 03:07:09 -0000 1.7
+++ compiler/mercury_compile_llds_back_end.m 5 Aug 2010 06:47:34 -0000
@@ -421,8 +421,7 @@
maybe_write_string(Verbose,
"% Minimizing variable saves using constants...\n", !IO),
maybe_flush_output(Verbose, !IO),
- process_all_nonimported_procs(update_module(saved_vars_proc),
- !HLDS, !IO),
+ process_all_nonimported_procs(update_module(saved_vars_proc), !HLDS),
maybe_write_string(Verbose, "% done.\n", !IO),
maybe_report_stats(Stats, !IO)
;
@@ -440,8 +439,7 @@
maybe_write_string(Verbose,
"% Minimizing variable saves using cells...\n", !IO),
maybe_flush_output(Verbose, !IO),
- process_all_nonimported_procs(update_module(stack_opt_cell),
- !HLDS, !IO),
+ process_all_nonimported_procs(update_module(stack_opt_cell), !HLDS),
maybe_write_string(Verbose, "% done.\n", !IO),
maybe_report_stats(Stats, !IO)
;
@@ -459,7 +457,7 @@
maybe_write_string(Verbose, "% Migrating branch code...", !IO),
maybe_flush_output(Verbose, !IO),
process_all_nonimported_procs(update_module(move_follow_code_in_proc),
- !HLDS, !IO),
+ !HLDS),
maybe_write_string(Verbose, " done.\n", !IO),
maybe_report_stats(Stats, !IO)
;
@@ -482,7 +480,7 @@
detect_liveness_preds_parallel(!HLDS)
;
process_all_nonimported_procs(update_proc_ids(detect_liveness_proc),
- !HLDS, !IO)
+ !HLDS)
),
maybe_write_string(Verbose, "% done.\n", !IO),
maybe_report_stats(Stats, !IO).
@@ -500,7 +498,7 @@
maybe_flush_output(Verbose, !IO),
process_all_nonimported_procs(
update_proc_ids_pred(mark_tail_calls(feature_debug_tail_rec_call)),
- !HLDS, !IO),
+ !HLDS),
maybe_write_string(Verbose, " done.\n", !IO),
maybe_report_stats(Stats, !IO)
;
@@ -514,7 +512,7 @@
maybe_write_string(Verbose, "% Computing stack vars...", !IO),
maybe_flush_output(Verbose, !IO),
process_all_nonimported_procs(
- update_proc_ids(allocate_stack_slots_in_proc), !HLDS, !IO),
+ update_proc_ids(allocate_stack_slots_in_proc), !HLDS),
maybe_write_string(Verbose, " done.\n", !IO),
maybe_report_stats(Stats, !IO).
@@ -525,7 +523,7 @@
maybe_write_string(Verbose, "% Allocating store map...", !IO),
maybe_flush_output(Verbose, !IO),
process_all_nonimported_procs(
- update_proc_ids(allocate_store_maps(final_allocation)), !HLDS, !IO),
+ update_proc_ids(allocate_store_maps(final_allocation)), !HLDS),
maybe_write_string(Verbose, " done.\n", !IO),
maybe_report_stats(Stats, !IO).
@@ -539,7 +537,7 @@
maybe_write_string(Verbose, "% Calculating goal paths...", !IO),
maybe_flush_output(Verbose, !IO),
process_all_nonimported_procs(update_proc(fill_goal_path_slots),
- !HLDS, !IO),
+ !HLDS),
maybe_write_string(Verbose, " done.\n", !IO),
maybe_report_stats(Stats, !IO)
;
Index: compiler/mercury_compile_middle_passes.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/mercury_compile_middle_passes.m,v
retrieving revision 1.6
diff -u -b -r1.6 mercury_compile_middle_passes.m
--- compiler/mercury_compile_middle_passes.m 5 Aug 2010 03:07:09 -0000 1.6
+++ compiler/mercury_compile_middle_passes.m 5 Aug 2010 04:29:36 -0000
@@ -102,6 +102,7 @@
:- import_module pair.
:- import_module set.
:- import_module string.
+:- import_module univ.
%-----------------------------------------------------------------------------%
@@ -898,8 +899,19 @@
maybe_write_string(Verbose,
"% Attempting to introduce accumulators...\n", !IO),
maybe_flush_output(Verbose, !IO),
- process_all_nonimported_procs(
- update_module_io(accumulator.process_proc), !HLDS, !IO),
+ type_to_univ([] : list(error_spec), Cookie0),
+ Task0 = update_module_pred_cookie(accumulator.process_proc, Cookie0),
+ process_all_nonimported_procs_update(Task0, Task, !HLDS),
+ (
+ Task = update_module_pred_cookie(_, Cookie),
+ univ_to_type(Cookie, SpecsPrime)
+ ->
+ Specs = SpecsPrime
+ ;
+ unexpected(this_file, "maybe_introduce_accumulators: bad task")
+ ),
+ write_error_specs(Specs, Globals, 0, _NumWarnings, 0, NumErrors, !IO),
+ module_info_incr_num_errors(NumErrors, !HLDS),
maybe_write_string(Verbose, "% done.\n", !IO),
maybe_report_stats(Stats, !IO)
;
@@ -952,8 +964,7 @@
maybe_write_string(Verbose, "% Hoisting loop invariants...\n", !IO),
maybe_flush_output(Verbose, !IO),
process_all_nonimported_procs(
- update_module_pred(hoist_loop_invariants),
- !HLDS, !IO),
+ update_module_pred(hoist_loop_invariants), !HLDS),
maybe_write_string(Verbose, "% done.\n", !IO),
maybe_report_stats(Stats, !IO)
;
@@ -1017,7 +1028,7 @@
"% Delaying construction unifications ...\n", !IO),
maybe_flush_output(Verbose, !IO),
process_all_nonimported_procs(update_proc_ids(delay_construct_proc),
- !HLDS, !IO),
+ !HLDS),
maybe_write_string(Verbose, "% done.\n", !IO),
maybe_report_stats(Stats, !IO)
;
@@ -1119,7 +1130,7 @@
"% Removing unneeded code from procedure bodies...\n", !IO),
maybe_flush_output(Verbose, !IO),
process_all_nonimported_procs(update_module(unneeded_process_proc_msg),
- !HLDS, !IO),
+ !HLDS),
maybe_write_string(Verbose, "% done.\n", !IO),
maybe_report_stats(Stats, !IO)
;
@@ -1272,7 +1283,7 @@
(
SupportsParConj = no,
process_all_nonimported_procs(update_proc(parallel_to_plain_conjs),
- !HLDS, !IO)
+ !HLDS)
;
SupportsParConj = yes,
maybe_write_string(Verbose,
@@ -1319,8 +1330,7 @@
"% Applying term size profiling transformation...\n", !IO),
maybe_flush_output(Verbose, !IO),
process_all_nonimported_procs(
- update_module(size_prof_process_proc_msg(Transform)),
- !HLDS, !IO),
+ update_module(size_prof_process_proc_msg(Transform)), !HLDS),
maybe_write_string(Verbose, "% done.\n", !IO),
maybe_report_stats(Stats, !IO)
;
@@ -1362,8 +1372,8 @@
"% Applying complexity experiment transformation...\n", !IO),
maybe_flush_output(Verbose, !IO),
process_all_nonimported_procs(
- update_module_io(complexity.process_proc_msg(NumProcs, ProcMap)),
- !HLDS, !IO),
+ update_module(complexity.process_proc_msg(NumProcs, ProcMap)),
+ !HLDS),
maybe_write_string(Verbose, "% done.\n", !IO),
maybe_report_stats(Stats, !IO)
).
Index: compiler/mercury_compile_mlds_back_end.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/mercury_compile_mlds_back_end.m,v
retrieving revision 1.3
diff -u -b -r1.3 mercury_compile_mlds_back_end.m
--- compiler/mercury_compile_mlds_back_end.m 30 Mar 2010 23:57:25 -0000 1.3
+++ compiler/mercury_compile_mlds_back_end.m 5 Aug 2010 06:47:55 -0000
@@ -260,8 +260,7 @@
SGCells = yes,
maybe_write_string(Verbose, "% Marking static ground terms...\n", !IO),
maybe_flush_output(Verbose, !IO),
- process_all_nonimported_procs(update_proc(mark_static_terms),
- !HLDS, !IO),
+ process_all_nonimported_procs(update_proc(mark_static_terms), !HLDS),
maybe_write_string(Verbose, "% done.\n", !IO),
maybe_report_stats(Stats, !IO)
;
@@ -312,8 +311,7 @@
maybe_write_string(Verbose, "% Adding trailing operations...\n", !IO),
maybe_flush_output(Verbose, !IO),
process_all_nonimported_procs(
- update_proc(add_trail_ops(OptTrailUse, GenerateInline)),
- !HLDS, !IO),
+ update_proc(add_trail_ops(OptTrailUse, GenerateInline)), !HLDS),
maybe_write_string(Verbose, "% done.\n", !IO),
maybe_report_stats(Stats, !IO)
;
@@ -347,7 +345,7 @@
maybe_write_string(Verbose,
"% Adding heap reclamation operations...\n", !IO),
maybe_flush_output(Verbose, !IO),
- process_all_nonimported_procs(update_proc(add_heap_ops), !HLDS, !IO),
+ process_all_nonimported_procs(update_proc(add_heap_ops), !HLDS),
maybe_write_string(Verbose, "% done.\n", !IO),
maybe_report_stats(Stats, !IO)
;
Index: compiler/passes_aux.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/passes_aux.m,v
retrieving revision 1.97
diff -u -b -r1.97 passes_aux.m
--- compiler/passes_aux.m 5 Aug 2010 03:07:09 -0000 1.97
+++ compiler/passes_aux.m 5 Aug 2010 04:28:41 -0000
@@ -89,11 +89,6 @@
:- inst proc_ids_pred_task ==
(pred(in, in, in, in, out) is det).
-:- type proc_ids_io_task ==
- pred(module_info, pred_proc_id, proc_info, proc_info, io, io).
-:- inst proc_ids_io_task ==
- (pred(in, in, in, out, di, uo) is det).
-
:- type module_task ==
pred(pred_proc_id, proc_info, proc_info,
module_info, module_info).
@@ -106,50 +101,48 @@
:- inst module_pred_task ==
(pred(in, in, in, out, in, out) is det).
-:- type module_io_task ==
- pred(pred_proc_id, proc_info, proc_info,
- module_info, module_info, io, io).
-:- inst module_io_task ==
- (pred(in, in, out, in, out, di, uo) is det).
-
:- type module_cookie_task ==
pred(pred_proc_id, proc_info, proc_info,
module_info, module_info, univ, univ).
:- inst module_cookie_task ==
(pred(in, in, out, in, out, in, out) is det).
+:- type module_pred_cookie_task ==
+ pred(pred_proc_id, pred_info, proc_info, proc_info,
+ module_info, module_info, univ, univ).
+:- inst module_pred_cookie_task ==
+ (pred(in, in, in, out, in, out, in, out) is det).
+
%-----------------------------------------------------------------------------%
:- type update_proc_task
---> update_proc(proc_task)
; update_proc_ids(proc_ids_task)
; update_proc_ids_pred(proc_ids_pred_task)
- ; update_proc_ids_io(proc_ids_io_task)
; update_module(module_task)
; update_module_pred(module_pred_task)
- ; update_module_io(module_io_task)
- ; update_module_cookie(module_cookie_task, univ).
+ ; update_module_cookie(module_cookie_task, univ)
+ ; update_module_pred_cookie(module_pred_cookie_task, univ).
:- inst update_proc_task ==
bound(
update_proc(proc_task)
; update_proc_ids(proc_ids_task)
; update_proc_ids_pred(proc_ids_pred_task)
- ; update_proc_ids_io(proc_ids_io_task)
; update_module(module_task)
; update_module_pred(module_pred_task)
- ; update_module_io(module_io_task)
; update_module_cookie(module_cookie_task, ground)
+ ; update_module_pred_cookie(module_pred_cookie_task, ground)
).
:- mode update_proc_task == update_proc_task >> update_proc_task.
%-----------------------------------------------------------------------------%
:- pred process_all_nonimported_procs(update_proc_task::update_proc_task,
- module_info::in, module_info::out, io::di, io::uo) is det.
+ module_info::in, module_info::out) is det.
:- pred process_all_nonimported_procs_update(
update_proc_task::update_proc_task, update_proc_task::out(update_proc_task),
- module_info::in, module_info::out, io::di, io::uo) is det.
+ module_info::in, module_info::out) is det.
%-----------------------------------------------------------------------------%
@@ -268,18 +261,17 @@
:- inst seq_proc_task ==
bound(
- update_proc_ids_io(proc_ids_io_task)
- ; update_module(module_task)
+ update_module(module_task)
; update_module_pred(module_pred_task)
- ; update_module_io(module_io_task)
; update_module_cookie(module_cookie_task, ground)
+ ; update_module_pred_cookie(module_pred_cookie_task, ground)
).
:- mode seq_proc_task == seq_proc_task >> seq_proc_task.
-process_all_nonimported_procs(Task, !ModuleInfo, !IO) :-
- process_all_nonimported_procs_update(Task, _, !ModuleInfo, !IO).
+process_all_nonimported_procs(Task, !ModuleInfo) :-
+ process_all_nonimported_procs_update(Task, _, !ModuleInfo).
-process_all_nonimported_procs_update(!Task, !ModuleInfo, !IO) :-
+process_all_nonimported_procs_update(!Task, !ModuleInfo) :-
module_info_get_valid_predids(ValidPredIds, !ModuleInfo),
(
( !.Task = update_proc(_)
@@ -294,14 +286,13 @@
map.from_sorted_assoc_list(PredIdsInfos, PredMap),
module_info_set_preds(PredMap, !ModuleInfo)
;
- ( !.Task = update_proc_ids_io(_)
- ; !.Task = update_module(_)
+ ( !.Task = update_module(_)
; !.Task = update_module_pred(_)
- ; !.Task = update_module_io(_)
; !.Task = update_module_cookie(_, _)
+ ; !.Task = update_module_pred_cookie(_, _)
),
seq_process_nonimported_procs_in_preds(ValidPredIds, !Task,
- !ModuleInfo, !IO)
+ !ModuleInfo)
).
%-----------------------------------------------------------------------------%
@@ -358,24 +349,24 @@
:- pred seq_process_nonimported_procs_in_preds(list(pred_id)::in,
update_proc_task::seq_proc_task, update_proc_task::out(seq_proc_task),
- module_info::in, module_info::out, io::di, io::uo) is det.
+ module_info::in, module_info::out) is det.
-seq_process_nonimported_procs_in_preds([], !Task, !ModuleInfo, !IO).
+seq_process_nonimported_procs_in_preds([], !Task, !ModuleInfo).
seq_process_nonimported_procs_in_preds([PredId | PredIds], !Task,
- !ModuleInfo, !IO) :-
+ !ModuleInfo) :-
module_info_get_preds(!.ModuleInfo, PredTable),
map.lookup(PredTable, PredId, PredInfo),
ProcIds = pred_info_non_imported_procids(PredInfo),
- seq_process_nonimported_procs(PredId, ProcIds, !Task, !ModuleInfo, !IO),
- seq_process_nonimported_procs_in_preds(PredIds, !Task, !ModuleInfo, !IO).
+ seq_process_nonimported_procs(PredId, ProcIds, !Task, !ModuleInfo),
+ seq_process_nonimported_procs_in_preds(PredIds, !Task, !ModuleInfo).
:- pred seq_process_nonimported_procs(pred_id::in, list(proc_id)::in,
update_proc_task::seq_proc_task, update_proc_task::out(seq_proc_task),
- module_info::in, module_info::out, io::di, io::uo) is det.
+ module_info::in, module_info::out) is det.
-seq_process_nonimported_procs(_PredId, [], !Task, !ModuleInfo, !IO).
-seq_process_nonimported_procs(PredId, [ProcId | ProcIds], !Task, !ModuleInfo,
- !IO) :-
+seq_process_nonimported_procs(_PredId, [], !Task, !ModuleInfo).
+seq_process_nonimported_procs(PredId, [ProcId | ProcIds], !Task,
+ !ModuleInfo) :-
module_info_get_preds(!.ModuleInfo, Preds0),
map.lookup(Preds0, PredId, Pred0),
pred_info_get_procedures(Pred0, Procs0),
@@ -383,21 +374,19 @@
PredProcId = proc(PredId, ProcId),
(
- !.Task = update_proc_ids_io(Closure),
- Closure(!.ModuleInfo, PredProcId, Proc0, Proc, !IO)
- ;
!.Task = update_module(Closure),
Closure(PredProcId, Proc0, Proc, !ModuleInfo)
;
!.Task = update_module_pred(Closure),
Closure(PredProcId, Pred0, Proc0, Proc, !ModuleInfo)
;
- !.Task = update_module_io(Closure),
- Closure(PredProcId, Proc0, Proc, !ModuleInfo, !IO)
- ;
!.Task = update_module_cookie(Closure, Cookie0),
Closure(PredProcId, Proc0, Proc, !ModuleInfo, Cookie0, Cookie),
!:Task = update_module_cookie(Closure, Cookie)
+ ;
+ !.Task = update_module_pred_cookie(Closure, Cookie0),
+ Closure(PredProcId, Pred0, Proc0, Proc, !ModuleInfo, Cookie0, Cookie),
+ !:Task = update_module_pred_cookie(Closure, Cookie)
),
% If the pass changed the module_info, it may have changed the pred table
@@ -412,7 +401,7 @@
map.det_update(Preds8, PredId, Pred, Preds),
module_info_set_preds(Preds, !ModuleInfo),
- seq_process_nonimported_procs(PredId, ProcIds, !Task, !ModuleInfo, !IO).
+ seq_process_nonimported_procs(PredId, ProcIds, !Task, !ModuleInfo).
%-----------------------------------------------------------------------------%
Index: compiler/pd_util.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/pd_util.m,v
retrieving revision 1.76
diff -u -b -r1.76 pd_util.m
--- compiler/pd_util.m 5 Aug 2010 03:07:09 -0000 1.76
+++ compiler/pd_util.m 5 Aug 2010 04:10:51 -0000
@@ -448,8 +448,8 @@
OpaqueArgs0),
svmap.set(PredProcId, BranchInfo0, !ArgInfo),
- % Look for opportunities for deforestation in
- % the sub-branches of the top-level goal.
+ % Look for opportunities for deforestation in the sub-branches
+ % of the top-level goal.
get_sub_branch_vars_goal(!.ArgInfo, GoalList,
VarTypes, InstMap0, Vars, AllVars, !ModuleInfo),
get_extra_info_headvars(HeadVars, 1, LeftVars0,
@@ -568,31 +568,37 @@
get_branch_vars_goal_2(ModuleInfo, Goals, !.FoundBranch,
VarTypes, InstMap, !LeftVars, !Vars).
-:- pred get_branch_instmap_deltas(hlds_goal::in,
- list(instmap_delta)::out) is semidet.
+:- pred get_branch_instmap_deltas(hlds_goal::in, list(instmap_delta)::out)
+ is semidet.
-get_branch_instmap_deltas(Goal, [CondDelta, ThenDelta, ElseDelta]) :-
- Goal = hlds_goal(if_then_else(_, Cond, Then, Else), _),
+get_branch_instmap_deltas(Goal, InstMapDeltas) :-
+ Goal = hlds_goal(GoalExpr, _),
+ (
+ GoalExpr = if_then_else(_, Cond, Then, Else),
Cond = hlds_goal(_, CondInfo),
Then = hlds_goal(_, ThenInfo),
Else = hlds_goal(_, ElseInfo),
CondDelta = goal_info_get_instmap_delta(CondInfo),
ThenDelta = goal_info_get_instmap_delta(ThenInfo),
- ElseDelta = goal_info_get_instmap_delta(ElseInfo).
-get_branch_instmap_deltas(hlds_goal(switch(_, _, Cases), _), InstMapDeltas) :-
+ ElseDelta = goal_info_get_instmap_delta(ElseInfo),
+ InstMapDeltas = [CondDelta, ThenDelta, ElseDelta]
+ ;
+ GoalExpr = switch(_, _, Cases),
GetCaseInstMapDelta =
(pred(Case::in, InstMapDelta::out) is det :-
Case = case(_, _, hlds_goal(_, CaseInfo)),
InstMapDelta = goal_info_get_instmap_delta(CaseInfo)
),
- list.map(GetCaseInstMapDelta, Cases, InstMapDeltas).
-get_branch_instmap_deltas(hlds_goal(disj(Disjuncts), _), InstMapDeltas) :-
+ list.map(GetCaseInstMapDelta, Cases, InstMapDeltas)
+ ;
+ GoalExpr = disj(Disjuncts),
GetDisjunctInstMapDelta =
(pred(Disjunct::in, InstMapDelta::out) is det :-
Disjunct = hlds_goal(_, DisjInfo),
InstMapDelta = goal_info_get_instmap_delta(DisjInfo)
),
- list.map(GetDisjunctInstMapDelta, Disjuncts, InstMapDeltas).
+ list.map(GetDisjunctInstMapDelta, Disjuncts, InstMapDeltas)
+ ).
% Get the variables for which we can do unfolding if the goals to
% the left supply the top-level functor. Eventually this should
Index: compiler/ssdebug.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/ssdebug.m,v
retrieving revision 1.31
diff -u -b -r1.31 ssdebug.m
--- compiler/ssdebug.m 11 Aug 2010 03:51:59 -0000 1.31
+++ compiler/ssdebug.m 11 Aug 2010 04:53:37 -0000
@@ -224,7 +224,7 @@
ssdebug.transform_module(!ModuleInfo, !IO) :-
ssdebug.first_pass(!ModuleInfo),
process_all_nonimported_procs(update_module(ssdebug.process_proc),
- !ModuleInfo, !IO).
+ !ModuleInfo).
%-----------------------------------------------------------------------------%
%
Index: compiler/structure_reuse.analysis.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/structure_reuse.analysis.m,v
retrieving revision 1.24
diff -u -b -r1.24 structure_reuse.analysis.m
--- compiler/structure_reuse.analysis.m 30 Jul 2010 05:16:16 -0000 1.24
+++ compiler/structure_reuse.analysis.m 5 Aug 2010 04:30:20 -0000
@@ -178,9 +178,8 @@
maybe_write_string(VeryVerbose,
"% Annotating in use information...", !IO)
),
- process_all_nonimported_procs(
- update_proc(annotate_in_use_information),
- !ModuleInfo, !IO),
+ process_all_nonimported_procs(update_proc(annotate_in_use_information),
+ !ModuleInfo),
trace [io(!IO)] (
maybe_write_string(VeryVerbose, "done.\n", !IO)
),
Index: compiler/structure_sharing.analysis.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/structure_sharing.analysis.m,v
retrieving revision 1.48
diff -u -b -r1.48 structure_sharing.analysis.m
--- compiler/structure_sharing.analysis.m 5 Aug 2010 03:07:09 -0000 1.48
+++ compiler/structure_sharing.analysis.m 5 Aug 2010 04:31:02 -0000
@@ -345,8 +345,7 @@
annotate_liveness(!ModuleInfo, !IO) :-
process_all_nonimported_procs(
- update_module(simplify_and_detect_liveness_proc),
- !ModuleInfo, !IO).
+ update_module(simplify_and_detect_liveness_proc), !ModuleInfo).
:- pred simplify_and_detect_liveness_proc(pred_proc_id::in,
proc_info::in, proc_info::out, module_info::in, module_info::out) is det.
cvs diff: Diffing compiler/notes
cvs diff: Diffing deep_profiler
cvs diff: Diffing deep_profiler/notes
cvs diff: Diffing doc
cvs diff: Diffing extras
cvs diff: Diffing extras/base64
cvs diff: Diffing extras/cgi
cvs diff: Diffing extras/complex_numbers
cvs diff: Diffing extras/complex_numbers/samples
cvs diff: Diffing extras/complex_numbers/tests
cvs diff: Diffing extras/concurrency
cvs diff: Diffing extras/curs
cvs diff: Diffing extras/curs/samples
cvs diff: Diffing extras/curses
cvs diff: Diffing extras/curses/sample
cvs diff: Diffing extras/dynamic_linking
cvs diff: Diffing extras/error
cvs diff: Diffing extras/fixed
cvs diff: Diffing extras/gator
cvs diff: Diffing extras/gator/generations
cvs diff: Diffing extras/gator/generations/1
cvs diff: Diffing extras/graphics
cvs diff: Diffing extras/graphics/easyx
cvs diff: Diffing extras/graphics/easyx/samples
cvs diff: Diffing extras/graphics/mercury_allegro
cvs diff: Diffing extras/graphics/mercury_allegro/examples
cvs diff: Diffing extras/graphics/mercury_allegro/samples
cvs diff: Diffing extras/graphics/mercury_allegro/samples/demo
cvs diff: Diffing extras/graphics/mercury_allegro/samples/mandel
cvs diff: Diffing extras/graphics/mercury_allegro/samples/pendulum2
cvs diff: Diffing extras/graphics/mercury_allegro/samples/speed
cvs diff: Diffing extras/graphics/mercury_glut
cvs diff: Diffing extras/graphics/mercury_opengl
cvs diff: Diffing extras/graphics/mercury_tcltk
cvs diff: Diffing extras/graphics/samples
cvs diff: Diffing extras/graphics/samples/calc
cvs diff: Diffing extras/graphics/samples/gears
cvs diff: Diffing extras/graphics/samples/maze
cvs diff: Diffing extras/graphics/samples/pent
cvs diff: Diffing extras/lazy_evaluation
cvs diff: Diffing extras/lex
cvs diff: Diffing extras/lex/samples
cvs diff: Diffing extras/lex/tests
cvs diff: Diffing extras/log4m
cvs diff: Diffing extras/logged_output
cvs diff: Diffing extras/monte
cvs diff: Diffing extras/moose
cvs diff: Diffing extras/moose/samples
cvs diff: Diffing extras/moose/tests
cvs diff: Diffing extras/mopenssl
cvs diff: Diffing extras/morphine
cvs diff: Diffing extras/morphine/non-regression-tests
cvs diff: Diffing extras/morphine/scripts
cvs diff: Diffing extras/morphine/source
cvs diff: Diffing extras/net
cvs diff: Diffing extras/odbc
cvs diff: Diffing extras/posix
cvs diff: Diffing extras/posix/samples
cvs diff: Diffing extras/quickcheck
cvs diff: Diffing extras/quickcheck/tutes
cvs diff: Diffing extras/references
cvs diff: Diffing extras/references/samples
cvs diff: Diffing extras/references/tests
cvs diff: Diffing extras/solver_types
cvs diff: Diffing extras/solver_types/library
cvs diff: Diffing extras/trailed_update
cvs diff: Diffing extras/trailed_update/samples
cvs diff: Diffing extras/trailed_update/tests
cvs diff: Diffing extras/windows_installer_generator
cvs diff: Diffing extras/windows_installer_generator/sample
cvs diff: Diffing extras/windows_installer_generator/sample/images
cvs diff: Diffing extras/xml
cvs diff: Diffing extras/xml/samples
cvs diff: Diffing extras/xml_stylesheets
cvs diff: Diffing java
cvs diff: Diffing java/runtime
cvs diff: Diffing library
cvs diff: Diffing mdbcomp
cvs diff: Diffing profiler
cvs diff: Diffing robdd
cvs diff: Diffing runtime
cvs diff: Diffing runtime/GETOPT
cvs diff: Diffing runtime/machdeps
cvs diff: Diffing samples
cvs diff: Diffing samples/c_interface
cvs diff: Diffing samples/c_interface/c_calls_mercury
cvs diff: Diffing samples/c_interface/cplusplus_calls_mercury
cvs diff: Diffing samples/c_interface/mercury_calls_c
cvs diff: Diffing samples/c_interface/mercury_calls_cplusplus
cvs diff: Diffing samples/c_interface/mercury_calls_fortran
cvs diff: Diffing samples/c_interface/simpler_c_calls_mercury
cvs diff: Diffing samples/c_interface/simpler_cplusplus_calls_mercury
cvs diff: Diffing samples/c_interface/standalone_c
cvs diff: Diffing samples/diff
cvs diff: Diffing samples/java_interface
cvs diff: Diffing samples/java_interface/java_calls_mercury
cvs diff: Diffing samples/java_interface/mercury_calls_java
cvs diff: Diffing samples/muz
cvs diff: Diffing samples/rot13
cvs diff: Diffing samples/solutions
cvs diff: Diffing samples/solver_types
cvs diff: Diffing samples/tests
cvs diff: Diffing samples/tests/c_interface
cvs diff: Diffing samples/tests/c_interface/c_calls_mercury
cvs diff: Diffing samples/tests/c_interface/cplusplus_calls_mercury
cvs diff: Diffing samples/tests/c_interface/mercury_calls_c
cvs diff: Diffing samples/tests/c_interface/mercury_calls_cplusplus
cvs diff: Diffing samples/tests/c_interface/mercury_calls_fortran
cvs diff: Diffing samples/tests/c_interface/simpler_c_calls_mercury
cvs diff: Diffing samples/tests/c_interface/simpler_cplusplus_calls_mercury
cvs diff: Diffing samples/tests/diff
cvs diff: Diffing samples/tests/muz
cvs diff: Diffing samples/tests/rot13
cvs diff: Diffing samples/tests/solutions
cvs diff: Diffing samples/tests/toplevel
cvs diff: Diffing scripts
cvs diff: Diffing slice
cvs diff: Diffing ssdb
cvs diff: Diffing tests
cvs diff: Diffing tests/analysis
cvs diff: Diffing tests/analysis/ctgc
cvs diff: Diffing tests/analysis/excp
cvs diff: Diffing tests/analysis/ext
cvs diff: Diffing tests/analysis/sharing
cvs diff: Diffing tests/analysis/table
cvs diff: Diffing tests/analysis/trail
cvs diff: Diffing tests/analysis/unused_args
cvs diff: Diffing tests/benchmarks
cvs diff: Diffing tests/debugger
cvs diff: Diffing tests/debugger/declarative
cvs diff: Diffing tests/dppd
cvs diff: Diffing tests/general
cvs diff: Diffing tests/general/accumulator
cvs diff: Diffing tests/general/string_format
cvs diff: Diffing tests/general/structure_reuse
cvs diff: Diffing tests/grade_subdirs
cvs diff: Diffing tests/hard_coded
cvs diff: Diffing tests/hard_coded/exceptions
cvs diff: Diffing tests/hard_coded/purity
cvs diff: Diffing tests/hard_coded/sub-modules
cvs diff: Diffing tests/hard_coded/typeclasses
cvs diff: Diffing tests/invalid
cvs diff: Diffing tests/invalid/purity
cvs diff: Diffing tests/misc_tests
cvs diff: Diffing tests/mmc_make
cvs diff: Diffing tests/mmc_make/lib
cvs diff: Diffing tests/par_conj
cvs diff: Diffing tests/recompilation
cvs diff: Diffing tests/stm
cvs diff: Diffing tests/stm/orig
cvs diff: Diffing tests/stm/orig/stm-compiler
cvs diff: Diffing tests/stm/orig/stm-compiler/test1
cvs diff: Diffing tests/stm/orig/stm-compiler/test10
cvs diff: Diffing tests/stm/orig/stm-compiler/test2
cvs diff: Diffing tests/stm/orig/stm-compiler/test3
cvs diff: Diffing tests/stm/orig/stm-compiler/test4
cvs diff: Diffing tests/stm/orig/stm-compiler/test5
cvs diff: Diffing tests/stm/orig/stm-compiler/test6
cvs diff: Diffing tests/stm/orig/stm-compiler/test7
cvs diff: Diffing tests/stm/orig/stm-compiler/test8
cvs diff: Diffing tests/stm/orig/stm-compiler/test9
cvs diff: Diffing tests/stm/orig/stm-compiler-par
cvs diff: Diffing tests/stm/orig/stm-compiler-par/bm1
cvs diff: Diffing tests/stm/orig/stm-compiler-par/bm2
cvs diff: Diffing tests/stm/orig/stm-compiler-par/stmqueue
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test1
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test10
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test11
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test2
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test3
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test4
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test5
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test6
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test7
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test8
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test9
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test1
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test2
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test3
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test4
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test5
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test6
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test7
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test8
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test9
cvs diff: Diffing tests/tabling
cvs diff: Diffing tests/term
cvs diff: Diffing tests/trailing
cvs diff: Diffing tests/valid
cvs diff: Diffing tests/warnings
Index: tests/warnings/arg_order_rearrangment.exp
===================================================================
RCS file: /home/mercury/mercury1/repository/tests/warnings/arg_order_rearrangment.exp,v
retrieving revision 1.5
diff -u -b -r1.5 arg_order_rearrangment.exp
--- tests/warnings/arg_order_rearrangment.exp 7 Sep 2006 05:51:46 -0000 1.5
+++ tests/warnings/arg_order_rearrangment.exp 5 Aug 2010 12:32:45 -0000
@@ -1,9 +1,9 @@
-arg_order_rearrangment.m:008: In predicate `arg_order_rearrangment.r'/2
+arg_order_rearrangment.m:008: In predicate `arg_order_rearrangment.r'/2:
arg_order_rearrangment.m:014: warning: the call to predicate
arg_order_rearrangment.m:014: `arg_order_rearrangment.app'/3 has had the
arg_order_rearrangment.m:014: location of the variables `V_7' and `R0'
arg_order_rearrangment.m:014: swapped to allow accumulator introduction.
-arg_order_rearrangment.m:008: Please ensure that these argument
-arg_order_rearrangment.m:008: rearrangements do not introduce performance
-arg_order_rearrangment.m:008: problems. These warnings can be suppressed by
+arg_order_rearrangment.m:008: Please ensure that this argument rearrangement
+arg_order_rearrangment.m:008: does not introduce performance problems.
+arg_order_rearrangment.m:008: These warnings can be suppressed by
arg_order_rearrangment.m:008: `--inhibit-accumulator-warnings'.
Index: tests/warnings/arg_order_rearrangment.exp2
===================================================================
RCS file: /home/mercury/mercury1/repository/tests/warnings/arg_order_rearrangment.exp2,v
retrieving revision 1.2
diff -u -b -r1.2 arg_order_rearrangment.exp2
--- tests/warnings/arg_order_rearrangment.exp2 17 Jan 2003 05:57:19 -0000 1.2
+++ tests/warnings/arg_order_rearrangment.exp2 5 Aug 2010 08:59:06 -0000
@@ -1,11 +1 @@
-arg_order_rearrangment.m:008: In predicate `arg_order_rearrangment.r/2'
-arg_order_rearrangment.m:014: warning: the call to predicate
-arg_order_rearrangment.m:014: `arg_order_rearrangment.app/3' has had the
-arg_order_rearrangment.m:014: location of the variables `V_7' and `R0'
-arg_order_rearrangment.m:014: swapped to allow accumulator introduction.
-arg_order_rearrangment.m:008: Please ensure that these argument
-arg_order_rearrangment.m:008: rearrangements do not introduce performance
-arg_order_rearrangment.m:008: problems. These warnings can be suppressed by
-arg_order_rearrangment.m:008: `--inhibit-accumulator-warnings'.
-arg_order_rearrangment.m: In function `r':
-arg_order_rearrangment.m:0: note: can't optimize tail call: callee arg size > caller arg size
+OBSOLETE
cvs diff: Diffing tools
cvs diff: Diffing trace
cvs diff: Diffing util
cvs diff: Diffing vim
cvs diff: Diffing vim/after
cvs diff: Diffing vim/ftplugin
cvs diff: Diffing vim/syntax
--------------------------------------------------------------------------
mercury-reviews mailing list
Post messages to: mercury-reviews at csse.unimelb.edu.au
Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
Subscriptions: mercury-reviews-request at csse.unimelb.edu.au
--------------------------------------------------------------------------
More information about the reviews
mailing list