diff options
| author | eunhhu <[email protected]> | 2026-10-08 11:44:27 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-10-08 11:44:27 +0100 |
| commit | 33e990862283a2b187ce5efc59a542cf06180ea2 (patch) | |
| tree | 5032e57618cf8007c6b4787179d13c223a5f22cb /core/module.c | |
| parent | d0558a3a728af8c6c0d8bef2ce7fa55565c518a5 (diff) | |
| download | pure-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.c | 2 |
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; |
