Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
class HooplNode nv => NodeAlloc nv nr | nv -> nr, nr -> nv where Source
isCall :: nv O O -> Bool Source
isBranch :: nv O C -> Bool Source
retargetBranch :: nv O C -> Label -> Label -> nv O C Source
mkLabelOp :: Label -> nv C O Source
mkJumpOp :: Label -> nv O C Source
getReferences :: nv e x -> [VarInfo] Source
setRegisters :: [((VarId, VarKind), PhysReg)] -> nv e x -> Env (nr e x) Source
mkMoveOps :: PhysReg -> VarId -> PhysReg -> Env [nr O O] Source
mkSaveOps :: PhysReg -> VarId -> Env [nr O O] Source
mkRestoreOps :: VarId -> PhysReg -> Env [nr O O] Source
op1ToString :: nv e x -> String Source
blockInfo :: (NodeAlloc nv nr, NonLocal nv, NonLocal nr) => BlockInfo Env (Block nv C C) (Block nr C C) (NodeV nv) (NodeV nr) Source
:: (NodeAlloc nv nr, NonLocal nv, NonLocal nr) | |
=> Int | Number of machine registers |
-> Int | Offset of the spill stack |
-> Int | Size of spilled register in bytes |
-> UseVerifier | Whether to use allocation verifier |
-> Label | Label of graph entry block |
-> Graph nv C C | Program graph |
-> (String, Either [String] (Graph nr C C)) |