[commit: ghc] newcg: add mapSuccessors (cd38928)
Simon Marlow
marlowsd at gmail.com
Wed Feb 8 16:54:19 CET 2012
Repository : ssh://darcs.haskell.org//srv/darcs/ghc
On branch : newcg
http://hackage.haskell.org/trac/ghc/changeset/cd38928495f9186646273432151259f3d654b7e2
>---------------------------------------------------------------
commit cd38928495f9186646273432151259f3d654b7e2
Author: Simon Marlow <marlowsd at gmail.com>
Date: Fri Feb 3 15:02:05 2012 +0000
add mapSuccessors
>---------------------------------------------------------------
compiler/cmm/CmmNode.hs | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/compiler/cmm/CmmNode.hs b/compiler/cmm/CmmNode.hs
index ae70efc..5a07bad 100644
--- a/compiler/cmm/CmmNode.hs
+++ b/compiler/cmm/CmmNode.hs
@@ -18,7 +18,7 @@ module CmmNode (
CmmNode(..), ForeignHint(..), CmmFormal, CmmActual,
UpdFrameOffset, Convention(..), ForeignConvention(..), ForeignTarget(..),
mapExp, mapExpDeep, wrapRecExp, foldExp, foldExpDeep, wrapRecExpf,
- mapExpM, mapExpDeepM, wrapRecExpM
+ mapExpM, mapExpDeepM, wrapRecExpM, mapSuccessors
) where
import CmmExpr
@@ -430,3 +430,11 @@ foldExpDeep f = foldExp go
gos [] z = z
gos (e:es) z = gos es $! f e z
+-- -----------------------------------------------------------------------------
+
+mapSuccessors :: (Label -> Label) -> CmmNode O C -> CmmNode O C
+mapSuccessors f (CmmBranch bid) = CmmBranch (f bid)
+mapSuccessors f (CmmCondBranch p y n) = CmmCondBranch p (f y) (f n)
+mapSuccessors f (CmmSwitch e arms) = CmmSwitch e (map (fmap f) arms)
+mapSuccessors f n = n
+
More information about the Cvs-ghc
mailing list