# $FreeBSD$

.include <src.opts.mk>
.include "../llvm.pre.mk"

LIB=		llvm
INTERNALLIB=

CFLAGS+=	-I${.OBJDIR}

.if ${MK_LLVM_TARGET_AARCH64} == "no" && ${MK_LLVM_TARGET_ARM} == "no" && \
    ${MK_LLVM_TARGET_BPF} == "no" && ${MK_LLVM_TARGET_MIPS} == "no" && \
    ${MK_LLVM_TARGET_POWERPC} == "no" && ${MK_LLVM_TARGET_RISCV} == "no" && \
    ${MK_LLVM_TARGET_X86} == "no"
.error Please enable at least one of: MK_LLVM_TARGET_AARCH64,\
 MK_LLVM_TARGET_ARM, MK_LLVM_TARGET_BPF, MK_LLVM_TARGET_MIPS, \
 MK_LLVM_TARGET_POWERPC, MK_LLVM_TARGET_RISCV, or MK_LLVM_TARGET_X86
.endif

.for arch in AArch64 ARM BPF Mips PowerPC RISCV X86
. if ${MK_LLVM_TARGET_${arch:tu}} != "no"
CFLAGS+=	-I${LLVM_SRCS}/lib/Target/${arch}
. endif
.endfor

SRCDIR=		llvm/lib

# Explanation of different SRCS variants below:
# SRCS_MIN:	always required, even for bootstrap
# SRCS_MIW:	required for world stage (after cross-tools)
# SRCS_EXT:	required for MK_CLANG_EXTRAS
# SRCS_EXL:	required for MK_CLANG_EXTRAS and MK_LLD
# SRCS_FUL:	required for MK_CLANG_FULL
# SRCS_LLD:	required for MK_LLD
# SRCS_XDB:	required for MK_CLANG_EXTRAS and MK_LLDB
# SRCS_XDL:	required for MK_CLANG_EXTRAS, MK_LLD and MK_LLDB
# SRCS_XDW:	required for MK_CLANG_EXTRAS and MK_LLDB in world stage

