aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile14
1 files changed, 8 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index bf1c1f0..968cb7a 100644
--- a/Makefile
+++ b/Makefile
@@ -41,13 +41,15 @@ $(BUILD)/obj/%.o: %.c $(HEADERS)
# The lists' searches count a node's keys and positions whole, and move
# items in a leaf column by column: -O3 makes vector instructions of them
# (docs/design/020: 8% of a breadth first search).
-# Their loops start each at a 64-byte line: else a change anywhere in the
-# file moves them, and the batch executor's hot loops ran 6% apart with the
-# same instructions (knapsack 8.26, 8.74, 8.20 ms; docs/research/138).
-LIST_OPTIMIZE ?= -O3 -falign-loops=64
+LIST_OPTIMIZE ?= -O3
$(BUILD)/obj/core/module-list.o: CFLAGS += $(LIST_OPTIMIZE)
-# A batch's instructions are loops over its lanes: vector instructions too (docs/design/024).
-$(BUILD)/obj/core/module-batch.o: CFLAGS += $(LIST_OPTIMIZE)
+# A batch's instructions are loops over its lanes: vector instructions too
+# (docs/design/024), each loop at the start of a 64-byte line: else a change
+# anywhere in the file moves them, and its hot loops ran 6% apart with the
+# same instructions (knapsack 8.26, 8.74, 8.20 ms; docs/research/138). (The
+# lists' loops so aligned cost the bank's queries 1-2% more instructions.)
+BATCH_OPTIMIZE ?= $(LIST_OPTIMIZE) -falign-loops=64
+$(BUILD)/obj/core/module-batch.o: CFLAGS += $(BATCH_OPTIMIZE)
# The links know nothing of the core: they build without its headers.
$(BUILD)/obj/link/%.o: link/%.c $(wildcard link/*.h)