From: Mikael Holmen Date: Fri, 1 Dec 2017 13:11:39 +0000 (+0000) Subject: Revert r319537: Bail out of a SimplifyCFG switch table opt at undef values. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4ece91062bd494cc14808e2fb628f0345dbaed80;p=llvm Revert r319537: Bail out of a SimplifyCFG switch table opt at undef values. Broke build bots so reverting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@319539 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Utils/SimplifyCFG.cpp b/lib/Transforms/Utils/SimplifyCFG.cpp index 394c951630c..8f1626a149a 100644 --- a/lib/Transforms/Utils/SimplifyCFG.cpp +++ b/lib/Transforms/Utils/SimplifyCFG.cpp @@ -5174,7 +5174,7 @@ static void reuseTableCompare( for (auto ValuePair : Values) { Constant *CaseConst = ConstantExpr::getICmp(CmpInst->getPredicate(), ValuePair.second, CmpOp1, true); - if (!CaseConst || CaseConst == DefaultConst || isa(CaseConst)) + if (!CaseConst || CaseConst == DefaultConst) return; assert((CaseConst == TrueConst || CaseConst == FalseConst) && "Expect true or false as compare result."); diff --git a/test/Transforms/SimplifyCFG/switch_undef.ll b/test/Transforms/SimplifyCFG/switch_undef.ll deleted file mode 100644 index 4bc3aacf910..00000000000 --- a/test/Transforms/SimplifyCFG/switch_undef.ll +++ /dev/null @@ -1,27 +0,0 @@ -; RUN: opt %s -keep-loops=false -switch-to-lookup=true -simplifycfg -S | FileCheck %s - -target triple = "x86_64-unknown-linux-gnu" - -define void @f6() #0 { -; CHECK-LABEL: entry: -; CHECK-NEXT: br label %f1.exit.i -; CHECK-LABEL: f1.exit.i: - -entry: - br label %for.cond.i - -for.cond.i: ; preds = %f1.exit.i, %entry - switch i16 undef, label %f1.exit.i [ - i16 -1, label %cond.false.i3.i - i16 1, label %cond.false.i3.i - i16 0, label %cond.false.i3.i - ] - -cond.false.i3.i: ; preds = %for.cond.i, %for.cond.i, %for.cond.i - br label %f1.exit.i - -f1.exit.i: ; preds = %cond.false.i3.i, %for.cond.i - %cond.i4.i = phi i16 [ undef, %cond.false.i3.i ], [ 1, %for.cond.i ] - %tobool7.i = icmp ne i16 %cond.i4.i, 0 - br label %for.cond.i -}