[PATCH] D12477: [LV] Don't bail to MiddleBlock if a runtime check fails, bail to ScalarPH instead

James Molloy via llvm-commits llvm-commits at lists.llvm.org
Sun Aug 30 04:19:34 PDT 2015


jmolloy created this revision.
jmolloy added reviewers: hfinkel, anemet, mzolotukhin.
jmolloy added a subscriber: llvm-commits.
jmolloy set the repository for this revision to rL LLVM.

We were bailing to two places if our runtime checks failed. If the initial overflow check failed, we'd go to ScalarPH. If any other check failed, we'd go to MiddleBlock. This caused us to have to have an extra PHI per induction and reduction as the vector loop's exit block was not dominated by its latch.

There's no need to have this behavior - if we just always go to ScalarPH we can get rid of a bunch of complexity.

Repository:
  rL LLVM

http://reviews.llvm.org/D12477

Files:
  lib/Transforms/Vectorize/LoopVectorize.cpp
  test/Transforms/LoopVectorize/debugloc.ll
  test/Transforms/LoopVectorize/induction.ll
  test/Transforms/LoopVectorize/reduction.ll
  test/Transforms/LoopVectorize/runtime-check.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12477.33531.patch
Type: text/x-patch
Size: 11196 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150830/9c86ed1d/attachment.bin>


More information about the llvm-commits mailing list