xref: /llvm-project/llvm/lib/Analysis/CMakeLists.txt (revision 18f8106f310ee702046a11f360af47947c030d2e)
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