[project @ 1999-09-17 09:15:22 by simonpj]
authorsimonpj <unknown>
Fri, 17 Sep 1999 09:15:44 +0000 (09:15 +0000)
committersimonpj <unknown>
Fri, 17 Sep 1999 09:15:44 +0000 (09:15 +0000)
commit731f53de7930c38b5023a871146bd0ec066edf3a
tree8f7a698bf84b1ae1d8dbf989280e0440499c8e13
parent6e5c95e9102581703b8cb2734b87d7958bce4183
[project @ 1999-09-17 09:15:22 by simonpj]
This bunch of commits represents work in progress on inlining and
worker/wrapper stuff.

Currently, I think it makes the compiler slightly worse than 4.04, for
reasons I don't yet understand.  But it means that Simon and I can
both peer at what is going on.

* Substantially improve handling of coerces in worker/wrapper

* exprIsDupable for an application (f e1 .. en) wasn't calling exprIsDupable
  on the arguments!!  So applications with few, but large, args were being dupliated.

* sizeExpr on an application wasn't doing a nukeScrutDiscount on the arg of
  an application!!  So bogus discounts could accumulate from arguments!

* Improve handling of INLINE pragmas in calcUnfoldingGuidance.  It was really
  wrong before
17 files changed:
ghc/compiler/coreSyn/CoreUnfold.lhs
ghc/compiler/coreSyn/CoreUtils.lhs
ghc/compiler/main/ErrUtils.lhs
ghc/compiler/main/MkIface.lhs
ghc/compiler/parser/RdrHsSyn.lhs
ghc/compiler/rename/Rename.lhs
ghc/compiler/rename/RnSource.lhs
ghc/compiler/simplCore/OccurAnal.lhs
ghc/compiler/simplCore/SetLevels.lhs
ghc/compiler/simplCore/SimplCore.lhs
ghc/compiler/simplCore/SimplMonad.lhs
ghc/compiler/simplCore/SimplUtils.lhs
ghc/compiler/simplCore/Simplify.lhs
ghc/compiler/stgSyn/CoreToStg.lhs
ghc/compiler/stranal/StrictAnal.lhs
ghc/compiler/stranal/WorkWrap.lhs
ghc/compiler/stranal/WwLib.lhs