mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-16 08:49:52 +00:00
Fix an infinite loop in the loop-vectorizer.
PR14134. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166379 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b8f2d82403
commit
ccaccfa8bf
@ -1175,6 +1175,12 @@ bool LoopVectorizationLegality::AddReductionVar(PHINode *Phi,
|
||||
bool FoundInBlockUser = false;
|
||||
// Did we reach the initial PHI node ?
|
||||
bool FoundStartPHI = false;
|
||||
|
||||
// If the instruction has no users then this is a broken
|
||||
// chain and can't be a reduction variable.
|
||||
if (Iter->use_begin() == Iter->use_end())
|
||||
return false;
|
||||
|
||||
// For each of the *users* of iter.
|
||||
for (Value::use_iterator it = Iter->use_begin(), e = Iter->use_end();
|
||||
it != e; ++it) {
|
||||
|
12
test/Transforms/LoopVectorize/2012-10-20-infloop.ll
Normal file
12
test/Transforms/LoopVectorize/2012-10-20-infloop.ll
Normal file
@ -0,0 +1,12 @@
|
||||
; RUN: opt < %s -loop-vectorize -dce
|
||||
|
||||
; Check that we don't fall into an infinite loop.
|
||||
define void @test() nounwind {
|
||||
entry:
|
||||
br label %for.body
|
||||
|
||||
for.body:
|
||||
%0 = phi i32 [ 1, %entry ], [ 0, %for.body ]
|
||||
br label %for.body
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user