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

On branch  : supercompiler

http://hackage.haskell.org/trac/ghc/changeset/07e29c300997db338542f8b7fc4e3f78c2ad023f

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

commit 07e29c300997db338542f8b7fc4e3f78c2ad023f
Author: Max Bolingbroke <batterseapo...@hotmail.com>
Date:   Fri Apr 20 10:16:57 2012 +0100

    Add additional check to the common-heap-vars match optimisation

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

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

diff --git a/compiler/supercompile/Supercompile/Drive/MSG.hs 
b/compiler/supercompile/Supercompile/Drive/MSG.hs
index 0d06490..ca56373 100644
--- a/compiler/supercompile/Supercompile/Drive/MSG.hs
+++ b/compiler/supercompile/Supercompile/Drive/MSG.hs
@@ -675,8 +675,10 @@ msgPureHeap mm rn2 msg_s init_h_l init_h_r (k_bvs_l, 
k_fvs_l) (k_bvs_r, k_fvs_r)
                           -- variable. This allows us to safely use the *right 
hand* term as the
                           -- *common* HeapBinding without any sort of changes 
to variables.
                           _ | x_l == x_r, x_r `S.member` msgCommonHeapVars mm
-                            , Right res <- flip runMSG msg_s $ do 
Foldable.mapM_ (\x -> msgFlexiVar rn2 x x >>= \x' -> guard "msgPureHeap: 
shortcut" (x' == x) >> return ())
-                                                                               
  (inFreeVars annedTermFreeVars in_e_r)
+                            , let l_fvs = inFreeVars annedTermFreeVars in_e_l
+                                  r_fvs = inFreeVars annedTermFreeVars in_e_r
+                            , l_fvs == r_fvs
+                            , Right res <- flip runMSG msg_s $ do 
Foldable.mapM_ (\x -> msgFlexiVar rn2 x x >>= \x' -> guard "msgPureHeap: 
shortcut" (x' == x) >> return ()) r_fvs
                                                                   return 
in_e_r -- Right biased
                             -> Right res
                             | otherwise



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

Reply via email to