1if (DEFINED LLVM_HAVE_TF_AOT OR DEFINED LLVM_HAVE_TF_API)
2  include(TensorFlowCompile)
3  set(LLVM_INLINER_MODEL_PATH_DEFAULT "models/inliner-Oz")
4
5  set(LLVM_INLINER_MODEL_CURRENT_URL "<UNSPECIFIED>")
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 (DEFINED LLVM_HAVE_TF_API)
21    list(APPEND MLLinkDeps ${tensorflow_c_api} ${tensorflow_fx})
22  endif()
23endif()
24
25add_llvm_component_library(LLVMAnalysis
26  AliasAnalysis.cpp
27  AliasAnalysisEvaluator.cpp
28  AliasAnalysisSummary.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  CFLAndersAliasAnalysis.cpp
40  CFLSteensAliasAnalysis.cpp
41  CGSCCPassManager.cpp
42  CallGraph.cpp
43  CallGraphSCCPass.cpp
44  CallPrinter.cpp
45  CaptureTracking.cpp
46  CmpInstAnalysis.cpp
47  CostModel.cpp
48  CodeMetrics.cpp
49  ConstantFolding.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  DivergenceAnalysis.cpp
60  DomPrinter.cpp
61  DomTreeUpdater.cpp
62  DominanceFrontier.cpp
63  EHPersonalities.cpp
64  FunctionPropertiesAnalysis.cpp
65  GlobalsModRef.cpp
66  GuardUtils.cpp
67  HeatUtils.cpp
68  IRSimilarityIdentifier.cpp
69  IVDescriptors.cpp
70  IVUsers.cpp
71  ImportedFunctionsInliningStatistics.cpp
72  IndirectCallPromotionAnalysis.cpp
73  InlineCost.cpp
74  InlineAdvisor.cpp
75  InlineSizeEstimatorAnalysis.cpp
76  InstCount.cpp
77  InstructionPrecedenceTracking.cpp
78  InstructionSimplify.cpp
79  Interval.cpp
80  IntervalPartition.cpp
81  LazyBranchProbabilityInfo.cpp
82  LazyBlockFrequencyInfo.cpp
83  LazyCallGraph.cpp
84  LazyValueInfo.cpp
85  LegacyDivergenceAnalysis.cpp
86  Lint.cpp
87  Loads.cpp
88  LoopAccessAnalysis.cpp
89  LoopAnalysisManager.cpp
90  LoopCacheAnalysis.cpp
91  LoopNestAnalysis.cpp
92  LoopUnrollAnalyzer.cpp
93  LoopInfo.cpp
94  LoopPass.cpp
95  MLInlineAdvisor.cpp
96  MemDepPrinter.cpp
97  MemDerefPrinter.cpp
98  MemoryBuiltins.cpp
99  MemoryDependenceAnalysis.cpp
100  MemoryLocation.cpp
101  MemorySSA.cpp
102  MemorySSAUpdater.cpp
103  ModelUnderTrainingRunner.cpp
104  ModuleDebugInfoPrinter.cpp
105  ModuleSummaryAnalysis.cpp
106  MustExecute.cpp
107  NoInferenceModelRunner.cpp
108  ObjCARCAliasAnalysis.cpp
109  ObjCARCAnalysisUtils.cpp
110  ObjCARCInstKind.cpp
111  OptimizationRemarkEmitter.cpp
112  OverflowInstAnalysis.cpp
113  PHITransAddr.cpp
114  PhiValues.cpp
115  PostDominators.cpp
116  ProfileSummaryInfo.cpp
117  PtrUseVisitor.cpp
118  RegionInfo.cpp
119  RegionPass.cpp
120  RegionPrinter.cpp
121  ReplayInlineAdvisor.cpp
122  ScalarEvolution.cpp
123  ScalarEvolutionAliasAnalysis.cpp
124  ScalarEvolutionDivision.cpp
125  ScalarEvolutionNormalization.cpp
126  StackLifetime.cpp
127  StackSafetyAnalysis.cpp
128  SyncDependenceAnalysis.cpp
129  SyntheticCountsUtils.cpp
130  TFUtils.cpp
131  TensorSpec.cpp
132  TargetLibraryInfo.cpp
133  TargetTransformInfo.cpp
134  Trace.cpp
135  TypeBasedAliasAnalysis.cpp
136  TypeMetadataUtils.cpp
137  ScopedNoAliasAA.cpp
138  ValueLattice.cpp
139  ValueLatticeUtils.cpp
140  ValueTracking.cpp
141  VectorUtils.cpp
142  VFABIDemangling.cpp
143  ${GeneratedMLSources}
144
145  ADDITIONAL_HEADER_DIRS
146  ${LLVM_MAIN_INCLUDE_DIR}/llvm/Analysis
147
148  DEPENDS
149  intrinsics_gen
150  ${MLDeps}
151
152  LINK_LIBS
153  ${MLLinkDeps}
154
155  LINK_COMPONENTS
156  BinaryFormat
157  Core
158  Object
159  ProfileData
160  Support
161  )
162