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 # Milestones
1. Implement if-else and while statements
## 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 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 3. Define successors and predecessors of each block and make them accessible
4. Compute liveIn[B] and liveOut[B] for each block 4. Compute liveIn[B] and liveOut[B] for each block
@@ -19,6 +46,7 @@
- Spill to stack slots - Spill to stack slots
- Add “CALL clobbers regs” rule - Add “CALL clobbers regs” rule
# References for register allocation
function's reserved registers: function's reserved registers:
EAX, ECX, EDX EAX, ECX, EDX