summary refs log tree commit diff stats
path: root/compiler/nir/nir.nim
Commit message (Collapse)AuthorAgeFilesLines
* so close... (#22885)Andreas Rumpf2023-10-311-0/+1
|
* prepare for the enforcement of `std` prefix (#22873)ringabout2023-10-291-1/+1
| | | follow up https://github.com/nim-lang/Nim/pull/22851
* NIR: VM + refactorings (#22835)Andreas Rumpf2023-10-291-33/+22
|
* NIR: store sizes, alignments and offsets in the type graph; beginning… ↵Andreas Rumpf2023-10-161-11/+55
| | | | | (#22822) …s of a patent-pending new VM
* NIR: Nim intermediate representation (#22777)Andreas Rumpf2023-10-111-0/+71
Theoretical Benefits / Plans: - Typed assembler-like language. - Allows for a CPS transformation. - Can replace the existing C backend by a new C backend. - Can replace the VM. - Can do more effective "not nil" checking and static array bounds checking. - Can be used instead of the DFA. - Easily translatable to LLVM. - Reasonably easy to produce native code from. - Tiny memory consumption. No pointers, no cry. **In very early stages of development.** Todo: - [x] Map Nim types to IR types. - [ ] Map Nim AST to IR instructions: - [x] Map bitsets to bitops. - [ ] Implement string cases. - [ ] Implement range and index checks. - [x] Implement `default(T)` builtin. - [x] Implement multi string concat. - [ ] Write some analysis passes. - [ ] Write a backend. - [x] Integrate into the compilation pipeline.