mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-31 12:30:06 +00:00
register classes. It provides information for each register class that cannot be determined statically, like: - The number of allocatable registers in a class after filtering out the reserved and invalid registers. - The preferred allocation order with registers that overlap callee-saved registers last. - The last callee-saved register that overlaps a given physical register. This information usually doesn't change between functions, so it is reused for compiling multiple functions when possible. The many possible combinations of reserved and callee saves registers makes it unfeasible to compute this information statically in TableGen. Use RegisterClassInfo to count available registers in various heuristics in SimpleRegisterCoalescing, making the pass run 4% faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132450 91177308-0d34-0410-b5e6-96231b3b80d8
102 lines
2.2 KiB
CMake
102 lines
2.2 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
|
|
InterferenceCache.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
|
|
PostRASchedulerList.cpp
|
|
PreAllocSplitting.cpp
|
|
ProcessImplicitDefs.cpp
|
|
PrologEpilogInserter.cpp
|
|
PseudoSourceValue.cpp
|
|
RegAllocBasic.cpp
|
|
RegAllocFast.cpp
|
|
RegAllocGreedy.cpp
|
|
RegAllocLinearScan.cpp
|
|
RegAllocPBQP.cpp
|
|
RegisterClassInfo.cpp
|
|
RegisterCoalescer.cpp
|
|
RegisterScavenging.cpp
|
|
RenderMachineFunction.cpp
|
|
ScheduleDAG.cpp
|
|
ScheduleDAGEmit.cpp
|
|
ScheduleDAGInstrs.cpp
|
|
ScheduleDAGPrinter.cpp
|
|
ScoreboardHazardRecognizer.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
|
|
)
|
|
|
|
add_subdirectory(SelectionDAG)
|
|
add_subdirectory(AsmPrinter)
|