llvm-6502/test
Tom Stellard 19a99df130 R600: Fix scheduling of instructions that use the LDS output queue
The LDS output queue is accessed via the OQAP register.  The OQAP
register cannot be live across clauses, so if value is written to the
output queue, it must be retrieved before the end of the clause.
With the machine scheduler, we cannot statisfy this constraint, because
it lacks proper alias analysis and it will mark some LDS accesses as
having a chain dependency on vertex fetches.  Since vertex fetches
require a new clauses, the dependency may end up spiltting OQAP uses and
defs so the end up in different clauses.  See the lds-output-queue.ll
test for a more detailed explanation.

To work around this issue, we now combine the LDS read and the OQAP
copy into one instruction and expand it after register allocation.

This patch also adds some checks to the EmitClauseMarker pass, so that
it doesn't end a clause with a value still in the output queue and
removes AR.X and OQAP handling from the scheduler (AR.X uses and defs
were already being expanded post-RA, so the scheduler will never see
them).

Reviewed-by: Vincent Lejeune <vljn at ovi.com>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194755 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-15 00:12:45 +00:00
..
Analysis improve dependence analysis testcases 2013-11-12 22:47:30 +00:00
Assembler Change objectsize intrinsic to accept different address spaces. 2013-10-07 18:06:48 +00:00
Bindings [OCaml] Add missing Llvm_target functions 2013-11-11 14:47:28 +00:00
Bitcode Change BitcodeReader to use error_code instead of bool + string. 2013-11-04 16:16:24 +00:00
BugPoint [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
CodeGen R600: Fix scheduling of instructions that use the LDS output queue 2013-11-15 00:12:45 +00:00
DebugInfo DebugInfo: regenerate test case from Clang to adjust for fixes/improvements 2013-11-01 22:29:28 +00:00
ExecutionEngine Add XFAIL:arm again on 4 MCJIT tests, since r194558. AArch64 has been left removed. 2013-11-13 07:43:10 +00:00
Feature Implement function prefix data as an IR feature. 2013-09-16 01:08:15 +00:00
FileCheck FileCheck: fix matching of one check-prefix is a prefix of another 2013-11-13 14:12:52 +00:00
Instrumentation [asan] Poor man's coverage that works with ASan 2013-11-14 13:27:41 +00:00
Integer [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
JitListener Debug Info Testing: updated to use NULL instead of "i32 0" in a few fields. 2013-09-06 21:03:58 +00:00
Linker Debug Info: remove duplication of DIEs when a DIE can be shared across CUs. 2013-10-31 17:54:35 +00:00
LTO Protect user-supplied runtime library functions in LTO 2013-11-12 21:44:01 +00:00
MC Add test case for AArch64 NEON instruction set misc. 2013-11-14 06:45:17 +00:00
Object llvm-ar: Let opening a directory failed in llvm-ar. 2013-11-08 12:35:56 +00:00
Other Provide a test input for opt 2013-11-05 13:57:34 +00:00
TableGen Mark 36 tests as XFAIL:vg_leak in llvm/test/TableGen. 2013-11-10 14:26:08 +00:00
tools Recognize 0x0000 as a COFF file magic. 2013-11-14 22:09:08 +00:00
Transforms Fixing a heisenbug where the memory dependence analysis behaves differently 2013-11-14 01:10:52 +00:00
Unit
Verifier Add Verifier test case for variable argument intrinsics. 2013-10-31 17:18:17 +00:00
YAMLParser [Support][YAML] Add support for accessing tags and tag handle substitution. 2013-10-18 22:38:04 +00:00
CMakeLists.txt lit: add missing substitutions for recently added tools 2013-10-28 23:37:49 +00:00
lit.cfg lit: add missing substitutions for recently added tools 2013-10-28 23:37:49 +00:00
lit.site.cfg.in Fix LTO handling of module-level assembly (PR14152). 2013-09-19 22:15:52 +00:00
Makefile [OCaml] Dynamically link LLVM on --enable-shared builds 2013-11-12 20:55:49 +00:00
Makefile.tests
TestRunner.sh