[m-rev.] agc and optimisations fix

Ben Schmidt b.schmidt at ugrad.unimelb.edu.au
Thu Jan 18 23:14:05 AEDT 2007


Estimated hours taken: 1
Branches: main

Change optimisations used with the accurate garbage collector.

compiler/handle_options.m:
	- higher order specialisations can be enabled now due to
	an earlier fix.
	- optimize-constructor-last-call is not compatible with
	the accurate collector at this stage.




Index: compiler/handle_options.m
===================================================================
RCS file: 
/home/mercury/mercury1/repository/mercury/compiler/handle_options.m,v
retrieving revision 1.292
diff -u -r1.292 handle_options.m
--- compiler/handle_options.m	10 Jan 2007 03:08:08 -0000	1.292
+++ compiler/handle_options.m	18 Jan 2007 03:38:58 -0000
@@ -1324,13 +1324,9 @@
          %      GC occurs. A better method would be to just allocate a
          %      word of heap space at each choice point.
          %
-        % XXX for the MLDS back-end,
-        % accurate GC currently also requires disabling the higher-order
-        % specialization pass, since that pass creates procedures
-        % which don't respect left-to-right scoping of type_info 
parameters,
-        % i.e. in which a parameter X may have a type whose type_info var
-        % (in the type_info_varmap) occurs to the right of X in the
-        % procedure's parameter list.
+        % XXX we also need to disable optimize-constructor-last-call
+        % until the code-generator and collector can be updated to
+        % understand this optimisation.
          %
          % XXX we also disable type specialization.
          % This is needed because type specialization may create
@@ -1350,10 +1346,8 @@
                  reclaim_heap_on_semidet_failure, bool(no), !Globals),
              globals.set_option(
                  reclaim_heap_on_nondet_failure, bool(no), !Globals),
-
-            option_implies(highlevel_code, optimize_higher_order,
+            globals.set_option(optimize_constructor_last_call,
                  bool(no), !Globals),
-
              globals.set_option(type_specialization, bool(no), !Globals),
              globals.set_option(user_guided_type_specialization,
                  bool(no), !Globals)
--------------------------------------------------------------------------
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