SRCS_MIN+=	Analysis/AliasAnalysis.cpp
SRCS_MIN+=	Analysis/AliasAnalysisEvaluator.cpp
SRCS_MIN+=	Analysis/AliasAnalysisSummary.cpp
SRCS_MIN+=	Analysis/AliasSetTracker.cpp
SRCS_EXT+=	Analysis/Analysis.cpp
SRCS_MIN+=	Analysis/AssumptionCache.cpp
SRCS_MIN+=	Analysis/BasicAliasAnalysis.cpp
SRCS_MIN+=	Analysis/BlockFrequencyInfo.cpp
SRCS_MIN+=	Analysis/BlockFrequencyInfoImpl.cpp
SRCS_MIN+=	Analysis/BranchProbabilityInfo.cpp
SRCS_MIN+=	Analysis/CFG.cpp
SRCS_MIN+=	Analysis/CFGPrinter.cpp
SRCS_MIN+=	Analysis/CFLAndersAliasAnalysis.cpp
SRCS_MIN+=	Analysis/CFLSteensAliasAnalysis.cpp
SRCS_MIN+=	Analysis/CGSCCPassManager.cpp
SRCS_MIN+=	Analysis/CallGraph.cpp
SRCS_MIN+=	Analysis/CallGraphSCCPass.cpp
SRCS_MIN+=	Analysis/CallPrinter.cpp
SRCS_MIN+=	Analysis/CaptureTracking.cpp
SRCS_MIN+=	Analysis/CmpInstAnalysis.cpp
SRCS_MIN+=	Analysis/CodeMetrics.cpp
SRCS_MIN+=	Analysis/ConstantFolding.cpp
SRCS_MIN+=	Analysis/CostModel.cpp
SRCS_MIN+=	Analysis/DDG.cpp
SRCS_MIN+=	Analysis/Delinearization.cpp
SRCS_MIN+=	Analysis/DemandedBits.cpp
SRCS_MIN+=	Analysis/DependenceAnalysis.cpp
SRCS_MIN+=	Analysis/DependenceGraphBuilder.cpp
SRCS_MIN+=	Analysis/DivergenceAnalysis.cpp
SRCS_MIN+=	Analysis/DomPrinter.cpp
SRCS_MIN+=	Analysis/DomTreeUpdater.cpp
SRCS_MIN+=	Analysis/DominanceFrontier.cpp
SRCS_MIN+=	Analysis/EHPersonalities.cpp
SRCS_MIN+=	Analysis/GlobalsModRef.cpp
SRCS_MIN+=	Analysis/GuardUtils.cpp
SRCS_MIN+=	Analysis/IVDescriptors.cpp
SRCS_MIN+=	Analysis/IVUsers.cpp
SRCS_MIN+=	Analysis/IndirectCallPromotionAnalysis.cpp
SRCS_MIN+=	Analysis/InlineCost.cpp
SRCS_MIN+=	Analysis/InstCount.cpp
SRCS_MIN+=	Analysis/InstructionPrecedenceTracking.cpp
SRCS_MIN+=	Analysis/InstructionSimplify.cpp
SRCS_MIN+=	Analysis/Interval.cpp
SRCS_MIN+=	Analysis/IntervalPartition.cpp
SRCS_MIN+=	Analysis/LazyBlockFrequencyInfo.cpp
SRCS_MIN+=	Analysis/LazyBranchProbabilityInfo.cpp
SRCS_MIN+=	Analysis/LazyCallGraph.cpp
SRCS_MIN+=	Analysis/LazyValueInfo.cpp
SRCS_MIN+=	Analysis/LegacyDivergenceAnalysis.cpp
SRCS_MIN+=	Analysis/Lint.cpp
SRCS_MIN+=	Analysis/Loads.cpp
SRCS_MIN+=	Analysis/LoopAccessAnalysis.cpp
SRCS_MIN+=	Analysis/LoopAnalysisManager.cpp
SRCS_MIN+=	Analysis/LoopCacheAnalysis.cpp
SRCS_MIN+=	Analysis/LoopInfo.cpp
SRCS_MIN+=	Analysis/LoopPass.cpp
SRCS_MIN+=	Analysis/LoopUnrollAnalyzer.cpp
SRCS_MIN+=	Analysis/MemDepPrinter.cpp
SRCS_MIN+=	Analysis/MemDerefPrinter.cpp
SRCS_MIN+=	Analysis/MemoryBuiltins.cpp
SRCS_MIN+=	Analysis/MemoryDependenceAnalysis.cpp
SRCS_MIN+=	Analysis/MemoryLocation.cpp
SRCS_MIN+=	Analysis/MemorySSA.cpp
SRCS_MIN+=	Analysis/MemorySSAUpdater.cpp
SRCS_MIN+=	Analysis/ModuleDebugInfoPrinter.cpp
SRCS_MIN+=	Analysis/ModuleSummaryAnalysis.cpp
SRCS_MIN+=	Analysis/MustExecute.cpp
SRCS_MIN+=	Analysis/ObjCARCAliasAnalysis.cpp
SRCS_MIN+=	Analysis/ObjCARCAnalysisUtils.cpp
SRCS_MIN+=	Analysis/ObjCARCInstKind.cpp
SRCS_MIN+=	Analysis/OptimizationRemarkEmitter.cpp
SRCS_MIN+=	Analysis/OrderedBasicBlock.cpp
SRCS_MIN+=	Analysis/OrderedInstructions.cpp
SRCS_MIN+=	Analysis/PHITransAddr.cpp
SRCS_MIN+=	Analysis/PhiValues.cpp
SRCS_MIN+=	Analysis/PostDominators.cpp
SRCS_MIN+=	Analysis/ProfileSummaryInfo.cpp
SRCS_MIN+=	Analysis/PtrUseVisitor.cpp
SRCS_MIN+=	Analysis/RegionInfo.cpp
SRCS_MIN+=	Analysis/RegionPass.cpp
SRCS_MIN+=	Analysis/RegionPrinter.cpp
SRCS_MIN+=	Analysis/ScalarEvolution.cpp
SRCS_MIN+=	Analysis/ScalarEvolutionAliasAnalysis.cpp
SRCS_MIN+=	Analysis/ScalarEvolutionExpander.cpp
SRCS_MIN+=	Analysis/ScalarEvolutionNormalization.cpp
SRCS_MIN+=	Analysis/ScopedNoAliasAA.cpp
SRCS_MIN+=	Analysis/StackSafetyAnalysis.cpp
SRCS_MIN+=	Analysis/SyncDependenceAnalysis.cpp
SRCS_MIN+=	Analysis/SyntheticCountsUtils.cpp
SRCS_MIN+=	Analysis/TargetLibraryInfo.cpp
SRCS_MIN+=	Analysis/TargetTransformInfo.cpp
SRCS_MIN+=	Analysis/TypeBasedAliasAnalysis.cpp
SRCS_MIN+=	Analysis/TypeMetadataUtils.cpp
SRCS_MIN+=	Analysis/VFABIDemangling.cpp
SRCS_MIN+=	Analysis/ValueLattice.cpp
SRCS_MIN+=	Analysis/ValueLatticeUtils.cpp
SRCS_MIN+=	Analysis/ValueTracking.cpp
SRCS_MIN+=	Analysis/VectorUtils.cpp
SRCS_MIN+=	AsmParser/LLLexer.cpp
SRCS_MIN+=	AsmParser/LLParser.cpp
SRCS_MIN+=	AsmParser/Parser.cpp
SRCS_MIN+=	BinaryFormat/Dwarf.cpp
SRCS_MIN+=	BinaryFormat/Magic.cpp
SRCS_MIN+=	BinaryFormat/Wasm.cpp
SRCS_MIN+=	BinaryFormat/XCOFF.cpp
SRCS_MIN+=	Bitcode/Reader/BitReader.cpp
SRCS_EXT+=	Bitcode/Reader/BitcodeAnalyzer.cpp
SRCS_MIN+=	Bitcode/Reader/BitcodeReader.cpp
SRCS_MIN+=	Bitcode/Reader/MetadataLoader.cpp
SRCS_MIN+=	Bitcode/Reader/ValueList.cpp
SRCS_MIN+=	Bitcode/Writer/BitcodeWriter.cpp
SRCS_MIN+=	Bitcode/Writer/BitcodeWriterPass.cpp
SRCS_MIN+=	Bitcode/Writer/ValueEnumerator.cpp
SRCS_MIN+=	Bitstream/Reader/BitstreamReader.cpp
SRCS_MIN+=	CodeGen/AggressiveAntiDepBreaker.cpp
SRCS_MIN+=	CodeGen/AllocationOrder.cpp
SRCS_MIN+=	CodeGen/Analysis.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/ARMException.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/AccelTable.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/AddressPool.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/AsmPrinter.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/CodeViewDebug.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/DIE.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/DIEHash.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/DebugHandlerBase.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/DebugLocStream.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/DwarfCFIException.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/DwarfCompileUnit.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/DwarfDebug.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/DwarfExpression.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/DwarfFile.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/DwarfStringPool.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/DwarfUnit.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/EHStreamer.cpp
SRCS_EXT+=	CodeGen/AsmPrinter/ErlangGCPrinter.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/OcamlGCPrinter.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/WasmException.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/WinCFGuard.cpp
SRCS_MIN+=	CodeGen/AsmPrinter/WinException.cpp
SRCS_MIN+=	CodeGen/AtomicExpandPass.cpp
SRCS_MIN+=	CodeGen/BasicTargetTransformInfo.cpp
SRCS_MIN+=	CodeGen/BranchFolding.cpp
SRCS_MIN+=	CodeGen/BranchRelaxation.cpp
SRCS_MIN+=	CodeGen/BreakFalseDeps.cpp
SRCS_EXT+=	CodeGen/BuiltinGCs.cpp
SRCS_MIN+=	CodeGen/CFGuardLongjmp.cpp
SRCS_MIN+=	CodeGen/CFIInstrInserter.cpp
SRCS_MIN+=	CodeGen/CalcSpillWeights.cpp
SRCS_MIN+=	CodeGen/CallingConvLower.cpp
SRCS_MIN+=	CodeGen/CodeGen.cpp
SRCS_MIN+=	CodeGen/CodeGenPrepare.cpp
SRCS_MIN+=	CodeGen/CriticalAntiDepBreaker.cpp
SRCS_MIN+=	CodeGen/DFAPacketizer.cpp
SRCS_MIN+=	CodeGen/DeadMachineInstructionElim.cpp
SRCS_MIN+=	CodeGen/DetectDeadLanes.cpp
SRCS_MIN+=	CodeGen/DwarfEHPrepare.cpp
SRCS_MIN+=	CodeGen/EarlyIfConversion.cpp
SRCS_MIN+=	CodeGen/EdgeBundles.cpp
SRCS_MIN+=	CodeGen/ExecutionDomainFix.cpp
SRCS_MIN+=	CodeGen/ExpandMemCmp.cpp
SRCS_MIN+=	CodeGen/ExpandPostRAPseudos.cpp
SRCS_MIN+=	CodeGen/ExpandReductions.cpp
SRCS_MIN+=	CodeGen/FEntryInserter.cpp
SRCS_MIN+=	CodeGen/FaultMaps.cpp
SRCS_MIN+=	CodeGen/FinalizeISel.cpp
SRCS_MIN+=	CodeGen/FuncletLayout.cpp
SRCS_MIN+=	CodeGen/GCMetadata.cpp
SRCS_MIN+=	CodeGen/GCMetadataPrinter.cpp
SRCS_MIN+=	CodeGen/GCRootLowering.cpp
SRCS_MIN+=	CodeGen/GCStrategy.cpp
SRCS_MIN+=	CodeGen/GlobalISel/CSEInfo.cpp
SRCS_MIN+=	CodeGen/GlobalISel/CSEMIRBuilder.cpp
SRCS_MIN+=	CodeGen/GlobalISel/Combiner.cpp
SRCS_MIN+=	CodeGen/GlobalISel/CombinerHelper.cpp
SRCS_MIN+=	CodeGen/GlobalISel/CallLowering.cpp
SRCS_MIN+=	CodeGen/GlobalISel/GISelChangeObserver.cpp
SRCS_MIN+=	CodeGen/GlobalISel/GISelKnownBits.cpp
SRCS_MIN+=	CodeGen/GlobalISel/GlobalISel.cpp
SRCS_MIN+=	CodeGen/GlobalISel/IRTranslator.cpp
SRCS_MIN+=	CodeGen/GlobalISel/InstructionSelect.cpp
SRCS_MIN+=	CodeGen/GlobalISel/InstructionSelector.cpp
SRCS_MIN+=	CodeGen/GlobalISel/LegalityPredicates.cpp
SRCS_MIN+=	CodeGen/GlobalISel/LegalizeMutations.cpp
SRCS_MIN+=	CodeGen/GlobalISel/Legalizer.cpp
SRCS_MIN+=	CodeGen/GlobalISel/LegalizerHelper.cpp
SRCS_MIN+=	CodeGen/GlobalISel/LegalizerInfo.cpp
SRCS_MIN+=	CodeGen/GlobalISel/Localizer.cpp
SRCS_MIN+=	CodeGen/GlobalISel/MachineIRBuilder.cpp
SRCS_MIN+=	CodeGen/GlobalISel/RegBankSelect.cpp
SRCS_MIN+=	CodeGen/GlobalISel/RegisterBank.cpp
SRCS_MIN+=	CodeGen/GlobalISel/RegisterBankInfo.cpp
SRCS_MIN+=	CodeGen/GlobalISel/Utils.cpp
SRCS_MIN+=	CodeGen/GlobalMerge.cpp
SRCS_MIN+=	CodeGen/HardwareLoops.cpp
SRCS_MIN+=	CodeGen/IfConversion.cpp
SRCS_MIN+=	CodeGen/ImplicitNullChecks.cpp
SRCS_MIN+=	CodeGen/IndirectBrExpandPass.cpp
SRCS_MIN+=	CodeGen/InlineSpiller.cpp
SRCS_MIN+=	CodeGen/InterferenceCache.cpp
SRCS_MIN+=	CodeGen/InterleavedAccessPass.cpp
SRCS_MIN+=	CodeGen/InterleavedLoadCombinePass.cpp
SRCS_MIN+=	CodeGen/IntrinsicLowering.cpp
SRCS_MIN+=	CodeGen/LLVMTargetMachine.cpp
SRCS_MIN+=	CodeGen/LatencyPriorityQueue.cpp
SRCS_MIN+=	CodeGen/LazyMachineBlockFrequencyInfo.cpp
SRCS_MIN+=	CodeGen/LexicalScopes.cpp
SRCS_MIN+=	CodeGen/LiveDebugValues.cpp
SRCS_MIN+=	CodeGen/LiveDebugVariables.cpp
SRCS_MIN+=	CodeGen/LiveInterval.cpp
SRCS_MIN+=	CodeGen/LiveIntervalUnion.cpp
SRCS_MIN+=	CodeGen/LiveIntervals.cpp
SRCS_MIN+=	CodeGen/LivePhysRegs.cpp
SRCS_MIN+=	CodeGen/LiveRangeCalc.cpp
SRCS_MIN+=	CodeGen/LiveRangeEdit.cpp
SRCS_MIN+=	CodeGen/LiveRangeShrink.cpp
SRCS_MIN+=	CodeGen/LiveRegMatrix.cpp
SRCS_MIN+=	CodeGen/LiveRegUnits.cpp
SRCS_MIN+=	CodeGen/LiveStacks.cpp
SRCS_MIN+=	CodeGen/LiveVariables.cpp
SRCS_MIN+=	CodeGen/LocalStackSlotAllocation.cpp
SRCS_MIN+=	CodeGen/LoopTraversal.cpp
SRCS_MIN+=	CodeGen/LowLevelType.cpp
SRCS_MIN+=	CodeGen/LowerEmuTLS.cpp
SRCS_MIN+=	CodeGen/MIRCanonicalizerPass.cpp
SRCS_MIN+=	CodeGen/MIRNamerPass.cpp
SRCS_EXT+=	CodeGen/MIRParser/MILexer.cpp
SRCS_EXT+=	CodeGen/MIRParser/MIParser.cpp
SRCS_EXT+=	CodeGen/MIRParser/MIRParser.cpp
SRCS_MIN+=	CodeGen/MIRPrinter.cpp
SRCS_MIN+=	CodeGen/MIRPrintingPass.cpp
SRCS_MIN+=	CodeGen/MIRVRegNamerUtils.cpp
SRCS_MIN+=	CodeGen/MachineBasicBlock.cpp
SRCS_MIN+=	CodeGen/MachineBlockFrequencyInfo.cpp
SRCS_MIN+=	CodeGen/MachineBlockPlacement.cpp
SRCS_MIN+=	CodeGen/MachineBranchProbabilityInfo.cpp
SRCS_MIN+=	CodeGen/MachineCSE.cpp
SRCS_MIN+=	CodeGen/MachineCombiner.cpp
SRCS_MIN+=	CodeGen/MachineCopyPropagation.cpp
SRCS_MIN+=	CodeGen/MachineDominanceFrontier.cpp
SRCS_MIN+=	CodeGen/MachineDominators.cpp
SRCS_MIN+=	CodeGen/MachineFrameInfo.cpp
SRCS_MIN+=	CodeGen/MachineFunction.cpp
SRCS_MIN+=	CodeGen/MachineFunctionPass.cpp
SRCS_MIN+=	CodeGen/MachineFunctionPrinterPass.cpp
SRCS_MIN+=	CodeGen/MachineInstr.cpp
SRCS_MIN+=	CodeGen/MachineInstrBundle.cpp
SRCS_MIN+=	CodeGen/MachineLICM.cpp
SRCS_MIN+=	CodeGen/MachineLoopInfo.cpp
SRCS_MIN+=	CodeGen/MachineLoopUtils.cpp
SRCS_MIN+=	CodeGen/MachineModuleInfo.cpp
SRCS_MIN+=	CodeGen/MachineModuleInfoImpls.cpp
SRCS_MIN+=	CodeGen/MachineOperand.cpp
SRCS_MIN+=	CodeGen/MachineOptimizationRemarkEmitter.cpp
SRCS_MIN+=	CodeGen/MachineOutliner.cpp
SRCS_MIN+=	CodeGen/MachinePipeliner.cpp
SRCS_MIN+=	CodeGen/MachinePostDominators.cpp
SRCS_MIN+=	CodeGen/MachineRegionInfo.cpp
SRCS_MIN+=	CodeGen/MachineRegisterInfo.cpp
SRCS_MIN+=	CodeGen/MachineSSAUpdater.cpp
SRCS_MIN+=	CodeGen/MachineScheduler.cpp
SRCS_MIN+=	CodeGen/MachineSink.cpp
SRCS_MIN+=	CodeGen/MachineSizeOpts.cpp
SRCS_MIN+=	CodeGen/MachineTraceMetrics.cpp
SRCS_MIN+=	CodeGen/MachineVerifier.cpp
SRCS_MIN+=	CodeGen/MacroFusion.cpp
SRCS_MIN+=	CodeGen/ModuloSchedule.cpp
SRCS_MIN+=	CodeGen/OptimizePHIs.cpp
SRCS_MIN+=	CodeGen/PHIElimination.cpp
SRCS_MIN+=	CodeGen/PHIEliminationUtils.cpp
SRCS_MIN+=	CodeGen/ParallelCG.cpp
SRCS_MIN+=	CodeGen/PatchableFunction.cpp
SRCS_MIN+=	CodeGen/PeepholeOptimizer.cpp
SRCS_MIN+=	CodeGen/PostRAHazardRecognizer.cpp
SRCS_MIN+=	CodeGen/PostRASchedulerList.cpp
SRCS_MIN+=	CodeGen/PreISelIntrinsicLowering.cpp
SRCS_MIN+=	CodeGen/ProcessImplicitDefs.cpp
SRCS_MIN+=	CodeGen/PrologEpilogInserter.cpp
SRCS_MIN+=	CodeGen/PseudoSourceValue.cpp
SRCS_MIN+=	CodeGen/ReachingDefAnalysis.cpp
SRCS_MIN+=	CodeGen/RDFGraph.cpp
SRCS_MIN+=	CodeGen/RDFLiveness.cpp
SRCS_MIN+=	CodeGen/RDFRegisters.cpp
SRCS_MIN+=	CodeGen/RegAllocBase.cpp
SRCS_MIN+=	CodeGen/RegAllocBasic.cpp
SRCS_MIN+=	CodeGen/RegAllocFast.cpp
SRCS_MIN+=	CodeGen/RegAllocGreedy.cpp
SRCS_MIN+=	CodeGen/RegAllocPBQP.cpp
SRCS_MIN+=	CodeGen/RegUsageInfoCollector.cpp
SRCS_MIN+=	CodeGen/RegUsageInfoPropagate.cpp
SRCS_MIN+=	CodeGen/RegisterClassInfo.cpp
SRCS_MIN+=	CodeGen/RegisterCoalescer.cpp
SRCS_MIN+=	CodeGen/RegisterPressure.cpp
SRCS_MIN+=	CodeGen/RegisterScavenging.cpp
SRCS_MIN+=	CodeGen/RegisterUsageInfo.cpp
SRCS_MIN+=	CodeGen/RenameIndependentSubregs.cpp
SRCS_MIN+=	CodeGen/ResetMachineFunctionPass.cpp
SRCS_MIN+=	CodeGen/SafeStack.cpp
SRCS_MIN+=	CodeGen/SafeStackColoring.cpp
SRCS_MIN+=	CodeGen/SafeStackLayout.cpp
SRCS_MIN+=	CodeGen/ScalarizeMaskedMemIntrin.cpp
SRCS_MIN+=	CodeGen/ScheduleDAG.cpp
SRCS_MIN+=	CodeGen/ScheduleDAGInstrs.cpp
SRCS_MIN+=	CodeGen/ScheduleDAGPrinter.cpp
SRCS_MIN+=	CodeGen/ScoreboardHazardRecognizer.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/DAGCombiner.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/FastISel.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/InstrEmitter.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/LegalizeDAG.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/LegalizeTypes.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/LegalizeVectorOps.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/ResourcePriorityQueue.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/ScheduleDAGFast.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/SelectionDAG.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/SelectionDAGDumper.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/SelectionDAGISel.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/SelectionDAGPrinter.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/StatepointLowering.cpp
SRCS_MIN+=	CodeGen/SelectionDAG/TargetLowering.cpp
SRCS_MIN+=	CodeGen/ShadowStackGCLowering.cpp
SRCS_MIN+=	CodeGen/ShrinkWrap.cpp
SRCS_MIN+=	CodeGen/SjLjEHPrepare.cpp
SRCS_MIN+=	CodeGen/SlotIndexes.cpp
SRCS_MIN+=	CodeGen/SpillPlacement.cpp
SRCS_MIN+=	CodeGen/SplitKit.cpp
SRCS_MIN+=	CodeGen/StackColoring.cpp
SRCS_MIN+=	CodeGen/StackMapLivenessAnalysis.cpp
SRCS_MIN+=	CodeGen/StackMaps.cpp
SRCS_MIN+=	CodeGen/StackProtector.cpp
SRCS_MIN+=	CodeGen/StackSlotColoring.cpp
SRCS_MIN+=	CodeGen/SwiftErrorValueTracking.cpp
SRCS_MIN+=	CodeGen/SwitchLoweringUtils.cpp
SRCS_MIN+=	CodeGen/TailDuplication.cpp
SRCS_MIN+=	CodeGen/TailDuplicator.cpp
SRCS_MIN+=	CodeGen/TargetFrameLoweringImpl.cpp
SRCS_MIN+=	CodeGen/TargetInstrInfo.cpp
SRCS_MIN+=	CodeGen/TargetLoweringBase.cpp
SRCS_MIN+=	CodeGen/TargetLoweringObjectFileImpl.cpp
SRCS_MIN+=	CodeGen/TargetOptionsImpl.cpp
SRCS_MIN+=	CodeGen/TargetPassConfig.cpp
SRCS_MIN+=	CodeGen/TargetRegisterInfo.cpp
SRCS_MIN+=	CodeGen/TargetSchedule.cpp
SRCS_MIN+=	CodeGen/TargetSubtargetInfo.cpp
SRCS_MIN+=	CodeGen/TwoAddressInstructionPass.cpp
SRCS_MIN+=	CodeGen/TypePromotion.cpp
SRCS_MIN+=	CodeGen/UnreachableBlockElim.cpp
SRCS_MIN+=	CodeGen/ValueTypes.cpp
SRCS_MIN+=	CodeGen/VirtRegMap.cpp
SRCS_MIN+=	CodeGen/WasmEHPrepare.cpp
SRCS_MIN+=	CodeGen/WinEHPrepare.cpp
SRCS_MIN+=	CodeGen/XRayInstrumentation.cpp
SRCS_EXT+=	DebugInfo/CodeView/AppendingTypeTableBuilder.cpp
SRCS_MIN+=	DebugInfo/CodeView/CVSymbolVisitor.cpp
SRCS_MIN+=	DebugInfo/CodeView/CVTypeVisitor.cpp
SRCS_MIN+=	DebugInfo/CodeView/CodeViewError.cpp
SRCS_MIN+=	DebugInfo/CodeView/CodeViewRecordIO.cpp
SRCS_MIN+=	DebugInfo/CodeView/ContinuationRecordBuilder.cpp
SRCS_EXT+=	DebugInfo/CodeView/DebugChecksumsSubsection.cpp
SRCS_EXT+=	DebugInfo/CodeView/DebugCrossExSubsection.cpp
SRCS_EXT+=	DebugInfo/CodeView/DebugCrossImpSubsection.cpp
SRCS_EXT+=	DebugInfo/CodeView/DebugFrameDataSubsection.cpp
SRCS_EXT+=	DebugInfo/CodeView/DebugInlineeLinesSubsection.cpp
SRCS_EXT+=	DebugInfo/CodeView/DebugLinesSubsection.cpp
SRCS_EXT+=	DebugInfo/CodeView/DebugStringTableSubsection.cpp
SRCS_EXT+=	DebugInfo/CodeView/DebugSubsection.cpp
SRCS_EXT+=	DebugInfo/CodeView/DebugSubsectionRecord.cpp
SRCS_EXT+=	DebugInfo/CodeView/DebugSubsectionVisitor.cpp
SRCS_EXT+=	DebugInfo/CodeView/DebugSymbolRVASubsection.cpp
SRCS_EXT+=	DebugInfo/CodeView/DebugSymbolsSubsection.cpp
SRCS_MIN+=	DebugInfo/CodeView/EnumTables.cpp
SRCS_MIN+=	DebugInfo/CodeView/Formatters.cpp
SRCS_MIN+=	DebugInfo/CodeView/GlobalTypeTableBuilder.cpp
SRCS_EXT+=	DebugInfo/CodeView/LazyRandomTypeCollection.cpp
SRCS_MIN+=	DebugInfo/CodeView/Line.cpp
SRCS_EXT+=	DebugInfo/CodeView/MergingTypeTableBuilder.cpp
SRCS_MIN+=	DebugInfo/CodeView/RecordName.cpp
SRCS_MIN+=	DebugInfo/CodeView/RecordSerialization.cpp
SRCS_MIN+=	DebugInfo/CodeView/SimpleTypeSerializer.cpp
SRCS_EXT+=	DebugInfo/CodeView/StringsAndChecksums.cpp
SRCS_MIN+=	DebugInfo/CodeView/SymbolDumper.cpp
SRCS_MIN+=	DebugInfo/CodeView/SymbolRecordMapping.cpp
SRCS_EXT+=	DebugInfo/CodeView/SymbolSerializer.cpp
SRCS_MIN+=	DebugInfo/CodeView/TypeDumpVisitor.cpp
SRCS_MIN+=	DebugInfo/CodeView/TypeHashing.cpp
SRCS_MIN+=	DebugInfo/CodeView/TypeIndex.cpp
SRCS_MIN+=	DebugInfo/CodeView/TypeIndexDiscovery.cpp
SRCS_EXT+=	DebugInfo/CodeView/TypeRecordHelpers.cpp
SRCS_MIN+=	DebugInfo/CodeView/TypeRecordMapping.cpp
SRCS_MIN+=	DebugInfo/CodeView/TypeStreamMerger.cpp
SRCS_MIN+=	DebugInfo/CodeView/TypeTableCollection.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFAcceleratorTable.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFAddressRange.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFCompileUnit.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFContext.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFDataExtractor.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFDebugAbbrev.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFDebugAddr.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFDebugArangeSet.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFDebugAranges.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFDebugFrame.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFDebugInfoEntry.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFDebugLine.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFDebugLoc.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFDebugMacro.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFDebugPubTable.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFDebugRangeList.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFDebugRnglists.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFDie.cpp
SRCS_MIN+=	DebugInfo/DWARF/DWARFExpression.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFFormValue.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFGdbIndex.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFListTable.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFTypeUnit.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFUnit.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFUnitIndex.cpp
SRCS_MIW+=	DebugInfo/DWARF/DWARFVerifier.cpp
SRCS_MIN+=	DebugInfo/MSF/MSFBuilder.cpp
SRCS_MIN+=	DebugInfo/MSF/MSFCommon.cpp
SRCS_EXT+=	DebugInfo/MSF/MSFError.cpp
SRCS_MIN+=	DebugInfo/MSF/MappedBlockStream.cpp
SRCS_EXT+=	DebugInfo/PDB/GenericError.cpp
SRCS_EXT+=	DebugInfo/PDB/IPDBSourceFile.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/DbiModuleDescriptor.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/DbiModuleList.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/DbiStream.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/DbiStreamBuilder.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/EnumTables.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/GSIStreamBuilder.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/GlobalsStream.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/Hash.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/HashTable.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/InfoStream.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/InfoStreamBuilder.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/InjectedSourceStream.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/ModuleDebugStream.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/NamedStreamMap.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/NativeCompilandSymbol.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/NativeEnumGlobals.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/NativeEnumModules.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/NativeEnumTypes.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/NativeExeSymbol.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/NativeRawSymbol.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/NativeSession.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/NativeSymbolEnumerator.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/NativeTypeArray.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/NativeTypeBuiltin.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/NativeTypeEnum.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/NativeTypeFunctionSig.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/NativeTypePointer.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/NativeTypeTypedef.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/NativeTypeUDT.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/NativeTypeVTShape.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/PDBFile.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/PDBFileBuilder.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/PDBStringTable.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/PDBStringTableBuilder.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/PublicsStream.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/RawError.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/SymbolCache.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/SymbolStream.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/TpiHashing.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/TpiStream.cpp
SRCS_EXT+=	DebugInfo/PDB/Native/TpiStreamBuilder.cpp
SRCS_EXT+=	DebugInfo/PDB/PDB.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBContext.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBExtras.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBInterfaceAnchors.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymDumper.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbol.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolAnnotation.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolBlock.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolCompiland.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolCompilandDetails.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolCompilandEnv.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolCustom.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolData.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolExe.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolFunc.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolFuncDebugEnd.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolFuncDebugStart.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolLabel.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolPublicSymbol.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolThunk.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolTypeArray.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolTypeBuiltin.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolTypeCustom.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolTypeDimension.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolTypeEnum.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolTypeFriend.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolTypeFunctionArg.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolTypeManaged.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolTypePointer.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolTypeTypedef.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolTypeUDT.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolTypeVTable.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolUnknown.cpp
SRCS_EXT+=	DebugInfo/PDB/PDBSymbolUsingNamespace.cpp
SRCS_EXT+=	DebugInfo/PDB/UDTLayout.cpp
SRCS_MIW+=	DebugInfo/Symbolize/DIPrinter.cpp
SRCS_MIW+=	DebugInfo/Symbolize/SymbolizableObjectFile.cpp
SRCS_MIW+=	DebugInfo/Symbolize/Symbolize.cpp
SRCS_MIW+=	Demangle/Demangle.cpp
SRCS_MIN+=	Demangle/ItaniumDemangle.cpp
SRCS_MIW+=	Demangle/MicrosoftDemangle.cpp
SRCS_MIW+=	Demangle/MicrosoftDemangleNodes.cpp
SRCS_XDB+=	ExecutionEngine/ExecutionEngine.cpp
SRCS_XDB+=	ExecutionEngine/ExecutionEngineBindings.cpp
SRCS_XDB+=	ExecutionEngine/GDBRegistrationListener.cpp
SRCS_XDB+=	ExecutionEngine/Interpreter/Execution.cpp
SRCS_XDB+=	ExecutionEngine/Interpreter/ExternalFunctions.cpp
SRCS_XDB+=	ExecutionEngine/Interpreter/Interpreter.cpp
SRCS_EXT+=	ExecutionEngine/JITLink/EHFrameSupport.cpp
SRCS_EXT+=	ExecutionEngine/JITLink/JITLink.cpp
SRCS_EXT+=	ExecutionEngine/JITLink/JITLinkGeneric.cpp
SRCS_EXT+=	ExecutionEngine/JITLink/JITLinkMemoryManager.cpp
SRCS_EXT+=	ExecutionEngine/JITLink/MachO.cpp
SRCS_EXT+=	ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp
SRCS_EXT+=	ExecutionEngine/JITLink/MachO_arm64.cpp
SRCS_EXT+=	ExecutionEngine/JITLink/MachO_x86_64.cpp
SRCS_XDB+=	ExecutionEngine/MCJIT/MCJIT.cpp
SRCS_EXT+=	ExecutionEngine/Orc/CompileOnDemandLayer.cpp
SRCS_EXT+=	ExecutionEngine/Orc/CompileUtils.cpp
SRCS_EXT+=	ExecutionEngine/Orc/Core.cpp
SRCS_EXT+=	ExecutionEngine/Orc/ExecutionUtils.cpp
SRCS_EXT+=	ExecutionEngine/Orc/IRCompileLayer.cpp
SRCS_EXT+=	ExecutionEngine/Orc/IRTransformLayer.cpp
SRCS_EXT+=	ExecutionEngine/Orc/IndirectionUtils.cpp
SRCS_EXT+=	ExecutionEngine/Orc/JITTargetMachineBuilder.cpp
SRCS_EXT+=	ExecutionEngine/Orc/LLJIT.cpp
SRCS_EXT+=	ExecutionEngine/Orc/Layer.cpp
SRCS_EXT+=	ExecutionEngine/Orc/LazyReexports.cpp
SRCS_EXT+=	ExecutionEngine/Orc/Legacy.cpp
SRCS_EXT+=	ExecutionEngine/Orc/NullResolver.cpp
SRCS_EXT+=	ExecutionEngine/Orc/ObjectLinkingLayer.cpp
SRCS_EXT+=	ExecutionEngine/Orc/ObjectTransformLayer.cpp
SRCS_EXT+=	ExecutionEngine/Orc/OrcABISupport.cpp
SRCS_EXT+=	ExecutionEngine/Orc/OrcCBindings.cpp
SRCS_EXT+=	ExecutionEngine/Orc/OrcMCJITReplacement.cpp
SRCS_EXT+=	ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
SRCS_EXT+=	ExecutionEngine/Orc/Speculation.cpp
SRCS_EXT+=	ExecutionEngine/Orc/ThreadSafeModule.cpp
SRCS_EXT+=	ExecutionEngine/OrcError/OrcError.cpp
SRCS_EXT+=	ExecutionEngine/OrcError/RPCError.cpp
SRCS_XDB+=	ExecutionEngine/RuntimeDyld/JITSymbol.cpp
SRCS_XDB+=	ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp
SRCS_XDB+=	ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
SRCS_XDB+=	ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp
SRCS_XDB+=	ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
SRCS_XDB+=	ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
SRCS_XDB+=	ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
SRCS_XDB+=	ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.cpp
SRCS_XDB+=	ExecutionEngine/SectionMemoryManager.cpp
SRCS_XDB+=	ExecutionEngine/TargetSelect.cpp
SRCS_MIN+=	Frontend/OpenMP/OMPConstants.cpp
SRCS_MIN+=	Frontend/OpenMP/OMPIRBuilder.cpp
SRCS_MIN+=	IR/AbstractCallSite.cpp
SRCS_MIN+=	IR/AsmWriter.cpp
SRCS_MIN+=	IR/Attributes.cpp
SRCS_MIN+=	IR/AutoUpgrade.cpp
SRCS_MIN+=	IR/BasicBlock.cpp
SRCS_MIN+=	IR/Comdat.cpp
SRCS_MIN+=	IR/ConstantFold.cpp
SRCS_MIN+=	IR/ConstantRange.cpp
SRCS_MIN+=	IR/Constants.cpp
SRCS_MIN+=	IR/Core.cpp
SRCS_MIN+=	IR/DIBuilder.cpp
SRCS_MIN+=	IR/DataLayout.cpp
SRCS_MIN+=	IR/DebugInfo.cpp
SRCS_MIN+=	IR/DebugInfoMetadata.cpp
SRCS_MIN+=	IR/DebugLoc.cpp
SRCS_MIN+=	IR/DiagnosticHandler.cpp
SRCS_MIN+=	IR/DiagnosticInfo.cpp
SRCS_MIN+=	IR/DiagnosticPrinter.cpp
SRCS_MIN+=	IR/Dominators.cpp
SRCS_MIN+=	IR/FPEnv.cpp
SRCS_MIN+=	IR/Function.cpp
SRCS_MIN+=	IR/GVMaterializer.cpp
SRCS_MIN+=	IR/Globals.cpp
SRCS_MIN+=	IR/IRBuilder.cpp
SRCS_MIN+=	IR/IRPrintingPasses.cpp
SRCS_MIN+=	IR/InlineAsm.cpp
SRCS_MIN+=	IR/Instruction.cpp
SRCS_MIN+=	IR/Instructions.cpp
SRCS_MIN+=	IR/IntrinsicInst.cpp
SRCS_MIN+=	IR/LLVMContext.cpp
SRCS_MIN+=	IR/LLVMContextImpl.cpp
SRCS_MIN+=	IR/LegacyPassManager.cpp
SRCS_MIN+=	IR/MDBuilder.cpp
SRCS_MIN+=	IR/Mangler.cpp
SRCS_MIN+=	IR/Metadata.cpp
SRCS_MIN+=	IR/Module.cpp
SRCS_MIN+=	IR/ModuleSummaryIndex.cpp
SRCS_MIN+=	IR/Operator.cpp
SRCS_MIN+=	IR/OptBisect.cpp
SRCS_MIN+=	IR/Pass.cpp
SRCS_MIN+=	IR/PassInstrumentation.cpp
SRCS_MIN+=	IR/PassManager.cpp
SRCS_MIN+=	IR/PassRegistry.cpp
SRCS_MIN+=	IR/PassTimingInfo.cpp
SRCS_MIN+=	IR/ProfileSummary.cpp
SRCS_MIN+=	IR/RemarkStreamer.cpp
SRCS_MIN+=	IR/SafepointIRVerifier.cpp
SRCS_MIN+=	IR/Statepoint.cpp
SRCS_MIN+=	IR/Type.cpp
SRCS_MIN+=	IR/TypeFinder.cpp
SRCS_MIN+=	IR/Use.cpp
SRCS_MIN+=	IR/User.cpp
SRCS_MIN+=	IR/Value.cpp
SRCS_MIN+=	IR/ValueSymbolTable.cpp
SRCS_MIN+=	IR/Verifier.cpp
SRCS_MIN+=	IRReader/IRReader.cpp
SRCS_EXL+=	LTO/Caching.cpp
SRCS_MIN+=	LTO/LTO.cpp
SRCS_MIN+=	LTO/LTOBackend.cpp
SRCS_EXL+=	LTO/LTOCodeGenerator.cpp
SRCS_EXL+=	LTO/LTOModule.cpp
SRCS_EXL+=	LTO/SummaryBasedOptimizations.cpp
SRCS_EXL+=	LTO/ThinLTOCodeGenerator.cpp
SRCS_MIN+=	LTO/UpdateCompilerUsed.cpp
SRCS_MIN+=	LineEditor/LineEditor.cpp
SRCS_MIN+=	Linker/IRMover.cpp
SRCS_MIN+=	Linker/LinkModules.cpp
SRCS_MIN+=	MC/ConstantPools.cpp
SRCS_MIN+=	MC/ELFObjectWriter.cpp
SRCS_MIN+=	MC/MCAsmBackend.cpp
SRCS_MIN+=	MC/MCAsmInfo.cpp
SRCS_MIN+=	MC/MCAsmInfoCOFF.cpp
SRCS_MIN+=	MC/MCAsmInfoDarwin.cpp
SRCS_MIN+=	MC/MCAsmInfoELF.cpp
SRCS_MIN+=	MC/MCAsmInfoXCOFF.cpp
SRCS_MIN+=	MC/MCAsmMacro.cpp
SRCS_MIN+=	MC/MCAsmStreamer.cpp
SRCS_MIN+=	MC/MCAssembler.cpp
SRCS_MIN+=	MC/MCCodeEmitter.cpp
SRCS_MIN+=	MC/MCCodeView.cpp
SRCS_MIN+=	MC/MCContext.cpp
SRCS_XDL+=	MC/MCDisassembler/Disassembler.cpp
SRCS_XDW+=	MC/MCDisassembler/MCDisassembler.cpp
SRCS_XDW+=	MC/MCDisassembler/MCExternalSymbolizer.cpp
SRCS_MIN+=	MC/MCDisassembler/MCRelocationInfo.cpp
SRCS_XDW+=	MC/MCDisassembler/MCSymbolizer.cpp
SRCS_MIN+=	MC/MCDwarf.cpp
SRCS_MIN+=	MC/MCELFObjectTargetWriter.cpp
SRCS_MIN+=	MC/MCELFStreamer.cpp
SRCS_MIN+=	MC/MCExpr.cpp
SRCS_MIN+=	MC/MCFragment.cpp
SRCS_MIN+=	MC/MCInst.cpp
SRCS_MIN+=	MC/MCInstPrinter.cpp
SRCS_MIN+=	MC/MCInstrAnalysis.cpp
SRCS_MIN+=	MC/MCInstrDesc.cpp
SRCS_MIN+=	MC/MCLinkerOptimizationHint.cpp
SRCS_MIN+=	MC/MCMachOStreamer.cpp
SRCS_MIN+=	MC/MCMachObjectTargetWriter.cpp
SRCS_MIN+=	MC/MCNullStreamer.cpp
SRCS_MIN+=	MC/MCObjectFileInfo.cpp
SRCS_MIN+=	MC/MCObjectStreamer.cpp
SRCS_MIN+=	MC/MCObjectWriter.cpp
SRCS_MIN+=	MC/MCParser/AsmLexer.cpp
SRCS_MIN+=	MC/MCParser/AsmParser.cpp
SRCS_MIN+=	MC/MCParser/COFFAsmParser.cpp
SRCS_MIN+=	MC/MCParser/DarwinAsmParser.cpp
SRCS_MIN+=	MC/MCParser/ELFAsmParser.cpp
SRCS_MIN+=	MC/MCParser/MCAsmLexer.cpp
SRCS_MIN+=	MC/MCParser/MCAsmParser.cpp
SRCS_MIN+=	MC/MCParser/MCAsmParserExtension.cpp
SRCS_MIN+=	MC/MCParser/MCTargetAsmParser.cpp
SRCS_MIN+=	MC/MCParser/WasmAsmParser.cpp
SRCS_MIN+=	MC/MCRegisterInfo.cpp
SRCS_MIN+=	MC/MCSchedule.cpp
SRCS_MIN+=	MC/MCSection.cpp
SRCS_MIN+=	MC/MCSectionCOFF.cpp
SRCS_MIN+=	MC/MCSectionELF.cpp
SRCS_MIN+=	MC/MCSectionMachO.cpp
SRCS_MIN+=	MC/MCSectionWasm.cpp
SRCS_MIN+=	MC/MCSectionXCOFF.cpp
SRCS_MIN+=	MC/MCStreamer.cpp
SRCS_MIN+=	MC/MCSubtargetInfo.cpp
SRCS_MIN+=	MC/MCSymbol.cpp
SRCS_MIN+=	MC/MCSymbolELF.cpp
SRCS_MIN+=	MC/MCTargetOptions.cpp
SRCS_MIN+=	MC/MCValue.cpp
SRCS_MIN+=	MC/MCWasmStreamer.cpp
SRCS_MIN+=	MC/MCWin64EH.cpp
SRCS_MIN+=	MC/MCWinCOFFStreamer.cpp
SRCS_MIN+=	MC/MCWinEH.cpp
SRCS_MIN+=	MC/MCXCOFFStreamer.cpp
SRCS_MIN+=	MC/MCXCOFFObjectTargetWriter.cpp
SRCS_MIN+=	MC/MachObjectWriter.cpp
SRCS_MIN+=	MC/StringTableBuilder.cpp
SRCS_MIN+=	MC/SubtargetFeature.cpp
SRCS_MIN+=	MC/WasmObjectWriter.cpp
SRCS_MIN+=	MC/WinCOFFObjectWriter.cpp
SRCS_MIN+=	MC/XCOFFObjectWriter.cpp
SRCS_EXT+=	MCA/CodeEmitter.cpp
SRCS_EXT+=	MCA/Context.cpp
SRCS_EXT+=	MCA/HWEventListener.cpp
SRCS_EXT+=	MCA/HardwareUnits/HardwareUnit.cpp
SRCS_EXT+=	MCA/HardwareUnits/LSUnit.cpp
SRCS_EXT+=	MCA/HardwareUnits/RegisterFile.cpp
SRCS_EXT+=	MCA/HardwareUnits/ResourceManager.cpp
SRCS_EXT+=	MCA/HardwareUnits/RetireControlUnit.cpp
SRCS_EXT+=	MCA/HardwareUnits/Scheduler.cpp
SRCS_EXT+=	MCA/InstrBuilder.cpp
SRCS_EXT+=	MCA/Instruction.cpp
SRCS_EXT+=	MCA/Pipeline.cpp
SRCS_EXT+=	MCA/Stages/DispatchStage.cpp
SRCS_EXT+=	MCA/Stages/EntryStage.cpp
SRCS_EXT+=	MCA/Stages/ExecuteStage.cpp
SRCS_EXT+=	MCA/Stages/InstructionTables.cpp
SRCS_EXT+=	MCA/Stages/MicroOpQueueStage.cpp
SRCS_EXT+=	MCA/Stages/RetireStage.cpp
SRCS_EXT+=	MCA/Stages/Stage.cpp
SRCS_EXT+=	MCA/Support.cpp
SRCS_MIN+=	Object/Archive.cpp
SRCS_MIN+=	Object/ArchiveWriter.cpp
SRCS_MIN+=	Object/Binary.cpp
SRCS_MIN+=	Object/COFFImportFile.cpp
SRCS_MIW+=	Object/COFFModuleDefinition.cpp
SRCS_MIN+=	Object/COFFObjectFile.cpp
SRCS_MIN+=	Object/Decompressor.cpp
SRCS_MIN+=	Object/ELF.cpp
SRCS_MIN+=	Object/ELFObjectFile.cpp
SRCS_MIN+=	Object/Error.cpp
SRCS_MIN+=	Object/IRObjectFile.cpp
SRCS_MIN+=	Object/IRSymtab.cpp
SRCS_MIN+=	Object/MachOObjectFile.cpp
SRCS_MIW+=	Object/MachOUniversal.cpp
SRCS_MIW+=	Object/Minidump.cpp
SRCS_MIN+=	Object/ModuleSymbolTable.cpp
SRCS_EXT+=	Object/Object.cpp
SRCS_MIN+=	Object/ObjectFile.cpp
SRCS_MIN+=	Object/RecordStreamer.cpp
SRCS_MIW+=	Object/RelocationResolver.cpp
SRCS_MIW+=	Object/SymbolSize.cpp
SRCS_MIN+=	Object/SymbolicFile.cpp
SRCS_MIW+=	Object/TapiUniversal.cpp
SRCS_MIN+=	Object/WasmObjectFile.cpp
SRCS_MIW+=	Object/WindowsMachineFlag.cpp
SRCS_MIN+=	Object/WindowsResource.cpp
SRCS_MIN+=	Object/XCOFFObjectFile.cpp
SRCS_MIN+=	ObjectYAML/COFFYAML.cpp
SRCS_EXT+=	ObjectYAML/CodeViewYAMLDebugSections.cpp
SRCS_EXT+=	ObjectYAML/CodeViewYAMLSymbols.cpp
SRCS_EXT+=	ObjectYAML/CodeViewYAMLTypes.cpp
SRCS_MIN+=	ObjectYAML/DWARFYAML.cpp
SRCS_MIN+=	ObjectYAML/ELFYAML.cpp
SRCS_MIN+=	ObjectYAML/MachOYAML.cpp
SRCS_EXT+=	ObjectYAML/YAML.cpp
SRCS_MIN+=	Option/Arg.cpp
SRCS_MIN+=	Option/ArgList.cpp
SRCS_MIN+=	Option/OptTable.cpp
SRCS_MIN+=	Option/Option.cpp
SRCS_MIN+=	Passes/PassBuilder.cpp
SRCS_MIN+=	Passes/PassPlugin.cpp
SRCS_MIN+=	Passes/StandardInstrumentations.cpp
SRCS_MIN+=	ProfileData/Coverage/CoverageMapping.cpp
SRCS_MIN+=	ProfileData/Coverage/CoverageMappingReader.cpp
SRCS_MIN+=	ProfileData/Coverage/CoverageMappingWriter.cpp
SRCS_MIN+=	ProfileData/GCOV.cpp
SRCS_MIN+=	ProfileData/InstrProf.cpp
SRCS_MIN+=	ProfileData/InstrProfReader.cpp
SRCS_MIN+=	ProfileData/InstrProfWriter.cpp
SRCS_MIN+=	ProfileData/ProfileSummaryBuilder.cpp
SRCS_MIN+=	ProfileData/SampleProf.cpp
SRCS_MIN+=	ProfileData/SampleProfReader.cpp
SRCS_MIN+=	ProfileData/SampleProfWriter.cpp
SRCS_MIN+=	Remarks/BitstreamRemarkSerializer.cpp
SRCS_MIN+=	Remarks/RemarkFormat.cpp
SRCS_MIN+=	Remarks/RemarkSerializer.cpp
SRCS_MIN+=	Remarks/RemarkStringTable.cpp
SRCS_MIN+=	Remarks/YAMLRemarkSerializer.cpp
SRCS_MIN+=	Support/AArch64TargetParser.cpp
SRCS_MIN+=	Support/ABIBreak.cpp
SRCS_MIN+=	Support/APFloat.cpp
SRCS_MIN+=	Support/APInt.cpp
SRCS_MIN+=	Support/APSInt.cpp
SRCS_MIN+=	Support/ARMAttributeParser.cpp
SRCS_MIN+=	Support/ARMBuildAttrs.cpp
SRCS_MIN+=	Support/ARMTargetParser.cpp
SRCS_MIN+=	Support/Allocator.cpp
SRCS_MIN+=	Support/BinaryStreamError.cpp
SRCS_MIN+=	Support/BinaryStreamReader.cpp
SRCS_MIN+=	Support/BinaryStreamRef.cpp
SRCS_MIN+=	Support/BinaryStreamWriter.cpp
SRCS_MIN+=	Support/BlockFrequency.cpp
SRCS_MIN+=	Support/BranchProbability.cpp
SRCS_MIN+=	Support/BuryPointer.cpp
SRCS_MIN+=	Support/CachePruning.cpp
SRCS_MIW+=	Support/COM.cpp
SRCS_MIN+=	Support/CRC.cpp
SRCS_MIN+=	Support/Chrono.cpp
SRCS_MIN+=	Support/CodeGenCoverage.cpp
SRCS_MIN+=	Support/CommandLine.cpp
SRCS_MIN+=	Support/Compression.cpp
SRCS_MIN+=	Support/ConvertUTF.cpp
SRCS_MIN+=	Support/ConvertUTFWrapper.cpp
SRCS_MIN+=	Support/CrashRecoveryContext.cpp
SRCS_MIN+=	Support/DAGDeltaAlgorithm.cpp
SRCS_MIN+=	Support/DJB.cpp
SRCS_MIN+=	Support/DataExtractor.cpp
SRCS_MIN+=	Support/Debug.cpp
SRCS_MIN+=	Support/DebugCounter.cpp
SRCS_MIN+=	Support/DeltaAlgorithm.cpp
SRCS_MIN+=	Support/DynamicLibrary.cpp
SRCS_MIN+=	Support/Errno.cpp
SRCS_MIN+=	Support/Error.cpp
SRCS_MIN+=	Support/ErrorHandling.cpp
SRCS_XDB+=	Support/FileCollector.cpp
SRCS_EXL+=	Support/FileOutputBuffer.cpp
SRCS_MIN+=	Support/FileUtilities.cpp
SRCS_MIN+=	Support/FoldingSet.cpp
SRCS_MIN+=	Support/FormatVariadic.cpp
SRCS_MIN+=	Support/FormattedStream.cpp
SRCS_MIN+=	Support/GlobPattern.cpp
SRCS_MIN+=	Support/GraphWriter.cpp
SRCS_MIN+=	Support/Hashing.cpp
SRCS_MIN+=	Support/Host.cpp
SRCS_MIN+=	Support/InitLLVM.cpp
SRCS_MIN+=	Support/IntEqClasses.cpp
SRCS_MIN+=	Support/IntervalMap.cpp
SRCS_MIN+=	Support/ItaniumManglingCanonicalizer.cpp
SRCS_MIN+=	Support/JSON.cpp
SRCS_MIN+=	Support/KnownBits.cpp
SRCS_MIN+=	Support/LEB128.cpp
SRCS_MIN+=	Support/LineIterator.cpp
SRCS_MIN+=	Support/Locale.cpp
SRCS_MIN+=	Support/LockFileManager.cpp
SRCS_MIN+=	Support/LowLevelType.cpp
SRCS_MIN+=	Support/MD5.cpp
SRCS_MIN+=	Support/ManagedStatic.cpp
SRCS_MIN+=	Support/MathExtras.cpp
SRCS_XDL+=	Support/Memory.cpp
SRCS_MIN+=	Support/MemoryBuffer.cpp
SRCS_MIN+=	Support/NativeFormatting.cpp
SRCS_MIN+=	Support/Optional.cpp
SRCS_LLD+=	Support/Parallel.cpp
SRCS_MIN+=	Support/Path.cpp
SRCS_MIN+=	Support/PluginLoader.cpp
SRCS_MIN+=	Support/PrettyStackTrace.cpp
SRCS_MIN+=	Support/Process.cpp
SRCS_MIN+=	Support/Program.cpp
SRCS_MIN+=	Support/RWMutex.cpp
SRCS_MIN+=	Support/RandomNumberGenerator.cpp
SRCS_MIN+=	Support/Regex.cpp
SRCS_MIN+=	Support/SHA1.cpp
SRCS_MIN+=	Support/ScaledNumber.cpp
SRCS_MIN+=	Support/ScopedPrinter.cpp
SRCS_MIN+=	Support/Signals.cpp
SRCS_MIN+=	Support/Signposts.cpp
SRCS_MIN+=	Support/SmallPtrSet.cpp
SRCS_MIN+=	Support/SmallVector.cpp
SRCS_MIN+=	Support/SourceMgr.cpp
SRCS_MIN+=	Support/SpecialCaseList.cpp
SRCS_MIN+=	Support/Statistic.cpp
SRCS_MIN+=	Support/StringExtras.cpp
SRCS_MIN+=	Support/StringMap.cpp
SRCS_MIN+=	Support/StringRef.cpp
SRCS_MIN+=	Support/StringSaver.cpp
SRCS_MIN+=	Support/SymbolRemappingReader.cpp
SRCS_EXT+=	Support/SystemUtils.cpp
SRCS_LLD+=	Support/TarWriter.cpp
SRCS_MIN+=	Support/TargetParser.cpp
SRCS_MIN+=	Support/TargetRegistry.cpp
SRCS_MIN+=	Support/ThreadLocal.cpp
SRCS_MIW+=	Support/ThreadPool.cpp
SRCS_MIN+=	Support/Threading.cpp
SRCS_MIN+=	Support/TimeProfiler.cpp
SRCS_MIN+=	Support/Timer.cpp
SRCS_MIN+=	Support/ToolOutputFile.cpp
SRCS_MIN+=	Support/TrigramIndex.cpp
SRCS_MIN+=	Support/Triple.cpp
SRCS_MIN+=	Support/Twine.cpp
SRCS_MIN+=	Support/Unicode.cpp
SRCS_MIN+=	Support/UnicodeCaseFold.cpp
SRCS_MIN+=	Support/Valgrind.cpp
SRCS_MIN+=	Support/VirtualFileSystem.cpp
SRCS_MIN+=	Support/VersionTuple.cpp
SRCS_MIN+=	Support/Watchdog.cpp
SRCS_MIN+=	Support/WithColor.cpp
SRCS_MIN+=	Support/YAMLParser.cpp
SRCS_MIN+=	Support/YAMLTraits.cpp
SRCS_FUL+=	Support/Z3Solver.cpp
SRCS_MIN+=	Support/circular_raw_ostream.cpp
SRCS_MIN+=	Support/raw_os_ostream.cpp
SRCS_MIN+=	Support/raw_ostream.cpp
SRCS_MIN+=	Support/regcomp.c
SRCS_MIN+=	Support/regerror.c
SRCS_MIN+=	Support/regexec.c
SRCS_MIN+=	Support/regfree.c
SRCS_MIN+=	Support/regstrlcpy.c
SRCS_MIN+=	Support/xxhash.cpp
SRCS_MIN+=	TableGen/Error.cpp
SRCS_MIN+=	TableGen/JSONBackend.cpp
SRCS_MIN+=	TableGen/Main.cpp
SRCS_MIN+=	TableGen/Record.cpp
SRCS_MIN+=	TableGen/SetTheory.cpp
SRCS_MIN+=	TableGen/StringMatcher.cpp
SRCS_MIN+=	TableGen/TGLexer.cpp
SRCS_MIN+=	TableGen/TGParser.cpp
SRCS_MIN+=	TableGen/TableGenBackend.cpp
.if ${MK_LLVM_TARGET_AARCH64} != "no"
SRCS_MIN+=	Target/AArch64/AArch64A53Fix835769.cpp
SRCS_MIN+=	Target/AArch64/AArch64A57FPLoadBalancing.cpp
SRCS_MIN+=	Target/AArch64/AArch64AdvSIMDScalarPass.cpp
SRCS_MIN+=	Target/AArch64/AArch64AsmPrinter.cpp
SRCS_MIN+=	Target/AArch64/AArch64BranchTargets.cpp
SRCS_MIN+=	Target/AArch64/AArch64CallLowering.cpp
SRCS_MIN+=	Target/AArch64/AArch64CallingConvention.cpp
SRCS_MIN+=	Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp
SRCS_MIN+=	Target/AArch64/AArch64CollectLOH.cpp
SRCS_MIN+=	Target/AArch64/AArch64CompressJumpTables.cpp
SRCS_MIN+=	Target/AArch64/AArch64CondBrTuning.cpp
SRCS_MIN+=	Target/AArch64/AArch64ConditionOptimizer.cpp
SRCS_MIN+=	Target/AArch64/AArch64ConditionalCompares.cpp
SRCS_MIN+=	Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp
SRCS_MIN+=	Target/AArch64/AArch64ExpandImm.cpp
SRCS_MIN+=	Target/AArch64/AArch64ExpandPseudoInsts.cpp
SRCS_MIN+=	Target/AArch64/AArch64FalkorHWPFFix.cpp
SRCS_MIN+=	Target/AArch64/AArch64FastISel.cpp
SRCS_MIN+=	Target/AArch64/AArch64FrameLowering.cpp
SRCS_MIN+=	Target/AArch64/AArch64ISelDAGToDAG.cpp
SRCS_MIN+=	Target/AArch64/AArch64ISelLowering.cpp
SRCS_MIN+=	Target/AArch64/AArch64InstrInfo.cpp
SRCS_MIN+=	Target/AArch64/AArch64InstructionSelector.cpp
SRCS_MIN+=	Target/AArch64/AArch64LegalizerInfo.cpp
SRCS_MIN+=	Target/AArch64/AArch64LoadStoreOptimizer.cpp
SRCS_MIN+=	Target/AArch64/AArch64MCInstLower.cpp
SRCS_MIN+=	Target/AArch64/AArch64MacroFusion.cpp
SRCS_MIN+=	Target/AArch64/AArch64PBQPRegAlloc.cpp
SRCS_MIN+=	Target/AArch64/AArch64PreLegalizerCombiner.cpp
SRCS_MIN+=	Target/AArch64/AArch64PromoteConstant.cpp
SRCS_MIN+=	Target/AArch64/AArch64RedundantCopyElimination.cpp
SRCS_MIN+=	Target/AArch64/AArch64RegisterBankInfo.cpp
SRCS_MIN+=	Target/AArch64/AArch64RegisterInfo.cpp
SRCS_MIN+=	Target/AArch64/AArch64SIMDInstrOpt.cpp
SRCS_MIN+=	Target/AArch64/AArch64SelectionDAGInfo.cpp
SRCS_MIN+=	Target/AArch64/AArch64SpeculationHardening.cpp
SRCS_MIN+=	Target/AArch64/AArch64StackTagging.cpp
SRCS_MIN+=	Target/AArch64/AArch64StackTaggingPreRA.cpp
SRCS_MIN+=	Target/AArch64/AArch64StorePairSuppress.cpp
SRCS_MIN+=	Target/AArch64/AArch64Subtarget.cpp
SRCS_MIN+=	Target/AArch64/AArch64TargetMachine.cpp
SRCS_MIN+=	Target/AArch64/AArch64TargetObjectFile.cpp
SRCS_MIN+=	Target/AArch64/AArch64TargetTransformInfo.cpp
SRCS_MIN+=	Target/AArch64/AsmParser/AArch64AsmParser.cpp
SRCS_XDW+=	Target/AArch64/Disassembler/AArch64Disassembler.cpp
SRCS_XDW+=	Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp
SRCS_MIN+=	Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
SRCS_MIN+=	Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
SRCS_MIN+=	Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
SRCS_MIN+=	Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
SRCS_MIN+=	Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
SRCS_MIN+=	Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp
SRCS_MIN+=	Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
SRCS_MIN+=	Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
SRCS_MIN+=	Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
SRCS_MIN+=	Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
SRCS_MIN+=	Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
SRCS_MIN+=	Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp
SRCS_MIN+=	Target/AArch64/TargetInfo/AArch64TargetInfo.cpp
SRCS_MIN+=	Target/AArch64/Utils/AArch64BaseInfo.cpp
.endif # MK_LLVM_TARGET_AARCH64
.if ${MK_LLVM_TARGET_ARM} != "no"
SRCS_MIN+=	Target/ARM/A15SDOptimizer.cpp
SRCS_MIN+=	Target/ARM/ARMAsmPrinter.cpp
SRCS_MIN+=	Target/ARM/ARMBaseInstrInfo.cpp
SRCS_MIN+=	Target/ARM/ARMBaseRegisterInfo.cpp
SRCS_MIN+=	Target/ARM/ARMBasicBlockInfo.cpp
SRCS_MIN+=	Target/ARM/ARMCallLowering.cpp
SRCS_MIN+=	Target/ARM/ARMCallingConv.cpp
SRCS_MIN+=	Target/ARM/ARMConstantIslandPass.cpp
SRCS_MIN+=	Target/ARM/ARMConstantPoolValue.cpp
SRCS_MIN+=	Target/ARM/ARMExpandPseudoInsts.cpp
SRCS_MIN+=	Target/ARM/ARMFastISel.cpp
SRCS_MIN+=	Target/ARM/ARMFrameLowering.cpp
SRCS_MIN+=	Target/ARM/ARMHazardRecognizer.cpp
SRCS_MIN+=	Target/ARM/ARMISelDAGToDAG.cpp
SRCS_MIN+=	Target/ARM/ARMISelLowering.cpp
SRCS_MIN+=	Target/ARM/ARMInstrInfo.cpp
SRCS_MIN+=	Target/ARM/ARMInstructionSelector.cpp
SRCS_MIN+=	Target/ARM/ARMLegalizerInfo.cpp
SRCS_MIN+=	Target/ARM/ARMLoadStoreOptimizer.cpp
SRCS_MIN+=	Target/ARM/ARMLowOverheadLoops.cpp
SRCS_MIN+=	Target/ARM/ARMMCInstLower.cpp
SRCS_MIN+=	Target/ARM/ARMMachineFunctionInfo.cpp
SRCS_MIN+=	Target/ARM/ARMMacroFusion.cpp
SRCS_MIN+=	Target/ARM/ARMOptimizeBarriersPass.cpp
SRCS_MIN+=	Target/ARM/ARMParallelDSP.cpp
SRCS_MIN+=	Target/ARM/ARMRegisterBankInfo.cpp
SRCS_MIN+=	Target/ARM/ARMRegisterInfo.cpp
SRCS_MIN+=	Target/ARM/ARMSelectionDAGInfo.cpp
SRCS_MIN+=	Target/ARM/ARMSubtarget.cpp
SRCS_MIN+=	Target/ARM/ARMTargetMachine.cpp
SRCS_MIN+=	Target/ARM/ARMTargetObjectFile.cpp
SRCS_MIN+=	Target/ARM/ARMTargetTransformInfo.cpp
SRCS_MIN+=	Target/ARM/AsmParser/ARMAsmParser.cpp
SRCS_MIN+=	Target/ARM/Disassembler/ARMDisassembler.cpp
SRCS_MIN+=	Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
SRCS_MIN+=	Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
SRCS_MIN+=	Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
SRCS_MIN+=	Target/ARM/MCTargetDesc/ARMInstPrinter.cpp
SRCS_MIN+=	Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
SRCS_MIN+=	Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp
SRCS_MIN+=	Target/ARM/MCTargetDesc/ARMMCExpr.cpp
SRCS_MIN+=	Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
SRCS_MIN+=	Target/ARM/MCTargetDesc/ARMMachORelocationInfo.cpp
SRCS_MIN+=	Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
SRCS_MIN+=	Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp
SRCS_MIN+=	Target/ARM/MCTargetDesc/ARMUnwindOpAsm.cpp
SRCS_MIN+=	Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp
SRCS_MIN+=	Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp
SRCS_MIN+=	Target/ARM/MLxExpansionPass.cpp
SRCS_MIN+=	Target/ARM/MVEGatherScatterLowering.cpp
SRCS_MIN+=	Target/ARM/MVETailPredication.cpp
SRCS_MIN+=	Target/ARM/MVEVPTBlockPass.cpp
SRCS_MIN+=	Target/ARM/TargetInfo/ARMTargetInfo.cpp
SRCS_MIN+=	Target/ARM/Thumb1FrameLowering.cpp
SRCS_MIN+=	Target/ARM/Thumb1InstrInfo.cpp
SRCS_MIN+=	Target/ARM/Thumb2ITBlockPass.cpp
SRCS_MIN+=	Target/ARM/Thumb2InstrInfo.cpp
SRCS_MIN+=	Target/ARM/Thumb2SizeReduction.cpp
SRCS_MIN+=	Target/ARM/ThumbRegisterInfo.cpp
SRCS_MIN+=	Target/ARM/Utils/ARMBaseInfo.cpp
.endif # MK_LLVM_TARGET_ARM
.if ${MK_LLVM_TARGET_BPF} != "no"
SRCS_MIN+=	Target/BPF/AsmParser/BPFAsmParser.cpp
SRCS_MIN+=	Target/BPF/BPFAbstractMemberAccess.cpp
SRCS_MIN+=	Target/BPF/BPFAsmPrinter.cpp
SRCS_MIN+=	Target/BPF/BPFFrameLowering.cpp
SRCS_MIN+=	Target/BPF/BPFISelDAGToDAG.cpp
SRCS_MIN+=	Target/BPF/BPFISelLowering.cpp
SRCS_MIN+=	Target/BPF/BPFInstrInfo.cpp
SRCS_MIN+=	Target/BPF/BPFMCInstLower.cpp
SRCS_MIN+=	Target/BPF/BPFMIChecking.cpp
SRCS_MIN+=	Target/BPF/BPFMIPeephole.cpp
SRCS_MIN+=	Target/BPF/BPFMISimplifyPatchable.cpp
SRCS_MIN+=	Target/BPF/BPFRegisterInfo.cpp
SRCS_MIN+=	Target/BPF/BPFSelectionDAGInfo.cpp
SRCS_MIN+=	Target/BPF/BPFSubtarget.cpp
SRCS_MIN+=	Target/BPF/BPFTargetMachine.cpp
SRCS_MIN+=	Target/BPF/BTFDebug.cpp
SRCS_MIN+=	Target/BPF/Disassembler/BPFDisassembler.cpp
SRCS_MIN+=	Target/BPF/MCTargetDesc/BPFAsmBackend.cpp
SRCS_MIN+=	Target/BPF/MCTargetDesc/BPFELFObjectWriter.cpp
SRCS_MIN+=	Target/BPF/MCTargetDesc/BPFInstPrinter.cpp
SRCS_MIN+=	Target/BPF/MCTargetDesc/BPFMCCodeEmitter.cpp
SRCS_MIN+=	Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp
SRCS_MIN+=	Target/BPF/TargetInfo/BPFTargetInfo.cpp
.endif # MK_LLVM_TARGET_BPF
.if ${MK_LLVM_TARGET_MIPS} != "no"
SRCS_MIN+=	Target/Mips/AsmParser/MipsAsmParser.cpp
SRCS_XDW+=	Target/Mips/Disassembler/MipsDisassembler.cpp
SRCS_MIN+=	Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp
SRCS_MIN+=	Target/Mips/MCTargetDesc/MipsABIInfo.cpp
SRCS_MIN+=	Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
SRCS_MIN+=	Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
SRCS_MIN+=	Target/Mips/MCTargetDesc/MipsELFStreamer.cpp
SRCS_MIN+=	Target/Mips/MCTargetDesc/MipsInstPrinter.cpp
SRCS_MIN+=	Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp
SRCS_MIN+=	Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
SRCS_MIN+=	Target/Mips/MCTargetDesc/MipsMCExpr.cpp
SRCS_MIN+=	Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp
SRCS_MIN+=	Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp
SRCS_MIN+=	Target/Mips/MCTargetDesc/MipsOptionRecord.cpp
SRCS_MIN+=	Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
SRCS_MIN+=	Target/Mips/MicroMipsSizeReduction.cpp
SRCS_MIN+=	Target/Mips/Mips16FrameLowering.cpp
SRCS_MIN+=	Target/Mips/Mips16HardFloat.cpp
SRCS_MIN+=	Target/Mips/Mips16HardFloatInfo.cpp
SRCS_MIN+=	Target/Mips/Mips16ISelDAGToDAG.cpp
SRCS_MIN+=	Target/Mips/Mips16ISelLowering.cpp
SRCS_MIN+=	Target/Mips/Mips16InstrInfo.cpp
SRCS_MIN+=	Target/Mips/Mips16RegisterInfo.cpp
SRCS_MIN+=	Target/Mips/MipsAnalyzeImmediate.cpp
SRCS_MIN+=	Target/Mips/MipsAsmPrinter.cpp
SRCS_MIN+=	Target/Mips/MipsBranchExpansion.cpp
SRCS_MIN+=	Target/Mips/MipsCCState.cpp
SRCS_MIN+=	Target/Mips/MipsCallLowering.cpp
SRCS_MIN+=	Target/Mips/MipsConstantIslandPass.cpp
SRCS_MIN+=	Target/Mips/MipsDelaySlotFiller.cpp
SRCS_MIN+=	Target/Mips/MipsExpandPseudo.cpp
SRCS_MIN+=	Target/Mips/MipsFastISel.cpp
SRCS_MIN+=	Target/Mips/MipsFrameLowering.cpp
SRCS_MIN+=	Target/Mips/MipsISelDAGToDAG.cpp
SRCS_MIN+=	Target/Mips/MipsISelLowering.cpp
SRCS_MIN+=	Target/Mips/MipsInstrInfo.cpp
SRCS_MIN+=	Target/Mips/MipsInstructionSelector.cpp
SRCS_MIN+=	Target/Mips/MipsLegalizerInfo.cpp
SRCS_MIN+=	Target/Mips/MipsMCInstLower.cpp
SRCS_MIN+=	Target/Mips/MipsMachineFunction.cpp
SRCS_MIN+=	Target/Mips/MipsModuleISelDAGToDAG.cpp
SRCS_MIN+=	Target/Mips/MipsOptimizePICCall.cpp
SRCS_MIN+=	Target/Mips/MipsOs16.cpp
SRCS_MIN+=	Target/Mips/MipsPreLegalizerCombiner.cpp
SRCS_MIN+=	Target/Mips/MipsRegisterBankInfo.cpp
SRCS_MIN+=	Target/Mips/MipsRegisterInfo.cpp
SRCS_MIN+=	Target/Mips/MipsSEFrameLowering.cpp
SRCS_MIN+=	Target/Mips/MipsSEISelDAGToDAG.cpp
SRCS_MIN+=	Target/Mips/MipsSEISelLowering.cpp
SRCS_MIN+=	Target/Mips/MipsSEInstrInfo.cpp
SRCS_MIN+=	Target/Mips/MipsSERegisterInfo.cpp
SRCS_MIN+=	Target/Mips/MipsSubtarget.cpp
SRCS_MIN+=	Target/Mips/MipsTargetMachine.cpp
SRCS_MIN+=	Target/Mips/MipsTargetObjectFile.cpp
SRCS_MIN+=	Target/Mips/TargetInfo/MipsTargetInfo.cpp
.endif # MK_LLVM_TARGET_MIPS
.if ${MK_LLVM_TARGET_POWERPC} != "no"
SRCS_MIN+=	Target/PowerPC/AsmParser/PPCAsmParser.cpp
SRCS_MIN+=	Target/PowerPC/Disassembler/PPCDisassembler.cpp
SRCS_MIN+=	Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
SRCS_MIN+=	Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
SRCS_MIN+=	Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp
SRCS_MIN+=	Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp
SRCS_MIN+=	Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp
SRCS_MIN+=	Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp
SRCS_MIN+=	Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
SRCS_MIN+=	Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp
SRCS_MIN+=	Target/PowerPC/MCTargetDesc/PPCPredicates.cpp
SRCS_MIN+=	Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpp
SRCS_MIN+=	Target/PowerPC/PPCAsmPrinter.cpp
SRCS_MIN+=	Target/PowerPC/PPCBoolRetToInt.cpp
SRCS_MIN+=	Target/PowerPC/PPCBranchCoalescing.cpp
SRCS_MIN+=	Target/PowerPC/PPCBranchSelector.cpp
SRCS_MIN+=	Target/PowerPC/PPCCCState.cpp
SRCS_MIN+=	Target/PowerPC/PPCCTRLoops.cpp
SRCS_MIN+=	Target/PowerPC/PPCCallingConv.cpp
SRCS_MIN+=	Target/PowerPC/PPCEarlyReturn.cpp
SRCS_MIN+=	Target/PowerPC/PPCExpandISEL.cpp
SRCS_MIN+=	Target/PowerPC/PPCFastISel.cpp
SRCS_MIN+=	Target/PowerPC/PPCFrameLowering.cpp
SRCS_MIN+=	Target/PowerPC/PPCHazardRecognizers.cpp
SRCS_MIN+=	Target/PowerPC/PPCISelDAGToDAG.cpp
SRCS_MIN+=	Target/PowerPC/PPCISelLowering.cpp
SRCS_MIN+=	Target/PowerPC/PPCInstrInfo.cpp
SRCS_MIN+=	Target/PowerPC/PPCLoopInstrFormPrep.cpp
SRCS_MIN+=	Target/PowerPC/PPCLowerMASSVEntries.cpp
SRCS_MIN+=	Target/PowerPC/PPCMCInstLower.cpp
SRCS_MIN+=	Target/PowerPC/PPCMIPeephole.cpp
SRCS_MIN+=	Target/PowerPC/PPCMachineFunctionInfo.cpp
SRCS_MIN+=	Target/PowerPC/PPCMachineScheduler.cpp
SRCS_MIN+=	Target/PowerPC/PPCPreEmitPeephole.cpp
SRCS_MIN+=	Target/PowerPC/PPCQPXLoadSplat.cpp
SRCS_MIN+=	Target/PowerPC/PPCReduceCRLogicals.cpp
SRCS_MIN+=	Target/PowerPC/PPCRegisterInfo.cpp
SRCS_MIN+=	Target/PowerPC/PPCSubtarget.cpp
SRCS_MIN+=	Target/PowerPC/PPCTLSDynamicCall.cpp
SRCS_MIN+=	Target/PowerPC/PPCTOCRegDeps.cpp
SRCS_MIN+=	Target/PowerPC/PPCTargetMachine.cpp
SRCS_MIN+=	Target/PowerPC/PPCTargetObjectFile.cpp
SRCS_MIN+=	Target/PowerPC/PPCTargetTransformInfo.cpp
SRCS_MIN+=	Target/PowerPC/PPCVSXCopy.cpp
SRCS_MIN+=	Target/PowerPC/PPCVSXFMAMutate.cpp
SRCS_MIN+=	Target/PowerPC/PPCVSXSwapRemoval.cpp
SRCS_MIN+=	Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp
.endif # MK_LLVM_TARGET_POWERPC
.if ${MK_LLVM_TARGET_RISCV} != "no"
SRCS_MIN+=	Target/RISCV/AsmParser/RISCVAsmParser.cpp
SRCS_MIN+=	Target/RISCV/Disassembler/RISCVDisassembler.cpp
SRCS_MIN+=	Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
SRCS_MIN+=	Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
SRCS_MIN+=	Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp
SRCS_MIN+=	Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp
SRCS_MIN+=	Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.cpp
SRCS_MIN+=	Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp
SRCS_MIN+=	Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp
SRCS_MIN+=	Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp
SRCS_MIN+=	Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp
SRCS_MIN+=	Target/RISCV/RISCVAsmPrinter.cpp
SRCS_MIN+=	Target/RISCV/RISCVCallLowering.cpp
SRCS_MIN+=	Target/RISCV/RISCVExpandPseudoInsts.cpp
SRCS_MIN+=	Target/RISCV/RISCVFrameLowering.cpp
SRCS_MIN+=	Target/RISCV/RISCVInstrInfo.cpp
SRCS_MIN+=	Target/RISCV/RISCVInstructionSelector.cpp
SRCS_MIN+=	Target/RISCV/RISCVISelDAGToDAG.cpp
SRCS_MIN+=	Target/RISCV/RISCVISelLowering.cpp
SRCS_MIN+=	Target/RISCV/RISCVLegalizerInfo.cpp
SRCS_MIN+=	Target/RISCV/RISCVMCInstLower.cpp
SRCS_MIN+=	Target/RISCV/RISCVMergeBaseOffset.cpp
SRCS_MIN+=	Target/RISCV/RISCVRegisterBankInfo.cpp
SRCS_MIN+=	Target/RISCV/RISCVRegisterInfo.cpp
SRCS_MIN+=	Target/RISCV/RISCVSubtarget.cpp
SRCS_MIN+=	Target/RISCV/RISCVTargetMachine.cpp
SRCS_MIN+=	Target/RISCV/RISCVTargetObjectFile.cpp
SRCS_MIN+=	Target/RISCV/RISCVTargetTransformInfo.cpp
SRCS_MIN+=	Target/RISCV/TargetInfo/RISCVTargetInfo.cpp
SRCS_MIN+=	Target/RISCV/Utils/RISCVBaseInfo.cpp
SRCS_MIN+=	Target/RISCV/Utils/RISCVMatInt.cpp
.endif # MK_LLVM_TARGET_RISCV
SRCS_MIN+=	Target/Target.cpp
SRCS_MIN+=	Target/TargetLoweringObjectFile.cpp
SRCS_MIN+=	Target/TargetMachine.cpp
SRCS_MIN+=	Target/TargetMachineC.cpp
.if ${MK_LLVM_TARGET_X86} != "no"
SRCS_MIN+=	Target/X86/AsmParser/X86AsmParser.cpp
SRCS_XDW+=	Target/X86/Disassembler/X86Disassembler.cpp
SRCS_MIN+=	Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp
SRCS_MIN+=	Target/X86/MCTargetDesc/X86AsmBackend.cpp
SRCS_MIN+=	Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
SRCS_MIN+=	Target/X86/MCTargetDesc/X86InstComments.cpp
SRCS_MIN+=	Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp
SRCS_MIN+=	Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp
SRCS_MIN+=	Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
SRCS_MIN+=	Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
SRCS_MIN+=	Target/X86/MCTargetDesc/X86MCTargetDesc.cpp
SRCS_MIN+=	Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
SRCS_MIN+=	Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp
SRCS_MIN+=	Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp
SRCS_MIN+=	Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp
SRCS_MIN+=	Target/X86/TargetInfo/X86TargetInfo.cpp
SRCS_MIN+=	Target/X86/Utils/X86ShuffleDecode.cpp
SRCS_MIN+=	Target/X86/X86AsmPrinter.cpp
SRCS_MIN+=	Target/X86/X86AvoidStoreForwardingBlocks.cpp
SRCS_MIN+=	Target/X86/X86AvoidTrailingCall.cpp
SRCS_MIN+=	Target/X86/X86CallFrameOptimization.cpp
SRCS_MIN+=	Target/X86/X86CallLowering.cpp
SRCS_MIN+=	Target/X86/X86CallingConv.cpp
SRCS_MIN+=	Target/X86/X86CmovConversion.cpp
SRCS_MIN+=	Target/X86/X86CondBrFolding.cpp
SRCS_MIN+=	Target/X86/X86DiscriminateMemOps.cpp
SRCS_MIN+=	Target/X86/X86DomainReassignment.cpp
SRCS_MIN+=	Target/X86/X86EvexToVex.cpp
SRCS_MIN+=	Target/X86/X86ExpandPseudo.cpp
SRCS_MIN+=	Target/X86/X86FastISel.cpp
SRCS_MIN+=	Target/X86/X86FixupBWInsts.cpp
SRCS_MIN+=	Target/X86/X86FixupLEAs.cpp
SRCS_MIN+=	Target/X86/X86FixupSetCC.cpp
SRCS_MIN+=	Target/X86/X86FlagsCopyLowering.cpp
SRCS_MIN+=	Target/X86/X86FloatingPoint.cpp
SRCS_MIN+=	Target/X86/X86FrameLowering.cpp
SRCS_MIN+=	Target/X86/X86ISelDAGToDAG.cpp
SRCS_MIN+=	Target/X86/X86ISelLowering.cpp
SRCS_MIN+=	Target/X86/X86IndirectBranchTracking.cpp
SRCS_MIN+=	Target/X86/X86IndirectThunks.cpp
SRCS_MIN+=	Target/X86/X86InsertPrefetch.cpp
SRCS_MIN+=	Target/X86/X86InstrFMA3Info.cpp
SRCS_MIN+=	Target/X86/X86InstrFoldTables.cpp
SRCS_MIN+=	Target/X86/X86InstrInfo.cpp
SRCS_MIN+=	Target/X86/X86InstructionSelector.cpp
SRCS_MIN+=	Target/X86/X86InterleavedAccess.cpp
SRCS_MIN+=	Target/X86/X86LegalizerInfo.cpp
SRCS_MIN+=	Target/X86/X86LoadValueInjectionLoadHardening.cpp
SRCS_MIN+=	Target/X86/X86LoadValueInjectionRetHardening.cpp
SRCS_MIN+=	Target/X86/X86MCInstLower.cpp
SRCS_MIN+=	Target/X86/X86MachineFunctionInfo.cpp
SRCS_MIN+=	Target/X86/X86MacroFusion.cpp
SRCS_MIN+=	Target/X86/X86OptimizeLEAs.cpp
SRCS_MIN+=	Target/X86/X86PadShortFunction.cpp
SRCS_MIN+=	Target/X86/X86RegisterBankInfo.cpp
SRCS_MIN+=	Target/X86/X86RegisterInfo.cpp
SRCS_MIN+=	Target/X86/X86SelectionDAGInfo.cpp
SRCS_MIN+=	Target/X86/X86ShuffleDecodeConstantPool.cpp
SRCS_MIN+=	Target/X86/X86SpeculativeLoadHardening.cpp
SRCS_MIN+=	Target/X86/X86Subtarget.cpp
SRCS_MIN+=	Target/X86/X86TargetMachine.cpp
SRCS_MIN+=	Target/X86/X86TargetObjectFile.cpp
SRCS_MIN+=	Target/X86/X86TargetTransformInfo.cpp
SRCS_MIN+=	Target/X86/X86VZeroUpper.cpp
SRCS_MIN+=	Target/X86/X86WinAllocaExpander.cpp
SRCS_MIN+=	Target/X86/X86WinEHState.cpp
.endif # MK_LLVM_TARGET_X86
SRCS_MIW+=	TextAPI/MachO/Architecture.cpp
SRCS_MIW+=	TextAPI/MachO/ArchitectureSet.cpp
SRCS_MIW+=	TextAPI/MachO/InterfaceFile.cpp
SRCS_MIW+=	TextAPI/MachO/PackedVersion.cpp
SRCS_MIW+=	TextAPI/MachO/Platform.cpp
SRCS_MIW+=	TextAPI/MachO/Target.cpp
SRCS_MIW+=	TextAPI/MachO/TextStub.cpp
SRCS_MIW+=	TextAPI/MachO/TextStubCommon.cpp
SRCS_MIN+=	ToolDrivers/llvm-dlltool/DlltoolDriver.cpp
SRCS_MIW+=	ToolDrivers/llvm-lib/LibDriver.cpp
SRCS_MIN+=	Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
SRCS_MIN+=	Transforms/AggressiveInstCombine/TruncInstCombine.cpp
SRCS_MIN+=	Transforms/CFGuard/CFGuard.cpp
SRCS_MIN+=	Transforms/Coroutines/CoroCleanup.cpp
SRCS_MIN+=	Transforms/Coroutines/CoroEarly.cpp
SRCS_MIN+=	Transforms/Coroutines/CoroElide.cpp
SRCS_MIN+=	Transforms/Coroutines/CoroFrame.cpp
SRCS_MIN+=	Transforms/Coroutines/CoroSplit.cpp
SRCS_MIN+=	Transforms/Coroutines/Coroutines.cpp
SRCS_MIN+=	Transforms/IPO/AlwaysInliner.cpp
SRCS_MIN+=	Transforms/IPO/ArgumentPromotion.cpp
SRCS_MIN+=	Transforms/IPO/Attributor.cpp
SRCS_MIN+=	Transforms/IPO/BarrierNoopPass.cpp
SRCS_EXT+=	Transforms/IPO/BlockExtractor.cpp
SRCS_MIN+=	Transforms/IPO/CalledValuePropagation.cpp
SRCS_MIN+=	Transforms/IPO/ConstantMerge.cpp
SRCS_MIN+=	Transforms/IPO/CrossDSOCFI.cpp
SRCS_MIN+=	Transforms/IPO/DeadArgumentElimination.cpp
SRCS_MIN+=	Transforms/IPO/ElimAvailExtern.cpp
SRCS_MIN+=	Transforms/IPO/ExtractGV.cpp
SRCS_MIN+=	Transforms/IPO/ForceFunctionAttrs.cpp
SRCS_MIN+=	Transforms/IPO/FunctionAttrs.cpp
SRCS_MIN+=	Transforms/IPO/FunctionImport.cpp
SRCS_MIN+=	Transforms/IPO/GlobalDCE.cpp
SRCS_MIN+=	Transforms/IPO/GlobalOpt.cpp
SRCS_MIN+=	Transforms/IPO/GlobalSplit.cpp
SRCS_MIN+=	Transforms/IPO/HotColdSplitting.cpp
SRCS_MIN+=	Transforms/IPO/IPConstantPropagation.cpp
SRCS_EXT+=	Transforms/IPO/IPO.cpp
SRCS_MIN+=	Transforms/IPO/InferFunctionAttrs.cpp
SRCS_MIN+=	Transforms/IPO/InlineSimple.cpp
SRCS_MIN+=	Transforms/IPO/Inliner.cpp
SRCS_MIN+=	Transforms/IPO/Internalize.cpp
SRCS_MIN+=	Transforms/IPO/LoopExtractor.cpp
SRCS_MIN+=	Transforms/IPO/LowerTypeTests.cpp
SRCS_MIN+=	Transforms/IPO/MergeFunctions.cpp
SRCS_MIN+=	Transforms/IPO/PartialInlining.cpp
SRCS_MIN+=	Transforms/IPO/PassManagerBuilder.cpp
SRCS_MIN+=	Transforms/IPO/PruneEH.cpp
SRCS_MIN+=	Transforms/IPO/SCCP.cpp
SRCS_MIN+=	Transforms/IPO/SampleProfile.cpp
SRCS_MIN+=	Transforms/IPO/StripDeadPrototypes.cpp
SRCS_MIN+=	Transforms/IPO/StripSymbols.cpp
SRCS_MIN+=	Transforms/IPO/SyntheticCountsPropagation.cpp
SRCS_MIN+=	Transforms/IPO/ThinLTOBitcodeWriter.cpp
SRCS_MIN+=	Transforms/IPO/WholeProgramDevirt.cpp
SRCS_MIN+=	Transforms/InstCombine/InstCombineAddSub.cpp
SRCS_MIN+=	Transforms/InstCombine/InstCombineAndOrXor.cpp
SRCS_MIN+=	Transforms/InstCombine/InstCombineAtomicRMW.cpp
SRCS_MIN+=	Transforms/InstCombine/InstCombineCalls.cpp
SRCS_MIN+=	Transforms/InstCombine/InstCombineCasts.cpp
SRCS_MIN+=	Transforms/InstCombine/InstCombineCompares.cpp
SRCS_MIN+=	Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
SRCS_MIN+=	Transforms/InstCombine/InstCombineMulDivRem.cpp
SRCS_MIN+=	Transforms/InstCombine/InstCombinePHI.cpp
SRCS_MIN+=	Transforms/InstCombine/InstCombineSelect.cpp
SRCS_MIN+=	Transforms/InstCombine/InstCombineShifts.cpp
SRCS_MIN+=	Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
SRCS_MIN+=	Transforms/InstCombine/InstCombineVectorOps.cpp
SRCS_MIN+=	Transforms/InstCombine/InstructionCombining.cpp
SRCS_MIN+=	Transforms/Instrumentation/AddressSanitizer.cpp
SRCS_MIN+=	Transforms/Instrumentation/BoundsChecking.cpp
SRCS_MIN+=	Transforms/Instrumentation/CGProfile.cpp
SRCS_MIN+=	Transforms/Instrumentation/ControlHeightReduction.cpp
SRCS_MIN+=	Transforms/Instrumentation/DataFlowSanitizer.cpp
SRCS_MIN+=	Transforms/Instrumentation/GCOVProfiling.cpp
SRCS_MIN+=	Transforms/Instrumentation/HWAddressSanitizer.cpp
SRCS_MIN+=	Transforms/Instrumentation/IndirectCallPromotion.cpp
SRCS_MIN+=	Transforms/Instrumentation/InstrOrderFile.cpp
SRCS_MIN+=	Transforms/Instrumentation/InstrProfiling.cpp
SRCS_MIN+=	Transforms/Instrumentation/Instrumentation.cpp
SRCS_MIN+=	Transforms/Instrumentation/MemorySanitizer.cpp
SRCS_MIN+=	Transforms/Instrumentation/PGOInstrumentation.cpp
SRCS_MIN+=	Transforms/Instrumentation/PGOMemOPSizeOpt.cpp
SRCS_MIN+=	Transforms/Instrumentation/PoisonChecking.cpp
SRCS_MIN+=	Transforms/Instrumentation/SanitizerCoverage.cpp
SRCS_MIN+=	Transforms/Instrumentation/ThreadSanitizer.cpp
SRCS_MIN+=	Transforms/Instrumentation/ValueProfileCollector.cpp
SRCS_MIN+=	Transforms/ObjCARC/DependencyAnalysis.cpp
SRCS_EXT+=	Transforms/ObjCARC/ObjCARC.cpp
SRCS_MIN+=	Transforms/ObjCARC/ObjCARCAPElim.cpp
SRCS_MIN+=	Transforms/ObjCARC/ObjCARCContract.cpp
SRCS_MIN+=	Transforms/ObjCARC/ObjCARCExpand.cpp
SRCS_MIN+=	Transforms/ObjCARC/ObjCARCOpts.cpp
SRCS_MIN+=	Transforms/ObjCARC/ProvenanceAnalysis.cpp
SRCS_MIN+=	Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp
SRCS_MIN+=	Transforms/ObjCARC/PtrState.cpp
SRCS_MIN+=	Transforms/Scalar/ADCE.cpp
SRCS_MIN+=	Transforms/Scalar/AlignmentFromAssumptions.cpp
SRCS_MIN+=	Transforms/Scalar/BDCE.cpp
SRCS_MIN+=	Transforms/Scalar/CallSiteSplitting.cpp
SRCS_MIN+=	Transforms/Scalar/ConstantHoisting.cpp
SRCS_MIN+=	Transforms/Scalar/ConstantProp.cpp
SRCS_MIN+=	Transforms/Scalar/CorrelatedValuePropagation.cpp
SRCS_MIN+=	Transforms/Scalar/DCE.cpp
SRCS_MIN+=	Transforms/Scalar/DeadStoreElimination.cpp
SRCS_MIN+=	Transforms/Scalar/DivRemPairs.cpp
SRCS_MIN+=	Transforms/Scalar/EarlyCSE.cpp
SRCS_MIN+=	Transforms/Scalar/FlattenCFGPass.cpp
SRCS_MIN+=	Transforms/Scalar/Float2Int.cpp
SRCS_MIN+=	Transforms/Scalar/GVN.cpp
SRCS_MIN+=	Transforms/Scalar/GVNHoist.cpp
SRCS_MIN+=	Transforms/Scalar/GVNSink.cpp
SRCS_MIN+=	Transforms/Scalar/GuardWidening.cpp
SRCS_MIN+=	Transforms/Scalar/IVUsersPrinter.cpp
SRCS_MIN+=	Transforms/Scalar/IndVarSimplify.cpp
SRCS_MIN+=	Transforms/Scalar/InductiveRangeCheckElimination.cpp
SRCS_EXT+=	Transforms/Scalar/InferAddressSpaces.cpp
SRCS_MIN+=	Transforms/Scalar/InstSimplifyPass.cpp
SRCS_MIN+=	Transforms/Scalar/JumpThreading.cpp
SRCS_MIN+=	Transforms/Scalar/LICM.cpp
SRCS_MIN+=	Transforms/Scalar/LoopAccessAnalysisPrinter.cpp
SRCS_MIN+=	Transforms/Scalar/LoopDataPrefetch.cpp
SRCS_MIN+=	Transforms/Scalar/LoopDeletion.cpp
SRCS_MIN+=	Transforms/Scalar/LoopDistribute.cpp
SRCS_MIN+=	Transforms/Scalar/LoopFuse.cpp
SRCS_MIN+=	Transforms/Scalar/LoopIdiomRecognize.cpp
SRCS_MIN+=	Transforms/Scalar/LoopInstSimplify.cpp
SRCS_MIN+=	Transforms/Scalar/LoopInterchange.cpp
SRCS_MIN+=	Transforms/Scalar/LoopLoadElimination.cpp
SRCS_MIN+=	Transforms/Scalar/LoopPassManager.cpp
SRCS_MIN+=	Transforms/Scalar/LoopPredication.cpp
SRCS_MIN+=	Transforms/Scalar/LoopRerollPass.cpp
SRCS_MIN+=	Transforms/Scalar/LoopRotation.cpp
SRCS_MIN+=	Transforms/Scalar/LoopSimplifyCFG.cpp
SRCS_MIN+=	Transforms/Scalar/LoopSink.cpp
SRCS_MIN+=	Transforms/Scalar/LoopStrengthReduce.cpp
SRCS_MIN+=	Transforms/Scalar/LoopUnrollPass.cpp
SRCS_MIN+=	Transforms/Scalar/LoopUnrollAndJamPass.cpp
SRCS_MIN+=	Transforms/Scalar/LoopUnswitch.cpp
SRCS_MIN+=	Transforms/Scalar/LoopVersioningLICM.cpp
SRCS_MIN+=	Transforms/Scalar/LowerAtomic.cpp
SRCS_MIN+=	Transforms/Scalar/LowerConstantIntrinsics.cpp
SRCS_MIN+=	Transforms/Scalar/LowerExpectIntrinsic.cpp
SRCS_MIN+=	Transforms/Scalar/LowerGuardIntrinsic.cpp
SRCS_MIN+=	Transforms/Scalar/LowerMatrixIntrinsics.cpp
SRCS_MIN+=	Transforms/Scalar/LowerWidenableCondition.cpp
SRCS_MIN+=	Transforms/Scalar/MakeGuardsExplicit.cpp
SRCS_MIN+=	Transforms/Scalar/MemCpyOptimizer.cpp
SRCS_MIN+=	Transforms/Scalar/MergeICmps.cpp
SRCS_MIN+=	Transforms/Scalar/MergedLoadStoreMotion.cpp
SRCS_MIN+=	Transforms/Scalar/NaryReassociate.cpp
SRCS_MIN+=	Transforms/Scalar/NewGVN.cpp
SRCS_MIN+=	Transforms/Scalar/PartiallyInlineLibCalls.cpp
SRCS_MIN+=	Transforms/Scalar/PlaceSafepoints.cpp
SRCS_MIN+=	Transforms/Scalar/Reassociate.cpp
SRCS_MIN+=	Transforms/Scalar/Reg2Mem.cpp
SRCS_MIN+=	Transforms/Scalar/RewriteStatepointsForGC.cpp
SRCS_MIN+=	Transforms/Scalar/SCCP.cpp
SRCS_MIN+=	Transforms/Scalar/SROA.cpp
SRCS_EXT+=	Transforms/Scalar/Scalar.cpp
SRCS_MIN+=	Transforms/Scalar/Scalarizer.cpp
SRCS_MIN+=	Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
SRCS_MIN+=	Transforms/Scalar/SimpleLoopUnswitch.cpp
SRCS_MIN+=	Transforms/Scalar/SimplifyCFGPass.cpp
SRCS_MIN+=	Transforms/Scalar/Sink.cpp
SRCS_MIN+=	Transforms/Scalar/SpeculateAroundPHIs.cpp
SRCS_MIN+=	Transforms/Scalar/SpeculativeExecution.cpp
SRCS_MIN+=	Transforms/Scalar/StraightLineStrengthReduce.cpp
SRCS_MIN+=	Transforms/Scalar/StructurizeCFG.cpp
SRCS_MIN+=	Transforms/Scalar/TailRecursionElimination.cpp
SRCS_MIN+=	Transforms/Scalar/WarnMissedTransforms.cpp
SRCS_MIN+=	Transforms/Utils/ASanStackFrameLayout.cpp
SRCS_MIN+=	Transforms/Utils/AddDiscriminators.cpp
SRCS_MIN+=	Transforms/Utils/BasicBlockUtils.cpp
SRCS_MIN+=	Transforms/Utils/BreakCriticalEdges.cpp
SRCS_MIN+=	Transforms/Utils/BuildLibCalls.cpp
SRCS_MIN+=	Transforms/Utils/BypassSlowDivision.cpp
SRCS_MIN+=	Transforms/Utils/CallPromotionUtils.cpp
SRCS_MIN+=	Transforms/Utils/CanonicalizeAliases.cpp
SRCS_MIN+=	Transforms/Utils/CloneFunction.cpp
SRCS_MIN+=	Transforms/Utils/CloneModule.cpp
SRCS_MIN+=	Transforms/Utils/CodeExtractor.cpp
SRCS_MIN+=	Transforms/Utils/CodeMoverUtils.cpp
SRCS_MIN+=	Transforms/Utils/CtorUtils.cpp
SRCS_EXT+=	Transforms/Utils/Debugify.cpp
SRCS_MIN+=	Transforms/Utils/DemoteRegToStack.cpp
SRCS_MIN+=	Transforms/Utils/EntryExitInstrumenter.cpp
SRCS_MIN+=	Transforms/Utils/EscapeEnumerator.cpp
SRCS_MIN+=	Transforms/Utils/Evaluator.cpp
SRCS_MIN+=	Transforms/Utils/FlattenCFG.cpp
SRCS_MIN+=	Transforms/Utils/FunctionComparator.cpp
SRCS_MIN+=	Transforms/Utils/FunctionImportUtils.cpp
SRCS_MIN+=	Transforms/Utils/GlobalStatus.cpp
SRCS_MIN+=	Transforms/Utils/GuardUtils.cpp
SRCS_MIN+=	Transforms/Utils/ImportedFunctionsInliningStatistics.cpp
SRCS_MIN+=	Transforms/Utils/InjectTLIMappings.cpp
SRCS_MIN+=	Transforms/Utils/InlineFunction.cpp
SRCS_MIN+=	Transforms/Utils/InstructionNamer.cpp
SRCS_MIN+=	Transforms/Utils/IntegerDivision.cpp
SRCS_MIN+=	Transforms/Utils/LCSSA.cpp
SRCS_MIN+=	Transforms/Utils/LibCallsShrinkWrap.cpp
SRCS_MIN+=	Transforms/Utils/Local.cpp
SRCS_MIN+=	Transforms/Utils/LoopSimplify.cpp
SRCS_MIN+=	Transforms/Utils/LoopRotationUtils.cpp
SRCS_MIN+=	Transforms/Utils/LoopUnroll.cpp
SRCS_MIN+=	Transforms/Utils/LoopUnrollAndJam.cpp
SRCS_MIN+=	Transforms/Utils/LoopUnrollPeel.cpp
SRCS_MIN+=	Transforms/Utils/LoopUnrollRuntime.cpp
SRCS_MIN+=	Transforms/Utils/LoopUtils.cpp
SRCS_MIN+=	Transforms/Utils/LoopVersioning.cpp
SRCS_MIN+=	Transforms/Utils/LowerInvoke.cpp
SRCS_MIN+=	Transforms/Utils/LowerSwitch.cpp
SRCS_MIN+=	Transforms/Utils/Mem2Reg.cpp
SRCS_MIN+=	Transforms/Utils/MetaRenamer.cpp
SRCS_MIN+=	Transforms/Utils/MisExpect.cpp
SRCS_MIN+=	Transforms/Utils/ModuleUtils.cpp
SRCS_MIN+=	Transforms/Utils/NameAnonGlobals.cpp
SRCS_MIN+=	Transforms/Utils/PredicateInfo.cpp
SRCS_MIN+=	Transforms/Utils/PromoteMemoryToRegister.cpp
SRCS_MIN+=	Transforms/Utils/SSAUpdater.cpp
SRCS_MIN+=	Transforms/Utils/SanitizerStats.cpp
SRCS_MIN+=	Transforms/Utils/SimplifyCFG.cpp
SRCS_MIN+=	Transforms/Utils/SimplifyIndVar.cpp
SRCS_MIN+=	Transforms/Utils/SimplifyLibCalls.cpp
SRCS_MIN+=	Transforms/Utils/SizeOpts.cpp
SRCS_MIN+=	Transforms/Utils/SplitModule.cpp
SRCS_MIN+=	Transforms/Utils/StripGCRelocates.cpp
SRCS_MIN+=	Transforms/Utils/StripNonLineTableDebugInfo.cpp
SRCS_MIN+=	Transforms/Utils/SymbolRewriter.cpp
SRCS_MIN+=	Transforms/Utils/UnifyFunctionExitNodes.cpp
SRCS_EXT+=	Transforms/Utils/Utils.cpp
SRCS_MIN+=	Transforms/Utils/VNCoercion.cpp
SRCS_MIN+=	Transforms/Utils/ValueMapper.cpp
SRCS_MIN+=	Transforms/Vectorize/LoadStoreVectorizer.cpp
SRCS_MIN+=	Transforms/Vectorize/LoopVectorizationLegality.cpp
SRCS_MIN+=	Transforms/Vectorize/LoopVectorize.cpp
SRCS_MIN+=	Transforms/Vectorize/SLPVectorizer.cpp
SRCS_MIN+=	Transforms/Vectorize/VPlan.cpp
SRCS_MIN+=	Transforms/Vectorize/VPlanHCFGBuilder.cpp
SRCS_MIN+=	Transforms/Vectorize/VPlanPredicator.cpp
SRCS_MIN+=	Transforms/Vectorize/VPlanTransforms.cpp
SRCS_MIN+=	Transforms/Vectorize/VPlanVerifier.cpp
SRCS_EXT+=	Transforms/Vectorize/Vectorize.cpp
SRCS_EXT+=	XRay/BlockIndexer.cpp
SRCS_EXT+=	XRay/BlockVerifier.cpp
SRCS_EXT+=	XRay/FDRRecordProducer.cpp
SRCS_EXT+=	XRay/FDRRecords.cpp
SRCS_EXT+=	XRay/FDRTraceExpander.cpp
SRCS_EXT+=	XRay/FileHeaderReader.cpp
SRCS_EXT+=	XRay/InstrumentationMap.cpp
SRCS_EXT+=	XRay/LogBuilderConsumer.cpp
SRCS_EXT+=	XRay/RecordInitializer.cpp
SRCS_EXT+=	XRay/Trace.cpp

