X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fcmm%2FCmm.hs;h=cbc60c2d74ddc029017c577cc26ed84bcb971ff5;hb=fa6c4bf01427a4191a595afecf90d96b27bad306;hp=5b3ad1668f2ac888299b8fbb2e463d60038f86ab;hpb=1c5499d4d5d506ce0cc971e98c09bfbf7bc290a1;p=ghc-hetmet.git diff --git a/compiler/cmm/Cmm.hs b/compiler/cmm/Cmm.hs index 5b3ad16..cbc60c2 100644 --- a/compiler/cmm/Cmm.hs +++ b/compiler/cmm/Cmm.hs @@ -12,6 +12,7 @@ module Cmm ( CmmInfo(..), UpdateFrame(..), CmmInfoTable(..), ClosureTypeInfo(..), ProfilingInfo(..), ClosureTypeTag, GenBasicBlock(..), CmmBasicBlock, blockId, blockStmts, mapBlockStmts, + CmmReturnInfo(..), CmmStmt(..), CmmActuals, CmmFormal, CmmFormals, CmmHintFormals, CmmSafety(..), CmmCallTarget(..), @@ -140,6 +141,9 @@ data ClosureTypeInfo [Maybe LocalReg] -- Forced stack parameters C_SRT +data CmmReturnInfo = CmmMayReturn + | CmmNeverReturns + -- TODO: These types may need refinement data ProfilingInfo = ProfilingInfo CmmLit CmmLit -- closure_type, closure_desc type ClosureTypeTag = StgHalfWord @@ -181,6 +185,7 @@ data CmmStmt CmmHintFormals -- zero or more results CmmActuals -- zero or more arguments CmmSafety -- whether to build a continuation + CmmReturnInfo | CmmBranch BlockId -- branch to another BB in this fn