<feed xmlns='http://www.w3.org/2005/Atom'>
<title>antcc/src/ir_regalloc.c, branch trunk</title>
<subtitle>A little C compiler</subtitle>
<id>https://git.lemon.rip/antcc/atom?h=trunk</id>
<link rel='self' href='https://git.lemon.rip/antcc/atom?h=trunk'/>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/'/>
<updated>2026-04-08T08:26:18+00:00</updated>
<entry>
<title>Implement basic aarch64 struct arg passing ABI</title>
<updated>2026-04-08T08:26:18+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-04-08T08:26:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=8b79b61ae78c91c069447331ed64d400187bdd77'/>
<id>urn:sha1:8b79b61ae78c91c069447331ed64d400187bdd77</id>
<content type='text'>
- Missing: vaargs, &gt;2 member HFAs

- Reworked the way stack allocation references are lowered. Now RSTACK
  persists throughout all passes until emit. This allows deferring stack
  frame layouting until the end in a less messy way than before, which
  was emiting frame-pointer relative addresses @ isel time and patching them up
  later in emit to account for actual stack frame layout.
</content>
</entry>
<entry>
<title>regalloc: remove dead code for liveness fixup</title>
<updated>2026-03-24T13:40:37+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-24T13:40:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=2707c6ccdef9dd557c6733a3753909a93425f87c'/>
<id>urn:sha1:2707c6ccdef9dd557c6733a3753909a93425f87c</id>
<content type='text'>
I tested it and it seems this wasn't doing anything. Maybe at some point
in the past it was needed to fix up a worse implementation of mem2reg?
So turn it into a check. Maybe it's wrong and it can be necessary.
</content>
</entry>
<entry>
<title>IR: mark free'd instructions as such</title>
<updated>2026-03-23T18:20:32+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-23T18:20:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=8630aeb8b43c507cd00f5b091ddcee4def464f4d'/>
<id>urn:sha1:8630aeb8b43c507cd00f5b091ddcee4def464f4d</id>
<content type='text'>
That way they are not copied when inlining.
Also rename ninstr -&gt; ninstrtab. opnarg -&gt; opnoper
</content>
</entry>
<entry>
<title>rega/devirt: don't assume unused operands are zeroinitialized</title>
<updated>2026-03-23T10:27:34+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-23T10:24:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=b9d12248e4c3e698ab35f8f264443d5a4b48be1a'/>
<id>urn:sha1:b9d12248e4c3e698ab35f8f264443d5a4b48be1a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>aarch64: rem/urem, bswap*, arg bugfix</title>
<updated>2026-03-22T18:25:46+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-22T18:25:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=cbca5355c0c0b1910735b1430e2552855a2aa5c7'/>
<id>urn:sha1:cbca5355c0c0b1910735b1430e2552855a2aa5c7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>IR: add 3rd operand to Instr</title>
<updated>2026-03-22T09:49:26+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-21T21:20:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=79874c83bf76a5b3efd3d558933b90d9b53b829e'/>
<id>urn:sha1:79874c83bf76a5b3efd3d558933b90d9b53b829e</id>
<content type='text'>
The motivation is for aarch64 msub/madd instrs, for isel to produce. But
it should be useful for other things too.
</content>
</entry>
<entry>
<title>regalloc &amp; emit: explicit comparisons over memcmp of small structures</title>
<updated>2026-03-19T10:51:13+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-19T10:51:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=46fc55e27390ea85eb34ec0367f40426197c9b9f'/>
<id>urn:sha1:46fc55e27390ea85eb34ec0367f40426197c9b9f</id>
<content type='text'>
The one in x86-64_emit was not portable due to relying on zero
initialization of inactive union fields/padding.
</content>
</entry>
<entry>
<title>regalloc: use in-place mergesort for intervals</title>
<updated>2026-03-18T19:28:20+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-18T19:28:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=626c927bb70519e630402093ff4fba432d2ac8c5'/>
<id>urn:sha1:626c927bb70519e630402093ff4fba432d2ac8c5</id>
<content type='text'>
Instead of constructing an array and doing quicksort.

i love .02% speedup microoptimizations
</content>
</entry>
<entry>
<title>Refactor: use typedefs and CamelCase for aggregate types</title>
<updated>2026-03-18T10:33:41+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-18T10:33:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=1d9e19fb3bb941cdc28e9d4c3063d3e213fd8312'/>
<id>urn:sha1:1d9e19fb3bb941cdc28e9d4c3063d3e213fd8312</id>
<content type='text'>
Looks nicer
</content>
</entry>
<entry>
<title>Refactor: move some utils from antcc.h to their own headers</title>
<updated>2026-03-17T17:30:37+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-17T17:30:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=04930d578e65d560253d0c24af43e0ecd06117c8'/>
<id>urn:sha1:04930d578e65d560253d0c24af43e0ecd06117c8</id>
<content type='text'>
</content>
</entry>
</feed>
