llvm-6502/include/llvm/CodeGen
Hal Finkel dc3beb9017 Allow the register scavenger to spill multiple registers
This patch lets the register scavenger make use of multiple spill slots in
order to guarantee that it will be able to provide multiple registers
simultaneously.

To support this, the RS's API has changed slightly: setScavengingFrameIndex /
getScavengingFrameIndex have been replaced by addScavengingFrameIndex /
isScavengingFrameIndex / getScavengingFrameIndices.

In forthcoming commits, the PowerPC backend will use this capability in order
to implement the spilling of condition registers, and some special-purpose
registers, without relying on r0 being reserved. In some cases, spilling these
registers requires two GPRs: one for addressing and one to hold the value being
transferred.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177774 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-22 23:32:27 +00:00
..
PBQP Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
Analysis.h Remove unused parameter. Also use the AttributeSet query methods instead of the Attribute query methods. 2013-01-18 21:50:24 +00:00
AsmPrinter.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
CalcSpillWeights.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
CallingConvLower.h CallingConvLower.h: Use bitfields like unsigned:1 instead of bool:1 . 2013-01-07 11:13:51 +00:00
CommandFlags.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
DAGCombine.h Refactor DAGCombinerInfo. Change the different booleans that indicate if we are before or after different runs of DAGCo, with the CombineLevel enum. 2012-12-27 06:47:41 +00:00
DFAPacketizer.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
EdgeBundles.h Give a small negative bias to giant edge bundles. 2012-05-21 03:11:23 +00:00
FastISel.h Reverted: r176136 - Have a way for a target to opt-out of target-independent fast isel 2013-02-27 19:54:00 +00:00
FunctionLoweringInfo.h Remove unneeded includes from FunctionLoweringInfo.h. 2013-01-10 22:13:13 +00:00
GCMetadata.h GCInfoDeleter code cleanup after r175528 2013-03-01 11:40:32 +00:00
GCMetadataPrinter.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:59:23 +00:00
GCs.h
GCStrategy.h Convert comments to proper Doxygen comments. 2012-06-09 00:01:45 +00:00
IntrinsicLowering.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
ISDOpcodes.h Fix PR10475 2013-03-01 18:40:30 +00:00
JITCodeEmitter.h Simplify code. 2013-02-09 13:29:31 +00:00
LatencyPriorityQueue.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
LexicalScopes.h Correct indentation for dumping LexicalScope. 2013-02-02 00:02:03 +00:00
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
LiveInterval.h Use LiveRangeUpdater instead of mergeIntervalRanges. 2013-02-20 18:18:15 +00:00
LiveIntervalAnalysis.h Move #include of BitVector from .h to .cpp file. 2013-03-18 23:45:45 +00:00
LiveIntervalUnion.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
LiveRangeEdit.h Add some constantness. 2013-03-18 23:40:46 +00:00
LiveRegMatrix.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
LiveStackAnalysis.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
LiveVariables.h Move #include of BitVector from .h to .cpp file. 2013-03-18 23:45:45 +00:00
MachineBasicBlock.h Use bidirectional bundle flags to simplify important functions. 2012-12-18 23:21:49 +00:00
MachineBlockFrequencyInfo.h Add some constantness to BranchProbabilityInfo and BlockFrequnencyInfo. 2011-12-20 20:03:10 +00:00
MachineBranchProbabilityInfo.h Remove blank line before block comment. 2013-03-20 18:25:12 +00:00
MachineCodeEmitter.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
MachineCodeInfo.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
MachineConstantPool.h Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
MachineDominators.h Add even more constatness in MachineDominators.h. 2013-02-16 12:36:32 +00:00
MachineFrameInfo.h Move estimateStackSize from ARM into MachineFrameInfo 2013-03-14 21:15:20 +00:00
MachineFunction.h [ms-inline asm] Do not omit the frame pointer if we have ms-inline assembly. 2013-02-16 01:25:28 +00:00
MachineFunctionAnalysis.h Remove unneeded "TargetMachine.h" #includes. 2013-02-09 20:54:05 +00:00
MachineFunctionPass.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
MachineInstr.h [ms-inline asm] Do not omit the frame pointer if we have ms-inline assembly. 2013-02-16 01:25:28 +00:00
MachineInstrBuilder.h Add a getBundleEnd() function to go with the existing getBundleStart(). 2013-01-09 01:02:19 +00:00
MachineInstrBundle.h Add a getBundleEnd() function to go with the existing getBundleStart(). 2013-01-09 01:02:19 +00:00
MachineJumpTableInfo.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
MachineLoopInfo.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
MachineMemOperand.h Add MachineMemOperand::isUnordered(). 2012-08-29 21:08:52 +00:00
MachineModuleInfo.h Add some constantness. 2013-03-18 23:40:46 +00:00
MachineModuleInfoImpls.h Rename virtual table anchors from Anchor() to anchor() for consistency with the rest of the tree. 2012-09-26 06:36:36 +00:00
MachineOperand.h Pack MachineOperand bitfields better. 2013-01-07 23:21:44 +00:00
MachinePassRegistry.h Allow targets to select the default scheduler by name. 2012-04-19 01:34:10 +00:00
MachinePostDominators.h Remove unneeded #include. 2013-03-10 01:15:14 +00:00
MachineRegisterInfo.h Residual cleanup: live-out set is gone 2013-03-11 23:18:25 +00:00
MachineRelocation.h Merge System into Support. 2010-11-29 18:16:10 +00:00
MachineScheduler.h Use const reference instead of vector object when passing an argument to 2013-02-16 15:47:26 +00:00
MachineSSAUpdater.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:59:23 +00:00
MachineTraceMetrics.h Rename isEarlierInSameTrace to isUsefulDominator. 2013-03-07 23:55:49 +00:00
MachORelocation.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
Passes.h GCInfoDeleter code cleanup after r175528 2013-03-01 11:40:32 +00:00
PseudoSourceValue.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
RegAllocPBQP.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
RegAllocRegistry.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
RegisterClassInfo.h Precompute some information about register costs. 2013-01-12 00:54:59 +00:00
RegisterPressure.h RegPressureTracker::dump(): Remove unnecessary argument. 2012-12-05 23:05:22 +00:00
RegisterScavenging.h Allow the register scavenger to spill multiple registers 2013-03-22 23:32:27 +00:00
ResourcePriorityQueue.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
RuntimeLibcalls.h Teach SDISel to combine fsin / fcos into a fsincos node if the following 2013-01-29 02:32:37 +00:00
ScheduleDAG.h Fix incorrect ScheduleDAG comment and formalize Weak edges. 2013-03-01 00:19:12 +00:00
ScheduleDAGInstrs.h Cleanup #includes. 2013-03-10 13:11:23 +00:00
ScheduleDFS.h SchedDFS: Complete support for nested subtrees. 2013-01-25 06:52:27 +00:00
ScheduleHazardRecognizer.h misched: Allow disabling scoreboard hazard checking for subtargets with a 2012-06-05 03:44:32 +00:00
SchedulerRegistry.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
ScoreboardHazardRecognizer.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
SelectionDAG.h ArrayRefize some code. No functionality change. 2013-03-07 20:33:29 +00:00
SelectionDAGISel.h A small refactoring + adding comments. 2013-02-28 23:09:18 +00:00
SelectionDAGNodes.h Remove unneeded cast. 2013-03-09 19:34:14 +00:00
SlotIndexes.h No really, don't use end(). 2013-03-08 18:36:36 +00:00
TargetLoweringObjectFileImpl.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
TargetSchedule.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
ValueTypes.h Mark getRawBits const. 2013-02-14 22:49:29 +00:00
ValueTypes.td Added 6 more value types: v32i1, v64i1, v32i16, v32i8, v64i8, v8f64 2012-12-24 10:03:57 +00:00
VirtRegMap.h Remove VirtRegMap::getRegAllocPref(). 2012-12-04 00:35:59 +00:00