45 lines · plain
1set(LLVM_LINK_COMPONENTS2 AsmParser3 Core4 SandboxIR5 Support)6 7add_benchmark(DummyYAML DummyYAML.cpp PARTIAL_SOURCES_INTENDED)8add_benchmark(xxhash xxhash.cpp PARTIAL_SOURCES_INTENDED)9add_benchmark(GetIntrinsicForClangBuiltin GetIntrinsicForClangBuiltin.cpp PARTIAL_SOURCES_INTENDED)10add_benchmark(FormatVariadicBM FormatVariadicBM.cpp PARTIAL_SOURCES_INTENDED)11add_benchmark(GetIntrinsicInfoTableEntriesBM GetIntrinsicInfoTableEntriesBM.cpp PARTIAL_SOURCES_INTENDED)12add_benchmark(SandboxIRBench SandboxIRBench.cpp PARTIAL_SOURCES_INTENDED)13add_benchmark(MustacheBench Mustache.cpp PARTIAL_SOURCES_INTENDED)14add_benchmark(SpecialCaseListBM SpecialCaseListBM.cpp PARTIAL_SOURCES_INTENDED)15 16add_benchmark(RuntimeLibcallsBench RuntimeLibcalls.cpp PARTIAL_SOURCES_INTENDED)17 18if(NOT LLVM_TOOL_LLVM_DRIVER_BUILD)19 # TODO: Check if the tools are in LLVM_DISTRIBUTION_COMPONENTS with20 # the driver build. Also support the driver build by invoking the21 # tools through llvm-driver22 get_host_tool_path(llvm-nm LLVM_NM llvm_nm_exe llvm_nm_target)23 get_host_tool_path(llc LLC llc_exe llc_target)24 25 if(llc_exe AND llvm_nm_exe)26 # Extract the list of symbols in a random utility as sample data.27 set(SYMBOL_TEST_DATA_FILE "sample_symbol_list.txt")28 set(SYMBOL_TEST_DATA_SOURCE_BINARY ${llc_exe})29 30 add_custom_command(OUTPUT ${SYMBOL_TEST_DATA_FILE}31 COMMAND ${llvm_nm_exe} --no-demangle --no-sort32 --format=just-symbols33 ${SYMBOL_TEST_DATA_SOURCE_BINARY} > ${SYMBOL_TEST_DATA_FILE}34 DEPENDS ${llvm_nm_target} ${llc_target})35 36 add_custom_target(generate-runtime-libcalls-sample-symbol-list37 DEPENDS ${SYMBOL_TEST_DATA_FILE})38 39 add_dependencies(RuntimeLibcallsBench40 generate-runtime-libcalls-sample-symbol-list)41 target_compile_definitions(RuntimeLibcallsBench PRIVATE42 -DSYMBOL_TEST_DATA_FILE="${CMAKE_CURRENT_BINARY_DIR}/${SYMBOL_TEST_DATA_FILE}")43 endif()44endif()45