blob: 358a49f55f523673fc3e44d96fba1ad08e81cf40 [file] [log] [blame]
Peter Collingbourne79bf1132015-08-29 22:34:34 +00001set(system_libs)
2if(CMAKE_HOST_UNIX AND LLVM_ENABLE_THREADS AND HAVE_LIBPTHREAD)
3 set(system_libs ${system_libs} pthread)
4endif()
5
Oscar Fuentesa229b3c2008-09-22 01:08:49 +00006add_llvm_library(LLVMCodeGen
David Goodwinde11f362009-10-26 19:32:42 +00007 AggressiveAntiDepBreaker.cpp
Jakob Stoklund Olesen0c67e012010-12-10 18:36:02 +00008 AllocationOrder.cpp
Ted Kremenekd52caa52010-06-15 04:08:14 +00009 Analysis.cpp
Robin Morisset59c23cd2014-08-21 21:50:01 +000010 AtomicExpandPass.cpp
Chandler Carruth664e3542013-01-07 01:37:14 +000011 BasicTargetTransformInfo.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +000012 BranchFolding.cpp
Lang Hamesc73ca2b2009-12-14 07:43:25 +000013 CalcSpillWeights.cpp
Dan Gohman498e5f82010-07-07 15:15:27 +000014 CallingConvLower.cpp
Owen Anderson80fc0762010-10-07 18:41:20 +000015 CodeGen.cpp
Quentin Colombeta3490842014-02-22 00:07:45 +000016 CodeGenPrepare.cpp
Swaroop Sridhar665bc9c2015-05-20 01:07:23 +000017 CoreCLRGC.cpp
David Goodwin83704852009-10-26 16:59:04 +000018 CriticalAntiDepBreaker.cpp
Dylan Noblesmithc19f0b72011-12-01 21:49:23 +000019 DFAPacketizer.cpp
Benjamin Kramer56b31bd2013-01-11 20:05:37 +000020 DeadMachineInstructionElim.cpp
Duncan Sandsd6fb6502009-05-22 20:36:31 +000021 DwarfEHPrepare.cpp
Jakob Stoklund Olesenf8a63a12012-07-04 00:09:54 +000022 EarlyIfConversion.cpp
Jakob Stoklund Olesenf96ae682011-01-04 21:10:05 +000023 EdgeBundles.cpp
Duncan Sandsd58611a2013-03-25 14:12:21 +000024 ErlangGC.cpp
Jakob Stoklund Olesen934b7d72011-09-28 00:01:54 +000025 ExecutionDepsFix.cpp
Dan Gohmanc2b78612010-11-18 18:45:06 +000026 ExpandISelPseudos.cpp
Jakob Stoklund Olesenf152df12011-09-25 16:46:00 +000027 ExpandPostRAPseudos.cpp
Vikram TV859ad292015-12-16 11:09:48 +000028 LiveDebugValues.cpp
Sanjoy Dasc63244d2015-06-15 18:44:08 +000029 FaultMaps.cpp
David Majnemer97890232015-09-17 20:45:18 +000030 FuncletLayout.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +000031 GCMetadata.cpp
32 GCMetadataPrinter.cpp
Philip Reamesf27f3732015-01-15 19:29:42 +000033 GCRootLowering.cpp
Philip Reames56a03932015-01-26 18:26:35 +000034 GCStrategy.cpp
Jiangning Liu96e92c12014-06-13 22:57:59 +000035 GlobalMerge.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +000036 IfConversion.cpp
Sanjoy Das69fad072015-06-15 18:44:27 +000037 ImplicitNullChecks.cpp
Jakob Stoklund Olesenf8889112010-06-29 23:58:39 +000038 InlineSpiller.cpp
Jakob Stoklund Olesen91cbcaf2011-04-02 06:03:35 +000039 InterferenceCache.cpp
Hao Liu1c1e0c92015-06-26 02:10:27 +000040 InterleavedAccessPass.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +000041 IntrinsicLowering.cpp
42 LLVMTargetMachine.cpp
Dan Gohman60cb69e2008-11-19 23:18:57 +000043 LatencyPriorityQueue.cpp
Devang Patele1649c32011-08-10 19:04:06 +000044 LexicalScopes.cpp
Jakob Stoklund Olesend4900a62010-11-30 02:17:10 +000045 LiveDebugVariables.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +000046 LiveInterval.cpp
47 LiveIntervalAnalysis.cpp
Andrew Trick1c246052010-10-22 23:09:15 +000048 LiveIntervalUnion.cpp
Benjamin Kramer56b31bd2013-01-11 20:05:37 +000049 LiveRangeCalc.cpp
50 LiveRangeEdit.cpp
Jakob Stoklund Olesenc26fbbf2012-06-09 02:13:10 +000051 LiveRegMatrix.cpp
Juergen Ributzka310034e2013-12-14 06:52:56 +000052 LivePhysRegs.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +000053 LiveStackAnalysis.cpp
54 LiveVariables.cpp
Ted Kremenekda2eba52010-08-14 01:55:09 +000055 LocalStackSlotAllocation.cpp
Chih-Hung Hsieh57886402016-01-13 23:56:37 +000056 LowerEmuTLS.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +000057 MachineBasicBlock.cpp
Jakub Staszak875ebd52011-07-25 19:25:40 +000058 MachineBlockFrequencyInfo.cpp
Chandler Carruth10281422011-10-21 06:46:38 +000059 MachineBlockPlacement.cpp
Jakub Staszak12a43bd2011-06-16 20:22:37 +000060 MachineBranchProbabilityInfo.cpp
Benjamin Kramer56b31bd2013-01-11 20:05:37 +000061 MachineCSE.cpp
Gerolf Hoflehner5e1207e2014-08-03 21:35:39 +000062 MachineCombiner.cpp
Evan Cheng00b1a3c2012-01-07 03:02:36 +000063 MachineCopyPropagation.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +000064 MachineDominators.cpp
Matt Arsenault4181ea32014-07-12 21:59:52 +000065 MachineDominanceFrontier.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +000066 MachineFunction.cpp
Ted Kremenekdefdbdc2009-07-31 18:50:22 +000067 MachineFunctionAnalysis.cpp
68 MachineFunctionPass.cpp
David Greene9b063df2010-04-02 23:17:14 +000069 MachineFunctionPrinterPass.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +000070 MachineInstr.cpp
NAKAMURA Takumi4c5ab7b2011-12-14 03:50:53 +000071 MachineInstrBundle.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +000072 MachineLICM.cpp
73 MachineLoopInfo.cpp
74 MachineModuleInfo.cpp
Xerxes Ranby230c7172009-09-16 10:18:36 +000075 MachineModuleInfoImpls.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +000076 MachinePassRegistry.cpp
Benjamin Kramer56b31bd2013-01-11 20:05:37 +000077 MachinePostDominators.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +000078 MachineRegisterInfo.cpp
Matt Arsenault1b8d8372014-07-19 18:29:29 +000079 MachineRegionInfo.cpp
Douglas Gregora3b825e2009-12-02 22:19:31 +000080 MachineSSAUpdater.cpp
Andrew Tricke77e84e2012-01-13 06:30:30 +000081 MachineScheduler.cpp
Ted Kremenek451a9652010-01-13 01:02:47 +000082 MachineSink.cpp
Jakob Stoklund Olesenf9029fe2012-07-26 18:38:11 +000083 MachineTraceMetrics.cpp
Jakob Stoklund Olesen36c027a2009-05-16 00:33:53 +000084 MachineVerifier.cpp
Alex Lorenz345c1442015-06-15 23:52:35 +000085 MIRPrinter.cpp
Alex Lorenz2bdb4e12015-05-27 18:02:19 +000086 MIRPrintingPass.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +000087 OcamlGC.cpp
Bob Wilson0827e042010-02-12 01:30:21 +000088 OptimizePHIs.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +000089 PHIElimination.cpp
Cameron Zwarichda592a9e2010-12-05 19:51:05 +000090 PHIEliminationUtils.cpp
Peter Collingbournec269ed52015-08-27 23:37:36 +000091 ParallelCG.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +000092 Passes.cpp
Bill Wendling88451402010-08-10 05:16:06 +000093 PeepholeOptimizer.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +000094 PostRASchedulerList.cpp
Douglas Gregor90790c72009-11-04 01:32:06 +000095 ProcessImplicitDefs.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +000096 PrologEpilogInserter.cpp
97 PseudoSourceValue.cpp
Jakob Stoklund Olesena818d802012-01-11 22:28:30 +000098 RegAllocBase.cpp
Andrew Trick1c246052010-10-22 23:09:15 +000099 RegAllocBasic.cpp
Jakob Stoklund Olesen8a070a52010-04-21 18:02:42 +0000100 RegAllocFast.cpp
Jakob Stoklund Olesenb8812a12010-12-08 03:26:16 +0000101 RegAllocGreedy.cpp
Oscar Fuentesb5abd782008-10-04 21:18:50 +0000102 RegAllocPBQP.cpp
Jakob Stoklund Olesenc58894b2011-06-02 02:19:35 +0000103 RegisterClassInfo.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +0000104 RegisterCoalescer.cpp
Andrew Trick26bdff92012-04-24 18:06:49 +0000105 RegisterPressure.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +0000106 RegisterScavenging.cpp
Dan Gohman60cb69e2008-11-19 23:18:57 +0000107 ScheduleDAG.cpp
Dan Gohman60cb69e2008-11-19 23:18:57 +0000108 ScheduleDAGInstrs.cpp
109 ScheduleDAGPrinter.cpp
Chris Lattner878665b2011-01-09 21:31:39 +0000110 ScoreboardHazardRecognizer.cpp
Quentin Colombet61b305e2015-05-05 17:38:16 +0000111 ShrinkWrap.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +0000112 ShadowStackGC.cpp
Philip Reames23cf2e22015-01-28 19:28:03 +0000113 ShadowStackGCLowering.cpp
Benjamin Kramer436bd9f2009-08-17 18:47:11 +0000114 SjLjEHPrepare.cpp
Douglas Gregor90790c72009-11-04 01:32:06 +0000115 SlotIndexes.cpp
Jakob Stoklund Olesen8e236ea2011-01-06 01:21:53 +0000116 SpillPlacement.cpp
Jakob Stoklund Olesen36d12c62010-07-20 15:41:07 +0000117 SplitKit.cpp
Benjamin Kramer56b31bd2013-01-11 20:05:37 +0000118 StackColoring.cpp
Oscar Fuentes8881a912008-11-04 03:24:04 +0000119 StackProtector.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +0000120 StackSlotColoring.cpp
Juergen Ributzkae8294752013-12-14 06:53:06 +0000121 StackMapLivenessAnalysis.cpp
Andrew Trick153ebe62013-10-31 22:11:56 +0000122 StackMaps.cpp
Philip Reames4ac17a32015-01-07 19:07:50 +0000123 StatepointExampleGC.cpp
Bob Wilson2d4ff122009-11-26 00:32:21 +0000124 TailDuplication.cpp
Nick Lewyckyc9e935c2011-12-15 22:58:58 +0000125 TargetFrameLoweringImpl.cpp
Jakob Stoklund Olesenfcf14e82012-11-28 02:35:09 +0000126 TargetInstrInfo.cpp
Benjamin Kramer56b31bd2013-01-11 20:05:37 +0000127 TargetLoweringBase.cpp
Anton Korobeynikov1be2063a2010-02-15 22:55:13 +0000128 TargetLoweringObjectFileImpl.cpp
Nick Lewyckyc9e935c2011-12-15 22:58:58 +0000129 TargetOptionsImpl.cpp
Jakob Stoklund Olesenfcf14e82012-11-28 02:35:09 +0000130 TargetRegisterInfo.cpp
Andrew Trickd2a19da2012-09-14 20:26:46 +0000131 TargetSchedule.cpp
Oscar Fuentesa229b3c2008-09-22 01:08:49 +0000132 TwoAddressInstructionPass.cpp
133 UnreachableBlockElim.cpp
134 VirtRegMap.cpp
Reid Kleckner1185fce2015-01-29 00:41:44 +0000135 WinEHPrepare.cpp
Zachary Turner3bd47ce2015-02-11 03:28:02 +0000136
137 ADDITIONAL_HEADER_DIRS
138 ${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen
139 ${LLVM_MAIN_INCLUDE_DIR}/llvm/CodeGen/PBQP
Peter Collingbourne79bf1132015-08-29 22:34:34 +0000140
141 LINK_LIBS ${system_libs}
Oscar Fuentesa229b3c2008-09-22 01:08:49 +0000142 )
Oscar Fuentes5ed96262011-02-18 22:06:14 +0000143
NAKAMURA Takumi704de072012-06-24 13:32:01 +0000144add_dependencies(LLVMCodeGen intrinsics_gen)
145
Oscar Fuentes5ed96262011-02-18 22:06:14 +0000146add_subdirectory(SelectionDAG)
147add_subdirectory(AsmPrinter)
Alex Lorenz2bdb4e12015-05-27 18:02:19 +0000148add_subdirectory(MIRParser)