summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsimonpj@microsoft.com <unknown>2008-09-15 15:04:33 +0000
committersimonpj@microsoft.com <unknown>2008-09-15 15:04:33 +0000
commita47d62f78621bb35f4ba73cd3817f33fda95fa72 (patch)
treee70c902a107e8d0ff68b1e17b6c9ed33f9275509
parent109eb1e9f31cc9fbec194dcc9cfd732d990c2678 (diff)
downloadhaskell-a47d62f78621bb35f4ba73cd3817f33fda95fa72.tar.gz
Do not use the Static Arg Transformation by default with -O2
Max has some more heuristics to add, and is meanwhile worried that having SAT on by default will make some highly-tuned array programs worse. So it's off by default. Use -fstatic-argument-transformation to switch it on.
-rw-r--r--compiler/main/DynFlags.hs11
1 files changed, 10 insertions, 1 deletions
diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs
index fbfda3c9d0..cf1d7e9bed 100644
--- a/compiler/main/DynFlags.hs
+++ b/compiler/main/DynFlags.hs
@@ -801,7 +801,16 @@ optLevelFlags
, ([2], Opt_LiberateCase)
, ([2], Opt_SpecConstr)
- , ([2], Opt_StaticArgumentTransformation)
+
+-- , ([2], Opt_StaticArgumentTransformation)
+-- Max writes: I think it's probably best not to enable SAT with -O2 for the
+-- 6.10 release. The version of SAT in HEAD at the moment doesn't incorporate
+-- several improvements to the heuristics, and I'm concerned that without
+-- those changes SAT will interfere with some attempts to write "high
+-- performance Haskell", as we saw in some posts on Haskell-Cafe earlier
+-- this year. In particular, the version in HEAD lacks the tail call
+-- criterion, so many things that look like reasonable loops will be
+-- turned into functions with extra (unneccesary) thunk creation.
, ([0,1,2], Opt_DoLambdaEtaExpansion)
-- This one is important for a tiresome reason: