diff options
author | Simon Marlow <marlowsd@gmail.com> | 2012-07-09 16:08:21 +0100 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2012-07-09 16:23:45 +0100 |
commit | c6a61235aa0baf6f9e8a41c5a771ccc7e32c23a5 (patch) | |
tree | a288174c5f6ab513319bd4d1dae6ef79044f5ae9 /compiler/cmm/CmmProcPoint.hs | |
parent | c9cb46bec47ada686d18437578fbc95281c9c6d4 (diff) | |
download | haskell-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.hs | 6 |
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 |