69 lines · plain
1add_subdirectory(timing)2 3add_custom_target(gpu-benchmark)4 5function(add_benchmark benchmark_name)6 cmake_parse_arguments(7 "BENCHMARK"8 "" # Optional arguments9 "" # Single value arguments10 "LINK_LIBRARIES;DEPENDS" # Multi-value arguments11 ${ARGN}12 )13 14 if(NOT libc.src.time.clock IN_LIST TARGET_LLVMLIBC_ENTRYPOINTS)15 message(FATAL_ERROR "target does not support clock")16 endif()17 add_libc_hermetic(18 ${benchmark_name}19 IS_GPU_BENCHMARK20 LINK_LIBRARIES21 LibcGpuBenchmark.hermetic22 ${BENCHMARK_LINK_LIBRARIES}23 DEPENDS24 libc.src.stdio.printf25 ${BENCHMARK_DEPENDS}26 ${BENCHMARK_UNPARSED_ARGUMENTS}27 COMPILE_OPTIONS28 -flto29 )30 get_fq_target_name(${benchmark_name} fq_target_name)31 set(fq_build_target_name ${fq_target_name}.__build__)32 33 add_dependencies(gpu-benchmark ${fq_target_name})34endfunction(add_benchmark)35 36add_unittest_framework_library(37 LibcGpuBenchmark38 SRCS39 LibcGpuBenchmark.cpp40 LibcGpuBenchmarkMain.cpp41 HDRS42 LibcGpuBenchmark.h43 Random.h44 DEPENDS45 libc.benchmarks.gpu.timing.timing46 libc.hdr.stdint_proxy47 libc.src.__support.CPP.string48 libc.src.__support.CPP.string_view49 libc.src.__support.CPP.type_traits50 libc.src.__support.CPP.algorithm51 libc.src.__support.CPP.atomic52 libc.src.__support.CPP.array53 libc.src.__support.CPP.optional54 libc.src.__support.FPUtil.fp_bits55 libc.src.__support.FPUtil.nearest_integer_operations56 libc.src.__support.FPUtil.sqrt57 libc.src.__support.sign58 libc.src.__support.fixedvector59 libc.src.__support.GPU.utils60 libc.src.__support.time.gpu.time_utils61 libc.src.__support.macros.attributes62 libc.src.__support.macros.config63 libc.src.__support.macros.properties.types64 libc.src.stdio.printf65 libc.src.time.clock66)67 68add_subdirectory(src)69