SRCS_ALL+=	${SRCS_MIN}
.if !defined(TOOLS_PREFIX) || ${MK_LLD_BOOTSTRAP} != "no"
SRCS_ALL+=	${SRCS_MIW}
.endif
.if ${MK_CLANG_EXTRAS} != "no"
SRCS_ALL+=	${SRCS_EXT}
.endif
.if ${MK_CLANG_FULL} != "no"
SRCS_ALL+=	${SRCS_FUL}
.endif
.if ${MK_CLANG_EXTRAS} != "no" || ${MK_LLD} != "no" || \
    (defined(TOOLS_PREFIX) && ${MK_LLD_BOOTSTRAP} != "no")
SRCS_ALL+=	${SRCS_EXL}
.endif
.if ${MK_LLD} != "no" || \
    (defined(TOOLS_PREFIX) && ${MK_LLD_BOOTSTRAP} != "no")
SRCS_ALL+=	${SRCS_LLD}
.endif
.if ${MK_CLANG_EXTRAS} != "no" || ${MK_LLDB} != "no"
SRCS_ALL+=	${SRCS_XDB}
.endif
.if ${MK_CLANG_EXTRAS} != "no" || ${MK_LLDB} != "no" || ${MK_LLD} != "no" || \
    (defined(TOOLS_PREFIX) && ${MK_LLD_BOOTSTRAP} != "no")
