diff --git a/src/core/config/CMakeLists.txt b/src/core/config/CMakeLists.txt index 87251d6d..6b6c31be 100644 --- a/src/core/config/CMakeLists.txt +++ b/src/core/config/CMakeLists.txt @@ -20,6 +20,7 @@ OPTION(CONFIG_FIRE_INTERRUPTS "Target backend: Fire interrupts" OFF) OPTION(CONFIG_DISABLE_KEYB_INTERRUPTS "Target backend: Suppress keyboard interrupts" OFF) OPTION(SERVER_PERFORMANCE_MEASURE "Performance measurement in job-server" OFF) OPTION(CONFIG_FAST_BREAKPOINTS "Enable fast breakpoints (requires breakpoint events to be enabled)" OFF) +OPTION(CONFIG_FAST_WATCHPOINTS "Enable fast watchpoints (requires memory access events to be enabled)" OFF) SET(SERVER_COMM_HOSTNAME "localhost" CACHE STRING "Job-server hostname or IP") SET(SERVER_COMM_TCP_PORT "1111" CACHE STRING "Job-server TCP port") SET(SERVER_PERF_LOG_PATH "perf.log" CACHE STRING "A file name for storing the server's performance log (CSV)") diff --git a/src/core/config/FailConfig.hpp.in b/src/core/config/FailConfig.hpp.in index 389db854..63a8c4ad 100644 --- a/src/core/config/FailConfig.hpp.in +++ b/src/core/config/FailConfig.hpp.in @@ -17,6 +17,7 @@ // Performance options #cmakedefine CONFIG_FAST_BREAKPOINTS +#cmakedefine CONFIG_FAST_WATCHPOINTS // Save/restore functionality #cmakedefine CONFIG_SR_RESTORE diff --git a/src/core/sal/CMakeLists.txt b/src/core/sal/CMakeLists.txt index 58bbdd9f..faaac65a 100644 --- a/src/core/sal/CMakeLists.txt +++ b/src/core/sal/CMakeLists.txt @@ -5,7 +5,6 @@ if(BUILD_BOCHS) SALConfig.cc Register.cc SimulatorController.cc - perf/BreakpointBuffer.cc bochs/BochsController.cc bochs/BochsListener.cc ) @@ -16,7 +15,6 @@ elseif(BUILD_GEM5) SALConfig.cc Register.cc SimulatorController.cc - perf/BreakpointBuffer.cc gem5/Gem5Controller.cc ) elseif(BUILD_OVP) @@ -26,7 +24,6 @@ elseif(BUILD_OVP) SALConfig.cc Register.cc SimulatorController.cc - perf/BreakpointBuffer.cc ${VARIANT}/OVPController.cc ) elseif(BUILD_QEMU) @@ -35,7 +32,6 @@ elseif(BUILD_QEMU) ListenerManager.cc SALConfig.cc Register.cc - perf/BreakpointBuffer.cc SimulatorController.cc qemu/QEMUController.cc qemu/wrappers.cc @@ -46,13 +42,26 @@ elseif(BUILD_T32) ListenerManager.cc SALConfig.cc Register.cc - perf/BreakpointBuffer.cc SimulatorController.cc t32/T32Controller.cc t32/wrappers.cc ) endif(BUILD_BOCHS) -add_library(fail-sal ${SRCS}) +# Don't include these sources if perf-stuff is disabled +# (reduces compiler overhead): +if(CONFIG_FAST_WATCHPOINTS) + set(SRCS ${SRCS} + perf/WatchpointBuffer.cc + ) +endif(CONFIG_FAST_WATCHPOINTS) +if(CONFIG_FAST_BREAKPOINTS) + set(SRCS ${SRCS} + perf/BreakpointBuffer.cc + ) +endif(CONFIG_FAST_BREAKPOINTS) + + +add_library(fail-sal ${SRCS}) add_dependencies(fail-sal fail-efw)