llvm/lib
Bruno Cardoso Lopes a559a2317c [LCSSA] Handle PHI insertion in disjoint loops
Take two disjoint Loops L1 and L2.

LoopSimplify fails to simplify some loops (e.g. when indirect branches
are involved). In such situations, it can happen that an exit for L1 is
the header of L2. Thus, when we create PHIs in one of such exits we are
also inserting PHIs in L2 header.

This could break LCSSA form for L2 because these inserted PHIs can also
have uses in L2 exits, which are never handled in the current
implementation. Provide a fix for this corner case and test that we
don't assert/crash on that.

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

rdar://problem/19166231

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224740 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-22 22:35:46 +00:00
..
Analysis InstSimplify: Don't bother if getScalarSizeInBits returns zero 2014-12-20 04:45:33 +00:00
AsmParser IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
Bitcode Fix Visual C++ error "'llvm::make_unique' : ambiguous call to overloaded function". 2014-12-18 10:03:35 +00:00
CodeGen [CodeGenPrepare] Handle properly the promotion of operands when this does not 2014-12-22 18:11:52 +00:00
DebugInfo [DebugInfo] Move all DWARF headers to the public include directory. 2014-12-19 18:26:33 +00:00
ExecutionEngine [C API] Expose LLVMGetGlobalValueAddress and LLVMGetFunctionAddress. 2014-12-22 18:53:11 +00:00
IR The leak detector is dead, long live asan and valgrind. 2014-12-22 13:00:36 +00:00
IRReader Remove unused variable. NFC. 2014-11-06 23:16:57 +00:00
LineEditor
Linker Rename MapValue(Metadata*) to MapMetadata() 2014-12-19 06:06:18 +00:00
LTO LTO: Lazy-load LTOModule in local contexts 2014-12-17 22:05:42 +00:00
MC Fix Windows unwind info for functions in sections other than .text 2014-12-22 22:10:08 +00:00
Object Add printing the LC_ROUTINES load commands with llvm-objdump’s -private-headers. 2014-12-19 22:25:22 +00:00
Option Add an overload of getLastArgNoClaim taking two OptSpecifiers. 2014-09-12 19:42:53 +00:00
ProfileData llvm-cov: Sink some reporting logic into CoverageMapping 2014-11-14 01:50:32 +00:00
Support Add missing implementation of 'sys::path::is_other' to the support library. 2014-12-18 18:19:47 +00:00
TableGen Clean up static analyzer warnings. 2014-12-12 21:48:03 +00:00
Target [Hexagon] Adding memb instruction. Fixing whitespace in test from 224730. 2014-12-22 21:40:43 +00:00
Transforms [LCSSA] Handle PHI insertion in disjoint loops 2014-12-22 22:35:46 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile