llvm-6502/lib
Jakob Stoklund Olesen 4662a9f270 Allow coalescing with reserved physregs in certain cases:
When a virtual register has a single value that is defined as a copy of a
reserved register, permit that copy to be joined. These virtual register are
usually copies of the stack pointer:

  %vreg75<def> = COPY %ESP; GR32:%vreg75
  MOV32mr %vreg75, 1, %noreg, 0, %noreg, %vreg74<kill>
  MOV32mi %vreg75, 1, %noreg, 8, %noreg, 0
  MOV32mi %vreg75<kill>, 1, %noreg, 4, %noreg, 0
  CALLpcrel32 ...

Coalescing these virtual registers early decreases register pressure.
Previously, they were coalesced by RALinScan::attemptTrivialCoalescing after
register allocation was completed.

The lower register pressure causes the mcinst-lowering-cmp0.ll test case to fail
because it depends on linear scan spilling a particular register.

I am deleting 2008-08-05-SpillerBug.ll because it is counting the number of
instructions emitted, and its revision history shows the 'correct' count being
edited many times.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128845 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-04 21:00:03 +00:00
..
Analysis Region: Allow user control the printing style of the print function. 2011-04-04 07:19:18 +00:00
Archive Revert PathV2 changes, as sys::fs::unique_file is not finished yet. 2011-03-01 19:50:55 +00:00
AsmParser Remove PHINode::reserveOperandSpace(). Instead, add a parameter to 2011-03-30 11:28:46 +00:00
Bitcode Remove PHINode::reserveOperandSpace(). Instead, add a parameter to 2011-03-30 11:28:46 +00:00
CodeGen Allow coalescing with reserved physregs in certain cases: 2011-04-04 21:00:03 +00:00
CompilerDriver Build CompilerDriver library. 2011-03-12 22:01:42 +00:00
ExecutionEngine Instantiate a JITMemoryManager for MCJIT Dyld 2011-03-29 21:03:05 +00:00
Linker Set the unnamed_addr only when we're creating a new GV in the dest module. 2011-03-29 23:31:06 +00:00
MC Added support symbolic floating point constants in the MC assembler for Infinity 2011-03-29 21:11:52 +00:00
Object Start migrating mach-o dumping facilities to the object file out of a 2011-04-03 23:51:47 +00:00
Support Assorted bugfixes in object file handling: 2011-04-03 22:53:19 +00:00
Target Fix incorrect alignment for NEON VST2b32_UPD. 2011-04-04 20:35:31 +00:00
Transforms Remove some support for ReturnInsts with multiple operands, and for 2011-04-04 07:44:02 +00:00
VMCore Remove some support for ReturnInsts with multiple operands, and for 2011-04-04 07:44:02 +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