patch applied (ghc): Establish the CoreSyn let/app invariant
Simon Peyton Jones
simonpj at microsoft.com
Mon Feb 5 12:47:18 EST 2007
Mon Feb 5 09:31:50 PST 2007 simonpj at microsoft.com
* Establish the CoreSyn let/app invariant
This patch clears up a long-standing wart. For some time it's been the
case that
the RHS of a non-recursive let can be unlifed iff
the RHS is ok-for-speculation
This patch extends the invariant to the argument of an App, and
establishes it by the smart constructors mkDsApp, mkDsApps in the desugarer.
Once established, it should be maintained by the optimiser.
This tides up some awkward cases, notably in exprIsHNF, and I think it
fixes a outright strictness bug in Simplify.prepareRhs.
M ./compiler/coreSyn/CoreSyn.lhs -41 +58
M ./compiler/coreSyn/CoreUtils.lhs -18 +8
M ./compiler/deSugar/DsExpr.lhs -4 +4
M ./compiler/deSugar/DsUtils.lhs -3 +34
More information about the Cvs-ghc
mailing list