<feed xmlns='http://www.w3.org/2005/Atom'>
<title>antcc/src/ir.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-17T19:21:55+00:00</updated>
<entry>
<title>support extern inline "definitions"</title>
<updated>2026-04-17T19:21:55+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-04-17T19:21:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=3cd04b7ea9e7d33ec6b50524f97ada82ecdfebbe'/>
<id>urn:sha1:3cd04b7ea9e7d33ec6b50524f97ada82ecdfebbe</id>
<content type='text'>
</content>
</entry>
<entry>
<title>C99 complex types MVP</title>
<updated>2026-04-13T17:30:01+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-04-13T17:25:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=ddbd42e66cc71b470730037d76f4f267e98d8d40'/>
<id>urn:sha1:ddbd42e66cc71b470730037d76f4f267e98d8d40</id>
<content type='text'>
Missing: static eval of complex values,

Silly inefficient implementation of equality comparisons between them

The whole thing is pretty inefficient without proper aggregate mem2reg
anyway
</content>
</entry>
<entry>
<title>backend: fix memory leak from not calling deluses() after replcuses in some places</title>
<updated>2026-04-11T20:49:19+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-04-11T20:49:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=d40371b615b560d8726fd4fdaf7d35abc959e0e9'/>
<id>urn:sha1:d40371b615b560d8726fd4fdaf7d35abc959e0e9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>backend: run mem2reg after inlining</title>
<updated>2026-04-11T10:14:09+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-04-11T10:14:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=757b5735f44e9a9454f12612ec00c38d81f5f32c'/>
<id>urn:sha1:757b5735f44e9a9454f12612ec00c38d81f5f32c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>mkintcon: bugfix clamp i32 to i32 range</title>
<updated>2026-04-09T12:05:31+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-04-09T12:04:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=3dd91560a2dca691953a5691e96787adeeb509d5'/>
<id>urn:sha1:3dd91560a2dca691953a5691e96787adeeb509d5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>abi: fix use bug preventing mem2reg optimization of struct return</title>
<updated>2026-03-25T16:20:20+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-25T16:20:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=f38a3f2e78bc3fff37ab2107d448865f5b67a4d8'/>
<id>urn:sha1:f38a3f2e78bc3fff37ab2107d448865f5b67a4d8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>IR: emit inline function standalone bodies lazily</title>
<updated>2026-03-23T22:43:52+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-23T22:38:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=62d995124c0cc2eaeec79e18edc3e044f3e524c9'/>
<id>urn:sha1:62d995124c0cc2eaeec79e18edc3e044f3e524c9</id>
<content type='text'>
If a function is stashed for inlining and inlined in all of its
callsites or unused, it never ends up in the object file. If any symbol
reference to it is emitted, then it must be de-inlined (rematerialized),
and this is done near the end before emitting the actual object file.
</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>style: change uvlong -&gt; u64int, vlong -&gt; s64int</title>
<updated>2026-03-22T21:00:35+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-22T21:00:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=7c5dd45eca377a3b675b6f0d4a9331bc3f971ac9'/>
<id>urn:sha1:7c5dd45eca377a3b675b6f0d4a9331bc3f971ac9</id>
<content type='text'>
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 -&gt; u/s16int, maybe.
</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>
</feed>