SRCS_ALL+=	${SRCS_XDL}
.endif
.if ${MK_CLANG_EXTRAS} != "no" || ${MK_LLDB} != "no" || !defined(TOOLS_PREFIX)
SRCS_ALL+=	${SRCS_XDW}
.endif
SRCS+=		${SRCS_ALL:O}

llvm/IR/Attributes.inc: ${LLVM_SRCS}/include/llvm/IR/Attributes.td
	${LLVM_TBLGEN} -gen-attrs \
	    -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \
	    ${LLVM_SRCS}/include/llvm/IR/Attributes.td
TGHDRS+=	llvm/IR/Attributes.inc

llvm/IR/IntrinsicEnums.inc: ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td
	${LLVM_TBLGEN} -gen-intrinsic-enums \
	    -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \
	    ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td
TGHDRS+=	llvm/IR/IntrinsicEnums.inc

llvm/IR/IntrinsicImpl.inc: ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td
	${LLVM_TBLGEN} -gen-intrinsic-impl \
	    -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \
	    ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td
TGHDRS+=	llvm/IR/IntrinsicImpl.inc

.for arch in \
	AArch64/aarch64 AMDGPU/amdgcn ARM/arm BPF/bpf Hexagon/hexagon \
	Mips/mips NVPTX/nvvm PowerPC/ppc R600/r600 RISCV/riscv S390/s390 \
	WebAssembly/wasm X86/x86 XCore/xcore
