aboutsummaryrefslogtreecommitdiffhomepage
path: root/ir/ir.h
Commit message (Collapse)AuthorAgeFilesLines
* ir: bump MAXINSTR lemon2025-12-101-1/+1
|
* abi: fix aggregate passed by regs 2nd reg offset lemon2025-12-061-3/+6
| | | | | | | | | It was broken for example `struct { i32 a; f64 b; }` (would try to load/store b from byte offset 4, not 8). Introduce r2off, realize in x86-64 it's always 8; even `struct {i32 a; f32 b;}` gets passed in one (integer) register. But not so in (future) ABIs like RISC-V, I believe there `{i32, f32}` would get passed in 1 integer and 1 float register (r2off = 4).
* add command-line predefined macros (-D, -U) lemon2025-12-061-2/+0
|
* ir.h: tweak mkintrin() definition to work with tinycc lemon2025-11-241-1/+1
|
* c: check actual reachability for non-void func may not return value lemon2025-11-231-0/+1
|
* ir: implement dominator tree computation lemon2025-11-211-0/+2
|
* ir: barebones IR passes checked contracts lemon2025-11-211-0/+8
|
* change op names to match 285063eba44 lemon2025-11-211-2/+2
|
* rename IR classes to reflect bitsize lemon2025-11-211-7/+7
|
* isel: lower allocas a different way, such that stk address gets materialized ↵ lemon2025-11-201-1/+1
| | | | when necesary
* ir: for easier debugging, keep ctype in dats, print as literal when possible lemon2025-11-201-1/+2
|
* factor type stuff into type.h lemon2025-11-161-0/+14
|
* ir: 'trap' jump; c: __builtin_trap; lex: __has_builtin lemon2025-11-151-1/+2
|
* preeliminary va_list support lemon2025-11-141-3/+6
|
* implement argument passing in stack lemon2025-11-121-0/+1
|
* fixup! amd64: get rid of xinc/xdec. handle those at emit stage lemon2025-11-091-0/+1
|
* amd64: fix aggregate abi stuff;; ir: fold, peephole optimizing constructors lemon2025-11-051-2/+10
|
* ir bugfixes lemon2025-10-231-0/+1
|
* Organize source files into directories lemon2025-10-191-0/+280