summaryrefslogtreecommitdiff
path: root/compiler/cmm/CmmLayoutStack.hs
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2012-08-02 10:35:44 +0100
committerSimon Marlow <marlowsd@gmail.com>2012-08-02 11:57:29 +0100
commit95686360bb8898e77b2998d3aec11a4e2c31c4ad (patch)
treece906805eff9c243c863ba2b3e6b5df1165caa0b /compiler/cmm/CmmLayoutStack.hs
parent325f2f37c5a5988d9fca04edb13805f328eb1b53 (diff)
downloadhaskell-95686360bb8898e77b2998d3aec11a4e2c31c4ad.tar.gz
No need to do removeDeadAssignments, just do cmmLiveness instead
Diffstat (limited to 'compiler/cmm/CmmLayoutStack.hs')
-rw-r--r--compiler/cmm/CmmLayoutStack.hs8
1 files changed, 7 insertions, 1 deletions
diff --git a/compiler/cmm/CmmLayoutStack.hs b/compiler/cmm/CmmLayoutStack.hs
index fcf7882777..d2fffab4ac 100644
--- a/compiler/cmm/CmmLayoutStack.hs
+++ b/compiler/cmm/CmmLayoutStack.hs
@@ -110,7 +110,13 @@ cmmLayoutStack dflags procpoints entry_args
graph0@(CmmGraph { g_entry = entry })
= do
-- pprTrace "cmmLayoutStack" (ppr entry_args) $ return ()
- (graph, liveness) <- removeDeadAssignments graph0
+
+ -- We need liveness info. We could do removeDeadAssignments at
+ -- the same time, but it buys nothing over doing cmmSink later,
+ -- and costs a lot more than just cmmLiveness.
+ -- (graph, liveness) <- removeDeadAssignments graph0
+ let (graph, liveness) = (graph0, cmmLiveness graph0)
+
-- pprTrace "liveness" (ppr liveness) $ return ()
let blocks = postorderDfs graph