xref: /llvm-project/llvm/tools/llvm-exegesis/lib/CMakeLists.txt (revision 8e8692a542037056b332f4a3b5f12441267b76eb)
1
2set(LLVM_EXEGESIS_TARGETS)
3if (LLVM_TARGETS_TO_BUILD MATCHES "X86")
4  list(APPEND LLVM_EXEGESIS_TARGETS "X86")
5endif()
6if (LLVM_TARGETS_TO_BUILD MATCHES "AArch64")
7  list(APPEND LLVM_EXEGESIS_TARGETS "AArch64")
8endif()
9if (LLVM_TARGETS_TO_BUILD MATCHES "PowerPC")
10  list(APPEND LLVM_EXEGESIS_TARGETS "PowerPC")
11endif()
12if (LLVM_TARGETS_TO_BUILD MATCHES "Mips")
13  list(APPEND LLVM_EXEGESIS_TARGETS "Mips")
14endif()
15if(LLVM_TARGETS_TO_BUILD MATCHES "RISCV")
16  list(APPEND LLVM_EXEGESIS_TARGETS "RISCV")
17endif()
18
19set(LLVM_EXEGESIS_TARGETS ${LLVM_EXEGESIS_TARGETS} PARENT_SCOPE)
20
21foreach(t ${LLVM_EXEGESIS_TARGETS})
22  add_subdirectory(${t})
23endforeach()
24
25set(LLVM_LINK_COMPONENTS
26  Analysis
27  CodeGen
28  CodeGenTypes
29  Core
30  ExecutionEngine
31  GlobalISel
32  MC
33  MCA
34  MCDisassembler
35  MCParser
36  Object
37  ObjectYAML
38  OrcJIT
39  RuntimeDyld
40  Support
41  TargetParser
42  )
43
44set(libs)
45if(LLVM_ENABLE_LIBPFM AND HAVE_LIBPFM)
46  list(APPEND libs pfm)
47endif()
48if(HAVE_LIBRT)
49  list(APPEND libs rt)
50endif()
51
52add_llvm_library(LLVMExegesis
53  DISABLE_LLVM_LINK_LLVM_DYLIB
54  STATIC
55  Analysis.cpp
56  Assembler.cpp
57  BenchmarkResult.cpp
58  BenchmarkRunner.cpp
59  Clustering.cpp
60  CodeTemplate.cpp
61  DisassemblerHelper.cpp
62  Error.cpp
63  LatencyBenchmarkRunner.cpp
64  LlvmState.cpp
65  MCInstrDescView.cpp
66  ParallelSnippetGenerator.cpp
67  PerfHelper.cpp
68  RegisterAliasing.cpp
69  RegisterValue.cpp
70  ResultAggregator.cpp
71  SchedClassResolution.cpp
72  SerialSnippetGenerator.cpp
73  SnippetFile.cpp
74  SnippetGenerator.cpp
75  SnippetRepetitor.cpp
76  SubprocessMemory.cpp
77  Target.cpp
78  UopsBenchmarkRunner.cpp
79  ValidationEvent.cpp
80
81  LINK_LIBS ${libs}
82
83  DEPENDS
84  intrinsics_gen
85  )
86