summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2018-06-14 14:22:03 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2018-06-14 14:22:03 +0000
commitdee9c67f24f0f4782b7d37b4c1451541a26806d0 (patch)
tree2383aa9fd33007c027ee421a33f39130b2877504
parent607a1e21964a1024f1daec3fb7d5eeae4e257d35 (diff)
downloadbcm5719-llvm-dee9c67f24f0f4782b7d37b4c1451541a26806d0.tar.gz
bcm5719-llvm-dee9c67f24f0f4782b7d37b4c1451541a26806d0.zip
[EarlyCSE] Fix MSVC build. NFCI.
MSVC doesn't let you assign different lambdas through a ternary operator. llvm-svn: 334715
-rw-r--r--llvm/lib/Transforms/Scalar/EarlyCSE.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/llvm/lib/Transforms/Scalar/EarlyCSE.cpp b/llvm/lib/Transforms/Scalar/EarlyCSE.cpp
index 80739a02e9f..565745d12e9 100644
--- a/llvm/lib/Transforms/Scalar/EarlyCSE.cpp
+++ b/llvm/lib/Transforms/Scalar/EarlyCSE.cpp
@@ -719,20 +719,16 @@ bool EarlyCSE::handleBranchCondition(Instruction *CondInst,
auto *TorF = (BI->getSuccessor(0) == BB)
? ConstantInt::getTrue(BB->getContext())
: ConstantInt::getFalse(BB->getContext());
- auto IsAnd = [](Instruction *I) {
+ auto MatchBinOp = [](Instruction *I, unsigned Opcode) {
if (BinaryOperator *BOp = dyn_cast<BinaryOperator>(I))
- return BOp->getOpcode() == Instruction::And;
- return false;
- };
- auto IsOr = [](Instruction *I) {
- if (BinaryOperator *BOp = dyn_cast<BinaryOperator>(I))
- return BOp->getOpcode() == Instruction::Or;
+ return BOp->getOpcode() == Opcode;
return false;
};
// If the condition is AND operation, we can propagate its operands into the
// true branch. If it is OR operation, we can propagate them into the false
// branch.
- auto CanPropagateOperands = (BI->getSuccessor(0) == BB) ? IsAnd : IsOr;
+ unsigned PropagateOpcode =
+ (BI->getSuccessor(0) == BB) ? Instruction::And : Instruction::Or;
bool MadeChanges = false;
SmallVector<Instruction *, 4> WorkList;
@@ -756,7 +752,7 @@ bool EarlyCSE::handleBranchCondition(Instruction *CondInst,
}
}
- if (CanPropagateOperands(Curr))
+ if (MatchBinOp(Curr, PropagateOpcode))
for (auto &Op : cast<BinaryOperator>(Curr)->operands())
if (Instruction *OPI = dyn_cast<Instruction>(Op))
if (SimpleValue::canHandle(OPI) && Visited.insert(OPI).second)
OpenPOWER on IntegriCloud