llvm-project/llvm
Artur Pilipenko 8aadc643cf [LoopPredication] Handle the case when the guard and the latch IV have different offsets
This is a follow up change for D37569.

Currently the transformation is limited to the case when:
 * The loop has a single latch with the condition of the form: ++i <pred> latchLimit, where <pred> is u<, u<=, s<, or s<=.
 * The step of the IV used in the latch condition is 1.
 * The IV of the latch condition is the same as the post increment IV of the guard condition.
 * The guard condition is of the form i u< guardLimit.

This patch enables the transform in the case when the latch is

 latchStart + i <pred> latchLimit, where <pred> is u<, u<=, s<, or s<=.

And the guard is

 guardStart + i u< guardLimit

Reviewed By: anna

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

llvm-svn: 316768
2017-10-27 14:46:17 +00:00
..
bindings Reverting r315590; it did not include changes for llvm-tblgen, which is causing link errors for several people. 2017-10-15 14:32:27 +00:00
cmake [cmake] Restrict resource file usage to Windows build hosts 2017-10-25 17:11:28 +00:00
docs [docs] Fix a small typo 2017-10-26 17:58:05 +00:00
examples
include [LLVM-C] Publicly expose getters of MetadataType, TokenType 2017-10-27 11:51:40 +00:00
lib [LoopPredication] Handle the case when the guard and the latch IV have different offsets 2017-10-27 14:46:17 +00:00
projects
resources
runtimes
test [LoopPredication] Handle the case when the guard and the latch IV have different offsets 2017-10-27 14:46:17 +00:00
tools [LLVM-C] Publicly expose getters of MetadataType, TokenType 2017-10-27 11:51:40 +00:00
unittests Reapply r316582 [Local] Fix a bug in the domtree update logic for MergeBasicBlockIntoOnlyPred. 2017-10-26 15:04:53 +00:00
utils [TableGen] Use Twine instead of std::string concatenation in two calls to PrintFatalError. 2017-10-26 20:49:36 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt [CMake] Allow parent projects to use in-source builds 2017-10-19 00:43:48 +00:00
CODE_OWNERS.TXT Update my email addresses, NFC. 2017-10-26 10:16:54 +00:00
CREDITS.TXT Add myself to CREDITS.txt 2017-09-18 14:33:39 +00:00
LICENSE.TXT
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT Update my email addresses, NFC. 2017-10-26 10:16:54 +00:00
configure
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.