aboutsummaryrefslogtreecommitdiffhomepage
path: root/todo.txt
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 /todo.txt
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 'todo.txt')
-rw-r--r--todo.txt10
1 files changed, 5 insertions, 5 deletions
diff --git a/todo.txt b/todo.txt
index 48deffe..d0618a7 100644
--- a/todo.txt
+++ b/todo.txt
@@ -4,10 +4,10 @@
- DWARF debug information
- implement GNU extensions: __attribute__, __builtin_*, ...
- compiler optimizations:
- - dead store/load optimization,
- - inlining
- - loop inversion
+ - dead store/load optimization, forwarding
+ - all kinds of loop optimizations
+ - switch statements (bsearch, maybe jumptables?)
- instruction scheduling
- - better regalloc spilling heuristics
+ - use of memory operands in arith instrs in x86
-- testing on real world codebases
+- more testing on real world codebases