llvm-6502/include/llvm/CodeGen
Chris Lattner f768bba43f Allow the live interval analysis pass to be a bit more aggressive about
numbering values in live ranges for physical registers.

The alpha backend currently generates code that looks like this:

  vreg = preg
...
  preg = vreg
  use preg
...
  preg = vreg
  use preg

etc.  Because vreg contains the value of preg coming in, each of the
copies back into preg contain that initial value as well.

In the case of the Alpha, this allows this testcase:

void "foo"(int %blah) {
        store int 5, int *%MyVar
        store int 12, int* %MyVar2
        ret void
}

to compile to:

foo:
        ldgp $29, 0($27)
        ldiq $0,5
        stl $0,MyVar
        ldiq $0,12
        stl $0,MyVar2
        ret $31,($26),1

instead of:

foo:
        ldgp $29, 0($27)
        bis $29,$29,$0
        ldiq $1,5
        bis $0,$0,$29
        stl $1,MyVar
        ldiq $1,12
        bis $0,$0,$29
        stl $1,MyVar2
        ret $31,($26),1

This does not seem to have any noticable effect on X86 code.

This fixes PR535.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20536 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-09 23:05:19 +00:00
..
AsmPrinter.h Adjust prototype 2005-01-08 19:57:49 +00:00
InstrScheduling.h Put all LLVM code into the llvm namespace, as per bug 109. 2003-11-11 22:41:34 +00:00
IntrinsicLowering.h Use class instead of struct for defining classes. This unbreaks the 2004-09-28 01:59:17 +00:00
LiveInterval.h Fix typeo 2004-11-18 04:31:10 +00:00
LiveIntervalAnalysis.h Allow the live interval analysis pass to be a bit more aggressive about 2005-03-09 23:05:19 +00:00
LiveVariables.h Add a useful accessor 2005-01-01 15:58:55 +00:00
MachineBasicBlock.h Improve spelling 2005-01-30 00:13:34 +00:00
MachineCodeEmitter.h Fix the FIXME, nuke the JIT specific forceCompilationOf method. 2004-11-22 21:54:35 +00:00
MachineConstantPool.h Put all LLVM code into the llvm namespace, as per bug 109. 2003-11-11 22:41:34 +00:00
MachineFrameInfo.h Remove helper method 2004-08-15 22:02:36 +00:00
MachineFunction.h Improve spelling 2005-01-30 00:13:34 +00:00
MachineFunctionPass.h Put all LLVM code into the llvm namespace, as per bug 109. 2003-11-11 22:41:34 +00:00
MachineInstr.h Instead of storing std::string's for ExternalSymbol references, rely on the 2004-11-19 20:46:15 +00:00
MachineInstrBuilder.h Instead of storing std::string's for ExternalSymbol references, rely on the 2004-11-19 20:46:15 +00:00
MachineRelocation.h Add another bit, to make the JIT a bit more efficient. 2004-11-21 03:27:13 +00:00
Passes.h New pass 2004-07-31 09:59:14 +00:00
SchedGraphCommon.h Changes For Bug 352 2004-09-01 22:55:40 +00:00
SelectionDAG.h Map doubles from integers, not the double itself. 2005-02-17 20:16:58 +00:00
SelectionDAGISel.h Make methods private, add a method. 2005-01-17 17:14:43 +00:00
SelectionDAGNodes.h Keep track of node depth for each node 2005-01-21 21:39:38 +00:00
SSARegMap.h add an assertion 2005-01-05 16:27:34 +00:00
ValueSet.h Put all LLVM code into the llvm namespace, as per bug 109. 2003-11-11 22:41:34 +00:00
ValueTypes.h Add some helper methods. 2005-01-15 06:52:18 +00:00