summaryrefslogtreecommitdiff
path: root/compiler/cmm/CmmProcPoint.hs
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2012-07-09 16:08:21 +0100
committerSimon Marlow <marlowsd@gmail.com>2012-07-09 16:23:45 +0100
commitc6a61235aa0baf6f9e8a41c5a771ccc7e32c23a5 (patch)
treea288174c5f6ab513319bd4d1dae6ef79044f5ae9 /compiler/cmm/CmmProcPoint.hs
parentc9cb46bec47ada686d18437578fbc95281c9c6d4 (diff)
downloadhaskell-c6a61235aa0baf6f9e8a41c5a771ccc7e32c23a5.tar.gz
Track liveness of GlobalRegs in the new code generator
This gives the register allocator access to R1.., F1.., D1.. etc. for the new code generator, and is a cheap way to eliminate all the extra "x = R1" assignments that we get from copyIn.
Diffstat (limited to 'compiler/cmm/CmmProcPoint.hs')
-rw-r--r--compiler/cmm/CmmProcPoint.hs6
1 files changed, 4 insertions, 2 deletions
diff --git a/compiler/cmm/CmmProcPoint.hs b/compiler/cmm/CmmProcPoint.hs
index 6eb92666af..ebe40d9c9e 100644
--- a/compiler/cmm/CmmProcPoint.hs
+++ b/compiler/cmm/CmmProcPoint.hs
@@ -245,7 +245,8 @@ splitAtProcPoints entry_label callPPs procPoints procMap
let add_jump_block (env, bs) (pp, l) =
do bid <- liftM mkBlockId getUniqueM
let b = blockJoin (CmmEntry bid) emptyBlock jump
- jump = CmmCall (CmmLit (CmmLabel l)) Nothing 0 0 0
+ jump = CmmCall (CmmLit (CmmLabel l)) Nothing [{-XXX-}] 0 0 0
+ -- XXX: No regs are live at the call
return (mapInsert pp bid env, b : bs)
add_jumps newGraphEnv (ppId, blockEnv) =
@@ -286,7 +287,8 @@ splitAtProcPoints entry_label callPPs procPoints procMap
-> CmmProc (TopInfo {info_tbl=CmmNonInfoTable, stack_info=stack_info})
lbl (replacePPIds g)
where
- stack_info = panic "No StackInfo"
+ stack_info = StackInfo 0 Nothing -- panic "No StackInfo"
+ -- cannot use panic, this is printed by -ddump-cmmz
-- References to procpoint IDs can now be replaced with the
-- infotable's label