1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-02 00:42:52 +01:00
llvm-mirror/lib
Jakob Stoklund Olesen d18e1ee34f Don't treat a partial <def,undef> operand as a read.
Normally, a partial register def is treated as reading the
super-register unless it also defines the full register like this:

  %vreg110:sub_32bit<def> = COPY %vreg77:sub_32bit, %vreg110<imp-def>

This patch also uses the <undef> flag on partial defs to recognize
non-reading operands:

  %vreg110:sub_32bit<def,undef> = COPY %vreg77:sub_32bit

This fixes a subtle bug in RegisterCoalescer where LIS->shrinkToUses
would treat a coalesced copy as still reading the register, extending
the live range artificially.

My test case only works when I disable DCE so a dead copy is left for
RegisterCoalescer, so I am not including it.

<rdar://problem/9967101>

llvm-svn: 138018
2011-08-19 00:30:17 +00:00
..
Analysis There is no need to add file as context for subroutine type. The subroutine type does not need any context. 2011-08-18 23:50:57 +00:00
Archive Rewrite the CMake build to use explicit dependencies between libraries, 2011-07-29 00:14:25 +00:00
AsmParser Remove unused variable. 2011-08-18 08:13:18 +00:00
Bitcode Initial commit of the 'landingpad' instruction. 2011-08-12 20:24:12 +00:00
CodeGen Don't treat a partial <def,undef> operand as a read. 2011-08-19 00:30:17 +00:00
CompilerDriver Build CompilerDriver library. 2011-03-12 22:01:42 +00:00
ExecutionEngine EE: Provide the symbol "lseek64" explicitly with <unistd.h> on Linux glibc. 2011-08-14 00:34:04 +00:00
Linker switch to the new struct api. 2011-08-12 18:07:26 +00:00
MC Remove unused Target argument from AsmParser construction methods. 2011-08-16 18:33:49 +00:00
Object Rewrite the CMake build to use explicit dependencies between libraries, 2011-07-29 00:14:25 +00:00
Support Add NativeClient operating system support. 2011-08-18 22:54:21 +00:00
Target Re-encoded 128-bit AVX versions of SQRT, RSQRT, RCP have 3 operands 2011-08-18 23:59:21 +00:00
Transforms Track a retain+release nesting level independently of the 2011-08-19 00:26:36 +00:00
VMCore Rip out the old StructType APIs as warned about on llvmdev last week. 2011-08-18 17:39:28 +00:00
CMakeLists.txt Build CompilerDriver library. 2011-03-12 22:01:42 +00:00
Makefile Add LLVMObject Library. 2010-11-15 03:21:41 +00:00