cvs commit: fptools/ghc/compiler/basicTypes Id.lhs IdInfo.lhs
MkId.lhs fptools/ghc/compiler/codeGen CgExpr.lhs ClosureInfo.lhs
CodeGen.lhs fptools/ghc/compiler/coreSyn CorePrep.lhs CoreTidy.lhs
PprCore.lhs CoreSat.lhs fptools/ghc/compiler/hsSyn HsCore.lhs ...
Simon Marlow
simonmar@glass.cse.ogi.edu
Tue, 13 Mar 2001 04:50:33 -0800
simonmar 2001/03/13 04:50:33 PST
Modified files:
ghc/compiler/basicTypes Id.lhs IdInfo.lhs MkId.lhs
ghc/compiler/codeGen CgExpr.lhs ClosureInfo.lhs CodeGen.lhs
ghc/compiler/coreSyn CoreTidy.lhs PprCore.lhs
ghc/compiler/hsSyn HsCore.lhs
ghc/compiler/main DriverPhases.hs ErrUtils.lhs HscMain.lhs
HscTypes.lhs MkIface.lhs
ghc/compiler/deSugar Desugar.lhs
ghc/compiler/profiling SCCfinal.lhs
ghc/compiler/rename ParseIface.y Rename.lhs RnHsSyn.lhs
RnSource.lhs
ghc/compiler/simplCore SimplCore.lhs
ghc/compiler/simplStg SRT.lhs SimplStg.lhs StgStats.lhs
ghc/compiler/stgSyn CoreToStg.lhs StgLint.lhs StgSyn.lhs
ghc/compiler/typecheck TcIfaceSig.lhs
ghc/compiler/types Generics.lhs
Added files:
ghc/compiler/coreSyn CorePrep.lhs
Removed files:
ghc/compiler/coreSyn CoreSat.lhs
Log:
Some rearrangements that Simon & I have been working on recently:
- CoreSat is now CorePrep, and is a general "prepare-for-code-
generation" pass. It does cloning, saturation of constructors &
primops, A-normal form, and a couple of other minor fiddlings.
- CoreTidy no longer does cloning, and minor fiddlings. It doesn't
need the unique supply any more, so that's removed.
- CoreToStg now collects CafInfo and the list of CafRefs for each
binding. The SRT pass is much simpler now.
- IdInfo now has a CgInfo field for "code generator info". It currently
contains arity (the actual code gen arity which affects the calling
convention as opposed to the ArityInfo which is a measure of how
many arguments the Id can be applied to before it does any work), and
CafInfo.
Previously we overloaded the ArityInfo field to contain both
codegen arity and simplifier arity. Things are cleaner now.
- CgInfo is collected by CoreToStg, and passed back into CoreTidy in
a loop. The compiler will complain rather than going into a black
hole if the CgInfo is pulled on too early.
- Worker info in an interface file now comes with arity info attached.
Previously the main arity info was overloaded for this purpose, but
it lead to a few hacks in the compiler, this tidies things up somewhat.
Bottom line: we removed several fragilities, and tidied up a number of
things. Code size should be smaller, but we'll see...
Revision Changes Path
1.85 +19 -7 fptools/ghc/compiler/basicTypes/Id.lhs
1.70 +87 -24 fptools/ghc/compiler/basicTypes/IdInfo.lhs
1.56 +26 -20 fptools/ghc/compiler/basicTypes/MkId.lhs
1.42 +21 -19 fptools/ghc/compiler/codeGen/CgExpr.lhs
1.46 +7 -12 fptools/ghc/compiler/codeGen/ClosureInfo.lhs
1.37 +8 -8 fptools/ghc/compiler/codeGen/CodeGen.lhs
1.44 +140 -332 fptools/ghc/compiler/coreSyn/CoreTidy.lhs
1.60 +3 -3 fptools/ghc/compiler/coreSyn/PprCore.lhs
1.35 +6 -4 fptools/ghc/compiler/hsSyn/HsCore.lhs
1.7 +2 -8 fptools/ghc/compiler/main/DriverPhases.hs
1.36 +6 -1 fptools/ghc/compiler/main/ErrUtils.lhs
1.108 +126 -91 fptools/ghc/compiler/main/HscMain.lhs
1.71 +30 -14 fptools/ghc/compiler/main/HscTypes.lhs
1.126 +14 -9 fptools/ghc/compiler/main/MkIface.lhs
1.44 +15 -7 fptools/ghc/compiler/deSugar/Desugar.lhs
1.28 +25 -35 fptools/ghc/compiler/profiling/SCCfinal.lhs
1.103 +3 -3 fptools/ghc/compiler/rename/ParseIface.y
1.157 +0 -1 fptools/ghc/compiler/rename/Rename.lhs
1.53 +1 -1 fptools/ghc/compiler/rename/RnHsSyn.lhs
1.115 +2 -2 fptools/ghc/compiler/rename/RnSource.lhs
1.94 +8 -7 fptools/ghc/compiler/simplCore/SimplCore.lhs
1.13 +101 -341 fptools/ghc/compiler/simplStg/SRT.lhs
1.40 +5 -10 fptools/ghc/compiler/simplStg/SimplStg.lhs
1.11 +3 -3 fptools/ghc/compiler/simplStg/StgStats.lhs
1.76 +361 -167 fptools/ghc/compiler/stgSyn/CoreToStg.lhs
1.35 +4 -4 fptools/ghc/compiler/stgSyn/StgLint.lhs
1.33 +60 -33 fptools/ghc/compiler/stgSyn/StgSyn.lhs
1.70 +24 -18 fptools/ghc/compiler/typecheck/TcIfaceSig.lhs
1.13 +3 -3 fptools/ghc/compiler/types/Generics.lhs