blob: ef85056db0a4d2cb0bd2fd26a406a17462df5611 [file] [log] [blame]
Clement Courbet1e8fdbe2018-09-24 08:39:48 +00001set(TARGETS_TO_APPEND "")
2
Clement Courbet44b4c542018-06-19 11:28:59 +00003if (LLVM_TARGETS_TO_BUILD MATCHES "X86")
4 add_subdirectory(X86)
Clement Courbet1e8fdbe2018-09-24 08:39:48 +00005 set(TARGETS_TO_APPEND "${TARGETS_TO_APPEND} X86")
Clement Courbet44b4c542018-06-19 11:28:59 +00006endif()
John Brawnc4ed6002018-07-03 10:10:29 +00007if (LLVM_TARGETS_TO_BUILD MATCHES "AArch64")
8 add_subdirectory(AArch64)
Clement Courbet1e8fdbe2018-09-24 08:39:48 +00009 set(TARGETS_TO_APPEND "${TARGETS_TO_APPEND} AArch64")
John Brawnc4ed6002018-07-03 10:10:29 +000010endif()
Jinsong Ji5fd3e752018-11-08 16:51:42 +000011if (LLVM_TARGETS_TO_BUILD MATCHES "PowerPC")
12 add_subdirectory(PowerPC)
13 set(TARGETS_TO_APPEND "${TARGETS_TO_APPEND} PowerPC")
14endif()
Clement Courbet44b4c542018-06-19 11:28:59 +000015
Clement Courbet1e8fdbe2018-09-24 08:39:48 +000016set(LLVM_EXEGESIS_TARGETS "${LLVM_EXEGESIS_TARGETS} ${TARGETS_TO_APPEND}" PARENT_SCOPE)
17
Nico Weberb09a8c92018-09-15 19:04:27 +000018add_library(LLVMExegesis
19 STATIC
Clement Courbet37f0ca02018-05-15 12:08:00 +000020 Analysis.cpp
Clement Courbet0e69e2d2018-05-17 10:52:18 +000021 Assembler.cpp
Clement Courbetac74acd2018-04-04 11:37:06 +000022 BenchmarkResult.cpp
23 BenchmarkRunner.cpp
Clement Courbet96715412018-05-07 09:09:48 +000024 Clustering.cpp
Guillaume Chatelet7f8d3102018-09-26 11:57:24 +000025 CodeTemplate.cpp
Clement Courbetac74acd2018-04-04 11:37:06 +000026 Latency.cpp
27 LlvmState.cpp
Clement Courbet0e69e2d2018-05-17 10:52:18 +000028 MCInstrDescView.cpp
Clement Courbetac74acd2018-04-04 11:37:06 +000029 PerfHelper.cpp
Clement Courbet0e69e2d2018-05-17 10:52:18 +000030 RegisterAliasing.cpp
Clement Courbetd939f6d2018-09-13 07:40:53 +000031 SnippetGenerator.cpp
Guillaume Chateletcd488ef2018-09-17 11:09:32 +000032 RegisterValue.cpp
Clement Courbet44b4c542018-06-19 11:28:59 +000033 Target.cpp
Clement Courbetac74acd2018-04-04 11:37:06 +000034 Uops.cpp
Nico Weberb09a8c92018-09-15 19:04:27 +000035 )
Clement Courbetac74acd2018-04-04 11:37:06 +000036
Nico Weberb09a8c92018-09-15 19:04:27 +000037llvm_update_compile_flags(LLVMExegesis)
38llvm_map_components_to_libnames(libs
Clement Courbet908dd382018-04-04 12:58:41 +000039 Analysis
Clement Courbetac74acd2018-04-04 11:37:06 +000040 CodeGen
Clement Courbet908dd382018-04-04 12:58:41 +000041 Core
Clement Courbetac74acd2018-04-04 11:37:06 +000042 ExecutionEngine
Clement Courbet559d1e32018-05-15 07:40:21 +000043 GlobalISel
Clement Courbetac74acd2018-04-04 11:37:06 +000044 MC
Clement Courbet4273e1e2018-06-15 07:30:45 +000045 MCDisassembler
Clement Courbetac74acd2018-04-04 11:37:06 +000046 MCJIT
Clement Courbet908dd382018-04-04 12:58:41 +000047 Object
Clement Courbet4273e1e2018-06-15 07:30:45 +000048 ObjectYAML
Clement Courbetac74acd2018-04-04 11:37:06 +000049 Support
50 )
Nico Weberb09a8c92018-09-15 19:04:27 +000051
52if(LLVM_ENABLE_LIBPFM AND HAVE_LIBPFM)
53 list(APPEND libs pfm)
54endif()
55
56target_link_libraries(LLVMExegesis ${libs})
57set_target_properties(LLVMExegesis PROPERTIES FOLDER "Libraries")