| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | cpp: fix token spacing edge case when empty macros are involved | 2026-03-01 | 2 | -3/+8 | |
| | | |||||
| * | cpp: fix token spacing (#2) (hopefully) | 2026-03-01 | 3 | -35/+104 | |
| | | |||||
| * | 0.1.9 | 2026-02-28 | 1 | -2/+2 | |
| | | |||||
| * | ir: make address ref hash table resizable | 2026-02-28 | 7 | -27/+49 | |
| | | | | | Would hit the limit on very large functions (thanks csmith). | ||||
| * | Update README.md | lsof | 2026-02-28 | 1 | -1/+1 |
| | | |||||
| * | c: static intializer bugfix introduced in6c3f1593e9 | 2026-02-28 | 1 | -0/+1 | |
| | | |||||
| * | aarch64/isel: handle more instructions | 2026-02-28 | 1 | -13/+18 | |
| | | |||||
| * | backend: fix edgecases where imm32 immediate overflows | 2026-02-28 | 2 | -3/+10 | |
| | | |||||
| * | regalloc: fix defn of spilled var with immediate | 2026-02-28 | 2 | -2/+16 | |
| | | | | | | | With `i64 %a = copy 0xabcdef12345`, if `%a` was spilled, this would turn into a `storei64` instruction with an unencondable immediate operand (larger than 32 bits in x86, non-zero in aarch64). | ||||
| * | cpp: allow comments between function-like macro name and arguments | 2026-02-26 | 2 | -9/+29 | |
| | | |||||
| * | 0.1.8 | 2026-02-25 | 1 | -2/+2 | |
| | | |||||
| * | c: allow casting of symbol address to intptr_t in static initializers | 2026-02-25 | 2 | -2/+4 | |
| | | |||||
| * | preprocessor: use shared static buffers for replacement lists | 2026-02-25 | 1 | -150/+178 | |
| | | | | | | | | One for macro definitions' bodies, another one for function-like macros with substituted arguments in the macro expansion stack. Cuts down on a lot of individual allocations. #undef'd macros' replacement lists are "leaked" but that is very minor | ||||
| * | fix io fa8c39d6df : make buffer shared (for nested note()) | 2026-02-24 | 1 | -1/+1 | |
| | | |||||
| * | fix various warnings | 2026-02-24 | 6 | -14/+11 | |
| | | |||||
| * | inline: fix undefined value returns | 2026-02-24 | 1 | -1/+2 | |
| | | | | | | | Previously if an inlined function has a return statement with no value (control flow reaching the closing brace of the function), would use an invalid null reference in the inlined body. Turn it into undef. | ||||
| * | io: use distinct output buffer for diagnostics | 2026-02-24 | 1 | -14/+24 | |
| | | | | | | Prevents concurrent invokations of the compiler from mixing up and mangling diagnostics from unbuffered stderr. | ||||
| * | diagnostics: also print #include provenance for warnings | 2026-02-24 | 3 | -4/+10 | |
| | | |||||
| * | C23 true and false keywords | 2026-02-24 | 3 | -4/+9 | |
| | | |||||
| * | update license copyright year | 2026-02-24 | 1 | -1/+1 | |
| | | |||||
| * | Update README.md | 2026-02-24 | 1 | -0/+1 | |
| | | |||||
| * | x86_64/isel: fix regression with cmp instrs edge case | 2026-02-24 | 1 | -1/+1 | |
| | | |||||
| * | cpp: fix __has_builtin | 2026-02-23 | 1 | -2/+8 | |
| | | |||||
| * | add metalang99 testsuite (preprocessor stress testing) | 2026-02-23 | 119 | -2/+16971 | |
| | | |||||
| * | cpp: add __COUNTER__ macro | 2026-02-23 | 3 | -131/+196 | |
| | | |||||
| * | 0.1.7 | 2026-02-22 | 2 | -3/+3 | |
| | | |||||
| * | Update README.md | lsof | 2026-02-22 | 1 | -2/+2 |
| | | | | | typos | ||||
| * | Update README | 2026-02-22 | 1 | -0/+1 | |
| | | |||||
| * | add sqlite submodule and test runner | 2026-02-22 | 1 | -0/+12 | |
| | | |||||
| * | driver: recognize shared libraries; & backend: misc fixes for PIC isel edgecases | 2026-02-22 | 3 | -10/+15 | |
| | | |||||
| * | c: fix using string literal as conditional expression conditional | 2026-02-22 | 3 | -12/+31 | |
| | | |||||
| * | test: fix c-testsuite.sh to build search index if not present | 2026-02-22 | 1 | -0/+1 | |
| | | |||||
| * | preprocessor: fix an edge case with erroneously recursive macro expansion | 2026-02-22 | 2 | -26/+54 | |
| | | |||||
| * | 0.1.6 | 2026-02-21 | 1 | -2/+2 | |
| | | |||||
| * | update README.md | 2026-02-21 | 1 | -2/+3 | |
| | | |||||
| * | Makefile install rule depend on all | 2026-02-21 | 1 | -1/+1 | |
| | | |||||
| * | cpp: better diagnostics | 2026-02-21 | 3 | -15/+43 | |
| | | |||||
| * | c: fix default argument promotion for function types | 2026-02-21 | 1 | -0/+1 | |
| | | |||||
| * | project documentation | 2026-02-21 | 6 | -23/+196 | |
| | | |||||
| * | config.mk, make install | 2026-02-21 | 2 | -8/+35 | |
| | | |||||
| * | IR: just use an array for extended constants | 2026-02-19 | 9 | -66/+54 | |
| | | | | | | The extra work of using a hashtable to intern them is probably unnecessary. | ||||
| * | 0.1.5 | 2026-02-19 | 1 | -2/+2 | |
| | | |||||
| * | cfg: dominator computation should ignore blocks with no predecessors | 2026-02-19 | 1 | -1/+1 | |
| | | | | | | | | These didn't show up atp before but with inlining, for example, a noreturn function, they could be introduced. And the pass ordering means they wouldn't have been cleaned up before filldom(). An unreachable block having no dominator makes sense too. | ||||
| * | 0.1.4 | 2026-02-18 | 1 | -2/+2 | |
| | | |||||
| * | ir: regalloc & x86-64 isel bugfixes | 2026-02-18 | 2 | -5/+19 | |
| | | |||||
| * | ir/dump: sanity check | 2026-02-18 | 1 | -0/+1 | |
| | | |||||
| * | ir/rpo: sanity checks | 2026-02-18 | 1 | -4/+7 | |
| | | |||||
| * | alloccopy: explicit no-op on zero size. | 2026-02-18 | 1 | -0/+1 | |
| | | | | | Allows src/dst to be null for zero size, which memcpy doesn't | ||||
| * | ir: basic inlining pass implementation | 2026-02-18 | 9 | -15/+364 | |
| | | |||||
| * | 0.1.3 | 2026-02-06 | 1 | -2/+2 | |
| | | |||||