llvm/IR/Intrinsics${arch:H}.h: ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td
	${LLVM_TBLGEN} -gen-intrinsic-enums -intrinsic-prefix=${arch:T} \
	    -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \
	    ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td
TGHDRS+=	llvm/IR/Intrinsics${arch:H}.h
.endfor

AttributesCompatFunc.inc: ${LLVM_SRCS}/lib/IR/AttributesCompatFunc.td
	${LLVM_TBLGEN} -gen-attrs \
	    -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \
	    ${LLVM_SRCS}/lib/IR/AttributesCompatFunc.td
TGHDRS+=	AttributesCompatFunc.inc

InstCombineTables.inc: ${LLVM_SRCS}/lib/Transforms/InstCombine/InstCombineTables.td
	${LLVM_TBLGEN} -gen-searchable-tables \
	    -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \
	    ${LLVM_SRCS}/lib/Transforms/InstCombine/InstCombineTables.td
TGHDRS+=	InstCombineTables.inc

llvm-lib/Options.inc: ${LLVM_SRCS}/lib/ToolDrivers/llvm-lib/Options.td
	${LLVM_TBLGEN} -gen-opt-parser-defs \
	    -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \
	    ${LLVM_SRCS}/lib/ToolDrivers/llvm-lib/Options.td
TGHDRS+=	llvm-lib/Options.inc
CFLAGS.LibDriver.cpp+=	-I${.OBJDIR}/llvm-lib

