summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoradelon <22380201+adelon@users.noreply.github.com>2026-06-11 02:39:05 +0200
committeradelon <22380201+adelon@users.noreply.github.com>2026-06-11 02:39:05 +0200
commite0ae898106361bb44612f1fda493839f7b262108 (patch)
treeda9feb55942f5751912a62daefab9511df0d8e43
parent2f8d86dfbda42094664a96169a4efd0978c264f9 (diff)
Use `-O1` for benchmark buildsoptimize
-rw-r--r--.gitignore6
-rw-r--r--Makefile17
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-*
diff --git a/Makefile b/Makefile
index 140a1b4cd..8789b5a16 100644
--- a/Makefile
+++ b/Makefile
@@ -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)