[m-rev.] For review: Re-add --region-analysis option

Quan Phan quan.phan at cs.kuleuven.be
Thu Oct 4 00:17:32 AEST 2007


Estimated hours taken: 0.1

Re-add option --region-analysis to enable region analysis. Currenly, we need
both --region-analysis and --use-regions options because 
1. .rbmm implies --use-region which enables the inclusion of the region runtime code. Therefore the region runtime gets compiled in .rbmm grade.
2. The region analysis does not work with some constructs (higher-order terms,
foreign code, ...) which appear in the compiler's code. So the
--region-analysis option will prevent the region analysis from running when
compiling in .rbmm grade.

To compile a program with rbmm we either compile it in asm_fast.gc.rbmm grade
and specify --region-analysis at command line or specify both options
explicitly at command line.

compiler/options.m:
	Add the --region-analysis option.

compiler/mercury_compile.m
	Use the option to turn on region analysis (instead of --use-regions).

? diff_1003
cvs diff: Diffing .
Index: mercury_compile.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/mercury_compile.m,v
retrieving revision 1.450
diff -u -r1.450 mercury_compile.m
--- mercury_compile.m	3 Oct 2007 12:11:54 -0000	1.450
+++ mercury_compile.m	3 Oct 2007 13:46:19 -0000
@@ -4272,7 +4272,7 @@
 
 maybe_region_analysis(Verbose, Stats, !HLDS, !IO) :-
     module_info_get_globals(!.HLDS, Globals),
-    globals.lookup_bool_option(Globals, use_regions, Analysis),
+    globals.lookup_bool_option(Globals, region_analysis, Analysis),
     (
         Analysis = yes,
         maybe_write_string(Verbose, "% Analysing regions ...\n", !IO),
Index: options.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/options.m,v
retrieving revision 1.586
diff -u -r1.586 options.m
--- options.m	3 Oct 2007 12:11:55 -0000	1.586
+++ options.m	3 Oct 2007 13:46:21 -0000
@@ -588,6 +588,7 @@
     ;       distance_granularity
     ;       parallelism_target
     ;       implicit_parallelism
+    ;       region_analysis
 
     % Stuff for the CTGC system (structure sharing / structure reuse).
     ;       structure_sharing_analysis
@@ -1379,6 +1380,7 @@
     distance_granularity                -   int(0),
     parallelism_target                  -   int(4),
     implicit_parallelism                -   bool(no),
+    region_analysis                     -   bool(no),
 
     % HLDS -> LLDS
     smart_indexing                      -   bool(no),
@@ -1895,6 +1897,7 @@
 long_option("record-term-sizes-as-words", record_term_sizes_as_words).
 long_option("record-term-sizes-as-cells", record_term_sizes_as_cells).
 long_option("experimental-complexity",  experimental_complexity).
+long_option("region-analysis",      region_analysis).
 % (c) miscellaneous optional features
 long_option("gc",                   gc).
 long_option("garbage-collection",   gc).
@@ -4478,6 +4481,9 @@
         "\tinformation generated by mdprof_feedback.",
         "\tThe profiling feedback file can be specified using the",
         "\t--feedback file option."
+% '--region-analysis' is not documented because it is still experimental.
+%        "--region-analysis",
+%        "\tEnable the analysis for region-based memory management."
     ]).
 
 :- pred options_help_hlds_llds_optimization(io::di, io::uo) is det.
cvs diff: Diffing notes
--------------------------------------------------------------------------
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