llvm-project/llvm/lib
Michael Zolotukhin 8ef44f93ca Don't recompute LCSSA after loop-unrolling when possible.
Summary:
Currently we always recompute LCSSA for outer loops after unrolling an
inner loop. That leads to compile time problem when we have big loop
nests, and we can solve it by avoiding unnecessary work. For instance,
if w eonly do partial unrolling, we don't break LCSSA, so we don't need
to rebuild it. Also, if all exits from the inner loop are inside the
enclosing loop, then complete unrolling won't break LCSSA either.

I replaced unconditional LCSSA recomputation with conditional recomputation +
unconditional assert and added several tests, which were failing when I
experimented with it.

Soon I plan to follow up with a similar patch for recalculation of dominators
tree.

Reviewers: hfinkel, dexonsmith, bogner, joker.eph, chandlerc

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D14526

llvm-svn: 253126
2015-11-14 05:51:41 +00:00
..
Analysis Revert r252990. 2015-11-13 01:44:32 +00:00
AsmParser [IR] Add support for empty tokens 2015-11-11 21:57:16 +00:00
Bitcode use range-based for loop; NFCI 2015-11-13 16:21:23 +00:00
CodeGen [ShrinkWrapping] Disable the optimization for functions with sanitize like 2015-11-14 01:55:17 +00:00
DebugInfo dwarfdump: Add support for dumping the table contents of DWP indexes 2015-11-13 19:18:49 +00:00
ExecutionEngine [RuntimeDyld] Fix indentation and whitespace; NFC 2015-11-14 00:16:15 +00:00
Fuzzer [libFuzzer] make libFuzzer build even with a compiler that does not have sanitizer headers 2015-11-13 01:54:40 +00:00
IR Revert r252990. 2015-11-13 01:44:32 +00:00
IRReader
LTO Add a libLTO diagnostic handler that supports lto_get_error_message API 2015-11-11 19:59:08 +00:00
LibDriver
LineEditor
Linker [lib/Linker] Convert assert(false) to llvm_unreachable(). 2015-11-13 02:16:51 +00:00
MC [MCTargetAsmParser] Move the member varialbes that reference 2015-11-14 05:20:05 +00:00
Object ELFYAML: Add support for parsing AMDGPU section attribute flags 2015-11-13 17:06:29 +00:00
Option
Passes
ProfileData SamplePGO - Add dump routines for LineLocation, SampleRecord and FunctionSamples 2015-11-13 20:24:28 +00:00
Support Cull non-standard variants of ARM architectures (NFC) 2015-11-12 15:51:41 +00:00
TableGen
Target [MCTargetAsmParser] Move the member varialbes that reference 2015-11-14 05:20:05 +00:00
Transforms Don't recompute LCSSA after loop-unrolling when possible. 2015-11-14 05:51:41 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile