llvm-6502/lib
Evgeniy Stepanov 98726c311b [LICM] Don't create more than one copy of an instruction per loop exit block when sinking.
Fixes exponential compilation complexity in PR19835, caused by
LICM::sink not handling the following pattern well:

f = op g
e = op f, g
d = op e
c = op d, e
b = op c
a = op b, c

When an instruction with N uses is sunk, each of its operands gets N
new uses (all of them - phi nodes). In the example above, if a had 1
use, c would have 2, e would have 4, and g would have 8.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211673 91177308-0d34-0410-b5e6-96231b3b80d8
2014-06-25 07:54:58 +00:00
..
Analysis Support: Move class ScaledNumber 2014-06-24 00:38:09 +00:00
AsmParser IR: add "cmpxchg weak" variant to support permitted failure. 2014-06-13 14:24:07 +00:00
Bitcode Make ObjectFile and BitcodeReader always own the MemoryBuffer. 2014-06-23 21:53:12 +00:00
CodeGen Print a=b as an assignment. 2014-06-24 22:45:16 +00:00
DebugInfo [DWARF parser] Use distinction between DW_AT_ranges_base and DW_AT_GNU_ranges_base instead of DWARF version 2014-06-13 22:31:03 +00:00
ExecutionEngine [RuntimeDyld] Adds the necessary hooks to MCJIT to be able to debug generated 2014-06-25 00:20:53 +00:00
IR Add new debug kind LocTrackingOnly. 2014-06-24 17:02:03 +00:00
IRReader Remove 'using std::errro_code' from lib. 2014-06-13 02:24:39 +00:00
LineEditor
Linker Replace some assert(0)'s with llvm_unreachable. 2014-06-18 05:05:13 +00:00
LTO Move some trivial methods up to MCStreamer. 2014-06-25 00:27:53 +00:00
MC Fix another asserting method in the null streamer. 2014-06-25 05:37:58 +00:00
Object [RuntimeDyld] Adds the necessary hooks to MCJIT to be able to debug generated 2014-06-25 00:20:53 +00:00
Option ArgList: use MakeArgList overloads in subclasses and clean up some calls. 2014-06-20 04:36:29 +00:00
ProfileData Renaming SwapByteOrder() to getSwappedBytes() 2014-06-14 11:36:01 +00:00
Support Use SourceMgr::getMemoryBuffer() in a couple of places 2014-06-25 00:41:15 +00:00
TableGen Convert some assert(0) to llvm_unreachable or fold an 'if' condition into the assert. 2014-06-19 06:10:58 +00:00
Target [FastISel][X86] Fold XALU condition into branch and compare. 2014-06-24 23:51:21 +00:00
Transforms [LICM] Don't create more than one copy of an instruction per loop exit block when sinking. 2014-06-25 07:54:58 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile