[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.