llvm-6502/test
Quentin Colombet c364314ec3 [MachineCopyPropagation] Handle undef flags conservatively so that we do not
remove copies that are useful after breaking some hardware dependencies.
In other words, handle this kind of situations conservatively by assuming reg2
is redefined by the undef flag.
reg1 = copy reg2
= inst reg2<undef>
reg2 = copy reg1
Copy propagation used to remove the last copy.
This is incorrect because the undef flag on reg2 in inst, allows next
passes to put whatever trashed value in reg2 that may help.
In practice we end up with this code:
reg1 = copy reg2
reg2 = 0
= inst reg2<undef>
reg2 = copy reg1

This fixes PR21743.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235647 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-23 21:17:39 +00:00
..
Analysis [getUnderlyingOjbects] Analyze loop PHIs further to remove false positives 2015-04-23 20:09:20 +00:00
Assembler
Bindings
Bitcode Be more strict about the operand for the array type in BitcodeReader 2015-04-23 13:38:21 +00:00
BugPoint bugpoint Enhancement. 2015-04-20 23:42:22 +00:00
CodeGen [MachineCopyPropagation] Handle undef flags conservatively so that we do not 2015-04-23 21:17:39 +00:00
DebugInfo Unxfail passing test on Hexagon 2015-04-22 21:41:24 +00:00
ExecutionEngine
Feature
FileCheck
Instrumentation
Integer
JitListener
Linker Linker: Add flag to override linkage rules 2015-04-22 04:11:00 +00:00
LTO
MC ARM: When spilling extra registers for alignment, prefer low registers on all Thumb targets. 2015-04-23 20:31:26 +00:00
Object Support arm32 R_ARM_V4BX relocation format 2015-04-22 15:26:43 +00:00
Other
SymbolRewriter
TableGen Add support for v1i128 type. 2015-04-17 16:11:05 +00:00
tools [Mips] Support DT_MIPS_OPTIONS dynamic section tag in the llvm-readobj 2015-04-20 05:34:48 +00:00
Transforms [NVPTX] run SeparateConstOffsetFromGEP before SLSR 2015-04-23 20:00:04 +00:00
Unit
Verifier
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh