mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-04 10:04:33 +00:00
8bfe50871f
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
97 lines
2.1 KiB
CMake
97 lines
2.1 KiB
CMake
add_llvm_library(LLVMCodeGen
|
|
AggressiveAntiDepBreaker.cpp
|
|
AllocationOrder.cpp
|
|
Analysis.cpp
|
|
BranchFolding.cpp
|
|
CalcSpillWeights.cpp
|
|
CallingConvLower.cpp
|
|
CodeGen.cpp
|
|
CodePlacementOpt.cpp
|
|
CriticalAntiDepBreaker.cpp
|
|
DeadMachineInstructionElim.cpp
|
|
DwarfEHPrepare.cpp
|
|
EdgeBundles.cpp
|
|
ELFCodeEmitter.cpp
|
|
ELFWriter.cpp
|
|
ExpandISelPseudos.cpp
|
|
GCMetadata.cpp
|
|
GCMetadataPrinter.cpp
|
|
GCStrategy.cpp
|
|
IfConversion.cpp
|
|
InlineSpiller.cpp
|
|
IntrinsicLowering.cpp
|
|
LLVMTargetMachine.cpp
|
|
LatencyPriorityQueue.cpp
|
|
LiveDebugVariables.cpp
|
|
LiveInterval.cpp
|
|
LiveIntervalAnalysis.cpp
|
|
LiveIntervalUnion.cpp
|
|
LiveStackAnalysis.cpp
|
|
LiveVariables.cpp
|
|
LiveRangeEdit.cpp
|
|
LocalStackSlotAllocation.cpp
|
|
LowerSubregs.cpp
|
|
MachineBasicBlock.cpp
|
|
MachineCSE.cpp
|
|
MachineDominators.cpp
|
|
MachineFunction.cpp
|
|
MachineFunctionAnalysis.cpp
|
|
MachineFunctionPass.cpp
|
|
MachineFunctionPrinterPass.cpp
|
|
MachineInstr.cpp
|
|
MachineLICM.cpp
|
|
MachineLoopInfo.cpp
|
|
MachineLoopRanges.cpp
|
|
MachineModuleInfo.cpp
|
|
MachineModuleInfoImpls.cpp
|
|
MachinePassRegistry.cpp
|
|
MachineRegisterInfo.cpp
|
|
MachineSSAUpdater.cpp
|
|
MachineSink.cpp
|
|
MachineVerifier.cpp
|
|
ObjectCodeEmitter.cpp
|
|
OcamlGC.cpp
|
|
OptimizePHIs.cpp
|
|
PHIElimination.cpp
|
|
PHIEliminationUtils.cpp
|
|
Passes.cpp
|
|
PeepholeOptimizer.cpp
|
|
ScoreboardHazardRecognizer.cpp
|
|
PostRASchedulerList.cpp
|
|
PreAllocSplitting.cpp
|
|
ProcessImplicitDefs.cpp
|
|
PrologEpilogInserter.cpp
|
|
PseudoSourceValue.cpp
|
|
RegAllocBasic.cpp
|
|
RegAllocFast.cpp
|
|
RegAllocGreedy.cpp
|
|
RegAllocLinearScan.cpp
|
|
RegAllocPBQP.cpp
|
|
RegisterCoalescer.cpp
|
|
RegisterScavenging.cpp
|
|
RenderMachineFunction.cpp
|
|
ScheduleDAG.cpp
|
|
ScheduleDAGEmit.cpp
|
|
ScheduleDAGInstrs.cpp
|
|
ScheduleDAGPrinter.cpp
|
|
ShadowStackGC.cpp
|
|
ShrinkWrapping.cpp
|
|
SimpleRegisterCoalescing.cpp
|
|
SjLjEHPrepare.cpp
|
|
SlotIndexes.cpp
|
|
Spiller.cpp
|
|
SpillPlacement.cpp
|
|
SplitKit.cpp
|
|
Splitter.cpp
|
|
StackProtector.cpp
|
|
StackSlotColoring.cpp
|
|
StrongPHIElimination.cpp
|
|
TailDuplication.cpp
|
|
TargetInstrInfoImpl.cpp
|
|
TargetLoweringObjectFileImpl.cpp
|
|
TwoAddressInstructionPass.cpp
|
|
UnreachableBlockElim.cpp
|
|
VirtRegMap.cpp
|
|
VirtRegRewriter.cpp
|
|
)
|