mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 11:42:57 +01:00
d3039d9a41
As discussed in https://reviews.llvm.org/D22666, our current mechanism to support -pg profiling, where we insert calls to mcount(), or some similar function, is fundamentally broken. We insert these calls in the frontend, which means they get duplicated when inlining, and so the accumulated execution counts for the inlined-into functions are wrong. Because we don't want the presence of these functions to affect optimizaton, they should be inserted in the backend. Here's a pass which would do just that. The knowledge of the name of the counting function lives in the frontend, so we're passing it here as a function attribute. Clang will be updated to use this mechanism. Differential Revision: https://reviews.llvm.org/D22825 llvm-svn: 280347
157 lines
3.5 KiB
CMake
157 lines
3.5 KiB
CMake
add_llvm_library(LLVMCodeGen
|
|
AggressiveAntiDepBreaker.cpp
|
|
AllocationOrder.cpp
|
|
Analysis.cpp
|
|
AtomicExpandPass.cpp
|
|
BasicTargetTransformInfo.cpp
|
|
BranchFolding.cpp
|
|
BuiltinGCs.cpp
|
|
CalcSpillWeights.cpp
|
|
CallingConvLower.cpp
|
|
CodeGen.cpp
|
|
CodeGenPrepare.cpp
|
|
CountingFunctionInserter.cpp
|
|
CriticalAntiDepBreaker.cpp
|
|
DeadMachineInstructionElim.cpp
|
|
DetectDeadLanes.cpp
|
|
DFAPacketizer.cpp
|
|
DwarfEHPrepare.cpp
|
|
EarlyIfConversion.cpp
|
|
EdgeBundles.cpp
|
|
ExecutionDepsFix.cpp
|
|
ExpandISelPseudos.cpp
|
|
ExpandPostRAPseudos.cpp
|
|
FaultMaps.cpp
|
|
FuncletLayout.cpp
|
|
GCMetadata.cpp
|
|
GCMetadataPrinter.cpp
|
|
GCRootLowering.cpp
|
|
GCStrategy.cpp
|
|
GlobalMerge.cpp
|
|
IfConversion.cpp
|
|
ImplicitNullChecks.cpp
|
|
InlineSpiller.cpp
|
|
InterferenceCache.cpp
|
|
InterleavedAccessPass.cpp
|
|
IntrinsicLowering.cpp
|
|
LatencyPriorityQueue.cpp
|
|
LexicalScopes.cpp
|
|
LiveDebugValues.cpp
|
|
LiveDebugVariables.cpp
|
|
LiveIntervalAnalysis.cpp
|
|
LiveInterval.cpp
|
|
LiveIntervalUnion.cpp
|
|
LivePhysRegs.cpp
|
|
LiveRangeCalc.cpp
|
|
LiveRangeEdit.cpp
|
|
LiveRegMatrix.cpp
|
|
LiveStackAnalysis.cpp
|
|
LiveVariables.cpp
|
|
LLVMTargetMachine.cpp
|
|
LocalStackSlotAllocation.cpp
|
|
LowLevelType.cpp
|
|
LowerEmuTLS.cpp
|
|
MachineBasicBlock.cpp
|
|
MachineBlockFrequencyInfo.cpp
|
|
MachineBlockPlacement.cpp
|
|
MachineBranchProbabilityInfo.cpp
|
|
MachineCombiner.cpp
|
|
MachineCopyPropagation.cpp
|
|
MachineCSE.cpp
|
|
MachineDominanceFrontier.cpp
|
|
MachineDominators.cpp
|
|
MachineFunction.cpp
|
|
MachineFunctionPass.cpp
|
|
MachineFunctionPrinterPass.cpp
|
|
MachineInstrBundle.cpp
|
|
MachineInstr.cpp
|
|
MachineLICM.cpp
|
|
MachineLoopInfo.cpp
|
|
MachineModuleInfo.cpp
|
|
MachineModuleInfoImpls.cpp
|
|
MachinePassRegistry.cpp
|
|
MachinePipeliner.cpp
|
|
MachinePostDominators.cpp
|
|
MachineRegionInfo.cpp
|
|
MachineRegisterInfo.cpp
|
|
MachineScheduler.cpp
|
|
MachineSink.cpp
|
|
MachineSSAUpdater.cpp
|
|
MachineTraceMetrics.cpp
|
|
MachineVerifier.cpp
|
|
PatchableFunction.cpp
|
|
MIRPrinter.cpp
|
|
MIRPrintingPass.cpp
|
|
OptimizePHIs.cpp
|
|
ParallelCG.cpp
|
|
PeepholeOptimizer.cpp
|
|
PHIElimination.cpp
|
|
PHIEliminationUtils.cpp
|
|
PostRAHazardRecognizer.cpp
|
|
PostRASchedulerList.cpp
|
|
PreISelIntrinsicLowering.cpp
|
|
ProcessImplicitDefs.cpp
|
|
PrologEpilogInserter.cpp
|
|
PseudoSourceValue.cpp
|
|
RegAllocBase.cpp
|
|
RegAllocBasic.cpp
|
|
RegAllocFast.cpp
|
|
RegAllocGreedy.cpp
|
|
RegAllocPBQP.cpp
|
|
RegisterClassInfo.cpp
|
|
RegisterCoalescer.cpp
|
|
RegisterPressure.cpp
|
|
RegisterScavenging.cpp
|
|
RenameIndependentSubregs.cpp
|
|
RegisterUsageInfo.cpp
|
|
RegUsageInfoCollector.cpp
|
|
RegUsageInfoPropagate.cpp
|
|
ResetMachineFunctionPass.cpp
|
|
SafeStack.cpp
|
|
SafeStackColoring.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
|
|
TailDuplication.cpp
|
|
TailDuplicator.cpp
|
|
TargetFrameLoweringImpl.cpp
|
|
TargetInstrInfo.cpp
|
|
TargetLoweringBase.cpp
|
|
TargetLoweringObjectFileImpl.cpp
|
|
TargetOptionsImpl.cpp
|
|
TargetPassConfig.cpp
|
|
TargetRegisterInfo.cpp
|
|
TargetSchedule.cpp
|
|
TwoAddressInstructionPass.cpp
|
|
UnreachableBlockElim.cpp
|
|
VirtRegMap.cpp
|
|
WinEHPrepare.cpp
|
|
XRayInstrumentation.cpp
|
|
|
|
ADDITIONAL_HEADER_DIRS
|
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen
|
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen/PBQP
|
|
|
|
LINK_LIBS ${PTHREAD_LIB}
|
|
)
|
|
|
|
add_dependencies(LLVMCodeGen intrinsics_gen)
|
|
|
|
add_subdirectory(SelectionDAG)
|
|
add_subdirectory(AsmPrinter)
|
|
add_subdirectory(MIRParser)
|
|
add_subdirectory(GlobalISel)
|