Thu Nov 19 04:57:11 PST 2009  [email protected]
  * Implement -fexpose-all-unfoldings, and fix a non-termination bug
  Ignore-this: 54d029014659959151d1681842210cde
  
  The -fexpose-all-unfoldings flag arranges to put unfoldings for *everything*
  in the interface file.  Of course,  this makes the file a lot bigger, but
  it also makes it complete, and that's great for supercompilation; or indeed
  any whole-program work.
  
  Consequences:
    * Interface files need to record loop-breaker-hood.  (Previously,
      loop breakers were never exposed, so that info wasn't necessary.)
      Hence a small interface file format change. 
  
    * When inlining, must check loop-breaker-hood. (Previously, loop
      breakers didn't have an unfolding at all, so no need to check.)
  
    * Ditto in exprIsConApp_maybe.  Roman actually tripped this bug, 
      because a DFun, which had an unfolding, was also a loop breaker
  
    * TidyPgm.tidyIdInfo must be careful to preserve loop-breaker-hood
  
  So Id.idUnfolding checks for loop-breaker-hood and returns NoUnfolding
  if so. When you want the unfolding regardless of loop-breaker-hood, 
  use Id.realIdUnfolding.
  
  I have not documented the flag yet, because it's experimental.  Nor
  have I tested it thoroughly.  But with the flag off (the normal case)
  everything should work.

    M ./compiler/basicTypes/BasicTypes.lhs -6 +10
    M ./compiler/basicTypes/Id.lhs -3 +12
    M ./compiler/basicTypes/IdInfo.lhs -2 +2
    M ./compiler/coreSyn/CoreFVs.lhs -1 +4
    M ./compiler/coreSyn/CoreUnfold.lhs -5 +6
    M ./compiler/coreSyn/CoreUtils.lhs -5 +9
    M ./compiler/deSugar/DsBinds.lhs -1 +1
    M ./compiler/iface/BinIface.hs -3 +5
    M ./compiler/iface/IfaceSyn.lhs -4 +13
    M ./compiler/iface/MkIface.lhs -11 +17
    M ./compiler/iface/TcIface.lhs -2 +6
    M ./compiler/main/DynFlags.hs -2 +6
    M ./compiler/main/TidyPgm.lhs -15 +27
    M ./compiler/prelude/PrelRules.lhs -3 +3
    M ./compiler/simplCore/OccurAnal.lhs -2 +3
    M ./compiler/simplCore/Simplify.lhs -7 +9
    M ./compiler/specialise/Specialise.lhs -1 +1

View patch online:
http://darcs.haskell.org/ghc/_darcs/patches/20091119125711-1287e-df80c0a587c7819078190f7e0995aab3ece09193.gz

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to