llvm/lib
Krzysztof Parzyszek 9ca441aa44 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312664 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-06 19:36:58 +00:00
..
Analysis Fix PR33878: BasicAA incorrectly assumes different address spaces don't alias 2017-09-06 16:55:31 +00:00
AsmParser Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
BinaryFormat [BinaryFormat] Fix out of bounds read. 2017-08-31 12:50:42 +00:00
Bitcode Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
CodeGen [IfConversion] Remove kill flags from common instructions as well 2017-09-06 17:57:13 +00:00
DebugInfo [DebugInfo] - Fix for lld DWARF parsing of base address selection entries in range lists. 2017-09-04 10:30:39 +00:00
Demangle
ExecutionEngine [ORC] Add a pair of ORC layers that forward object-layer operations via RPC. 2017-09-05 03:34:09 +00:00
Fuzzer
FuzzMutate Move some CLI utils out of llvm-isel-fuzzer and into the library 2017-09-02 23:43:04 +00:00
IR Debug info for variables whose type is shrinked to bool 2017-09-01 10:05:27 +00:00
IRReader
LineEditor
Linker
LTO LTO: Try to open cache files before renaming them. 2017-09-05 19:51:38 +00:00
MC [WebAssembly] Update relocation names to match spec 2017-09-01 17:32:01 +00:00
Object Revert "[Decompression] Fail gracefully when out of memory" 2017-09-05 22:04:00 +00:00
ObjectYAML [yaml2obj][ELF] Make symbols optional for relocations 2017-08-30 23:13:31 +00:00
Option Revert "Revert r311552: [Bash-autocompletion] Add support for static analyzer flags" 2017-08-29 00:09:31 +00:00
Passes
ProfileData
Support Minor style fixes in lib/Support/**/Program.(inc|cpp). 2017-09-06 16:28:33 +00:00
TableGen Untabify. 2017-08-28 06:47:47 +00:00
Target [X86] Move more isel patterns to X86InstrVecCompiler.td. NFC 2017-09-06 19:03:55 +00:00
Testing
ToolDrivers Simplify writeArchive return type. 2017-08-30 22:11:03 +00:00
Transforms Disable jump threading into loop headers 2017-09-06 19:36:58 +00:00
WindowsManifest Fix crbug 759265 by suppressing llvm mt warnings. 2017-09-06 01:50:36 +00:00
XRay
CMakeLists.txt
LLVMBuild.txt