llvm-dlltool/Options.inc: ${LLVM_SRCS}/lib/ToolDrivers/llvm-dlltool/Options.td
	${LLVM_TBLGEN} -gen-opt-parser-defs \
	    -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \
	    ${LLVM_SRCS}/lib/ToolDrivers/llvm-dlltool/Options.td
TGHDRS+=	llvm-dlltool/Options.inc
CFLAGS.DlltoolDriver.cpp+=	-I${.OBJDIR}/llvm-dlltool

beforebuild:
# 20170724 remove stale Options.inc file, of which there are two different
# versions after upstream r308421, one for llvm-lib, one for llvm-dlltool
.for f in Options.inc
.if exists(${f}) || exists(${f}.d)
	@echo Removing stale generated ${f} files
	@rm -f ${f} ${f}.d
.endif
.endfor

# Note: some rules are superfluous, not every combination is valid.
.for arch in \
	AArch64/AArch64 ARM/ARM BPF/BPF Mips/Mips PowerPC/PPC RISCV/RISCV \
	X86/X86
. for hdr in \
	AsmMatcher/-gen-asm-matcher \
	AsmWriter1/-gen-asm-writer,-asmwriternum=1 \
	AsmWriter/-gen-asm-writer \
	CallingConv/-gen-callingconv \
	CodeEmitter/-gen-emitter \
	CompressInstEmitter/-gen-compress-inst-emitter \
	DAGISel/-gen-dag-isel \
	DisassemblerTables/-gen-disassembler \
	EVEX2VEXTables/-gen-x86-EVEX2VEX-tables \
	FastISel/-gen-fast-isel \
	GICombiner/-gen-global-isel-combiner,-combiners=${arch:H}PreLegalizerCombinerHelper \
	GlobalISel/-gen-global-isel \
	InstrInfo/-gen-instr-info \
	MCCodeEmitter/-gen-emitter \
	MCPseudoLowering/-gen-pseudo-lowering \
	RegisterBank/-gen-register-bank \
	RegisterInfo/-gen-register-info \
	SubtargetInfo/-gen-subtarget \
	SystemOperands/-gen-searchable-tables \
	SystemRegister/-gen-searchable-tables
