diff options
author | Xin Tong <trent.xin.tong@gmail.com> | 2017-05-01 16:19:59 +0000 |
---|---|---|
committer | Xin Tong <trent.xin.tong@gmail.com> | 2017-05-01 16:19:59 +0000 |
commit | 99dce428bca45663ee9c4a52fbfe6a0c3c1963a7 (patch) | |
tree | 319cab595db4b7a5d29901b781fe388a3d826d8a /llvm | |
parent | 43b72d538f9f76afd38a59423e587083801125e8 (diff) | |
download | bcm5719-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.cpp | 7 |
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(); } |