1set(system_libs)
2if(CMAKE_HOST_UNIX AND LLVM_ENABLE_THREADS AND HAVE_LIBPTHREAD)
3  set(system_libs ${system_libs} pthread)
4endif()
5
6add_llvm_library(LLVMCodeGen
7  AggressiveAntiDepBreaker.cpp
8  AllocationOrder.cpp
9  Analysis.cpp
10  AtomicExpandPass.cpp
11  BasicTargetTransformInfo.cpp
12  BranchFolding.cpp
13  BuiltinGCs.cpp
14  CalcSpillWeights.cpp
15  CallingConvLower.cpp
16  CodeGen.cpp
17  CodeGenPrepare.cpp
18  CriticalAntiDepBreaker.cpp
19  DeadMachineInstructionElim.cpp
20  DFAPacketizer.cpp
21  DwarfEHPrepare.cpp
22  EarlyIfConversion.cpp
23  EdgeBundles.cpp
24  ExecutionDepsFix.cpp
25  ExpandISelPseudos.cpp
26  ExpandPostRAPseudos.cpp
27  FaultMaps.cpp
28  FuncletLayout.cpp
29  GCMetadata.cpp
30  GCMetadataPrinter.cpp
31  GCRootLowering.cpp
32  GCStrategy.cpp
33  GlobalMerge.cpp
34  IfConversion.cpp
35  ImplicitNullChecks.cpp
36  InlineSpiller.cpp
37  InterferenceCache.cpp
38  InterleavedAccessPass.cpp
39  IntrinsicLowering.cpp
40  LatencyPriorityQueue.cpp
41  LexicalScopes.cpp
42  LiveDebugValues.cpp
43  LiveDebugVariables.cpp
44  LiveIntervalAnalysis.cpp
45  LiveInterval.cpp
46  LiveIntervalUnion.cpp
47  LivePhysRegs.cpp
48  LiveRangeCalc.cpp
49  LiveRangeEdit.cpp
50  LiveRegMatrix.cpp
51  LiveStackAnalysis.cpp
52  LiveVariables.cpp
53  LLVMTargetMachine.cpp
54  LocalStackSlotAllocation.cpp
55  LowerEmuTLS.cpp
56  MachineBasicBlock.cpp
57  MachineBlockFrequencyInfo.cpp
58  MachineBlockPlacement.cpp
59  MachineBranchProbabilityInfo.cpp
60  MachineCombiner.cpp
61  MachineCopyPropagation.cpp
62  MachineCSE.cpp
63  MachineDominanceFrontier.cpp
64  MachineDominators.cpp
65  MachineFunctionAnalysis.cpp
66  MachineFunction.cpp
67  MachineFunctionPass.cpp
68  MachineFunctionPrinterPass.cpp
69  MachineInstrBundle.cpp
70  MachineInstr.cpp
71  MachineLICM.cpp
72  MachineLoopInfo.cpp
73  MachineModuleInfo.cpp
74  MachineModuleInfoImpls.cpp
75  MachinePassRegistry.cpp
76  MachinePostDominators.cpp
77  MachineRegionInfo.cpp
78  MachineRegisterInfo.cpp
79  MachineScheduler.cpp
80  MachineSink.cpp
81  MachineSSAUpdater.cpp
82  MachineTraceMetrics.cpp
83  MachineVerifier.cpp
84  MIRPrinter.cpp
85  MIRPrintingPass.cpp
86  OptimizePHIs.cpp
87  ParallelCG.cpp
88  Passes.cpp
89  PeepholeOptimizer.cpp
90  PHIElimination.cpp
91  PHIEliminationUtils.cpp
92  PostRASchedulerList.cpp
93  ProcessImplicitDefs.cpp
94  PrologEpilogInserter.cpp
95  PseudoSourceValue.cpp
96  RegAllocBase.cpp
97  RegAllocBasic.cpp
98  RegAllocFast.cpp
99  RegAllocGreedy.cpp
100  RegAllocPBQP.cpp
101  RegisterClassInfo.cpp
102  RegisterCoalescer.cpp
103  RegisterPressure.cpp
104  RegisterScavenging.cpp
105  SafeStack.cpp
106  ScheduleDAG.cpp
107  ScheduleDAGInstrs.cpp
108  ScheduleDAGPrinter.cpp
109  ScoreboardHazardRecognizer.cpp
110  ShadowStackGCLowering.cpp
111  ShrinkWrap.cpp
112  SjLjEHPrepare.cpp
113  SlotIndexes.cpp
114  SpillPlacement.cpp
115  SplitKit.cpp
116  StackColoring.cpp
117  StackMapLivenessAnalysis.cpp
118  StackMaps.cpp
119  StackProtector.cpp
120  StackSlotColoring.cpp
121  TailDuplication.cpp
122  TargetFrameLoweringImpl.cpp
123  TargetInstrInfo.cpp
124  TargetLoweringBase.cpp
125  TargetLoweringObjectFileImpl.cpp
126  TargetOptionsImpl.cpp
127  TargetRegisterInfo.cpp
128  TargetSchedule.cpp
129  TwoAddressInstructionPass.cpp
130  UnreachableBlockElim.cpp
131  VirtRegMap.cpp
132  WinEHPrepare.cpp
133
134  ADDITIONAL_HEADER_DIRS
135  ${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen
136  ${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen/PBQP
137
138  LINK_LIBS ${system_libs}
139  )
140
141add_dependencies(LLVMCodeGen intrinsics_gen)
142
143add_subdirectory(SelectionDAG)
144add_subdirectory(AsmPrinter)
145add_subdirectory(MIRParser)
146add_subdirectory(GlobalISel)
147