diff options
| author | Simon Marlow <marlowsd@gmail.com> | 2012-02-03 15:03:06 +0000 |
|---|---|---|
| committer | Simon Marlow <marlowsd@gmail.com> | 2012-02-08 15:50:43 +0000 |
| commit | 76999b605423f530ec17562d772eda1c1672db53 (patch) | |
| tree | 3ca1208d02ca753ffe07e13fe1bdbc1388d7e9cf /compiler/cmm/OldCmm.hs | |
| parent | cd38928495f9186646273432151259f3d654b7e2 (diff) | |
| download | haskell-76999b605423f530ec17562d772eda1c1672db53.tar.gz | |
New stack layout algorithm
Also:
- improvements to code generation: push slow-call continuations
on the stack instead of generating explicit continuations
- remove unused CmmInfo wrapper type (replace with CmmInfoTable)
- squash Area and AreaId together, remove now-unused RegSlot
- comment out old unused stack-allocation code that no longer
compiles after removal of RegSlot
Diffstat (limited to 'compiler/cmm/OldCmm.hs')
| -rw-r--r-- | compiler/cmm/OldCmm.hs | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/compiler/cmm/OldCmm.hs b/compiler/cmm/OldCmm.hs index a8a9d5dde0..b9d1b9d1a4 100644 --- a/compiler/cmm/OldCmm.hs +++ b/compiler/cmm/OldCmm.hs @@ -16,7 +16,7 @@ module OldCmm ( CmmGroup, GenCmmGroup, RawCmmGroup, CmmDecl, RawCmmDecl, ListGraph(..), - CmmInfo(..), UpdateFrame(..), CmmInfoTable(..), ClosureTypeInfo(..), + UpdateFrame(..), CmmInfoTable(..), ClosureTypeInfo(..), CmmStatic(..), CmmStatics(..), CmmFormal, CmmActual, cmmMapGraph, cmmTopMapGraph, GenBasicBlock(..), CmmBasicBlock, blockId, blockStmts, mapBlockStmts, @@ -53,13 +53,6 @@ import FastString -- Info Tables ----------------------------------------------------------------------------- -data CmmInfo - = CmmInfo - (Maybe BlockId) -- GC target. Nothing <=> CPS won't do stack check - -- JD: NOT USED BY NEW CODE GEN - (Maybe UpdateFrame) -- Update frame - CmmInfoTable -- Info table - -- | A frame that is to be pushed before entry to the function. -- Used to handle 'update' frames. data UpdateFrame = @@ -85,8 +78,8 @@ newtype ListGraph i = ListGraph [GenBasicBlock i] -- across a whole compilation unit. -- | Cmm with the info table as a data type -type CmmGroup = GenCmmGroup CmmStatics CmmInfo (ListGraph CmmStmt) -type CmmDecl = GenCmmDecl CmmStatics CmmInfo (ListGraph CmmStmt) +type CmmGroup = GenCmmGroup CmmStatics CmmInfoTable (ListGraph CmmStmt) +type CmmDecl = GenCmmDecl CmmStatics CmmInfoTable (ListGraph CmmStmt) -- | Cmm with the info tables converted to a list of 'CmmStatic' along with the info -- table label. If we are building without tables-next-to-code there will be no statics |
