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/CmmNode.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/CmmNode.hs')
-rw-r--r-- | compiler/cmm/CmmNode.hs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/cmm/CmmNode.hs b/compiler/cmm/CmmNode.hs index 5a07bad7d7..971b351320 100644 --- a/compiler/cmm/CmmNode.hs +++ b/compiler/cmm/CmmNode.hs @@ -310,14 +310,14 @@ instance UserOfSlots ForeignTarget where instance DefinerOfSlots (CmmNode e x) where foldSlotsDefd f z n = case n of CmmStore (CmmStackSlot a i) expr -> f z (a, i, widthInBytes $ typeWidth $ cmmExprType expr) - CmmForeignCall {res=res} -> fold f z $ map foreign_call_slot res + -- CmmForeignCall {res=res} -> fold f z $ map foreign_call_slot res _ -> z where fold :: forall a b. DefinerOfSlots a => (b -> SubArea -> b) -> b -> a -> b fold f z n = foldSlotsDefd f z n - foreign_call_slot r = case widthInBytes $ typeWidth $ localRegType r of w -> (RegSlot r, w, w) + -- foreign_call_slot r = case widthInBytes $ typeWidth $ localRegType r of w -> (RegSlot r, w, w) ----------------------------------- -- mapping Expr in CmmNode |