llvm-6502/include/llvm/CodeGen
Jakob Stoklund Olesen 8bfe50871f Add the SpillPlacement analysis pass.
This pass precomputes CFG block frequency information that can be used by the
register allocator to find optimal spill code placement.

Given an interference pattern, placeSpills() will compute which basic blocks
should have the current variable enter or exit in a register, and which blocks
prefer the stack.

The algorithm is ready to consume block frequencies from profiling data, but for
now it gets by with the static estimates used for spill weights.

This is a work in progress and still not hooked up to RegAllocGreedy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122938 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-06 01:21:53 +00:00
..
PBQP Added an additional PBQP problem builder which adds coalescing costs (both between pairs of virtuals, and between virtuals and physicals). 2010-09-21 13:19:36 +00:00
Analysis.h Enable sibling call optimization of libcalls which are expanded during 2010-11-30 23:55:39 +00:00
AsmPrinter.h Merge System into Support. 2010-11-29 18:16:10 +00:00
BinaryObject.h Merge System into Support. 2010-11-29 18:16:10 +00:00
CalcSpillWeights.h Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
CallingConvLower.h In the calling convention logic, ValVT is always a legal type, 2010-11-04 10:49:57 +00:00
EdgeBundles.h Use the EdgeBundles analysis in X86FloatingPoint instead of recomputing CFG 2011-01-04 21:10:11 +00:00
FastISel.h Prune includes. 2010-11-06 11:45:59 +00:00
FunctionLoweringInfo.h
GCMetadata.h Attach a DebugLoc to a GC point in order to get precise information in the JIT of a GC point. 2010-09-24 17:27:50 +00:00
GCMetadataPrinter.h
GCs.h
GCStrategy.h
IntrinsicLowering.h
ISDOpcodes.h Renaming ISD::BIT_CONVERT to ISD::BITCAST to better reflect the LLVM IR concept. 2010-11-23 03:31:01 +00:00
JITCodeEmitter.h Merge System into Support. 2010-11-29 18:16:10 +00:00
LatencyPriorityQueue.h Various bits of framework needed for precise machine-level selection 2010-12-24 05:03:26 +00:00
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h Stub out RegAllocGreedy. 2010-12-08 03:26:16 +00:00
LiveInterval.h Use IntEqClasses to compute connected components of live intervals. 2010-12-21 00:48:17 +00:00
LiveIntervalAnalysis.h RABasic is nearly functionally complete. There are a few remaining 2010-11-10 19:18:47 +00:00
LiveStackAnalysis.h Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
LiveVariables.h Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
MachineBasicBlock.h Add SkipPHIsAndLabels from PHIElimination to MachineBasicBlock. It is needed 2010-10-30 01:26:14 +00:00
MachineCodeEmitter.h Merge System into Support. 2010-11-29 18:16:10 +00:00
MachineCodeInfo.h Merge System into Support. 2010-11-29 18:16:10 +00:00
MachineConstantPool.h
MachineDominators.h
MachineFrameInfo.h Merge System into Support. 2010-11-29 18:16:10 +00:00
MachineFunction.h Pass a Banner argument to the machine code verifier both from 2010-12-18 00:06:56 +00:00
MachineFunctionAnalysis.h Give MachineFunctionAnalysis a getPassName() implementation to make timing reports prettier. 2011-01-04 18:21:18 +00:00
MachineFunctionPass.h
MachineInstr.h add some helper methods for asmprinter flags, from PR8417 2010-11-21 08:30:55 +00:00
MachineInstrBuilder.h Initial va_arg support for x86-64. Patch by David Meyer! 2010-10-12 18:00:49 +00:00
MachineJumpTableInfo.h
MachineLocation.h
MachineLoopInfo.h Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
MachineLoopRanges.h Enable loop splitting in RegAllocGreedy. 2010-12-17 23:16:32 +00:00
MachineMemOperand.h Merge System into Support. 2010-11-29 18:16:10 +00:00
MachineModuleInfo.h Fix small bug in setDebugInfoAvailability. 2011-01-05 17:01:57 +00:00
MachineModuleInfoImpls.h
MachineOperand.h Merge System into Support. 2010-11-29 18:16:10 +00:00
MachinePassRegistry.h
MachineRegisterInfo.h Add MachineRegisterInfo::constrainRegClass and use it in MachineCSE. 2010-10-06 23:54:39 +00:00
MachineRelocation.h Merge System into Support. 2010-11-29 18:16:10 +00:00
MachineSSAUpdater.h
MachORelocation.h Merge System into Support. 2010-11-29 18:16:10 +00:00
ObjectCodeEmitter.h
Passes.h Add the SpillPlacement analysis pass. 2011-01-06 01:21:53 +00:00
ProcessImplicitDefs.h Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
PseudoSourceValue.h
RegAllocPBQP.h Fixed some dependencies in RegAllocPBQP.h . Thanks to Borja Ferrer for pointing out this issue. 2010-12-08 22:15:32 +00:00
RegAllocRegistry.h
RegisterCoalescer.h Merge System into Support. 2010-11-29 18:16:10 +00:00
RegisterScavenging.h
RuntimeLibcalls.h
ScheduleDAG.h Header warning patrol. 2010-12-25 02:38:01 +00:00
ScheduleHazardRecognizer.h Various bits of framework needed for precise machine-level selection 2010-12-24 05:03:26 +00:00
SchedulerRegistry.h
ScoreboardHazardRecognizer.h Various bits of framework needed for precise machine-level selection 2010-12-24 05:03:26 +00:00
SelectionDAG.h flags -> glue for selectiondag 2010-12-23 17:24:32 +00:00
SelectionDAGISel.h Various bits of framework needed for precise machine-level selection 2010-12-24 05:03:26 +00:00
SelectionDAGNodes.h flags -> glue for selectiondag 2010-12-23 17:24:32 +00:00
SlotIndexes.h Add SlotIndexes::getMBBRange() to get the range of a basic block in a single 2010-12-15 20:40:22 +00:00
TargetLoweringObjectFileImpl.h
ValueTypes.h rename MVT::Flag to MVT::Glue. "Flag" is a terrible name for 2010-12-21 02:38:05 +00:00
ValueTypes.td fix comments; patch by Edmund Grimley-Evans\! 2010-09-17 17:52:00 +00:00