diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2013-08-16 11:15:12 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2013-08-19 09:46:10 +0100 |
commit | 83440fdc4f1b52b2f398326e0e86d4583afa433a (patch) | |
tree | 2e81295e66debd434c37777187d50e7147059943 /compiler/codeGen | |
parent | 96adf0e99b1a6595ee40ef9c05263a4fe73eb7c5 (diff) | |
download | haskell-83440fdc4f1b52b2f398326e0e86d4583afa433a.tar.gz |
Comments only
Diffstat (limited to 'compiler/codeGen')
-rw-r--r-- | compiler/codeGen/StgCmmExpr.hs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/compiler/codeGen/StgCmmExpr.hs b/compiler/codeGen/StgCmmExpr.hs index 20b65ba4c7..bbb5937240 100644 --- a/compiler/codeGen/StgCmmExpr.hs +++ b/compiler/codeGen/StgCmmExpr.hs @@ -313,13 +313,20 @@ cgCase (StgOpApp (StgPrimOp op) args _) bndr (AlgAlt tycon) alts {- Note [case on bool] - +~~~~~~~~~~~~~~~~~~~ This special case handles code like case a <# b of True -> False -> +--> case tagToEnum# (a <$# b) of + True -> .. ; False -> ... + +--> case (a <$# b) of r -> + case tagToEnum# r of + True -> .. ; False -> ... + If we let the ordinary case code handle it, we'll get something like tmp1 = a < b |