${arch:T}Gen${hdr:H}.inc: ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td
	${LLVM_TBLGEN} ${hdr:T:C/,/ /g} \
	    -I ${LLVM_SRCS}/include -I ${LLVM_SRCS}/lib/Target/${arch:H} \
	    -d ${.TARGET}.d -o ${.TARGET} \
	    ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td
. endfor
.endfor
.if ${MK_LLVM_TARGET_AARCH64} != "no"
TGHDRS+=	AArch64GenAsmMatcher.inc
TGHDRS+=	AArch64GenAsmWriter.inc
TGHDRS+=	AArch64GenAsmWriter1.inc
TGHDRS+=	AArch64GenCallingConv.inc
TGHDRS+=	AArch64GenDAGISel.inc
TGHDRS+=	AArch64GenDisassemblerTables.inc
TGHDRS+=	AArch64GenFastISel.inc
TGHDRS+=	AArch64GenGICombiner.inc
TGHDRS+=	AArch64GenGlobalISel.inc
TGHDRS+=	AArch64GenInstrInfo.inc
TGHDRS+=	AArch64GenMCCodeEmitter.inc
TGHDRS+=	AArch64GenMCPseudoLowering.inc
TGHDRS+=	AArch64GenRegisterBank.inc
TGHDRS+=	AArch64GenRegisterInfo.inc
TGHDRS+=	AArch64GenSubtargetInfo.inc
TGHDRS+=	AArch64GenSystemOperands.inc
.endif # MK_LLVM_TARGET_AARCH64
.if ${MK_LLVM_TARGET_ARM} != "no"
TGHDRS+=	ARMGenAsmMatcher.inc
TGHDRS+=	ARMGenAsmWriter.inc
TGHDRS+=	ARMGenCallingConv.inc
TGHDRS+=	ARMGenDAGISel.inc
TGHDRS+=	ARMGenDisassemblerTables.inc
TGHDRS+=	ARMGenFastISel.inc
TGHDRS+=	ARMGenGlobalISel.inc
TGHDRS+=	ARMGenInstrInfo.inc
TGHDRS+=	ARMGenMCCodeEmitter.inc
TGHDRS+=	ARMGenMCPseudoLowering.inc
TGHDRS+=	ARMGenRegisterBank.inc
TGHDRS+=	ARMGenRegisterInfo.inc
TGHDRS+=	ARMGenSubtargetInfo.inc
TGHDRS+=	ARMGenSystemRegister.inc
.endif # MK_LLVM_TARGET_ARM
.if ${MK_LLVM_TARGET_BPF} != "no"
TGHDRS+=	BPFGenAsmMatcher.inc
TGHDRS+=	BPFGenAsmWriter.inc
TGHDRS+=	BPFGenCallingConv.inc
TGHDRS+=	BPFGenDAGISel.inc
TGHDRS+=	BPFGenDisassemblerTables.inc
TGHDRS+=	BPFGenInstrInfo.inc
TGHDRS+=	BPFGenMCCodeEmitter.inc
TGHDRS+=	BPFGenRegisterInfo.inc
TGHDRS+=	BPFGenSubtargetInfo.inc
.endif # MK_LLVM_TARGET_BPF
.if ${MK_LLVM_TARGET_MIPS} != "no"
TGHDRS+=	MipsGenAsmMatcher.inc
TGHDRS+=	MipsGenAsmWriter.inc
TGHDRS+=	MipsGenCallingConv.inc
TGHDRS+=	MipsGenDAGISel.inc
TGHDRS+=	MipsGenDisassemblerTables.inc
TGHDRS+=	MipsGenFastISel.inc
TGHDRS+=	MipsGenGlobalISel.inc
TGHDRS+=	MipsGenInstrInfo.inc
TGHDRS+=	MipsGenMCCodeEmitter.inc
TGHDRS+=	MipsGenMCPseudoLowering.inc
TGHDRS+=	MipsGenRegisterBank.inc
TGHDRS+=	MipsGenRegisterInfo.inc
TGHDRS+=	MipsGenSubtargetInfo.inc
.endif # MK_LLVM_TARGET_MIPS
.if ${MK_LLVM_TARGET_POWERPC} != "no"
TGHDRS+=	PPCGenAsmMatcher.inc
TGHDRS+=	PPCGenAsmWriter.inc
TGHDRS+=	PPCGenCallingConv.inc
TGHDRS+=	PPCGenDAGISel.inc
TGHDRS+=	PPCGenDisassemblerTables.inc
TGHDRS+=	PPCGenFastISel.inc
TGHDRS+=	PPCGenInstrInfo.inc
TGHDRS+=	PPCGenMCCodeEmitter.inc
TGHDRS+=	PPCGenRegisterInfo.inc
TGHDRS+=	PPCGenSubtargetInfo.inc
.endif # MK_LLVM_TARGET_POWERPC
.if ${MK_LLVM_TARGET_RISCV} != "no"
TGHDRS+=	RISCVGenAsmMatcher.inc
TGHDRS+=	RISCVGenAsmWriter.inc
TGHDRS+=	RISCVGenCallingConv.inc
TGHDRS+=	RISCVGenCompressInstEmitter.inc
TGHDRS+=	RISCVGenDAGISel.inc
TGHDRS+=	RISCVGenDisassemblerTables.inc
TGHDRS+=	RISCVGenDAGISel.inc
TGHDRS+=	RISCVGenGlobalISel.inc
TGHDRS+=	RISCVGenInstrInfo.inc
TGHDRS+=	RISCVGenMCCodeEmitter.inc
TGHDRS+=	RISCVGenMCPseudoLowering.inc
TGHDRS+=	RISCVGenRegisterBank.inc
TGHDRS+=	RISCVGenRegisterInfo.inc
TGHDRS+=	RISCVGenSubtargetInfo.inc
TGHDRS+=	RISCVGenSystemOperands.inc
.endif # MK_LLVM_TARGET_RISCV
.if ${MK_LLVM_TARGET_X86} != "no"
TGHDRS+=	X86GenAsmMatcher.inc
TGHDRS+=	X86GenAsmWriter.inc
TGHDRS+=	X86GenAsmWriter1.inc
TGHDRS+=	X86GenCallingConv.inc
TGHDRS+=	X86GenDAGISel.inc
TGHDRS+=	X86GenDisassemblerTables.inc
TGHDRS+=	X86GenEVEX2VEXTables.inc
TGHDRS+=	X86GenFastISel.inc
TGHDRS+=	X86GenGlobalISel.inc
TGHDRS+=	X86GenInstrInfo.inc
TGHDRS+=	X86GenRegisterBank.inc
TGHDRS+=	X86GenRegisterInfo.inc
TGHDRS+=	X86GenSubtargetInfo.inc
.endif # MK_LLVM_TARGET_X86

DEPENDFILES+=	${TGHDRS:C/$/.d/}
DPSRCS+=	${TGHDRS}
CLEANFILES+=	${TGHDRS} ${TGHDRS:C/$/.d/}

.include "../llvm.build.mk"
.include <bsd.lib.mk>