aboutsummaryrefslogtreecommitdiffstats
path: root/core/module.c
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-10-08 11:44:27 +0100
committereunhhu <[email protected]>2026-10-08 11:44:27 +0100
commit33e990862283a2b187ce5efc59a542cf06180ea2 (patch)
tree5032e57618cf8007c6b4787179d13c223a5f22cb /core/module.c
parentd0558a3a728af8c6c0d8bef2ce7fa55565c518a5 (diff)
downloadpure-33e990862283a2b187ce5efc59a542cf06180ea2.tar.gz
pure-33e990862283a2b187ce5efc59a542cf06180ea2.zip
Batch: a selection's rows given back affine over the lanes around when they are (a loop's value gathered: the end's checks know them, where lanes of rows gave the batch back: knapsack 48 to 11.5 ms); a module with no value planned for reuse spares the batch the looks (reuses); local_load inlined again
Diffstat (limited to 'core/module.c')
-rw-r--r--core/module.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/core/module.c b/core/module.c
index e473000..548a7c9 100644
--- a/core/module.c
+++ b/core/module.c
@@ -1037,6 +1037,7 @@ PURE_COLD static void plan_reuse(PureModule *m, uint32_t start, uint32_t end, co
if (!line) break;
m->reuse_from[at] = root + 1, m->reuse_length[at] = length;
m->reuse_from[root] = PURE_REUSE_KEPT;
+ m->reuses = true;
from = at + length, at = at + length - 1;
}
}
@@ -1390,6 +1391,7 @@ void pure_module_release(PureModule *m) {
m->height = NULL;
free(m->reuse_from), free(m->reuse_length);
m->reuse_from = m->reuse_length = NULL;
+ m->reuses = false;
free(m->storage);
m->storage = NULL;
m->code = NULL;