mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
Make getUniqueExitBlocks's precondition assert more precise, to
avoid spurious failures. This fixes PR5758. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91147 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a4f9cc4e55
commit
050959cd08
@ -568,7 +568,7 @@ public:
|
||||
|
||||
/// getUniqueExitBlocks - Return all unique successor blocks of this loop.
|
||||
/// These are the blocks _outside of the current loop_ which are branched to.
|
||||
/// This assumes that loop is in canonical form.
|
||||
/// This assumes that loop exits are in canonical form.
|
||||
///
|
||||
void getUniqueExitBlocks(SmallVectorImpl<BasicBlock *> &ExitBlocks) const;
|
||||
|
||||
|
@ -316,12 +316,12 @@ bool Loop::hasDedicatedExits() const {
|
||||
|
||||
/// getUniqueExitBlocks - Return all unique successor blocks of this loop.
|
||||
/// These are the blocks _outside of the current loop_ which are branched to.
|
||||
/// This assumes that loop is in canonical form.
|
||||
/// This assumes that loop exits are in canonical form.
|
||||
///
|
||||
void
|
||||
Loop::getUniqueExitBlocks(SmallVectorImpl<BasicBlock *> &ExitBlocks) const {
|
||||
assert(isLoopSimplifyForm() &&
|
||||
"getUniqueExitBlocks assumes the loop is in canonical form!");
|
||||
assert(hasDedicatedExits() &&
|
||||
"getUniqueExitBlocks assumes the loop has canonical form exits!");
|
||||
|
||||
// Sort the blocks vector so that we can use binary search to do quick
|
||||
// lookups.
|
||||
|
22
test/Transforms/IndVarSimplify/indirectbr.ll
Normal file
22
test/Transforms/IndVarSimplify/indirectbr.ll
Normal file
@ -0,0 +1,22 @@
|
||||
; RUN: opt < %s -indvars -S -disable-output
|
||||
; PR5758
|
||||
|
||||
define zeroext i1 @foo() nounwind {
|
||||
entry:
|
||||
indirectbr i8* undef, [label %"202", label %"133"]
|
||||
|
||||
"132": ; preds = %"133"
|
||||
%0 = add i32 %1, 1 ; <i32> [#uses=1]
|
||||
br label %"133"
|
||||
|
||||
"133": ; preds = %"132", %entry
|
||||
%1 = phi i32 [ %0, %"132" ], [ 0, %entry ] ; <i32> [#uses=2]
|
||||
%2 = icmp eq i32 %1, 4 ; <i1> [#uses=1]
|
||||
br i1 %2, label %"134", label %"132"
|
||||
|
||||
"134": ; preds = %"133"
|
||||
ret i1 true
|
||||
|
||||
"202": ; preds = %entry
|
||||
ret i1 false
|
||||
}
|
Loading…
Reference in New Issue
Block a user