| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | style: change uvlong -> u64int, vlong -> s64int | 2026-03-22 | 22 | -125/+125 | ||
| | | | | | | Is much nicer. I don't know whether I want to do it for the other int types too. char and uchar are fine as bytes. u/short -> u/s16int, maybe. | |||||
| * | Update README.md | lsof | 2026-03-22 | 1 | -0/+1 | |
| | | | | | OpenBSD working & tested | |||||
| * | aarch64: rem/urem, bswap*, arg bugfix | 2026-03-22 | 5 | -12/+67 | ||
| | | ||||||
| * | eval: fix errata in EGETF addr case | 2026-03-22 | 1 | -1/+1 | ||
| | | | | | | | | The symref given by staticaddrof is in ex2, not sub. This worked by chance (with sub->ssym.off happening to be zero) on linux, but on OpenBSD it would give garbage. Which would result in messed up relocations later leading to miscompilations. | |||||
| * | mem2reg: improve on f9e3a52eaa | 2026-03-22 | 1 | -2/+18 | ||
| | | | | | | Move the alloca to the beginning of the block and do a 2nd pass on those odd cases. | |||||
| * | mem2reg: fix rare edge case with weird control flow | 2026-03-22 | 2 | -0/+30 | ||
| | | | | | | | | | | mem2reg was assuming alloca's appeared before all their uses. When this didn't happen it broke the logic re. sealed blocks. Normally this doesn't happen in most natural code. Even with gotos, RPO would assure this in most cases, the exception I found is a goto that jumps into a loop past a variable declaration that is earlier in the loop. Then even RPO would keep the alloca itself past the first uses, breaking things. | |||||
| * | IR: add 3rd operand to Instr | 2026-03-22 | 19 | -167/+171 | ||
| | | | | | | The motivation is for aarch64 msub/madd instrs, for isel to produce. But it should be useful for other things too. | |||||
| * | test/lua -> change Makefile to PLAT=posix | 2026-03-21 | 2 | -2/+2 | ||
| | | ||||||
| * | Rework handling of predefined macros. | 2026-03-21 | 11 | -95/+228 | ||
| | | | | | And add some GCC predefs like __SIZE_TYPE__, __LONG_SIZE__, etc | |||||
| * | 0.2.2 | 2026-03-21 | 1 | -2/+2 | ||
| | | ||||||
| * | oops. | 2026-03-21 | 1 | -1/+1 | ||
| | | ||||||
| * | OSunk -> unknown | 2026-03-21 | 1 | -2/+2 | ||
| | | ||||||
| * | Tweak configure & driver, fallback to cc | 2026-03-21 | 2 | -15/+29 | ||
| | | ||||||
| * | configure shellcheck, again | 2026-03-21 | 1 | -5/+5 | ||
| | | ||||||
| * | configure: sh shell conformance | 2026-03-21 | 1 | -1/+1 | ||
| | | ||||||
| * | fix again for openbsd | 2026-03-20 | 2 | -4/+4 | ||
| | | ||||||
| * | c: fix crash with dead code in condexpr | 2026-03-20 | 1 | -1/+2 | ||
| | | ||||||
| * | driver: only depend on ld for linking (todo) | 2026-03-20 | 5 | -47/+155 | ||
| | | ||||||
| * | c: better preserve source location in some cases | 2026-03-20 | 2 | -2/+8 | ||
| | | ||||||
| * | io: make -w suppress notes too | 2026-03-20 | 5 | -16/+17 | ||
| | | ||||||
| * | c: fix isboollike() for phis | 2026-03-19 | 1 | -2/+3 | ||
| | | ||||||
| * | 0.2.1 | 2026-03-19 | 1 | -2/+2 | ||
| | | ||||||
| * | c: fix qualifiers for array declarators | 2026-03-19 | 2 | -7/+16 | ||
| | | | | | | | `const int x[]` was being treated as `const int x[const]`, which is wrong, and matters when `x` is a function parameter that really decays to a pointer (`int const *const x`) | |||||
| * | Shell script changes for portability | 2026-03-19 | 3 | -13/+18 | ||
| | | ||||||
| * | test: add test for __func__ | 2026-03-19 | 1 | -0/+2 | ||
| | | ||||||
| * | ir: do not always try to put small literals in .text | 2026-03-19 | 2 | -4/+13 | ||
| | | | | | | OpenBSD enforces read xor execute (XOM) even in x86-64. Not aware of any other platforms that do this. | |||||
| * | preeliminary support for openBSD | 2026-03-19 | 5 | -16/+46 | ||
| | | ||||||
| * | regalloc & emit: explicit comparisons over memcmp of small structures | 2026-03-19 | 2 | -3/+19 | ||
| | | | | | | The one in x86-64_emit was not portable due to relying on zero initialization of inactive union fields/padding. | |||||
| * | cpp: fix nullptr deref for unknown target predefs | 2026-03-19 | 1 | -1/+1 | ||
| | | ||||||
| * | c: remove unused initialization of decl.align | 2026-03-19 | 1 | -3/+3 | ||
| | | | | | | The intent is for _Alignas declarations but those aren't implemented yet. And initializing that field in declarator() can mess with .sym. | |||||
| * | c: fix edge cases with zero sized bitfields and static initializers | 2026-03-18 | 3 | -10/+31 | ||
| | | ||||||
| * | regalloc: use in-place mergesort for intervals | 2026-03-18 | 1 | -60/+60 | ||
| | | | | | | | Instead of constructing an array and doing quicksort. i love .02% speedup microoptimizations | |||||
| * | cpp: do not warn for "#define X(){}" with no space after the ) | 2026-03-18 | 1 | -1/+1 | ||
| | | ||||||
| * | 0.2.0 | 2026-03-18 | 1 | -3/+3 | ||
| | | | | | Changed directory/source files structure warrants minor version update. | |||||
| * | Use #pragma once | 2026-03-18 | 8 | -17/+12 | ||
| | | ||||||
| * | c.h: accidentally removed a const | 2026-03-18 | 1 | -1/+1 | ||
| | | ||||||
| * | README missed filename | 2026-03-18 | 1 | -1/+1 | ||
| | | ||||||
| * | Refactor: use typedefs and CamelCase for aggregate types | 2026-03-18 | 42 | -2066/+2092 | ||
| | | | | | Looks nicer | |||||
| * | Refactor: antcc.h move things around | 2026-03-17 | 1 | -10/+10 | ||
| | | ||||||
| * | Refactor: move some utils from antcc.h to their own headers | 2026-03-17 | 12 | -117/+136 | ||
| | | ||||||
| * | REFACTOR: finish renaming | 2026-03-17 | 35 | -142/+154 | ||
| | | ||||||
| * | REFACTOR: move sources to src/ | 2026-03-17 | 49 | -21/+10 | ||
| | | ||||||
| * | test/.gitignore | 2026-03-17 | 1 | -0/+1 | ||
| | | ||||||
| * | switch to whitelist based .gitignore | 2026-03-16 | 1 | -14/+29 | ||
| | | ||||||
| * | Update README | 2026-03-16 | 1 | -3/+1 | ||
| | | ||||||
| * | fix Makefile | 2026-03-16 | 1 | -3/+3 | ||
| | | ||||||
| * | regalloc: improve spilling and cleanup | 2026-03-16 | 4 | -354/+401 | ||
| | | | | | | | | | Instead of spilling current interval when running out of registers, spill the longest-lived active interval with a lower spill cost than current. Spill costs are estimated based on multiplicative loop depth. Also cleanup regalloc.c somewhat. Update todo.txt too. | |||||
| * | ir: blk loop index for spill cost | 2026-03-16 | 3 | -4/+39 | ||
| | | ||||||
| * | Makefile: add clean-tool | 2026-03-16 | 1 | -2/+5 | ||
| | | ||||||
| * | eval: fix errata with ELOGIOR, also rename lhs & rhs | 2026-03-15 | 1 | -78/+77 | ||
| | | ||||||