1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00
llvm-mirror/lib
Jakob Stoklund Olesen c26e2e6221 Permit remat of partial register defs when it is safe.
An instruction may define part of a register where the other bits are
undefined. In that case, it is safe to rematerialize the instruction.
For example:

  %vreg2:ssub_0<def> = VLDRS <cp#0>, 0, pred:14, pred:%noreg, %vreg2<imp-def>

The extra <imp-def> operand indicates that the instruction does not read
the other parts of the virtual register, so a remat is safe.

This patch simply allows multiple def operands for the virtual register.
It is MI->readsVirtualRegister() that determines if we depend on a
previous value so remat is impossible.

llvm-svn: 138953
2011-09-01 18:27:51 +00:00
..
Analysis After r138010, subroutine type does not have context info. Update type verifier accordingly. 2011-08-31 18:04:31 +00:00
Archive
AsmParser
Bitcode Don't forget to add the landingpad and resume instructions to the InstructionList. 2011-09-01 00:50:20 +00:00
CodeGen Permit remat of partial register defs when it is safe. 2011-09-01 18:27:51 +00:00
CompilerDriver
ExecutionEngine
Linker
MC Fix up r137380 based on post-commit review by Jim Grosbach. 2011-09-01 18:02:14 +00:00
Object Teach macho-dump to dump the uleb128s referred to by linkedit_data segments. 2011-08-30 22:10:58 +00:00
Support
Target ARM 'rscs' mnemonic is carry-setting 'rsc', not 'rs' with a 'cs' condition code. 2011-09-01 18:22:13 +00:00
Transforms Resubmit with fix. Properly remove the instructions except for landingpad, which should be removed only when its invokes are. 2011-09-01 01:28:11 +00:00
VMCore
CMakeLists.txt
Makefile