diff options
author | Florian Hahn <florian.hahn@arm.com> | 2018-02-13 10:02:52 +0000 |
---|---|---|
committer | Florian Hahn <florian.hahn@arm.com> | 2018-02-13 10:02:52 +0000 |
commit | 1f95ef1815c9b6a961811ec78e44d14b277abdd3 (patch) | |
tree | 2879b175920dae8f95db19a9636f24bbfceb4834 /llvm/lib/Transforms | |
parent | 92e0bb5c9558bde77f8cb7a8d4b5e3d75070c7c7 (diff) | |
download | bcm5719-llvm-1f95ef1815c9b6a961811ec78e44d14b277abdd3.tar.gz bcm5719-llvm-1f95ef1815c9b6a961811ec78e44d14b277abdd3.zip |
[LoopInterchange] Check number of latch successors before accessing them.
In cases where the OuterMostLoopLatchBI only has a single successor,
accessing the second successor will fail.
This fixes a failure when building the test-suite with loop-interchange
enabled.
Reviewers: mcrosier, karthikthecool, davide
Reviewed by: karthikthecool
Differential Revision: https://reviews.llvm.org/D42906
llvm-svn: 324994
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/Scalar/LoopInterchange.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp index 8540f5ae30c..4cda6ed4b87 100644 --- a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp +++ b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp @@ -541,7 +541,7 @@ struct LoopInterchange : public FunctionPass { BasicBlock *OuterMostLoopLatch = OuterMostLoop->getLoopLatch(); BranchInst *OuterMostLoopLatchBI = dyn_cast<BranchInst>(OuterMostLoopLatch->getTerminator()); - if (!OuterMostLoopLatchBI) + if (!OuterMostLoopLatchBI || OuterMostLoopLatchBI->getNumSuccessors() != 2) return false; // Since we currently do not handle LCSSA PHI's any failure in loop |