Repository : ssh://darcs.haskell.org//srv/darcs/packages/hoopl

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/2c5bc7b1814663e42587313da17d8c610cf0cc86

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

commit 2c5bc7b1814663e42587313da17d8c610cf0cc86
Author: Simon Marlow <[email protected]>
Date:   Tue Jul 17 10:12:31 2012 +0100

    small optimisations to blockSnoc and blockCons

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

 src/Compiler/Hoopl/Block.hs |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/Compiler/Hoopl/Block.hs b/src/Compiler/Hoopl/Block.hs
index 920ba73..0acbd27 100644
--- a/src/Compiler/Hoopl/Block.hs
+++ b/src/Compiler/Hoopl/Block.hs
@@ -125,8 +125,8 @@ emptyBlock = BNil
 
 blockCons :: n O O -> Block n O x -> Block n O x
 blockCons n b = case b of
-  BlockOC b l  -> BlockOC (n `BCons` b) l
-  BNil{}    -> n `BCons` b
+  BlockOC b l  -> (BlockOC $! (n `blockCons` b)) l
+  BNil{}    -> BMiddle n
   BMiddle{} -> n `BCons` b
   BCat{}    -> n `BCons` b
   BSnoc{}   -> n `BCons` b
@@ -134,8 +134,8 @@ blockCons n b = case b of
 
 blockSnoc :: Block n e O -> n O O -> Block n e O
 blockSnoc b n = case b of
-  BlockCO f b -> BlockCO f (b `BSnoc` n)
-  BNil{}      -> b `BSnoc` n
+  BlockCO f b -> BlockCO f $! (b `blockSnoc` n)
+  BNil{}      -> BMiddle n
   BMiddle{}   -> b `BSnoc` n
   BCat{}      -> b `BSnoc` n
   BSnoc{}     -> b `BSnoc` n



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

Reply via email to