summaryrefslogtreecommitdiff
path: root/compiler/codeGen
diff options
context:
space:
mode:
authorMichael D. Adams <t-madams@microsoft.com>2007-07-03 21:44:13 +0000
committerMichael D. Adams <t-madams@microsoft.com>2007-07-03 21:44:13 +0000
commit1f8efd5d6214c490ef4942134abf5de9f468d29c (patch)
tree59453bd516eba174ebeba10e0a44af236d3103bd /compiler/codeGen
parent55f8b001f06d0a2a1e9b0e84cbaa5f2f109270df (diff)
downloadhaskell-1f8efd5d6214c490ef4942134abf5de9f468d29c.tar.gz
Added support for update frames to the CPS pass
(This required a bit of refactoring of CmmInfo.)
Diffstat (limited to 'compiler/codeGen')
-rw-r--r--compiler/codeGen/CgInfoTbls.hs12
-rw-r--r--compiler/codeGen/CgMonad.lhs2
2 files changed, 8 insertions, 6 deletions
diff --git a/compiler/codeGen/CgInfoTbls.hs b/compiler/codeGen/CgInfoTbls.hs
index 6d270aef16..f6277f1a71 100644
--- a/compiler/codeGen/CgInfoTbls.hs
+++ b/compiler/codeGen/CgInfoTbls.hs
@@ -89,12 +89,12 @@ mkCmmInfo cl_info = do
info = ConstrInfo (ptrs, nptrs)
(fromIntegral (dataConTagZ con))
conName
- return $ CmmInfo prof gc_target cl_type info
+ return $ CmmInfo gc_target Nothing (CmmInfoTable prof cl_type info)
ClosureInfo { closureName = name,
closureLFInfo = lf_info,
closureSRT = srt } ->
- return $ CmmInfo prof gc_target cl_type info
+ return $ CmmInfo gc_target Nothing (CmmInfoTable prof cl_type info)
where
info =
case lf_info of
@@ -145,10 +145,12 @@ emitReturnTarget name stmts
; blks <- cgStmtsToBlocks stmts
; frame <- mkStackLayout
; let info = CmmInfo
- (ProfilingInfo zeroCLit zeroCLit)
gc_target
- rET_SMALL -- cmmToRawCmm may convert it to rET_BIG
- (ContInfo frame srt_info)
+ Nothing
+ (CmmInfoTable
+ (ProfilingInfo zeroCLit zeroCLit)
+ rET_SMALL -- cmmToRawCmm may convert it to rET_BIG
+ (ContInfo frame srt_info))
; emitInfoTableAndCode info_lbl info args blks
; return info_lbl }
where
diff --git a/compiler/codeGen/CgMonad.lhs b/compiler/codeGen/CgMonad.lhs
index d40c511327..688591292c 100644
--- a/compiler/codeGen/CgMonad.lhs
+++ b/compiler/codeGen/CgMonad.lhs
@@ -745,7 +745,7 @@ emitSimpleProc :: CLabel -> Code -> Code
emitSimpleProc lbl code
= do { stmts <- getCgStmts code
; blks <- cgStmtsToBlocks stmts
- ; emitProc (CmmNonInfo Nothing) lbl [] blks }
+ ; emitProc (CmmInfo Nothing Nothing CmmNonInfoTable) lbl [] blks }
getCmm :: Code -> FCode Cmm
-- Get all the CmmTops (there should be no stmts)