summaryrefslogtreecommitdiff
path: root/ghc
diff options
context:
space:
mode:
authorsimonpj <unknown>1999-08-23 15:05:29 +0000
committersimonpj <unknown>1999-08-23 15:05:29 +0000
commit52cd1677dccb3382ee95f28a701cba3b68fecfbb (patch)
tree9bf9c3ae759211992b528461a16911b1f4af7fc1 /ghc
parentd392968d909449a16d02e0e70a5eb9eddb1c07ab (diff)
downloadhaskell-52cd1677dccb3382ee95f28a701cba3b68fecfbb.tar.gz
[project @ 1999-08-23 15:05:28 by simonpj]
Add -fno-cpr option
Diffstat (limited to 'ghc')
-rw-r--r--ghc/docs/users_guide/using.vsgml8
-rw-r--r--ghc/driver/ghc.lprl6
2 files changed, 13 insertions, 1 deletions
diff --git a/ghc/docs/users_guide/using.vsgml b/ghc/docs/users_guide/using.vsgml
index 4fd1330372..5b93782c66 100644
--- a/ghc/docs/users_guide/using.vsgml
+++ b/ghc/docs/users_guide/using.vsgml
@@ -940,14 +940,22 @@ example, you can say @-O2 -fno-strictness@, which will then drop out
any running of the strictness analyser.
The options you are most likely to want to turn off are:
+<itemize>
+<item>
@-fno-strictness@<nidx>-fno-strictness option</nidx> (strictness
analyser [because it is sometimes slow]),
+<item>
@-fno-specialise@<nidx>-fno-specialise option</nidx> (automatic
specialisation of overloaded functions [because it makes your code
bigger]) [US spelling also accepted], and
+<item>
+@-fno-cpr@<nidx>-fno-cpr option</nidx> switches off the CPR (constructed product
+result) analyser.
+<item>
@-fno-update-analysis@<nidx>-fno-update-analysis option</nidx> (update
analyser, because it sometimes takes a <em>long</em> time). This one
is only enabled with -O2 anyway.
+</itemize>
Should you wish to turn individual flags <em>on</em>, you are advised
to use the @-Ofile@ option, described above. Because the order in
diff --git a/ghc/driver/ghc.lprl b/ghc/driver/ghc.lprl
index b9d4ef2f1f..8951f16ad4 100644
--- a/ghc/driver/ghc.lprl
+++ b/ghc/driver/ghc.lprl
@@ -228,6 +228,7 @@ sub setupOptFlags {
$Oopt_FinalStgProfilingMassage = '';
$Oopt_StgStats = '';
$Oopt_DoSpecialise = '-fspecialise';
+ $Oopt_DoCpr = '-fcpr-analyse';
$Oopt_FoldrBuild = 0; # *Off* by default!
$Oopt_UsageSPInf = ''; # Off by default
} # end of setupOptFlags
@@ -766,7 +767,7 @@ sub setupOptimiseFlags {
'-fstrictness',
- '-fcpr-analyse',
+ $Oopt_DoCpr,
'-fworker-wrapper',
'-fsimplify',
@@ -3086,6 +3087,9 @@ arg: while($_ = $Args[0]) {
/^-fno-speciali[sz]e$/
&& do { $Oopt_DoSpecialise = ''; next arg; };
+ /^-fno-cpr$/
+ && do { $Oopt_DoCpr = ''; next arg; };
+
/^-fusagesp$/
&& do { $Oopt_UsageSPInf = '-fusagesp';
push (@HsC_flags, '-fusagesp-on'); next arg; };