aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* lex: use a circular buffer cache for pre-pre-processed charslemon2023-06-252-56/+67
|
* regalloc: fix temporary rename clobbering return register with multiple returnslemon2023-06-251-2/+13
|
* regalloc add sourceslemon2023-06-251-1/+3
|
* abi0: fix agg return by pointer not updating arg countlemon2023-06-241-0/+1
|
* fix regalloc thinking some ins are dead by adding ins.keeplemon2023-06-243-3/+8
|
* update todo.txtlemon2023-06-241-1/+1
|
* ir: dattab shouldn't reset for every functionlemon2023-06-241-1/+1
| | | | this was causing later functions' data to override earlier data
* amd64/emit: more float fixeslemon2023-06-241-21/+24
| | | | | optimize loading 0.0 in phis as well as regular copies and also don't use inc or addr for float addition
* backend: don't mixup float and int tempslemon2023-06-244-11/+29
| | | | | | copy propagation only happens when dataclasses match, register allocator ignores hints if hint register class and instruction class differ, also add mov between int and float regs in amd64/emit
* fix replcuseslemon2023-06-243-19/+19
|