feat: write plan for future dev

This commit is contained in:
2026-01-01 16:09:21 +01:00
parent 6f4ab269e2
commit 7995dd2bdf

32
TODO.md
View File

@@ -1,6 +1,33 @@
0. Define how many physical regs are available, which are caller-saved and callee-saved
1. Implement if-else and while statements
# Milestones
## Clean codebase structure
0. Prelude classes like FileIO, strings null-termination etc.
1. Diagnostic helper class for logging
2. Remove "void" valuehandle class and use it as ValueHandle::Type instead
3. Function multiple arguments support
4. Implement if-else and while statements
## Types support in language
## Stack based code generation
0. Stack based codegen, i.e. for fasm x86_64
## IR Optimizations aka const folding, deadcode elimination
## Register allocation
## First beta assembly code generation with registers
## ...
-------------------------------------------------
# References for IR optimizations
2. Find out what use[B] and def[B] are for each block
3. Define successors and predecessors of each block and make them accessible
4. Compute liveIn[B] and liveOut[B] for each block
@@ -19,6 +46,7 @@
- Spill to stack slots
- Add “CALL clobbers regs” rule
# References for register allocation
function's reserved registers:
EAX, ECX, EDX