| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | aarch64 codegen fixes | 2026-01-08 | 2 | -59/+100 | |
| | | |||||
| * | codegen: eliminate redudant consecutive ret sequences | 2026-01-08 | 2 | -0/+3 | |
| | | |||||
| * | ir: only stub out float <-> u64 cvt on x86 | 2026-01-08 | 1 | -4/+3 | |
| | | | | | hackish.. | ||||
| * | irsimpl: optimize away cond branches after constant propagation | 2026-01-07 | 1 | -21/+69 | |
| | | |||||
| * | io.c: bugfix | 2026-01-07 | 1 | -1/+2 | |
| | | |||||
| * | aarch64: vshifts, flt cvt | 2026-01-07 | 2 | -6/+67 | |
| | | |||||
| * | basic CSE | 2026-01-04 | 5 | -0/+120 | |
| | | |||||
| * | ir bugfixes | 2026-01-04 | 2 | -4/+14 | |
| | | |||||
| * | rega: fix spill copy of i32 -> i64 | 2026-01-04 | 3 | -6/+6 | |
| | | |||||
| * | aarch64: LDR literal, cmp value | 2026-01-02 | 3 | -10/+34 | |
| | | |||||
| * | target sysv abi by default even for unknown abi | 2026-01-01 | 1 | -2/+2 | |
| | | |||||
| * | driver: when linking, put libraries at the end of command | 2026-01-01 | 1 | -1/+1 | |
| | | |||||
| * | Use a configure script, query system toolchain for default include paths | 2026-01-01 | 7 | -35/+135 | |
| | | |||||
| * | aarch64: not, flt load/store | 2025-12-31 | 2 | -11/+47 | |
| | | |||||
| * | c: fix diagnostic with "return <undeclared>" | 2025-12-31 | 1 | -2/+2 | |
| | | |||||
| * | aarch64 floats | 2025-12-31 | 2 | -51/+106 | |
| | | |||||
| * | backend: separate instrs for integer/float store | 2025-12-31 | 13 | -49/+79 | |
| | | |||||
| * | aarch64 isel syms with offset | 2025-12-31 | 3 | -41/+59 | |
| | | |||||
| * | c: SYM expr should store decl ref as an index, not pointer | 2025-12-30 | 3 | -52/+59 | |
| | | | | | | | | | Because envdecls (now declsbuf) can be resized and invalidate those pointers. I missed this because the default initialization size of that buffer (and the fact that it would mostly only manifest with function-local expressions) made it not really come up in practice. Silly | ||||
| * | aarch64 mul/div | 2025-12-30 | 2 | -0/+31 | |
| | | |||||
| * | more aarch64 work | 2025-12-29 | 4 | -71/+212 | |
| | | |||||
| * | x86_64: optimize away some redundant zero extensions | 2025-12-29 | 1 | -1/+9 | |
| | | |||||
| * | x86_64/isel: aimm should take vlong | 2025-12-29 | 1 | -1/+1 | |
| | | |||||
| * | cpp: nicer handling of predefined macros | 2025-12-29 | 1 | -40/+29 | |
| | | |||||
| * | backend: start implementing aarch64 | 2025-12-28 | 11 | -24/+1245 | |
| | | |||||
| * | x86_64/emit move things around | 2025-12-26 | 1 | -12/+11 | |
| | | |||||
| * | ir/builder: fix bug optiminzg x+x as x-x -> 0 | 2025-12-26 | 1 | -2/+3 | |
| | | |||||
| * | avoid GOT relocations in unnecessary instances | 2025-12-25 | 6 | -16/+19 | |
| | | | | | | Also change xcon to have a flagset for symbols (whether it's a function, locally defined; later: thread local, etc). | ||||
| * | cleantemps() fixes | 2025-12-24 | 1 | -0/+6 | |
| | | |||||
| * | ir: arena-backed linked list for uselists | 2025-12-24 | 4 | -117/+96 | |
| | | | | | | Is much simpler than the growable buffers, seems to be just as efficient if not a little faster when benchmarked. | ||||
| * | abi0: get rid of manual instruse reordering | 2025-12-24 | 1 | -12/+1 | |
| | | | | | Vestigial, wasn't enough and we're sorting uses in mem2reg now. | ||||
| * | x86_64: fix isel for 7036e19 | 2025-12-24 | 1 | -1/+1 | |
| | | |||||
| * | driver: use execvp | 2025-12-23 | 1 | -7/+6 | |
| | | |||||
| * | x86_64: fix -fpic | 2025-12-23 | 1 | -9/+7 | |
| | | |||||
| * | lower alloca as a separate pass before isel | 2025-12-23 | 9 | -36/+65 | |
| | | |||||
| * | ir: use BIT macro for regset (1<< is wrong for u64) | 2025-12-23 | 2 | -6/+8 | |
| | | |||||
| * | c: add _Generic | 2025-12-22 | 2 | -1/+54 | |
| | | |||||
| * | update todo.txt | 2025-12-22 | 1 | -3/+11 | |
| | | |||||
| * | c: recognize __attribute__ as decltok, improve diagnostic for expected ↵ | 2025-12-22 | 1 | -1/+2 | |
| | | | | | declaration | ||||
| * | preprocessor make some errors just warnings | 2025-12-22 | 1 | -4/+6 | |
| | | |||||
| * | simpl: handle multiplication by negative po2 too | 2025-12-22 | 1 | -5/+9 | |
| | | |||||
| * | arena: make sure to zero initialize some stuff | 2025-12-22 | 1 | -0/+2 | |
| | | |||||
| * | c/c.c: cleanup exprparse a little | 2025-12-22 | 1 | -13/+12 | |
| | | |||||
| * | c: Fix some dumb uses of initialized stuff | 2025-12-22 | 2 | -10/+12 | |
| | | | | | | | Can't figure out what's wrong with the change to struct expr from 9721d6ba40 but it makes valgrind complain and causes miscompilation of the compiler itself.. | ||||
| * | simpl: optimize unsigned & signed division by power of 2 | 2025-12-21 | 3 | -19/+66 | |
| | | |||||
| * | ir: simpl: optimize some constant multiplications | 2025-12-21 | 2 | -18/+61 | |
| | | | | | Reuse irbinop() and irunop() for the constant results cases. | ||||
| * | c: keyword aliases | 2025-12-21 | 4 | -67/+82 | |
| | | | | | | Some linux headers use __signed__ for whatever reason.. this is a general fix for those alternate keyword | ||||
| * | c: allow `return voidfn()` extension | 2025-12-21 | 1 | -4/+30 | |
| | | |||||
| * | lexer: more small optimizations | 2025-12-21 | 1 | -14/+33 | |
| | | |||||
| * | rega: fix 3ff0bfcb | 2025-12-21 | 1 | -4/+1 | |
| | | |||||