Remove redundant check in cgCase
authorÖmer Sinan Ağacan <omeragacan@gmail.com>
Tue, 20 Nov 2018 13:30:15 +0000 (16:30 +0300)
committerÖmer Sinan Ağacan <omeragacan@gmail.com>
Tue, 20 Nov 2018 13:32:35 +0000 (16:32 +0300)
D5339 (part of D5324) removed the dead case binder analysis done during
CoreToStg so this condition always holds now.

Test Plan: Validated locally.

Reviewers: sgraf, bgamari, simonmar

Subscribers: rwbarton, carter

Differential Revision: https://phabricator.haskell.org/D5358

compiler/codeGen/StgCmmExpr.hs

index e8d111f..2430a0d 100644 (file)
@@ -304,13 +304,10 @@ cgCase (StgOpApp (StgPrimOp op) args _) bndr (AlgAlt tycon) alts
   | isEnumerationTyCon tycon -- Note [case on bool]
   = do { tag_expr <- do_enum_primop op args
 
-       -- If the binder is not dead, convert the tag to a constructor
-       -- and assign it.
-       ; unless (isDeadBinder bndr) $ do
-            { dflags <- getDynFlags
-            ; tmp_reg <- bindArgToReg (NonVoid bndr)
-            ; emitAssign (CmmLocal tmp_reg)
-                         (tagToClosure dflags tycon tag_expr) }
+       ; dflags <- getDynFlags
+       ; tmp_reg <- bindArgToReg (NonVoid bndr)
+       ; emitAssign (CmmLocal tmp_reg)
+                    (tagToClosure dflags tycon tag_expr)
 
        ; (mb_deflt, branches) <- cgAlgAltRhss (NoGcInAlts,AssignedDirectly)
                                               (NonVoid bndr) alts