diff options
| author | adelon <22380201+adelon@users.noreply.github.com> | 2026-06-11 02:39:05 +0200 |
|---|---|---|
| committer | adelon <22380201+adelon@users.noreply.github.com> | 2026-06-11 02:39:05 +0200 |
| commit | e0ae898106361bb44612f1fda493839f7b262108 (patch) | |
| tree | da9feb55942f5751912a62daefab9511df0d8e43 | |
| parent | 2f8d86dfbda42094664a96169a4efd0978c264f9 (diff) | |
Use `-O1` for benchmark buildsoptimize
| -rw-r--r-- | .gitignore | 6 | ||||
| -rw-r--r-- | Makefile | 17 |
2 files changed, 11 insertions, 12 deletions
diff --git a/.gitignore b/.gitignore index b0a210bf5..b00557e86 100644 --- a/.gitignore +++ b/.gitignore @@ -82,8 +82,4 @@ result # Profiling profile/ -.stack-work-profile/ -.stack-work-profile-pre-pmcfg/ -.stack-work-pmcfg-test/ -.stack-work-pmcfg-test-pre/ -.stack-work-pmcfg-test-hooks/ +.stack-work-* @@ -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) |
