297 lines · plain
1if (DEFINED LLVM_HAVE_TF_AOT OR LLVM_HAVE_TFLITE)2 include(TensorFlowCompile)3 set(LLVM_RAEVICT_MODEL_PATH_DEFAULT "models/regalloc-eviction")4 5 set(LLVM_RAEVICT_MODEL_CURRENT_URL "<UNSPECIFIED>" CACHE STRING "URL to download the LLVM register allocator eviction model")6 7 if (DEFINED LLVM_HAVE_TF_AOT)8 tf_find_and_compile(9 ${LLVM_RAEVICT_MODEL_PATH}10 ${LLVM_RAEVICT_MODEL_CURRENT_URL}11 ${LLVM_RAEVICT_MODEL_PATH_DEFAULT}12 "../Analysis/models/gen-regalloc-eviction-test-model.py"13 serve14 action15 RegAllocEvictModel16 llvm::RegAllocEvictModel17 )18 endif()19 20 if (LLVM_HAVE_TFLITE)21 list(APPEND MLLinkDeps ${tensorflow_c_api} ${tensorflow_fx})22 endif()23endif()24 25add_llvm_component_library(LLVMCodeGen26 AggressiveAntiDepBreaker.cpp27 AllocationOrder.cpp28 Analysis.cpp29 AssignmentTrackingAnalysis.cpp30 AtomicExpandPass.cpp31 BasicTargetTransformInfo.cpp32 BranchFolding.cpp33 BranchRelaxation.cpp34 BreakFalseDeps.cpp35 BasicBlockSections.cpp36 BasicBlockPathCloning.cpp37 BasicBlockSectionsProfileReader.cpp38 CalcSpillWeights.cpp39 CallBrPrepare.cpp40 CallingConvLower.cpp41 CFGuardLongjmp.cpp42 CFIFixup.cpp43 CFIInstrInserter.cpp44 CodeGen.cpp45 CodeGenCommonISel.cpp46 CodeGenPrepare.cpp47 CommandFlags.cpp48 ComplexDeinterleavingPass.cpp49 CriticalAntiDepBreaker.cpp50 DeadMachineInstructionElim.cpp51 DetectDeadLanes.cpp52 DFAPacketizer.cpp53 DroppedVariableStatsMIR.cpp54 DwarfEHPrepare.cpp55 EarlyIfConversion.cpp56 EdgeBundles.cpp57 EHContGuardTargets.cpp58 ExecutionDomainFix.cpp59 ExpandLargeDivRem.cpp60 ExpandFp.cpp61 ExpandMemCmp.cpp62 ExpandPostRAPseudos.cpp63 ExpandReductions.cpp64 ExpandVectorPredication.cpp65 FaultMaps.cpp66 FEntryInserter.cpp67 FinalizeISel.cpp68 FixupStatepointCallerSaved.cpp69 FuncletLayout.cpp70 MachineFunctionAnalysis.cpp71 GCMetadata.cpp72 GCMetadataPrinter.cpp73 GCRootLowering.cpp74 GlobalMerge.cpp75 GlobalMergeFunctions.cpp76 HardwareLoops.cpp77 IfConversion.cpp78 ImplicitNullChecks.cpp79 IndirectBrExpandPass.cpp80 InitUndef.cpp81 InlineSpiller.cpp82 InterferenceCache.cpp83 InterleavedAccessPass.cpp84 InterleavedLoadCombinePass.cpp85 IntrinsicLowering.cpp86 JMCInstrumenter.cpp87 KCFI.cpp88 LatencyPriorityQueue.cpp89 LazyMachineBlockFrequencyInfo.cpp90 LexicalScopes.cpp91 LibcallLoweringInfo.cpp92 LiveDebugVariables.cpp93 LiveIntervals.cpp94 LiveInterval.cpp95 LiveIntervalUnion.cpp96 LivePhysRegs.cpp97 LiveRangeCalc.cpp98 LiveIntervalCalc.cpp99 LiveRangeEdit.cpp100 LiveRangeShrink.cpp101 LiveRegMatrix.cpp102 LiveRegUnits.cpp103 LiveStacks.cpp104 LiveVariables.cpp105 CodeGenTargetMachineImpl.cpp106 LocalStackSlotAllocation.cpp107 LoopTraversal.cpp108 LowLevelTypeUtils.cpp109 LowerEmuTLS.cpp110 MachineBasicBlock.cpp111 MachineBlockFrequencyInfo.cpp112 MachineBlockHashInfo.cpp113 MachineBlockPlacement.cpp114 MachineBranchProbabilityInfo.cpp115 MachineCFGPrinter.cpp116 MachineCombiner.cpp117 MachineConvergenceVerifier.cpp118 MachineCopyPropagation.cpp119 MachineCSE.cpp120 MachineCheckDebugify.cpp121 MachineCycleAnalysis.cpp122 MachineDebugify.cpp123 MachineDomTreeUpdater.cpp124 MachineDominanceFrontier.cpp125 MachineDominators.cpp126 MachineFrameInfo.cpp127 MachineFunction.cpp128 MachineFunctionPass.cpp129 MachineFunctionPrinterPass.cpp130 MachineFunctionSplitter.cpp131 MachineInstrBundle.cpp132 MachineInstr.cpp133 MachineLateInstrsCleanup.cpp134 MachineLICM.cpp135 MachineLoopInfo.cpp136 MachineLoopUtils.cpp137 MachineModuleInfo.cpp138 MachineModuleInfoImpls.cpp139 MachineModuleSlotTracker.cpp140 MachineOperand.cpp141 MachineOptimizationRemarkEmitter.cpp142 MachineOutliner.cpp143 MachinePassManager.cpp144 MachinePipeliner.cpp145 MachinePostDominators.cpp146 MachineRegionInfo.cpp147 MachineRegisterInfo.cpp148 MachineScheduler.cpp149 MachineSink.cpp150 MachineSizeOpts.cpp151 MachineSSAContext.cpp152 MachineSSAUpdater.cpp153 MachineStripDebug.cpp154 MachineTraceMetrics.cpp155 MachineUniformityAnalysis.cpp156 MachineVerifier.cpp157 MIRFSDiscriminator.cpp158 MIRSampleProfile.cpp159 MIRYamlMapping.cpp160 MIR2Vec.cpp161 MLRegAllocEvictAdvisor.cpp162 MLRegAllocPriorityAdvisor.cpp163 ModuloSchedule.cpp164 MultiHazardRecognizer.cpp165 PatchableFunction.cpp166 MBFIWrapper.cpp167 MIRPrinter.cpp168 MIRPrintingPass.cpp169 MacroFusion.cpp170 NonRelocatableStringpool.cpp171 OptimizePHIs.cpp172 PeepholeOptimizer.cpp173 PHIElimination.cpp174 PHIEliminationUtils.cpp175 PostRAHazardRecognizer.cpp176 PostRASchedulerList.cpp177 PreISelIntrinsicLowering.cpp178 ProcessImplicitDefs.cpp179 PrologEpilogInserter.cpp180 PseudoProbeInserter.cpp181 PseudoSourceValue.cpp182 RDFGraph.cpp183 RDFLiveness.cpp184 RDFRegisters.cpp185 ReachingDefAnalysis.cpp186 RegAllocBase.cpp187 RegAllocBasic.cpp188 RegAllocEvictionAdvisor.cpp189 RegAllocFast.cpp190 RegAllocGreedy.cpp191 RegAllocPBQP.cpp192 RegAllocPriorityAdvisor.cpp193 RegAllocScore.cpp194 RegisterClassInfo.cpp195 RegisterCoalescer.cpp196 RegisterPressure.cpp197 RegisterScavenging.cpp198 GCEmptyBasicBlocks.cpp199 RemoveRedundantDebugValues.cpp200 RenameIndependentSubregs.cpp201 MachineStableHash.cpp202 MIRVRegNamerUtils.cpp203 MIRNamerPass.cpp204 MIRCanonicalizerPass.cpp205 RegisterUsageInfo.cpp206 RegUsageInfoCollector.cpp207 RegUsageInfoPropagate.cpp208 RemoveLoadsIntoFakeUses.cpp209 ReplaceWithVeclib.cpp210 ResetMachineFunctionPass.cpp211 RegisterBank.cpp212 RegisterBankInfo.cpp213 SafeStack.cpp214 SafeStackLayout.cpp215 SanitizerBinaryMetadata.cpp216 ScheduleDAG.cpp217 ScheduleDAGInstrs.cpp218 ScheduleDAGPrinter.cpp219 ScoreboardHazardRecognizer.cpp220 SelectOptimize.cpp221 ShadowStackGCLowering.cpp222 ShrinkWrap.cpp223 SjLjEHPrepare.cpp224 SlotIndexes.cpp225 SpillPlacement.cpp226 SplitKit.cpp227 StackColoring.cpp228 StackFrameLayoutAnalysisPass.cpp229 StackMapLivenessAnalysis.cpp230 StackMaps.cpp231 StackProtector.cpp232 StackSlotColoring.cpp233 StaticDataSplitter.cpp234 StaticDataAnnotator.cpp235 SwiftErrorValueTracking.cpp236 SwitchLoweringUtils.cpp237 TailDuplication.cpp238 TailDuplicator.cpp239 TargetFrameLoweringImpl.cpp240 TargetInstrInfo.cpp241 TargetLoweringBase.cpp242 TargetLoweringObjectFileImpl.cpp243 TargetOptionsImpl.cpp244 TargetPassConfig.cpp245 TargetRegisterInfo.cpp246 TargetSchedule.cpp247 TargetSubtargetInfo.cpp248 TwoAddressInstructionPass.cpp249 TypePromotion.cpp250 UnreachableBlockElim.cpp251 ValueTypes.cpp252 VLIWMachineScheduler.cpp253 VirtRegMap.cpp254 WasmEHPrepare.cpp255 WindowScheduler.cpp256 WindowsSecureHotPatching.cpp257 WinEHPrepare.cpp258 XRayInstrumentation.cpp259 ${GeneratedMLSources}260 261 LiveDebugValues/LiveDebugValues.cpp262 LiveDebugValues/VarLocBasedImpl.cpp263 LiveDebugValues/InstrRefBasedImpl.cpp264 265 ADDITIONAL_HEADER_DIRS266 ${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen267 ${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen/PBQP268 269 LINK_LIBS ${LLVM_PTHREAD_LIB} ${MLLinkDeps}270 271 DEPENDS272 intrinsics_gen273 vt_gen274 ${MLDeps}275 276 LINK_COMPONENTS277 Analysis278 BitReader279 BitWriter280 CGData281 CodeGenTypes282 Core283 MC284 ObjCARC285 ProfileData286 Scalar287 Support288 Target289 TargetParser290 TransformUtils291 )292 293add_subdirectory(SelectionDAG)294add_subdirectory(AsmPrinter)295add_subdirectory(MIRParser)296add_subdirectory(GlobalISel)297