Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : supercompiler

http://hackage.haskell.org/trac/ghc/changeset/b7c6fad99c2031b15fc0f7d45a6a29d71fc342ba

>---------------------------------------------------------------

commit b7c6fad99c2031b15fc0f7d45a6a29d71fc342ba
Author: Max Bolingbroke <batterseapo...@hotmail.com>
Date:   Tue Jul 17 15:02:48 2012 +0100

    Treat letbounds and lambdabounds as cheap, for gods sake

>---------------------------------------------------------------

 compiler/supercompile/Supercompile/Drive/Split2.hs |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/compiler/supercompile/Supercompile/Drive/Split2.hs 
b/compiler/supercompile/Supercompile/Drive/Split2.hs
index a84ba88..312c28f 100644
--- a/compiler/supercompile/Supercompile/Drive/Split2.hs
+++ b/compiler/supercompile/Supercompile/Drive/Split2.hs
@@ -475,7 +475,7 @@ push generalised (Heap h ids, k, focus) = (h', k', focus')
         -- in general anyway. 
         --
         -- NB: must explicitly avoid collapsing away any value nodes if they 
are marked as generalised
-        cheap_marked = (cheap_marked_k_head `S.union` S.fromDistinctAscList 
[HeapContext x' | (x', hb) <- M.toAscList h, Just (_, e) <- [heapBindingTerm 
hb], termIsCheap e]) S.\\ generalised
+        cheap_marked = (cheap_marked_k_head `S.union` S.fromDistinctAscList 
[HeapContext x' | (x', hb) <- M.toAscList h, maybe True (termIsCheap . snd) 
(heapBindingTerm hb)]) S.\\ generalised
         verts = shortcutEdges (`S.member` cheap_marked)
                               plusEntries (\ent1 _ ent2 -> ent1 `plusEntries` 
ent2)
                               (verts_h `M.union` (verts_k `unionDisjoint` 
verts_focus))



_______________________________________________
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to