OSDN Git Service

[Loop Vectorizer] Abandon vectorization when no integer IV found
authorWarren Ristow <warren.ristow@sony.com>
Fri, 21 Sep 2018 23:03:50 +0000 (23:03 +0000)
committerWarren Ristow <warren.ristow@sony.com>
Fri, 21 Sep 2018 23:03:50 +0000 (23:03 +0000)
commit99ea666c23883dd9678aea20279815fd6038ff8c
treeb473ad68753a6f047ec81a19ddec20f0b382099f
parent9f2b1de8658cd90931543ae669f024651bd823d6
[Loop Vectorizer] Abandon vectorization when no integer IV found

Support for vectorizing loops with secondary floating-point induction
variables was added in r276554.  A primary integer IV is still required
for vectorization to be done.  If an FP IV was found, but no integer IV
was found at all (primary or secondary), the attempt to vectorize still
went forward, causing a compiler-crash.  This change abandons that
attempt when no integer IV is found.  (Vectorizing FP-only cases like
this, rather than bailing out, is discussed as possible future work
in D52327.)

See PR38800 for more information.

Differential Revision: https://reviews.llvm.org/D52327

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@342786 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
lib/Transforms/Vectorize/LoopVectorize.cpp
test/Transforms/LoopVectorize/pr37515.ll [new file with mode: 0644]
test/Transforms/LoopVectorize/pr38800.ll [new file with mode: 0755]