aboutsummaryrefslogtreecommitdiffhomepage
path: root/ir/ir.h
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2026-03-16 18:15:37 +0100
committerlemon <lsof@mailbox.org>2026-03-16 18:15:37 +0100
commit28261b6b1b55184ce7084eb14cdcb42edc7f8480 (patch)
tree14843ed375949f42afce9501bff66c0ef398641d /ir/ir.h
parent3e83c4280f0b1d72774c522a7e0d135913151b56 (diff)
regalloc: improve spilling and cleanup
Instead of spilling current interval when running out of registers, spill the longest-lived active interval with a lower spill cost than current. Spill costs are estimated based on multiplicative loop depth. Also cleanup regalloc.c somewhat. Update todo.txt too.
Diffstat (limited to 'ir/ir.h')
-rw-r--r--ir/ir.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/ir/ir.h b/ir/ir.h
index e7eb62a..ab3e474 100644
--- a/ir/ir.h
+++ b/ir/ir.h
@@ -295,7 +295,7 @@ void fillblkids(struct function *);
#define startbbvisit() (void)(++visitmark)
#define wasvisited(blk) ((blk)->visit == visitmark)
#define markvisited(blk) ((blk)->visit = visitmark)
-void numberinstrs(struct function *);
+uint numberinstrs(struct function *);
bool blkreachable(struct function *fn, struct block *blk);
/** builder.c **/