[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