[project @ 2001-10-17 15:44:40 by simonpj]
authorsimonpj <unknown>
Wed, 17 Oct 2001 15:44:40 +0000 (15:44 +0000)
committersimonpj <unknown>
Wed, 17 Oct 2001 15:44:40 +0000 (15:44 +0000)
commit0b4ef1955eb1480700e19720f38a59e3518408d7
tree00c4031243926eb75df9e988c9e825de0c520683
parent223348019d6604bc4f44c267fe3a62a97aa24515
[project @ 2001-10-17 15:44:40 by simonpj]
---------------------------
   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.
ghc/compiler/coreSyn/CorePrep.lhs
ghc/compiler/main/CmdLineOpts.lhs
ghc/compiler/main/DriverFlags.hs