[m-rev.] diff: --disable-trail-ops

Julien Fischer juliensf at cs.mu.OZ.AU
Tue Jan 3 14:20:33 AEDT 2006


Estimated hours taken: 0.5
Branches: main

Add a new developer-only option, `--disable-trail-ops', that disables the
output of trailing operations.  This is intended for analysing the performance
impact of trailing and is not otherwise useful.

compiler/options.m:
	Add the new option.

compiler/code_util.m:
compiler/mercury_compile.m:
	Support the new options in code generators.

Julien.

Index: compiler/code_util.m
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/code_util.m,v
retrieving revision 1.162
diff -u -r1.162 code_util.m
--- compiler/code_util.m	6 Dec 2005 06:26:06 -0000	1.162
+++ compiler/code_util.m	3 Jan 2006 03:09:48 -0000
@@ -465,17 +465,25 @@
         AddTrailOps = no
     ;
         UseTrail = yes,
-        globals.lookup_bool_option(Globals, optimize_trail_usage,
-            OptTrailUsage),
+        globals.lookup_bool_option(Globals, disable_trail_ops,
+            DisableTrailOps),
         (
-            OptTrailUsage = no,
-            AddTrailOps = yes
+            DisableTrailOps = yes,
+            AddTrailOps = no
         ;
-            OptTrailUsage = yes,
-            ( goal_cannot_modify_trail(Goal) ->
-                AddTrailOps = no
-            ;
+            DisableTrailOps = no,
+            globals.lookup_bool_option(Globals, optimize_trail_usage,
+                OptTrailUsage),
+            (
+                OptTrailUsage = no,
                 AddTrailOps = yes
+            ;
+                OptTrailUsage = yes,
+                ( goal_cannot_modify_trail(Goal) ->
+                    AddTrailOps = no
+                ;
+                    AddTrailOps = yes
+                )
             )
         )
     ).
Index: compiler/mercury_compile.m
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/mercury_compile.m,v
retrieving revision 1.370
diff -u -r1.370 mercury_compile.m
--- compiler/mercury_compile.m	19 Dec 2005 02:13:53 -0000	1.370
+++ compiler/mercury_compile.m	3 Jan 2006 03:06:41 -0000
@@ -3163,7 +3163,22 @@
 maybe_add_trail_ops(Verbose, Stats, !HLDS, !IO) :-
     globals__io_lookup_bool_option(use_trail, UseTrail, !IO),
     (
+        UseTrail = no,
+        EmitTrailOps = no
+    ;
         UseTrail = yes,
+        globals__io_lookup_bool_option(disable_trail_ops, DisableTrailOps,
+            !IO),
+        (
+            DisableTrailOps = yes,
+            EmitTrailOps = no
+        ;
+            DisableTrailOps = no,
+            EmitTrailOps = yes
+        )
+    ),
+    (
+        EmitTrailOps = yes,
         globals.io_lookup_bool_option(optimize_trail_usage, OptTrailUse, !IO),
         globals.io_get_target(Target, !IO),
         (
@@ -3187,7 +3202,7 @@
         maybe_write_string(Verbose, "% done.\n", !IO),
         maybe_report_stats(Stats, !IO)
     ;
-        UseTrail = no
+        EmitTrailOps = no
     ).

 :- pred maybe_add_heap_ops(bool::in, bool::in,
Index: compiler/options.m
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/options.m,v
retrieving revision 1.486
diff -u -r1.486 options.m
--- compiler/options.m	22 Dec 2005 00:53:19 -0000	1.486
+++ compiler/options.m	3 Jan 2006 02:55:12 -0000
@@ -418,6 +418,9 @@
             % These four are used to analyze the performance effects
             % of minimal model tabling.

+    ;       disable_trail_ops
+            % This is used to analyze the performance effects of trailing.
+
     % Code generation options
     ;       low_level_debug
     ;       trad_passes
@@ -1075,7 +1078,8 @@
     disable_minimal_model_stack_copy_pneg - bool(no),
     disable_minimal_model_stack_copy_cut -  bool(no),
     use_minimal_model_stack_copy_pneg   -   bool(no),
-    use_minimal_model_stack_copy_cut    -   bool(no)
+    use_minimal_model_stack_copy_cut    -   bool(no),
+    disable_trail_ops                   -   bool(no)
 ]).
 option_defaults_2(code_gen_option, [
     % Code Generation Options
@@ -1781,6 +1785,7 @@
 long_option("rtti-line-numbers",    rtti_line_numbers).
 long_option("disable-mm-pneg",      disable_minimal_model_stack_copy_pneg).
 long_option("disable-mm-cut",       disable_minimal_model_stack_copy_cut).
+long_option("disable-trail-ops",    disable_trail_ops).

 % code generation options
 long_option("low-level-debug",      low_level_debug).

--------------------------------------------------------------------------
mercury-reviews mailing list
post:  mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the reviews mailing list