diff options
Diffstat (limited to 'polly/lib/Support/ScopHelper.cpp')
-rw-r--r-- | polly/lib/Support/ScopHelper.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/polly/lib/Support/ScopHelper.cpp b/polly/lib/Support/ScopHelper.cpp index 69904f0c241..c55a4749314 100644 --- a/polly/lib/Support/ScopHelper.cpp +++ b/polly/lib/Support/ScopHelper.cpp @@ -345,3 +345,17 @@ bool polly::isErrorBlock(BasicBlock &BB) { return false; } + +Value *polly::getConditionFromTerminator(TerminatorInst *TI) { + if (BranchInst *BR = dyn_cast<BranchInst>(TI)) { + if (BR->isUnconditional()) + return ConstantInt::getTrue(Type::getInt1Ty(TI->getContext())); + + return BR->getCondition(); + } + + if (SwitchInst *SI = dyn_cast<SwitchInst>(TI)) + return SI->getCondition(); + + return nullptr; +} |