diff options
author | dias@cs.tufts.edu <unknown> | 2009-11-05 15:15:32 +0000 |
---|---|---|
committer | dias@cs.tufts.edu <unknown> | 2009-11-05 15:15:32 +0000 |
commit | c55eee3add067dd0372ed8eede64b84791f7a9b9 (patch) | |
tree | 82ab0d831a732587f86da0693bab0b5c70fa9de0 /compiler/codeGen | |
parent | c6206fd81612e51e257a650390646421c7c1d1cb (diff) | |
download | haskell-c55eee3add067dd0372ed8eede64b84791f7a9b9.tar.gz |
Loop problems in native back ends, update to T3286 fix
The native back ends had difficulties with loops;
in particular the code for branch-chain elimination
could run in infinite loops or drop basic blocks.
The old codeGen didn't expose these problems.
Also, my fix for T3286 in the new codegen was getting
applied to too many (some wrong) cases; a better pattern
match fixed that.
Diffstat (limited to 'compiler/codeGen')
-rw-r--r-- | compiler/codeGen/StgCmmExpr.hs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/codeGen/StgCmmExpr.hs b/compiler/codeGen/StgCmmExpr.hs index 002e1b2c9b..0c958b3805 100644 --- a/compiler/codeGen/StgCmmExpr.hs +++ b/compiler/codeGen/StgCmmExpr.hs @@ -292,7 +292,7 @@ cgCase (OpApp ) bndr srt AlgAlt [(DataAlt flase, a2] -- The Sequel is a type-correct assignment, albeit bogus. -- The (dead) continuation loops; it would be better to invoke some kind -- of panic function here. -cgCase scrut@(StgApp v []) bndr _ _ _ +cgCase scrut@(StgApp v []) bndr _ (PrimAlt _) _ | not (isUnLiftedType (idType v)) && reps_incompatible = do { mb_cc <- maybeSaveCostCentre True |