1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00
llvm-mirror/lib/Transforms
Krzysztof Parzyszek cae9ddd062 Disable jump threading into loop headers
Consider this type of a loop:
    for (...) {
      ...
      if (...) continue;
      ...
    }
Normally, the "continue" would branch to the loop control code that
checks whether the loop should continue iterating and which contains
the (often) unique loop latch branch. In certain cases jump threading
can "thread" the inner branch directly to the loop header, creating
a second loop latch. Loop canonicalization would then transform this
loop into a loop nest. The problem with this is that in such a loop
nest neither loop is countable even if the original loop was. This
may inhibit subsequent loop optimizations and be detrimental to
performance.

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

llvm-svn: 312664
2017-09-06 19:36:58 +00:00
..
Coroutines [Analysis] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes. Also affected in files (NFC). 2017-08-31 21:56:16 +00:00
Hello
InstCombine [ValueTracking, InstCombine] canonicalize fcmp ord/uno with non-NAN ops to null constants 2017-09-05 23:13:13 +00:00
Instrumentation [SanitizeCoverage] Enable stack-depth coverage for -fsanitize=fuzzer 2017-08-30 22:49:31 +00:00
IPO Debug info for variables whose type is shrinked to bool 2017-09-01 10:05:27 +00:00
ObjCARC [ObjCARC] Pass the correct BasicBlock to fix assertion failure. 2017-08-31 18:27:47 +00:00
Scalar Disable jump threading into loop headers 2017-09-06 19:36:58 +00:00
Utils [LoopUnroll][DebugInfo] Don't add metadata to unrolled remainder loop 2017-09-04 08:12:16 +00:00
Vectorize LoopVectorize: MaxVF should not be larger than the loop trip count 2017-09-04 08:35:13 +00:00
CMakeLists.txt
LLVMBuild.txt