Nuke -fcase-elim; sometimes things fail if you dont have it (Sergeys message)
opt_UnboxStrictFields,
opt_SimplNoPreInlining,
opt_SimplDoEtaReduction,
opt_UnboxStrictFields,
opt_SimplNoPreInlining,
opt_SimplDoEtaReduction,
opt_SimplDoLambdaEtaExpansion,
opt_SimplCaseOfCase,
opt_SimplCaseMerge,
opt_SimplDoLambdaEtaExpansion,
opt_SimplCaseOfCase,
opt_SimplCaseMerge,
-- NoPreInlining is there just to see how bad things
-- get if you don't do it!
opt_SimplDoEtaReduction = lookUp SLIT("-fdo-eta-reduction")
-- NoPreInlining is there just to see how bad things
-- get if you don't do it!
opt_SimplDoEtaReduction = lookUp SLIT("-fdo-eta-reduction")
-opt_SimplDoCaseElim = lookUp SLIT("-fdo-case-elim")
opt_SimplDoLambdaEtaExpansion = lookUp SLIT("-fdo-lambda-eta-expansion")
opt_SimplCaseOfCase = lookUp SLIT("-fcase-of-case")
opt_SimplCaseMerge = lookUp SLIT("-fcase-merge")
opt_SimplDoLambdaEtaExpansion = lookUp SLIT("-fdo-lambda-eta-expansion")
opt_SimplCaseOfCase = lookUp SLIT("-fcase-of-case")
opt_SimplCaseMerge = lookUp SLIT("-fcase-merge")
import CmdLineOpts ( intSwitchSet,
opt_SccProfilingOn, opt_PprStyle_Debug, opt_SimplDoEtaReduction,
opt_SimplNoPreInlining, opt_DictsStrict, opt_SimplPedanticBottoms,
import CmdLineOpts ( intSwitchSet,
opt_SccProfilingOn, opt_PprStyle_Debug, opt_SimplDoEtaReduction,
opt_SimplNoPreInlining, opt_DictsStrict, opt_SimplPedanticBottoms,
SimplifierSwitch(..)
)
import SimplMonad
SimplifierSwitch(..)
)
import SimplMonad
- && opt_SimplDoCaseElim
- = -- Get rid of the case altogether
+-- && opt_SimplDoCaseElim
+-- [June 99; don't test this flag. The code generator dies if it sees
+-- case (\x.e) of f -> ...
+-- so better to always do it
+
+= -- Get rid of the case altogether
-- See the extensive notes on case-elimination below
-- Remember to bind the binder though!
tick (CaseElim bndr) `thenSmpl_` (
-- See the extensive notes on case-elimination below
-- Remember to bind the binder though!
tick (CaseElim bndr) `thenSmpl_` (
'-ffoldr-build-on',
'-fdo-eta-reduction',
'-ffoldr-build-on',
'-fdo-eta-reduction',
'-fdo-lambda-eta-expansion',
'-fcase-of-case',
'-fcase-merge',
'-fdo-lambda-eta-expansion',
'-fcase-of-case',
'-fcase-merge',