mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 12:12:47 +01:00
4e30d875bf
This patch implements first part of Flow Sensitive SampleFDO (FSAFDO). It has the following changes: (1) disable current discriminator encoding scheme, (2) new hierarchical discriminator for FSAFDO. For this patch, option "-enable-fs-discriminator=true" turns on the new functionality. Option "-enable-fs-discriminator=false" (the default) keeps the current SampleFDO behavior. When the fs-discriminator is enabled, we insert a flag variable, namely, llvm_fs_discriminator, to the object. This symbol will checked by create_llvm_prof tool, and used to generate a profile with FS-AFDO discriminators enabled. If this happens, for an extbinary format profile, create_llvm_prof tool will add a flag to profile summary section. Differential Revision: https://reviews.llvm.org/D102246
223 lines
4.9 KiB
CMake
223 lines
4.9 KiB
CMake
add_llvm_component_library(LLVMCodeGen
|
|
AggressiveAntiDepBreaker.cpp
|
|
AllocationOrder.cpp
|
|
Analysis.cpp
|
|
AtomicExpandPass.cpp
|
|
BasicTargetTransformInfo.cpp
|
|
BranchFolding.cpp
|
|
BranchRelaxation.cpp
|
|
BreakFalseDeps.cpp
|
|
BasicBlockSections.cpp
|
|
CalcSpillWeights.cpp
|
|
CallingConvLower.cpp
|
|
CFGuardLongjmp.cpp
|
|
CFIInstrInserter.cpp
|
|
CodeGen.cpp
|
|
CodeGenPassBuilder.cpp
|
|
CodeGenPrepare.cpp
|
|
CommandFlags.cpp
|
|
CriticalAntiDepBreaker.cpp
|
|
DeadMachineInstructionElim.cpp
|
|
DetectDeadLanes.cpp
|
|
DFAPacketizer.cpp
|
|
DwarfEHPrepare.cpp
|
|
EarlyIfConversion.cpp
|
|
EdgeBundles.cpp
|
|
EHContGuardCatchret.cpp
|
|
ExecutionDomainFix.cpp
|
|
ExpandMemCmp.cpp
|
|
ExpandPostRAPseudos.cpp
|
|
ExpandReductions.cpp
|
|
ExpandVectorPredication.cpp
|
|
FaultMaps.cpp
|
|
FEntryInserter.cpp
|
|
FinalizeISel.cpp
|
|
FixupStatepointCallerSaved.cpp
|
|
FuncletLayout.cpp
|
|
GCMetadata.cpp
|
|
GCMetadataPrinter.cpp
|
|
GCRootLowering.cpp
|
|
GlobalMerge.cpp
|
|
HardwareLoops.cpp
|
|
IfConversion.cpp
|
|
ImplicitNullChecks.cpp
|
|
IndirectBrExpandPass.cpp
|
|
InlineSpiller.cpp
|
|
InterferenceCache.cpp
|
|
InterleavedAccessPass.cpp
|
|
InterleavedLoadCombinePass.cpp
|
|
IntrinsicLowering.cpp
|
|
LatencyPriorityQueue.cpp
|
|
LazyMachineBlockFrequencyInfo.cpp
|
|
LexicalScopes.cpp
|
|
LiveDebugVariables.cpp
|
|
LiveIntervals.cpp
|
|
LiveInterval.cpp
|
|
LiveIntervalUnion.cpp
|
|
LivePhysRegs.cpp
|
|
LiveRangeCalc.cpp
|
|
LiveIntervalCalc.cpp
|
|
LiveRangeEdit.cpp
|
|
LiveRangeShrink.cpp
|
|
LiveRegMatrix.cpp
|
|
LiveRegUnits.cpp
|
|
LiveStacks.cpp
|
|
LiveVariables.cpp
|
|
LLVMTargetMachine.cpp
|
|
LocalStackSlotAllocation.cpp
|
|
LoopTraversal.cpp
|
|
LowLevelType.cpp
|
|
LowerEmuTLS.cpp
|
|
MachineBasicBlock.cpp
|
|
MachineBlockFrequencyInfo.cpp
|
|
MachineBlockPlacement.cpp
|
|
MachineBranchProbabilityInfo.cpp
|
|
MachineCombiner.cpp
|
|
MachineCopyPropagation.cpp
|
|
MachineCSE.cpp
|
|
MachineCheckDebugify.cpp
|
|
MachineDebugify.cpp
|
|
MachineDominanceFrontier.cpp
|
|
MachineDominators.cpp
|
|
MachineFrameInfo.cpp
|
|
MachineFunction.cpp
|
|
MachineFunctionPass.cpp
|
|
MachineFunctionPrinterPass.cpp
|
|
MachineFunctionSplitter.cpp
|
|
MachineInstrBundle.cpp
|
|
MachineInstr.cpp
|
|
MachineLICM.cpp
|
|
MachineLoopInfo.cpp
|
|
MachineLoopUtils.cpp
|
|
MachineModuleInfo.cpp
|
|
MachineModuleInfoImpls.cpp
|
|
MachineOperand.cpp
|
|
MachineOptimizationRemarkEmitter.cpp
|
|
MachineOutliner.cpp
|
|
MachinePassManager.cpp
|
|
MachinePipeliner.cpp
|
|
MachinePostDominators.cpp
|
|
MachineRegionInfo.cpp
|
|
MachineRegisterInfo.cpp
|
|
MachineScheduler.cpp
|
|
MachineSink.cpp
|
|
MachineSizeOpts.cpp
|
|
MachineSSAUpdater.cpp
|
|
MachineStripDebug.cpp
|
|
MachineTraceMetrics.cpp
|
|
MachineVerifier.cpp
|
|
MIRFSDiscriminator.cpp
|
|
MIRYamlMapping.cpp
|
|
ModuloSchedule.cpp
|
|
MultiHazardRecognizer.cpp
|
|
PatchableFunction.cpp
|
|
MBFIWrapper.cpp
|
|
MIRPrinter.cpp
|
|
MIRPrintingPass.cpp
|
|
MacroFusion.cpp
|
|
NonRelocatableStringpool.cpp
|
|
OptimizePHIs.cpp
|
|
ParallelCG.cpp
|
|
PeepholeOptimizer.cpp
|
|
PHIElimination.cpp
|
|
PHIEliminationUtils.cpp
|
|
PostRAHazardRecognizer.cpp
|
|
PostRASchedulerList.cpp
|
|
PreISelIntrinsicLowering.cpp
|
|
ProcessImplicitDefs.cpp
|
|
PrologEpilogInserter.cpp
|
|
PseudoProbeInserter.cpp
|
|
PseudoSourceValue.cpp
|
|
RDFGraph.cpp
|
|
RDFLiveness.cpp
|
|
RDFRegisters.cpp
|
|
ReachingDefAnalysis.cpp
|
|
RegAllocBase.cpp
|
|
RegAllocBasic.cpp
|
|
RegAllocFast.cpp
|
|
RegAllocGreedy.cpp
|
|
RegAllocPBQP.cpp
|
|
RegisterClassInfo.cpp
|
|
RegisterCoalescer.cpp
|
|
RegisterPressure.cpp
|
|
RegisterScavenging.cpp
|
|
RenameIndependentSubregs.cpp
|
|
MachineStableHash.cpp
|
|
MIRVRegNamerUtils.cpp
|
|
MIRNamerPass.cpp
|
|
MIRCanonicalizerPass.cpp
|
|
RegisterUsageInfo.cpp
|
|
RegUsageInfoCollector.cpp
|
|
RegUsageInfoPropagate.cpp
|
|
ReplaceWithVeclib.cpp
|
|
ResetMachineFunctionPass.cpp
|
|
SafeStack.cpp
|
|
SafeStackLayout.cpp
|
|
ScheduleDAG.cpp
|
|
ScheduleDAGInstrs.cpp
|
|
ScheduleDAGPrinter.cpp
|
|
ScoreboardHazardRecognizer.cpp
|
|
ShadowStackGCLowering.cpp
|
|
ShrinkWrap.cpp
|
|
SjLjEHPrepare.cpp
|
|
SlotIndexes.cpp
|
|
SpillPlacement.cpp
|
|
SplitKit.cpp
|
|
StackColoring.cpp
|
|
StackMapLivenessAnalysis.cpp
|
|
StackMaps.cpp
|
|
StackProtector.cpp
|
|
StackSlotColoring.cpp
|
|
SwiftErrorValueTracking.cpp
|
|
SwitchLoweringUtils.cpp
|
|
TailDuplication.cpp
|
|
TailDuplicator.cpp
|
|
TargetFrameLoweringImpl.cpp
|
|
TargetInstrInfo.cpp
|
|
TargetLoweringBase.cpp
|
|
TargetLoweringObjectFileImpl.cpp
|
|
TargetOptionsImpl.cpp
|
|
TargetPassConfig.cpp
|
|
TargetRegisterInfo.cpp
|
|
TargetSchedule.cpp
|
|
TargetSubtargetInfo.cpp
|
|
TypePromotion.cpp
|
|
TwoAddressInstructionPass.cpp
|
|
UnreachableBlockElim.cpp
|
|
ValueTypes.cpp
|
|
VirtRegMap.cpp
|
|
WasmEHPrepare.cpp
|
|
WinEHPrepare.cpp
|
|
XRayInstrumentation.cpp
|
|
|
|
LiveDebugValues/LiveDebugValues.cpp
|
|
LiveDebugValues/VarLocBasedImpl.cpp
|
|
LiveDebugValues/InstrRefBasedImpl.cpp
|
|
|
|
ADDITIONAL_HEADER_DIRS
|
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen
|
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen/PBQP
|
|
|
|
LINK_LIBS ${LLVM_PTHREAD_LIB}
|
|
|
|
DEPENDS
|
|
intrinsics_gen
|
|
|
|
LINK_COMPONENTS
|
|
Analysis
|
|
BitReader
|
|
BitWriter
|
|
Core
|
|
MC
|
|
ProfileData
|
|
Scalar
|
|
Support
|
|
Target
|
|
TransformUtils
|
|
)
|
|
|
|
add_subdirectory(SelectionDAG)
|
|
add_subdirectory(AsmPrinter)
|
|
add_subdirectory(MIRParser)
|
|
add_subdirectory(GlobalISel)
|