[project @ 2003-07-02 13:12:33 by simonpj]
authorsimonpj <unknown>
Wed, 2 Jul 2003 13:12:39 +0000 (13:12 +0000)
committersimonpj <unknown>
Wed, 2 Jul 2003 13:12:39 +0000 (13:12 +0000)
commit3f5e4368fd4e87e116ce34be4cf9dd0f9f96726d
tree625a62cc8271ec868d6f698f619d6df7e041d174
parente82f4943bcf9e40188a75ad21d939a1a794c8a16
[project @ 2003-07-02 13:12:33 by simonpj]
------------------------
       Tidy up the code generator
------------------------

The code generation for 'case' expressions had grown
huge and gnarly.  This commit removes about 120 lines of
code, and makes it a lot easier to read too. I think the code
generated is identical.

Part of this was to simplify the StgCase data type, so
that it is more like the Core case: there is a simple list
of alternatives, and the DEFAULT (if present) must be the
first.  This tidies and simplifies other Stg passes.
16 files changed:
ghc/compiler/absCSyn/AbsCSyn.lhs
ghc/compiler/absCSyn/AbsCUtils.lhs
ghc/compiler/absCSyn/PprAbsC.lhs
ghc/compiler/codeGen/CgBindery.lhs
ghc/compiler/codeGen/CgCase.lhs
ghc/compiler/codeGen/CgCon.lhs
ghc/compiler/codeGen/CgExpr.lhs
ghc/compiler/codeGen/CgHeapery.lhs
ghc/compiler/codeGen/CgLetNoEscape.lhs
ghc/compiler/codeGen/CgMonad.lhs
ghc/compiler/profiling/SCCfinal.lhs
ghc/compiler/simplStg/SRT.lhs
ghc/compiler/simplStg/StgStats.lhs
ghc/compiler/stgSyn/CoreToStg.lhs
ghc/compiler/stgSyn/StgLint.lhs
ghc/compiler/stgSyn/StgSyn.lhs