aboutsummaryrefslogtreecommitdiffhomepage
path: root/main.c
Commit message (Collapse)AuthorAgeFilesLines
* license and readme lemon2025-09-141-0/+3
|
* preliminary pie and pic lemon2025-09-141-1/+13
|
* fixes, delnops lemon2025-09-091-0/+1
|
* regalloc: start implementing linear scan lemon2025-09-081-1/+21
|
* backend: fix mem2reg & regalloc lemon2023-06-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | they were broken, especially for unstructured control flow. most significant fix is to register allocator for temporaries that are used before the first definition in the source order, e.g.: @1: %x = add %y, 1 b @3 @2 %y = ... b @1 it's legal for %x to use %y there (assuming @2 dominates @1) but from the point of view of the register allocator %y is defined and freed and then used again, which broke things. the fix is to introduce phis for this situation: @1: %y.1 = phi @2 %y %x = add %y.1, 1 b @3 @2 %y = ... b @1 then regalloc phi handling code makes it work
* add basic mem2reg lemon2023-06-201-0/+1
| | | | | | | promotes uniform stack slots to temporaries currently only for immutable variables, next thing to implement is ssa construction
* frontend: separate compiler & lexer lemon2023-06-191-4/+3
|
* don't try to compile when debugging IR lemon2023-06-191-4/+5
|
* basic cli driver lemon2023-06-181-60/+293
|
* basic ELF output lemon2023-06-171-5/+9
|
* isel skeleton lemon2023-06-101-0/+1
|
* codegen skeleton lemon2023-06-061-0/+3
|
* command line switch for debug options lemon2023-06-051-1/+10
|
* better diagnostics lemon2023-06-041-1/+4
|
* check color output lemon2023-05-281-0/+12
|
* bool fixes lemon2023-05-281-2/+2
|
* hm lemon2023-05-261-2/+36
|
* initial commit lemon2023-05-101-0/+27