blob: 26d023c79585926951a5ab8e47bc50d209cf660e [file] [log] [blame]
# To build these benchmarks, build the target "ScudoBenchmarks.$ARCH", where
# $ARCH is the name of the target architecture. For example,
# ScudoBenchmarks.x86_64 for 64-bit x86. The benchmark executable is then
# available under projects/compiler-rt/lib/scudo/standalone/benchmarks/ in the
# build directory.
include(AddLLVM)
set(SCUDO_BENCHMARK_CFLAGS -I${COMPILER_RT_SOURCE_DIR}/lib/scudo/standalone)
if(ANDROID)
list(APPEND SCUDO_BENCHMARK_CFLAGS -fno-emulated-tls)
endif()
string(REPLACE ";" " " SCUDO_BENCHMARK_CFLAGS " ${SCUDO_BENCHMARK_CFLAGS}")
foreach(arch ${SCUDO_STANDALONE_SUPPORTED_ARCH})
add_benchmark(ScudoBenchmarks.${arch}
malloc_benchmark.cpp
$<TARGET_OBJECTS:RTScudoStandalone.${arch}>)
set_property(TARGET ScudoBenchmarks.${arch} APPEND_STRING PROPERTY
COMPILE_FLAGS "${SCUDO_BENCHMARK_CFLAGS}")
if (COMPILER_RT_HAS_GWP_ASAN)
add_benchmark(
ScudoBenchmarksWithGwpAsan.${arch} malloc_benchmark.cpp
$<TARGET_OBJECTS:RTScudoStandalone.${arch}>
$<TARGET_OBJECTS:RTGwpAsan.${arch}>
$<TARGET_OBJECTS:RTGwpAsanBacktraceLibc.${arch}>
$<TARGET_OBJECTS:RTGwpAsanSegvHandler.${arch}>)
set_property(
TARGET ScudoBenchmarksWithGwpAsan.${arch} APPEND_STRING PROPERTY
COMPILE_FLAGS "${SCUDO_BENCHMARK_CFLAGS} -DGWP_ASAN_HOOKS")
endif()
endforeach()