cvs commit: fptools/ghc/compiler/coreSyn CorePrep.lhs fptools/ghc/compiler/main
CmdLineOpts.lhs DriverFlags.hs
Simon Peyton Jones
simonpj@glass.cse.ogi.edu
Wed, 17 Oct 2001 08:44:40 -0700
simonpj 2001/10/17 08:44:40 PDT
Modified files:
ghc/compiler/coreSyn CorePrep.lhs
ghc/compiler/main CmdLineOpts.lhs DriverFlags.hs
Log:
---------------------------
Better floating in CorePrep
---------------------------
** DO NOT MERGE **
[NB: this commit also changes the wrongly-named
-ddump-sat
flag to be called
-ddump-prep ]
Earlier fiddling with CorePrep meant that it was ANF-ing
the top-level defn:
x = length [True,False]
to
x = let s1 = False : []
s2 = True : s1
in length s2
This is Very Bad for big constant data structures, as show
up in Happy-generated parsers, and that's why we get the
big-block-alloc crash in hssource. Instead we want
s1 = False : []
s2 = True : s1
x = length s2
This happens now, (I hope), but it's part of an ongoing jiggling
process in the CoreTidy-CorePrep-CoreToStg part of the compiler, so
it's possible I have broken something else.
Revision Changes Path
1.12 +134 -127 fptools/ghc/compiler/coreSyn/CorePrep.lhs
1.152 +1 -1 fptools/ghc/compiler/main/CmdLineOpts.lhs
1.76 +2 -2 fptools/ghc/compiler/main/DriverFlags.hs