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