summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorXin Tong <trent.xin.tong@gmail.com>2017-05-01 16:19:59 +0000
committerXin Tong <trent.xin.tong@gmail.com>2017-05-01 16:19:59 +0000
commit99dce428bca45663ee9c4a52fbfe6a0c3c1963a7 (patch)
tree319cab595db4b7a5d29901b781fe388a3d826d8a /llvm
parent43b72d538f9f76afd38a59423e587083801125e8 (diff)
downloadbcm5719-llvm-99dce428bca45663ee9c4a52fbfe6a0c3c1963a7.tar.gz
bcm5719-llvm-99dce428bca45663ee9c4a52fbfe6a0c3c1963a7.zip
[JumpThread] Add some assertions for expected ConstantInt/BlockAddress
llvm-svn: 301808
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Transforms/Scalar/JumpThreading.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Scalar/JumpThreading.cpp b/llvm/lib/Transforms/Scalar/JumpThreading.cpp
index d9717628982..55b556bb59c 100644
--- a/llvm/lib/Transforms/Scalar/JumpThreading.cpp
+++ b/llvm/lib/Transforms/Scalar/JumpThreading.cpp
@@ -1268,13 +1268,16 @@ bool JumpThreadingPass::ProcessThreadableEdges(Value *Cond, BasicBlock *BB,
BasicBlock *DestBB;
if (isa<UndefValue>(Val))
DestBB = nullptr;
- else if (BranchInst *BI = dyn_cast<BranchInst>(BB->getTerminator()))
+ else if (BranchInst *BI = dyn_cast<BranchInst>(BB->getTerminator())) {
+ assert(isa<ConstantInt>(Val) && "Expecting a constant integer");
DestBB = BI->getSuccessor(cast<ConstantInt>(Val)->isZero());
- else if (SwitchInst *SI = dyn_cast<SwitchInst>(BB->getTerminator())) {
+ } else if (SwitchInst *SI = dyn_cast<SwitchInst>(BB->getTerminator())) {
+ assert(isa<ConstantInt>(Val) && "Expecting a constant integer");
DestBB = SI->findCaseValue(cast<ConstantInt>(Val))->getCaseSuccessor();
} else {
assert(isa<IndirectBrInst>(BB->getTerminator())
&& "Unexpected terminator");
+ assert(isa<BlockAddress>(Val) && "Expecting a constant blockaddress");
DestBB = cast<BlockAddress>(Val)->getBasicBlock();
}
OpenPOWER on IntegriCloud