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