diff options
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 17 |
1 files changed, 10 insertions, 7 deletions
@@ -47,13 +47,16 @@ RGL_MEMORY_STEM ?= $(RGL_PROFILE_DIR)/rgl-memory RGL_MEMORY_RTS ?= -hc RGL_HEAP_SAMPLE_INTERVAL ?= 0.1 -BENCH_STACK_WORK ?= $(PROFILE_STACK_WORK) -BENCH_PROFILE_FLAGS ?= --profile -BENCH_GHC_OPTIONS ?= $(PROFILE_GHC_OPTIONS) +# Benchmark configuration. These targets should measure release-like code by +# default; use the profile-* targets for cost-centre/profiling builds. +BENCH_STACK_WORK ?= .stack-work-bench +BENCH_PROFILE_FLAGS ?= +BENCH_BUILD_FLAGS ?= $(BENCH_PROFILE_FLAGS) +BENCH_GHC_OPTIONS ?= -O1 BENCH_TARGET ?= gf:bench:gf-compiler-bench BENCH_TASTY_OPTIONS ?= BENCH_PRE_PMCFG_FLAG ?= --flag gf:pre-pmcfg -BENCH_PRE_PMCFG_STACK_WORK ?= .stack-work-profile-pre-pmcfg +BENCH_PRE_PMCFG_STACK_WORK ?= .stack-work-bench-pre-pmcfg RGL_BENCH_DIR ?= $(PROFILE_DIR)/rgl-bench RGL_BENCH_GFO_DIR ?= $(RGL_BENCH_DIR)/gfo @@ -119,19 +122,19 @@ profile-rgl-clean: rm -rf $(RGL_PROFILE_DIR) bench-build: - $(BENCH_STACK) build $(BENCH_TARGET) --bench --no-run-benchmarks $(BENCH_PROFILE_FLAGS) --ghc-options "$(BENCH_GHC_OPTIONS)" + $(BENCH_STACK) build $(BENCH_TARGET) --bench --no-run-benchmarks $(BENCH_BUILD_FLAGS) --ghc-options "$(BENCH_GHC_OPTIONS)" bench-rgl: bench-build @test -d "$(RGL_DIR)" || { echo "Missing RGL_DIR: $(RGL_DIR)"; exit 1; } rm -rf $(RGL_BENCH_GFO_DIR) $(RGL_BENCH_PGF_DIR) mkdir -p $(RGL_BENCH_GFO_DIR) $(RGL_BENCH_PGF_DIR) - GF_BENCH_RGL_DIR="$(RGL_DIR)" GF_BENCH_NAME="$(RGL_BENCH_NAME)" GF_BENCH_GFO_DIR="$(RGL_BENCH_GFO_DIR)" GF_BENCH_PGF_DIR="$(RGL_BENCH_PGF_DIR)" GF_BENCH_MODULES="$(RGL_BENCH_MODULES)" GF_BENCH_IMPORT_DIRS="$(RGL_BENCH_IMPORT_DIRS)" $(BENCH_STACK) bench $(BENCH_TARGET) $(BENCH_PROFILE_FLAGS) --ghc-options "$(BENCH_GHC_OPTIONS)" --benchmark-arguments "$(BENCH_TASTY_OPTIONS) $(BENCH_RTS_OPTIONS)"; \ + GF_BENCH_RGL_DIR="$(RGL_DIR)" GF_BENCH_NAME="$(RGL_BENCH_NAME)" GF_BENCH_GFO_DIR="$(RGL_BENCH_GFO_DIR)" GF_BENCH_PGF_DIR="$(RGL_BENCH_PGF_DIR)" GF_BENCH_MODULES="$(RGL_BENCH_MODULES)" GF_BENCH_IMPORT_DIRS="$(RGL_BENCH_IMPORT_DIRS)" $(BENCH_STACK) bench $(BENCH_TARGET) $(BENCH_BUILD_FLAGS) --ghc-options "$(BENCH_GHC_OPTIONS)" --benchmark-arguments "$(BENCH_TASTY_OPTIONS) $(BENCH_RTS_OPTIONS)"; \ status=$$?; \ if test -f gf-compiler-bench.prof; then mv gf-compiler-bench.prof "$(RGL_BENCH_DIR)/gf-compiler-bench.prof"; fi; \ exit $$status bench-rgl-pre-pmcfg: - $(MAKE) bench-rgl BENCH_STACK_WORK="$(BENCH_PRE_PMCFG_STACK_WORK)" RGL_BENCH_DIR="$(RGL_BENCH_PRE_PMCFG_DIR)" RGL_BENCH_NAME="$(RGL_BENCH_PRE_PMCFG_NAME)" BENCH_PROFILE_FLAGS="$(BENCH_PROFILE_FLAGS) $(BENCH_PRE_PMCFG_FLAG)" + $(MAKE) bench-rgl BENCH_STACK_WORK="$(BENCH_PRE_PMCFG_STACK_WORK)" RGL_BENCH_DIR="$(RGL_BENCH_PRE_PMCFG_DIR)" RGL_BENCH_NAME="$(RGL_BENCH_PRE_PMCFG_NAME)" BENCH_BUILD_FLAGS="$(BENCH_BUILD_FLAGS) $(BENCH_PRE_PMCFG_FLAG)" bench-rgl-clean: rm -rf $(RGL_BENCH_DIR) $(RGL_BENCH_PRE_PMCFG_DIR) |
