llvm-mirror/test
Alexandros Lamprineas 8d73ea30c1 [MemorySSAUpdater] Avoid creating self-referencing MemoryDefs
Fix for https://bugs.llvm.org/show_bug.cgi?id=38807, which occurred
while compiling SemaTemplateInstantiate.cpp with clang and GVNHoist
enabled. In the following example:

      1=def(entry)
      /        \
2=def(1)       4=def(1)
3=def(2)       5=def(4)

When removing the MemoryDef 2=def(1) from its basic block, and just
before adding it to the end of the parent basic block, we first
replace all its uses with the defining memory access:

3=def(2) -> 3=def(1)

Then we call insertDef for adding 2=def(1) to the parent basic block,
where we replace the uses of 1=def(entry) with 2=def(1). Doing so we
create a self reference:

2=def(1) -> 2=def(2)  (bad)
3=def(1) -> 3=def(2)  (ok)
4=def(1) -> 4=def(2)  (ok)

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

llvm-svn: 341947
2018-09-11 14:29:59 +00:00
..
Analysis Prevent Constant Folding From Optimizing inrange GEP 2018-09-11 01:53:36 +00:00
Assembler
Bindings
Bitcode
BugPoint
CodeGen [Hexagon] [Test] Remove undef and infinite loop from test 2018-09-11 14:06:14 +00:00
DebugInfo llvm-symbolizer: Fix bug related to TUs interfering with symbolizing 2018-09-11 02:04:45 +00:00
Demangle
Examples
ExecutionEngine [MIPS] ORC JIT support 2018-09-11 13:10:04 +00:00
Feature
FileCheck
Instrumentation [MSan] Add KMSAN instrumentation to MSan pass 2018-09-07 09:10:30 +00:00
Integer
JitListener
Linker
LTO
MC [WebAssembly] v8x16.shuffle 2018-09-07 21:54:46 +00:00
Object
ObjectYAML
Other Prevent Constant Folding From Optimizing inrange GEP 2018-09-11 01:53:36 +00:00
SafepointIRVerifier
SymbolRewriter
TableGen
ThinLTO/X86
tools Make malformed-machos.test pass on my Mac. 2018-09-11 14:10:33 +00:00
Transforms [MemorySSAUpdater] Avoid creating self-referencing MemoryDefs 2018-09-11 14:29:59 +00:00
Unit
Verifier Remove addBlockByrefAddress(), it is dead code as far as clang is concerned. 2018-09-08 00:21:55 +00:00
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg.py
lit.site.cfg.py.in
TestRunner.sh