Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : master
http://hackage.haskell.org/trac/ghc/changeset/f3a1b28e408de01d01ec252efd5b54722eb775d8 >--------------------------------------------------------------- commit f3a1b28e408de01d01ec252efd5b54722eb775d8 Author: Edward Z. Yang <[email protected]> Date: Mon Jun 13 17:29:58 2011 +0100 Bake in ByteOff to ParamLocation, and remove ArgumentFormat synonym. Signed-off-by: Edward Z. Yang <[email protected]> >--------------------------------------------------------------- compiler/cmm/CmmCallConv.hs | 13 +++++-------- compiler/cmm/MkGraph.hs | 2 +- compiler/cmm/cmm-notes | 3 +-- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/compiler/cmm/CmmCallConv.hs b/compiler/cmm/CmmCallConv.hs index 73ce529..c81b868 100644 --- a/compiler/cmm/CmmCallConv.hs +++ b/compiler/cmm/CmmCallConv.hs @@ -1,6 +1,5 @@ module CmmCallConv ( ParamLocation(..), - ArgumentFormat, assignArgumentsPos ) where @@ -19,21 +18,19 @@ import Outputable -- Calculate the 'GlobalReg' or stack locations for function call -- parameters as used by the Cmm calling convention. -data ParamLocation a +data ParamLocation = RegisterParam GlobalReg - | StackParam a + | StackParam ByteOff -instance (Outputable a) => Outputable (ParamLocation a) where +instance Outputable ParamLocation where ppr (RegisterParam g) = ppr g ppr (StackParam p) = ppr p -type ArgumentFormat a b = [(a, ParamLocation b)] - -- | JD: For the new stack story, I want arguments passed on the stack to manifest as -- positive offsets in a CallArea, not negative offsets from the stack pointer. -- Also, I want byte offsets, not word offsets. -assignArgumentsPos :: (Outputable a) => Convention -> (a -> CmmType) -> [a] -> - ArgumentFormat a ByteOff +assignArgumentsPos :: Convention -> (a -> CmmType) -> [a] -> + [(a, ParamLocation)] -- Given a list of arguments, and a function that tells their types, -- return a list showing where each argument is passed assignArgumentsPos conv arg_ty reps = assignments diff --git a/compiler/cmm/MkGraph.hs b/compiler/cmm/MkGraph.hs index 1e3f17b..bb2d799 100644 --- a/compiler/cmm/MkGraph.hs +++ b/compiler/cmm/MkGraph.hs @@ -355,7 +355,7 @@ copyOutOflow conv transfer area@(CallArea a) actuals updfr_off else ([], 0) Old -> ([], updfr_off) - args :: [(CmmExpr, ParamLocation ByteOff)] -- The argument and where to put it + args :: [(CmmExpr, ParamLocation)] -- The argument and where to put it args = assignArgumentsPos conv cmmExprType actuals args' = foldl adjust setRA args diff --git a/compiler/cmm/cmm-notes b/compiler/cmm/cmm-notes index 0800bfb..4d5fdf2 100644 --- a/compiler/cmm/cmm-notes +++ b/compiler/cmm/cmm-notes @@ -1,7 +1,6 @@ More notes (June 11) ~~~~~~~~~~~~~~~~~~~~ -* Bake in ByteOff to ParamLocation and ArgumentFormat - CmmActuals -> [CmmActual] similary CmmFormals +* CmmActuals -> [CmmActual] similary CmmFormals * Possible refactoring: Nuke AGraph in favour of mkIfThenElse :: Expr -> Graph -> Graph -> FCode Graph _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
