- Fix symbol table semantics
- Add function call codegen
- Add declaration codegen
- Add string literal support (Also probably const support - Not done)
- Compile hello world
- Add branching and control flow statements
- if
- while
- goto
- for (maybe)
- Add local optimisations
- Constant folding
- If constant condition, don't branch
- Local dead-code removal
- If const condition in if_stmt, don't generate new blocks
- Remove the nop instruction
- if condition is while_stmt is zero, don't generate any code
- Constant folding
- Invariant checking
- all codegen functions result in a non-terminated block in ir_builder
- Add Tests through CMake's testing facility
- Add way to add files which are guaranteed to not compile