Skip to content

Commit 1a39c54

Browse files
authored
Update README.md
1 parent 6a07c7e commit 1a39c54

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,29 @@ Cinder currently supports compiling (Please note that this list is subject to ch
1414
- Integer arithmetic
1515
- Bitwise operators
1616
- SSA construction
17+
- For and While loops
1718
- Fixed size arrays (stack allocated)
1819
- Pointers (Deref and Address of)
20+
- Variadic function calls
1921
- aacps64
20-
- Basic if statements, short circuiting and condition materialization
22+
- If statements with short circuiting and condition materialization for boolean and conditional arithmetic
2123

2224
## Planned Features
2325

2426
Future planned features are
2527

2628
- Better cli infra (base is already done)
29+
- Ternary operator
30+
- Do-While loops (Just mechanical implementation, was too lazy til now)
2731
- Enums
28-
- For and While loops (lol)
2932
- Switch statements
3033
- Function pointer invocation
3134
- Basic optimization passes like Constant Folding, Constant Propagation, DCE and maybe some memory analysis
3235
- Some experimental optimization passes
3336
- Structs (This is a far reach, as implementing aacps64 for structs is a real hassle so expect this to take time)
3437
- Some simple pre-processor for handling includes and basic macro expansion documented [here](https://www.spinellis.gr/blog/20060626/cpp.algo.pdf)
3538

39+
Somewhere down the line I will also have to refactor a great part of the compiler, as some of the design choices I made in the past turned out to not be the correct ones going forward.
3640
## Architecture
3741

3842
Cinder tries to mimik a large portion of the well established clang and llvm architecture.

0 commit comments

Comments
 (0)