1if (DEFINED LLVM_HAVE_TF_AOT OR LLVM_HAVE_TFLITE) 2 include(TensorFlowCompile) 3 set(LLVM_INLINER_MODEL_PATH_DEFAULT "models/inliner-Oz") 4 5 set(LLVM_INLINER_MODEL_CURRENT_URL "<UNSPECIFIED>" CACHE STRING "URL to download the LLVM inliner model") 6 7 if (DEFINED LLVM_HAVE_TF_AOT) 8 tf_find_and_compile( 9 ${LLVM_INLINER_MODEL_PATH} 10 ${LLVM_INLINER_MODEL_CURRENT_URL} 11 ${LLVM_INLINER_MODEL_PATH_DEFAULT} 12 "models/gen-inline-oz-test-model.py" 13 serve 14 action 15 InlinerSizeModel 16 llvm::InlinerSizeModel 17 ) 18 endif() 19 20 if (LLVM_HAVE_TFLITE) 21 list(APPEND MLLinkDeps 22 tensorflow-lite::tensorflow-lite) 23 endif() 24endif() 25 26add_llvm_component_library(LLVMAnalysis 27 AliasAnalysis.cpp 28 AliasAnalysisEvaluator.cpp 29 AliasSetTracker.cpp 30 Analysis.cpp 31 AssumeBundleQueries.cpp 32 AssumptionCache.cpp 33 BasicAliasAnalysis.cpp 34 BlockFrequencyInfo.cpp 35 BlockFrequencyInfoImpl.cpp 36 BranchProbabilityInfo.cpp 37 CFG.cpp 38 CFGPrinter.cpp 39 CFGSCCPrinter.cpp 40 CGSCCPassManager.cpp 41 CallGraph.cpp 42 CallGraphSCCPass.cpp 43 CallPrinter.cpp 44 CaptureTracking.cpp 45 CmpInstAnalysis.cpp 46 CostModel.cpp 47 CodeMetrics.cpp 48 ConstantFolding.cpp 49 CtxProfAnalysis.cpp 50 CycleAnalysis.cpp 51 DDG.cpp 52 DDGPrinter.cpp 53 ConstraintSystem.cpp 54 Delinearization.cpp 55 DemandedBits.cpp 56 DependenceAnalysis.cpp 57 DependenceGraphBuilder.cpp 58 DevelopmentModeInlineAdvisor.cpp 59 DomConditionCache.cpp 60 DomPrinter.cpp 61 DomTreeUpdater.cpp 62 DominanceFrontier.cpp 63 DXILResource.cpp 64 DXILMetadataAnalysis.cpp 65 FunctionPropertiesAnalysis.cpp 66 GlobalsModRef.cpp 67 GuardUtils.cpp 68 HeatUtils.cpp 69 IRSimilarityIdentifier.cpp 70 IVDescriptors.cpp 71 IVUsers.cpp 72 ImportedFunctionsInliningStatistics.cpp 73 IndirectCallPromotionAnalysis.cpp 74 InlineCost.cpp 75 InlineAdvisor.cpp 76 InlineOrder.cpp 77 InlineSizeEstimatorAnalysis.cpp 78 InstCount.cpp 79 InstructionPrecedenceTracking.cpp 80 InstructionSimplify.cpp 81 InteractiveModelRunner.cpp 82 KernelInfo.cpp 83 LastRunTrackingAnalysis.cpp 84 LazyBranchProbabilityInfo.cpp 85 LazyBlockFrequencyInfo.cpp 86 LazyCallGraph.cpp 87 LazyValueInfo.cpp 88 Lint.cpp 89 Loads.cpp 90 Local.cpp 91 LoopAccessAnalysis.cpp 92 LoopAnalysisManager.cpp 93 LoopCacheAnalysis.cpp 94 LoopNestAnalysis.cpp 95 LoopUnrollAnalyzer.cpp 96 LoopInfo.cpp 97 LoopPass.cpp 98 MLInlineAdvisor.cpp 99 MemDerefPrinter.cpp 100 MemoryBuiltins.cpp 101 MemoryDependenceAnalysis.cpp 102 MemoryLocation.cpp 103 MemoryProfileInfo.cpp 104 MemorySSA.cpp 105 MemorySSAUpdater.cpp 106 ModelUnderTrainingRunner.cpp 107 ModuleDebugInfoPrinter.cpp 108 ModuleSummaryAnalysis.cpp 109 MustExecute.cpp 110 NoInferenceModelRunner.cpp 111 ObjCARCAliasAnalysis.cpp 112 ObjCARCAnalysisUtils.cpp 113 ObjCARCInstKind.cpp 114 OptimizationRemarkEmitter.cpp 115 OverflowInstAnalysis.cpp 116 PHITransAddr.cpp 117 PhiValues.cpp 118 PostDominators.cpp 119 ProfileSummaryInfo.cpp 120 PtrUseVisitor.cpp 121 RegionInfo.cpp 122 RegionPass.cpp 123 RegionPrinter.cpp 124 ReplayInlineAdvisor.cpp 125 ScalarEvolution.cpp 126 ScalarEvolutionAliasAnalysis.cpp 127 ScalarEvolutionDivision.cpp 128 ScalarEvolutionNormalization.cpp 129 StackLifetime.cpp 130 StackSafetyAnalysis.cpp 131 StructuralHash.cpp 132 SyntheticCountsUtils.cpp 133 TFLiteUtils.cpp 134 TargetLibraryInfo.cpp 135 TargetTransformInfo.cpp 136 TensorSpec.cpp 137 Trace.cpp 138 TrainingLogger.cpp 139 TypeBasedAliasAnalysis.cpp 140 TypeMetadataUtils.cpp 141 UniformityAnalysis.cpp 142 ScopedNoAliasAA.cpp 143 ValueLattice.cpp 144 ValueLatticeUtils.cpp 145 ValueTracking.cpp 146 VectorUtils.cpp 147 ${GeneratedMLSources} 148 149 ADDITIONAL_HEADER_DIRS 150 ${LLVM_MAIN_INCLUDE_DIR}/llvm/Analysis 151 152 DEPENDS 153 intrinsics_gen 154 ${MLDeps} 155 156 LINK_LIBS 157 ${MLLinkDeps} 158 159 LINK_COMPONENTS 160 BinaryFormat 161 Core 162 Object 163 ProfileData 164 Support 165 TargetParser 166 ) 167 168include(CheckCXXSymbolExists) 169check_cxx_symbol_exists(logf128 math.h HAS_LOGF128) 170if(HAS_LOGF128) 171 target_compile_definitions(LLVMAnalysis PRIVATE HAS_LOGF128) 172endif() 173