llvm-6502/test
Bill Schmidt 5ff776bfde This patch addresses bug 15031.
The common code in the post-RA scheduler to break anti-dependencies on the
critical path contained a flaw.  In the reported case, an anti-dependency
between the overlapping registers %X4 and %R4 exists:

	%X29<def> = OR8 %X4, %X4
	%R4<def>, %X3<def,dead,tied3> = LBZU 1, %X3<kill,tied1>

The unpatched code breaks the dependency by replacing %R4 and its uses
with %R3, the first register on the available list.  However, %R3 and
%X3 overlap, so this creates two overlapping definitions on the same
instruction.

The fix is straightforward, preventing selection of a register that
overlaps any other defined register on the same instruction.

The test case is reduced from the bug report, and verifies that we no
longer produce "lbzu 3, 1(3)" when breaking this anti-dependency.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173706 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-28 18:36:58 +00:00
..
Analysis Initial implementation of PPCTargetTransformInfo 2013-01-25 23:05:59 +00:00
Archive
Assembler
Bindings/Ocaml
Bitcode
BugPoint
CodeGen This patch addresses bug 15031. 2013-01-28 18:36:58 +00:00
DebugInfo PR14566: Debug Info: Removing top level lexical blocks 2013-01-26 21:55:23 +00:00
ExecutionEngine
Feature
FileCheck
Instrumentation [msan] Mostly disable msan-handle-icmp-exact. 2013-01-28 11:42:28 +00:00
Integer
JitListener
Linker
MC Fix 256-bit PALIGNR comment decoding to understand that it works on independent 256-bit lanes. 2013-01-28 07:41:18 +00:00
Object
Other XFAIL close-stderr on win32 2013-01-25 22:12:54 +00:00
Scripts Set the +x bit on two batch scripts 2013-01-25 22:12:50 +00:00
TableGen FileCheck-ify some grep tests 2013-01-25 22:11:46 +00:00
tools
Transforms Re-revert r173342, without losing the compile time improvements, flat 2013-01-27 06:42:03 +00:00
Unit
Verifier
YAMLParser
CMakeLists.txt llvm/test/CMakeLists.txt: Add a dependency to llvm-rtdyld in check-llvm. 2013-01-25 23:24:07 +00:00
lit.cfg
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh