[RISCV] Fix mgather -> riscv.masked.strided.load combine not extending indices (...
[llvm-project.git] / llvm / lib / CodeGen / CMakeLists.txt
blobdf2d1831ee5fdbfeb8967708490f64434559924b
1 if (DEFINED LLVM_HAVE_TF_AOT OR LLVM_HAVE_TFLITE)
2   include(TensorFlowCompile)
3   set(LLVM_RAEVICT_MODEL_PATH_DEFAULT "models/regalloc-eviction")
5   set(LLVM_RAEVICT_MODEL_CURRENT_URL "<UNSPECIFIED>" CACHE STRING "URL to download the LLVM register allocator eviction model")
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       serve
14       action
15       RegAllocEvictModel
16       llvm::RegAllocEvictModel
17     )
18   endif()
20   if (LLVM_HAVE_TFLITE)
21     list(APPEND MLLinkDeps ${tensorflow_c_api} ${tensorflow_fx})
22   endif()
23 endif()
25 # This provides the implementation of MVT and LLT.
26 # Be careful to append deps on this, since Targets' tablegens depend on this.
27 add_llvm_component_library(LLVMCodeGenTypes
28   LowLevelType.cpp
29   PARTIAL_SOURCES_INTENDED
31   DEPENDS
32   vt_gen
34   LINK_COMPONENTS
35   Support
36   )
38 add_llvm_component_library(LLVMCodeGen
39   AggressiveAntiDepBreaker.cpp
40   AllocationOrder.cpp
41   Analysis.cpp
42   AssignmentTrackingAnalysis.cpp
43   AtomicExpandPass.cpp
44   BasicTargetTransformInfo.cpp
45   BranchFolding.cpp
46   BranchRelaxation.cpp
47   BreakFalseDeps.cpp
48   BasicBlockSections.cpp
49   BasicBlockPathCloning.cpp
50   BasicBlockSectionsProfileReader.cpp
51   CalcSpillWeights.cpp
52   CallBrPrepare.cpp
53   CallingConvLower.cpp
54   CFGuardLongjmp.cpp
55   CFIFixup.cpp
56   CFIInstrInserter.cpp
57   CodeGen.cpp
58   CodeGenCommonISel.cpp
59   CodeGenPassBuilder.cpp
60   CodeGenPrepare.cpp
61   CommandFlags.cpp
62   ComplexDeinterleavingPass.cpp
63   CriticalAntiDepBreaker.cpp
64   DeadMachineInstructionElim.cpp
65   DetectDeadLanes.cpp
66   DFAPacketizer.cpp
67   DwarfEHPrepare.cpp
68   EarlyIfConversion.cpp
69   EdgeBundles.cpp
70   EHContGuardCatchret.cpp
71   ExecutionDomainFix.cpp
72   ExpandLargeDivRem.cpp
73   ExpandLargeFpConvert.cpp
74   ExpandMemCmp.cpp
75   ExpandPostRAPseudos.cpp
76   ExpandReductions.cpp
77   ExpandVectorPredication.cpp
78   FaultMaps.cpp
79   FEntryInserter.cpp
80   FinalizeISel.cpp
81   FixupStatepointCallerSaved.cpp
82   FuncletLayout.cpp
83   GCMetadata.cpp
84   GCMetadataPrinter.cpp
85   GCRootLowering.cpp
86   GlobalMerge.cpp
87   HardwareLoops.cpp
88   IfConversion.cpp
89   ImplicitNullChecks.cpp
90   IndirectBrExpandPass.cpp
91   InlineSpiller.cpp
92   InterferenceCache.cpp
93   InterleavedAccessPass.cpp
94   InterleavedLoadCombinePass.cpp
95   IntrinsicLowering.cpp
96   JMCInstrumenter.cpp
97   KCFI.cpp
98   LatencyPriorityQueue.cpp
99   LazyMachineBlockFrequencyInfo.cpp
100   LexicalScopes.cpp
101   LiveDebugVariables.cpp
102   LiveIntervals.cpp
103   LiveInterval.cpp
104   LiveIntervalUnion.cpp
105   LivePhysRegs.cpp
106   LiveRangeCalc.cpp
107   LiveIntervalCalc.cpp
108   LiveRangeEdit.cpp
109   LiveRangeShrink.cpp
110   LiveRegMatrix.cpp
111   LiveRegUnits.cpp
112   LiveStacks.cpp
113   LiveVariables.cpp
114   LLVMTargetMachine.cpp
115   LocalStackSlotAllocation.cpp
116   LoopTraversal.cpp
117   LowLevelTypeUtils.cpp
118   LowerEmuTLS.cpp
119   MachineBasicBlock.cpp
120   MachineBlockFrequencyInfo.cpp
121   MachineBlockPlacement.cpp
122   MachineBranchProbabilityInfo.cpp
123   MachineCFGPrinter.cpp
124   MachineCombiner.cpp
125   MachineCopyPropagation.cpp
126   MachineCSE.cpp
127   MachineCheckDebugify.cpp
128   MachineCycleAnalysis.cpp
129   MachineDebugify.cpp
130   MachineDominanceFrontier.cpp
131   MachineDominators.cpp
132   MachineFrameInfo.cpp
133   MachineFunction.cpp
134   MachineFunctionPass.cpp
135   MachineFunctionPrinterPass.cpp
136   MachineFunctionSplitter.cpp
137   MachineInstrBundle.cpp
138   MachineInstr.cpp
139   MachineLateInstrsCleanup.cpp
140   MachineLICM.cpp
141   MachineLoopInfo.cpp
142   MachineLoopUtils.cpp
143   MachineModuleInfo.cpp
144   MachineModuleInfoImpls.cpp
145   MachineModuleSlotTracker.cpp
146   MachineOperand.cpp
147   MachineOptimizationRemarkEmitter.cpp
148   MachineOutliner.cpp
149   MachinePassManager.cpp
150   MachinePipeliner.cpp
151   MachinePostDominators.cpp
152   MachineRegionInfo.cpp
153   MachineRegisterInfo.cpp
154   MachineScheduler.cpp
155   MachineSink.cpp
156   MachineSizeOpts.cpp
157   MachineSSAContext.cpp
158   MachineSSAUpdater.cpp
159   MachineStripDebug.cpp
160   MachineTraceMetrics.cpp
161   MachineUniformityAnalysis.cpp
162   MachineVerifier.cpp
163   MIRFSDiscriminator.cpp
164   MIRSampleProfile.cpp
165   MIRYamlMapping.cpp
166   MLRegAllocEvictAdvisor.cpp
167   MLRegAllocPriorityAdvisor.cpp
168   ModuloSchedule.cpp
169   MultiHazardRecognizer.cpp
170   PatchableFunction.cpp
171   MBFIWrapper.cpp
172   MIRPrinter.cpp
173   MIRPrintingPass.cpp
174   MacroFusion.cpp
175   NonRelocatableStringpool.cpp
176   OptimizePHIs.cpp
177   ParallelCG.cpp
178   PeepholeOptimizer.cpp
179   PHIElimination.cpp
180   PHIEliminationUtils.cpp
181   PostRAHazardRecognizer.cpp
182   PostRASchedulerList.cpp
183   PreISelIntrinsicLowering.cpp
184   ProcessImplicitDefs.cpp
185   PrologEpilogInserter.cpp
186   PseudoProbeInserter.cpp
187   PseudoSourceValue.cpp
188   RDFGraph.cpp
189   RDFLiveness.cpp
190   RDFRegisters.cpp
191   ReachingDefAnalysis.cpp
192   RegAllocBase.cpp
193   RegAllocBasic.cpp
194   RegAllocEvictionAdvisor.cpp
195   RegAllocFast.cpp
196   RegAllocGreedy.cpp
197   RegAllocPBQP.cpp
198   RegAllocPriorityAdvisor.cpp
199   RegAllocScore.cpp
200   RegisterClassInfo.cpp
201   RegisterCoalescer.cpp
202   RegisterPressure.cpp
203   RegisterScavenging.cpp
204   GCEmptyBasicBlocks.cpp
205   RemoveRedundantDebugValues.cpp
206   RenameIndependentSubregs.cpp
207   MachineStableHash.cpp
208   MIRVRegNamerUtils.cpp
209   MIRNamerPass.cpp
210   MIRCanonicalizerPass.cpp
211   RegisterUsageInfo.cpp
212   RegUsageInfoCollector.cpp
213   RegUsageInfoPropagate.cpp
214   ReplaceWithVeclib.cpp
215   ResetMachineFunctionPass.cpp
216   RegisterBank.cpp
217   RegisterBankInfo.cpp
218   SafeStack.cpp
219   SafeStackLayout.cpp
220   SanitizerBinaryMetadata.cpp
221   ScheduleDAG.cpp
222   ScheduleDAGInstrs.cpp
223   ScheduleDAGPrinter.cpp
224   ScoreboardHazardRecognizer.cpp
225   SelectOptimize.cpp
226   ShadowStackGCLowering.cpp
227   ShrinkWrap.cpp
228   SjLjEHPrepare.cpp
229   SlotIndexes.cpp
230   SpillPlacement.cpp
231   SplitKit.cpp
232   StackColoring.cpp
233   StackFrameLayoutAnalysisPass.cpp
234   StackMapLivenessAnalysis.cpp
235   StackMaps.cpp
236   StackProtector.cpp
237   StackSlotColoring.cpp
238   SwiftErrorValueTracking.cpp
239   SwitchLoweringUtils.cpp
240   TailDuplication.cpp
241   TailDuplicator.cpp
242   TargetFrameLoweringImpl.cpp
243   TargetInstrInfo.cpp
244   TargetLoweringBase.cpp
245   TargetLoweringObjectFileImpl.cpp
246   TargetOptionsImpl.cpp
247   TargetPassConfig.cpp
248   TargetRegisterInfo.cpp
249   TargetSchedule.cpp
250   TargetSubtargetInfo.cpp
251   TwoAddressInstructionPass.cpp
252   TypePromotion.cpp
253   UnreachableBlockElim.cpp
254   ValueTypes.cpp
255   VLIWMachineScheduler.cpp
256   VirtRegMap.cpp
257   WasmEHPrepare.cpp
258   WinEHPrepare.cpp
259   XRayInstrumentation.cpp
260   ${GeneratedMLSources}
262   LiveDebugValues/LiveDebugValues.cpp
263   LiveDebugValues/VarLocBasedImpl.cpp
264   LiveDebugValues/InstrRefBasedImpl.cpp
266   ADDITIONAL_HEADER_DIRS
267   ${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen
268   ${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen/PBQP
270   LINK_LIBS ${LLVM_PTHREAD_LIB} ${MLLinkDeps}
272   DEPENDS
273   intrinsics_gen
274   ${MLDeps}
276   LINK_COMPONENTS
277   Analysis
278   BitReader
279   BitWriter
280   CodeGenTypes
281   Core
282   MC
283   ObjCARC
284   ProfileData
285   Scalar
286   Support
287   Target
288   TargetParser
289   TransformUtils
290   )
292 add_subdirectory(SelectionDAG)
293 add_subdirectory(AsmPrinter)
294 add_subdirectory(MIRParser)
295 add_subdirectory(GlobalISel)