[project @ 1999-07-06 16:45:31 by simonpj]
All Simon's recent tuning changes. Rough summary follows: * Fix Kevin Atkinson's cant-find-instance bug. Turns out that Rename.slurpSourceRefs needs to repeatedly call getImportedInstDecls, and then go back to slurping source-refs. Comments with Rename.slurpSourceRefs. * Add a case to Simplify.mkDupableAlt for the quite-common case where there's a very simple alternative, in which case there's no point in creating a join-point binding. * Fix CoreUtils.exprOkForSpeculation so that it returns True of (==# a# b#). This lack meant that case ==# a# b# of { True -> x; False -> x } was not simplifying * Make float-out dump bindings at the top of a function argument, as at the top of a let(rec) rhs. See notes with FloatOut.floatRhs * Make the ArgOf case of mkDupableAlt generate a OneShot lambda. This gave a noticeable boost to spectral/boyer2 * Reduce the number of coerces, using worker/wrapper stuff. The main idea is in WwLib.mkWWcoerce. The gloss is that we must do the w/w split even for small non-recursive things. See notes with WorkWrap.tryWw. * This further complicated getWorkerId, so I finally bit the bullet and make the workerInfo field of the IdInfo work properly, including under substitutions. Death to getWorkerId. Kevin Glynn will be happy. * Make all lambdas over realWorldStatePrimTy into one-shot lambdas. This is a GROSS HACK. * Also make the occurrence analyser aware of one-shot lambdas. * Make various Prelude things into INLINE, so that foldr doesn't get inlined in their body, so that the caller gets the benefit of fusion. Notably in PrelArr.lhs.
Showing
- ghc/compiler/basicTypes/Id.lhs 16 additions, 1 deletionghc/compiler/basicTypes/Id.lhs
- ghc/compiler/basicTypes/IdInfo.lhs 11 additions, 4 deletionsghc/compiler/basicTypes/IdInfo.lhs
- ghc/compiler/coreSyn/CoreSyn.lhs 3 additions, 1 deletionghc/compiler/coreSyn/CoreSyn.lhs
- ghc/compiler/coreSyn/CoreTidy.lhs 18 additions, 9 deletionsghc/compiler/coreSyn/CoreTidy.lhs
- ghc/compiler/coreSyn/CoreUnfold.lhs 9 additions, 22 deletionsghc/compiler/coreSyn/CoreUnfold.lhs
- ghc/compiler/coreSyn/CoreUtils.lhs 77 additions, 27 deletionsghc/compiler/coreSyn/CoreUtils.lhs
- ghc/compiler/coreSyn/PprCore.lhs 3 additions, 1 deletionghc/compiler/coreSyn/PprCore.lhs
- ghc/compiler/coreSyn/Subst.lhs 31 additions, 4 deletionsghc/compiler/coreSyn/Subst.lhs
- ghc/compiler/main/MkIface.lhs 11 additions, 15 deletionsghc/compiler/main/MkIface.lhs
- ghc/compiler/rename/ParseIface.y 4 additions, 20 deletionsghc/compiler/rename/ParseIface.y
- ghc/compiler/rename/Rename.lhs 52 additions, 50 deletionsghc/compiler/rename/Rename.lhs
- ghc/compiler/rename/RnIfaces.lhs 8 additions, 6 deletionsghc/compiler/rename/RnIfaces.lhs
- ghc/compiler/simplCore/FloatOut.lhs 29 additions, 23 deletionsghc/compiler/simplCore/FloatOut.lhs
- ghc/compiler/simplCore/OccurAnal.lhs 11 additions, 7 deletionsghc/compiler/simplCore/OccurAnal.lhs
- ghc/compiler/simplCore/SetLevels.lhs 3 additions, 9 deletionsghc/compiler/simplCore/SetLevels.lhs
- ghc/compiler/simplCore/SimplUtils.lhs 11 additions, 12 deletionsghc/compiler/simplCore/SimplUtils.lhs
- ghc/compiler/simplCore/Simplify.lhs 64 additions, 26 deletionsghc/compiler/simplCore/Simplify.lhs
- ghc/compiler/specialise/Rules.lhs 13 additions, 1 deletionghc/compiler/specialise/Rules.lhs
- ghc/compiler/stranal/WorkWrap.lhs 40 additions, 12 deletionsghc/compiler/stranal/WorkWrap.lhs
- ghc/compiler/stranal/WwLib.lhs 102 additions, 57 deletionsghc/compiler/stranal/WwLib.lhs
Loading
Please register or sign in to comment