llvm-6502/include/llvm/CodeGen
Alkis Evlogimenos 39a0d5c112 Too many changes in one commit:
1. LiveIntervals now implement a 4 slot per instruction model. Load,
   Use, Def and a Store slot. This is required in order to correctly
   represent caller saved register clobbering on function calls,
   register reuse in the same instruction (def resues last use) and
   also spill code added later by the allocator. The previous
   representation (2 slots per instruction) was insufficient and as a
   result was causing subtle bugs.

2. Fixes in spill code generation. This was the major cause of
   failures in the test suite.

3. Linear scan now has core support for folding memory operands. This
   is untested and not enabled (the live interval update function does
   not attempt to fold loads/stores in instructions).

4. Lots of improvements in the debugging output of both live intervals
   and linear scan. Give it a try... it is beautiful :-)

In summary the above fixes all the issues with the recent reserved
register elimination changes and get the allocator very close to the
next big step: folding memory operands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11654 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-20 06:15:40 +00:00
..
FunctionLiveVarInfo.h Put all LLVM code into the llvm namespace, as per bug 109. 2003-11-11 22:41:34 +00:00
InstrForest.h Put all LLVM code into the llvm namespace, as per bug 109. 2003-11-11 22:41:34 +00:00
InstrScheduling.h Put all LLVM code into the llvm namespace, as per bug 109. 2003-11-11 22:41:34 +00:00
InstrSelection.h Clean up a lot of the code I added yesterday by exposing the IntrinsicLowering 2003-12-28 21:23:38 +00:00
InstrSelectionSupport.h Put all LLVM code into the llvm namespace, as per bug 109. 2003-11-11 22:41:34 +00:00
IntrinsicLowering.h Clean up a lot of the code I added yesterday by exposing the IntrinsicLowering 2003-12-28 21:23:38 +00:00
LiveIntervalAnalysis.h Too many changes in one commit: 2004-02-20 06:15:40 +00:00
LiveIntervals.h Too many changes in one commit: 2004-02-20 06:15:40 +00:00
LiveVariables.h ADd a method for when an instruction moves 2004-02-19 18:28:22 +00:00
MachineBasicBlock.h Add a MachineBasicBlock::getParent() method 2004-02-19 16:13:54 +00:00
MachineCodeEmitter.h Put all LLVM code into the llvm namespace, as per bug 109. 2003-11-11 22:41:34 +00:00
MachineCodeForInstruction.h Put all LLVM code into the llvm namespace, as per bug 109. 2003-11-11 22:41:34 +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 finegrainify namespacification 2004-02-15 05:52:36 +00:00
MachineFunction.h Change MachineBasicBlock's vector of MachineInstr pointers into an 2004-02-12 02:27:10 +00:00
MachineFunctionInfo.h Remove a horrible API 2003-12-20 09:15:01 +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 Add LeakDetection to MachineInstr. 2004-02-16 07:17:43 +00:00
MachineInstrAnnot.h Put all LLVM code into the llvm namespace, as per bug 109. 2003-11-11 22:41:34 +00:00
MachineInstrBuilder.h Modify the two address instruction pass to remove the duplicate 2004-02-04 22:17:40 +00:00
Passes.h Include <iosfwd> and <string> instead of <iostream>. 2004-02-04 21:41:10 +00:00
SchedGraphCommon.h SchedGraph doesn't need to be friends with SchedGraphNodeCommon anymore. 2004-02-09 18:43:06 +00:00
SelectionDAG.h Put all LLVM code into the llvm namespace, as per bug 109. 2003-11-11 22:41:34 +00:00
SparcRegInfo.h
SSARegMap.h Add getNumVirtualRegs(). 2004-02-13 18:07:06 +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 Put all LLVM code into the llvm namespace, as per bug 109. 2003-11-11 22:41:34 +00:00