summaryrefslogtreecommitdiff
path: root/compiler/codeGen
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2013-08-16 11:15:12 +0100
committerSimon Peyton Jones <simonpj@microsoft.com>2013-08-19 09:46:10 +0100
commit83440fdc4f1b52b2f398326e0e86d4583afa433a (patch)
tree2e81295e66debd434c37777187d50e7147059943 /compiler/codeGen
parent96adf0e99b1a6595ee40ef9c05263a4fe73eb7c5 (diff)
downloadhaskell-83440fdc4f1b52b2f398326e0e86d4583afa433a.tar.gz
Comments only
Diffstat (limited to 'compiler/codeGen')
-rw-r--r--compiler/codeGen/StgCmmExpr.hs9
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