1add_llvm_component_library(LLVMCodeGen
2  AggressiveAntiDepBreaker.cpp
3  AllocationOrder.cpp
4  Analysis.cpp
5  AtomicExpandPass.cpp
6  BasicTargetTransformInfo.cpp
7  BranchFolding.cpp
8  BranchRelaxation.cpp
9  BreakFalseDeps.cpp
10  BasicBlockSections.cpp
11  CalcSpillWeights.cpp
12  CallingConvLower.cpp
13  CFGuardLongjmp.cpp
14  CFIInstrInserter.cpp
15  CodeGen.cpp
16  CodeGenPassBuilder.cpp
17  CodeGenPrepare.cpp
18  CommandFlags.cpp
19  CriticalAntiDepBreaker.cpp
20  DeadMachineInstructionElim.cpp
21  DetectDeadLanes.cpp
22  DFAPacketizer.cpp
23  DwarfEHPrepare.cpp
24  EarlyIfConversion.cpp
25  EdgeBundles.cpp
26  EHContGuardCatchret.cpp
27  ExecutionDomainFix.cpp
28  ExpandMemCmp.cpp
29  ExpandPostRAPseudos.cpp
30  ExpandReductions.cpp
31  ExpandVectorPredication.cpp
32  FaultMaps.cpp
33  FEntryInserter.cpp
34  FinalizeISel.cpp
35  FixupStatepointCallerSaved.cpp
36  FuncletLayout.cpp
37  GCMetadata.cpp
38  GCMetadataPrinter.cpp
39  GCRootLowering.cpp
40  GlobalMerge.cpp
41  HardwareLoops.cpp
42  IfConversion.cpp
43  ImplicitNullChecks.cpp
44  IndirectBrExpandPass.cpp
45  InlineSpiller.cpp
46  InterferenceCache.cpp
47  InterleavedAccessPass.cpp
48  InterleavedLoadCombinePass.cpp
49  IntrinsicLowering.cpp
50  LatencyPriorityQueue.cpp
51  LazyMachineBlockFrequencyInfo.cpp
52  LexicalScopes.cpp
53  LiveDebugVariables.cpp
54  LiveIntervals.cpp
55  LiveInterval.cpp
56  LiveIntervalUnion.cpp
57  LivePhysRegs.cpp
58  LiveRangeCalc.cpp
59  LiveIntervalCalc.cpp
60  LiveRangeEdit.cpp
61  LiveRangeShrink.cpp
62  LiveRegMatrix.cpp
63  LiveRegUnits.cpp
64  LiveStacks.cpp
65  LiveVariables.cpp
66  LLVMTargetMachine.cpp
67  LocalStackSlotAllocation.cpp
68  LoopTraversal.cpp
69  LowLevelType.cpp
70  LowerEmuTLS.cpp
71  MachineBasicBlock.cpp
72  MachineBlockFrequencyInfo.cpp
73  MachineBlockPlacement.cpp
74  MachineBranchProbabilityInfo.cpp
75  MachineCombiner.cpp
76  MachineCopyPropagation.cpp
77  MachineCSE.cpp
78  MachineCheckDebugify.cpp
79  MachineDebugify.cpp
80  MachineDominanceFrontier.cpp
81  MachineDominators.cpp
82  MachineFrameInfo.cpp
83  MachineFunction.cpp
84  MachineFunctionPass.cpp
85  MachineFunctionPrinterPass.cpp
86  MachineFunctionSplitter.cpp
87  MachineInstrBundle.cpp
88  MachineInstr.cpp
89  MachineLICM.cpp
90  MachineLoopInfo.cpp
91  MachineLoopUtils.cpp
92  MachineModuleInfo.cpp
93  MachineModuleInfoImpls.cpp
94  MachineModuleSlotTracker.cpp
95  MachineOperand.cpp
96  MachineOptimizationRemarkEmitter.cpp
97  MachineOutliner.cpp
98  MachinePassManager.cpp
99  MachinePipeliner.cpp
100  MachinePostDominators.cpp
101  MachineRegionInfo.cpp
102  MachineRegisterInfo.cpp
103  MachineScheduler.cpp
104  MachineSink.cpp
105  MachineSizeOpts.cpp
106  MachineSSAUpdater.cpp
107  MachineStripDebug.cpp
108  MachineTraceMetrics.cpp
109  MachineVerifier.cpp
110  MIRFSDiscriminator.cpp
111  MIRYamlMapping.cpp
112  ModuloSchedule.cpp
113  MultiHazardRecognizer.cpp
114  PatchableFunction.cpp
115  MBFIWrapper.cpp
116  MIRPrinter.cpp
117  MIRPrintingPass.cpp
118  MacroFusion.cpp
119  NonRelocatableStringpool.cpp
120  OptimizePHIs.cpp
121  ParallelCG.cpp
122  PeepholeOptimizer.cpp
123  PHIElimination.cpp
124  PHIEliminationUtils.cpp
125  PostRAHazardRecognizer.cpp
126  PostRASchedulerList.cpp
127  PreISelIntrinsicLowering.cpp
128  ProcessImplicitDefs.cpp
129  PrologEpilogInserter.cpp
130  PseudoProbeInserter.cpp
131  PseudoSourceValue.cpp
132  RDFGraph.cpp
133  RDFLiveness.cpp
134  RDFRegisters.cpp
135  ReachingDefAnalysis.cpp
136  RegAllocBase.cpp
137  RegAllocBasic.cpp
138  RegAllocFast.cpp
139  RegAllocGreedy.cpp
140  RegAllocPBQP.cpp
141  RegisterClassInfo.cpp
142  RegisterCoalescer.cpp
143  RegisterPressure.cpp
144  RegisterScavenging.cpp
145  RemoveRedundantDebugValues.cpp
146  RenameIndependentSubregs.cpp
147  MachineStableHash.cpp
148  MIRVRegNamerUtils.cpp
149  MIRNamerPass.cpp
150  MIRCanonicalizerPass.cpp
151  RegisterUsageInfo.cpp
152  RegUsageInfoCollector.cpp
153  RegUsageInfoPropagate.cpp
154  ReplaceWithVeclib.cpp
155  ResetMachineFunctionPass.cpp
156  SafeStack.cpp
157  SafeStackLayout.cpp
158  ScheduleDAG.cpp
159  ScheduleDAGInstrs.cpp
160  ScheduleDAGPrinter.cpp
161  ScoreboardHazardRecognizer.cpp
162  ShadowStackGCLowering.cpp
163  ShrinkWrap.cpp
164  SjLjEHPrepare.cpp
165  SlotIndexes.cpp
166  SpillPlacement.cpp
167  SplitKit.cpp
168  StackColoring.cpp
169  StackMapLivenessAnalysis.cpp
170  StackMaps.cpp
171  StackProtector.cpp
172  StackSlotColoring.cpp
173  SwiftErrorValueTracking.cpp
174  SwitchLoweringUtils.cpp
175  TailDuplication.cpp
176  TailDuplicator.cpp
177  TargetFrameLoweringImpl.cpp
178  TargetInstrInfo.cpp
179  TargetLoweringBase.cpp
180  TargetLoweringObjectFileImpl.cpp
181  TargetOptionsImpl.cpp
182  TargetPassConfig.cpp
183  TargetRegisterInfo.cpp
184  TargetSchedule.cpp
185  TargetSubtargetInfo.cpp
186  TypePromotion.cpp
187  TwoAddressInstructionPass.cpp
188  UnreachableBlockElim.cpp
189  ValueTypes.cpp
190  VirtRegMap.cpp
191  WasmEHPrepare.cpp
192  WinEHPrepare.cpp
193  XRayInstrumentation.cpp
194
195  LiveDebugValues/LiveDebugValues.cpp
196  LiveDebugValues/VarLocBasedImpl.cpp
197  LiveDebugValues/InstrRefBasedImpl.cpp
198
199  ADDITIONAL_HEADER_DIRS
200  ${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen
201  ${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen/PBQP
202
203  LINK_LIBS ${LLVM_PTHREAD_LIB}
204
205  DEPENDS
206  intrinsics_gen
207
208  LINK_COMPONENTS
209  Analysis
210  BitReader
211  BitWriter
212  Core
213  MC
214  ProfileData
215  Scalar
216  Support
217  Target
218  TransformUtils
219  )
220
221add_subdirectory(SelectionDAG)
222add_subdirectory(AsmPrinter)
223add_subdirectory(MIRParser)
224add_subdirectory(GlobalISel)
225