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