projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of http://darcs.haskell.org/ghc
[ghc-hetmet.git]
/
compiler
/
codeGen
/
StgCmmExpr.hs
diff --git
a/compiler/codeGen/StgCmmExpr.hs
b/compiler/codeGen/StgCmmExpr.hs
index
50d500b
..
eee4a08
100644
(file)
--- a/
compiler/codeGen/StgCmmExpr.hs
+++ b/
compiler/codeGen/StgCmmExpr.hs
@@
-27,9
+27,8
@@
import StgCmmClosure
import StgSyn
import StgSyn
-import MkZipCfgCmm
+import MkGraph
import BlockId
import BlockId
-import Cmm()
import CmmExpr
import CoreSyn
import DataCon
import CmmExpr
import CoreSyn
import DataCon
@@
-456,10
+455,8
@@
cgAltRhss gc_plan bndr alts
; return con }
maybeAltHeapCheck :: GcPlan -> FCode a -> FCode a
; return con }
maybeAltHeapCheck :: GcPlan -> FCode a -> FCode a
-maybeAltHeapCheck NoGcInAlts code
- = code
-maybeAltHeapCheck (GcInAlts regs _) code
- = altHeapCheck regs code
+maybeAltHeapCheck NoGcInAlts code = code
+maybeAltHeapCheck (GcInAlts regs _) code = altHeapCheck regs code
-----------------------------------------------------------------------------
-- Tail calls
-----------------------------------------------------------------------------
-- Tail calls
@@
-550,8
+547,8
@@
if the assignment to the binder will be dead code (use isDeadBndr).
The following example illustrates how badly the code turns out:
STG:
case <=## [ww_s7Hx y_s7HD] of wild2_sbH8 {
The following example illustrates how badly the code turns out:
STG:
case <=## [ww_s7Hx y_s7HD] of wild2_sbH8 {
- GHC.Bool.False -> <true code> // sbH8 dead
- GHC.Bool.True -> <false code> // sbH8 dead
+ GHC.Types.False -> <true code> // sbH8 dead
+ GHC.Types.True -> <false code> // sbH8 dead
};
Cmm:
_s7HD::F64 = F64[_sbH7::I64 + 7]; // MidAssign
};
Cmm:
_s7HD::F64 = F64[_sbH7::I64 + 7]; // MidAssign
@@
-611,3
+608,4
@@
we should still generate the same code:
L2:
<default-case code>
-}
L2:
<default-case code>
-}
+