From 5cf9dcb47cd0037461782335ba812481363970da Mon Sep 17 00:00:00 2001 From: eunhhu Date: Mon, 5 Oct 2026 16:21:59 +0100 Subject: The tier's keys and positions in range for every round, checked once where their loop opens (each affine in its round: both ends below the limit), the checks in the round gone; constants in the instructions (add, sub, cmp); one-byte columns widened to four where the tier begins, its loads and stores of four bytes only. roots 14.0 to 14.0 ms, knapsack 38.8 to 16.5, matmul 48.6 to 25.7 --- core/module-list.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'core/module-list.h') diff --git a/core/module-list.h b/core/module-list.h index 21b929c..3ae468f 100644 --- a/core/module-list.h +++ b/core/module-list.h @@ -150,7 +150,8 @@ bool pure_list_hashed(PureList *); /* Whether an event's list is as the tier's code reads it (docs/design/023): * needs 1, found by key: DENSE; 2, read by position: FLAT, or DENSE with * every key below its count (a key its position); 4, a key's position: the - * latter; and each field in narrow a number column of one or four bytes. + * latter; and each field in narrow a number column of four bytes (one byte + * widened to four: the tier reads four, docs/design/023). * Its full (pure_list_layout's LIST_FULL_AT) then says whether every key * below its count is there. */ bool pure_list_suits(PureList *, unsigned needs, unsigned narrow); -- cgit v1.2.3