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