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

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/530e25a6a1aaccc14630842f310bb4194ce97be0

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

commit 530e25a6a1aaccc14630842f310bb4194ce97be0
Author: Johan Tibell <[email protected]>
Date:   Fri Jun 17 11:13:37 2011 +0200

    codeGen: Make emitCopyByteArray less pessimistic
    
    Assigning the arguments to temporaries was only needed in the case of
    emitCopyArray, where the arguments are alive across the call.  That is
    not the case in emitCopyByteArray.
    
    Signed-off-by: David Terei <[email protected]>

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

 compiler/codeGen/CgPrimOp.hs   |   11 +----------
 compiler/codeGen/StgCmmPrim.hs |   10 +---------
 2 files changed, 2 insertions(+), 19 deletions(-)

diff --git a/compiler/codeGen/CgPrimOp.hs b/compiler/codeGen/CgPrimOp.hs
index f25ec85..87ed25c 100644
--- a/compiler/codeGen/CgPrimOp.hs
+++ b/compiler/codeGen/CgPrimOp.hs
@@ -680,18 +680,9 @@ emitCopyByteArray :: (CmmExpr -> CmmExpr -> CmmExpr -> 
CmmExpr -> CmmExpr
                   -> CmmExpr -> CmmExpr -> CmmExpr -> CmmExpr -> CmmExpr
                   -> StgLiveVars
                   -> Code
-emitCopyByteArray copy src0 src_off0 dst0 dst_off0 n0 live = do
-    -- Assign the arguments to temporaries so the code generator can
-    -- calculate liveness for us.
-    src <- assignTemp_ src0
-    src_off <- assignTemp_ src_off0
-    dst <- assignTemp_ dst0
-    dst_off <- assignTemp_ dst_off0
-    n <- assignTemp_ n0
-
+emitCopyByteArray copy src src_off dst dst_off n live = do
     dst_p <- assignTemp $ cmmOffsetExpr (cmmOffsetB dst arrWordsHdrSize) 
dst_off
     src_p <- assignTemp $ cmmOffsetExpr (cmmOffsetB src arrWordsHdrSize) 
src_off
-
     copy src dst dst_p src_p n live
 
 -- ----------------------------------------------------------------------------
diff --git a/compiler/codeGen/StgCmmPrim.hs b/compiler/codeGen/StgCmmPrim.hs
index 66730af..1a6d05e 100644
--- a/compiler/codeGen/StgCmmPrim.hs
+++ b/compiler/codeGen/StgCmmPrim.hs
@@ -747,17 +747,9 @@ emitCopyByteArray :: (CmmExpr -> CmmExpr -> CmmExpr -> 
CmmExpr -> CmmExpr
                       -> FCode ())
                   -> CmmExpr -> CmmExpr -> CmmExpr -> CmmExpr -> CmmExpr
                   -> FCode ()
-emitCopyByteArray copy src0 src_off0 dst0 dst_off0 n0 = do
-    -- Passed as arguments (be careful)
-    src     <- assignTempE src0
-    src_off <- assignTempE src_off0
-    dst     <- assignTempE dst0
-    dst_off <- assignTempE dst_off0
-    n       <- assignTempE n0
-
+emitCopyByteArray copy src src_off dst dst_off n = do
     dst_p <- assignTempE $ cmmOffsetExpr (cmmOffsetB dst arrWordsHdrSize) 
dst_off
     src_p <- assignTempE $ cmmOffsetExpr (cmmOffsetB src arrWordsHdrSize) 
src_off
-
     copy src dst dst_p src_p n
 
 -- ----------------------------------------------------------------------------



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

Reply via email to