aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAgeFilesLines
* regalloc: prepare for spilling logic..lemon2025-09-131-152/+145
|
* c: function-local static varslemon2025-09-127-16/+54
|
* oopslemon2025-09-111-1/+1
|
* update todo.txtlemon2025-09-111-1/+2
|
* pp better diagnosticlemon2025-09-111-9/+11
|
* preprocessor: more awful hackslemon2025-09-113-17/+33
|
* preprocessor: fix order of expansion wiht macro argumentslemon2025-09-112-10/+25
|
* amd64: improve codegen for ADDlemon2025-09-111-0/+3
|
* amd64: bugfix for stack args with no RBP, also reuse epilogue code?lemon2025-09-111-26/+48
|
* lex: stringify args in function macroslemon2025-09-105-23/+70
|
* c: warn redefinition, allow redeclaratinoslemon2025-09-102-4/+20
|
* lex: implement basic function-like macro functionalitylemon2025-09-105-51/+171
|
* cpp: fix #conditional;slemon2025-09-091-5/+9
|
* ccomp: fix memory leak with temporary arena parsing for stmtlemon2025-09-091-1/+3
|
* amd64/emit: fix order of stack restore operations with regs+stklemon2025-09-091-6/+11
|
* bugfixlemon2025-09-091-1/+1
|
* ioperlemon2025-09-091-12/+21
|
* fixes, delnopslemon2025-09-098-6/+40
|
* regalloc: start implementing linear scanlemon2025-09-0812-468/+729
|
* amd64: swap, sarlemon2025-09-081-1/+21
|
* amd64: bugfixlemon2025-09-082-5/+9
|
* frontend: #ifdeflemon2024-04-123-6/+67
|
* fixlemon2024-04-091-1/+1
|
* frontend: basic #includelemon2024-04-095-7/+118
|
* lexer: fix scanning of pp directives in some circumstanceslemon2024-04-091-1/+2
|
* fix abi regs with aggregate return in hidden paramlemon2024-01-241-3/+7
|
* move definition of struct labellemon2023-09-051-10/+9
|
* fixlemon2023-09-051-2/+2
|
* make ptr offset in init take obj size into accountlemon2023-09-052-4/+5
|
* amd64: fix isel for numeric conversion opslemon2023-08-071-4/+4
|
* amd64: add mulf and divf codegenlemon2023-08-071-3/+18
|
* hmlemon2023-08-071-4/+4
|
* regalloc fixes and rpolemon2023-07-094-21/+78
|
* amd64/emit bugfixlemon2023-07-091-3/+3
|
* amd64 codegen fixeslemon2023-07-072-13/+20
|
* mem2reg; stylelemon2023-07-071-7/+12
|
* regalloc: update preds during simplify passlemon2023-07-071-1/+7
|
* fix copyoptlemon2023-07-061-1/+1
|
* fix emit() setcc and copylemon2023-07-061-1/+2
|
* fix mem2reg ??lemon2023-07-061-10/+43
|
* some frontend fixeslemon2023-06-301-3/+24
|
* misc bugfixslemon2023-06-304-29/+98
|
* add initializers (only static for initialier list rn)lemon2023-06-2916-255/+948
| | | | and other fixes
* also C23 static_assertlemon2023-06-261-3/+3
|
* c: move codegen code after decl parserlemon2023-06-261-748/+748
|
* frontend: add static assertlemon2023-06-262-2/+38
|
* regalloc: remove unused variablelemon2023-06-261-5/+0
|
* backend: fix mem2reg & regalloclemon2023-06-267-61/+206
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* frontend: add labels and goto statementlemon2023-06-262-8/+120
|
* fix some warningslemon2023-06-253-11/+2
|