<feed xmlns='http://www.w3.org/2005/Atom'>
<title>antcc/src/ir_mem2reg.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-03-24T10:55:13+00:00</updated>
<entry>
<title>mem2reg rewrite</title>
<updated>2026-03-24T10:55:13+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-24T10:55:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=5c209b4df903c5f71cdc8320adbb34f1499f9232'/>
<id>urn:sha1:5c209b4df903c5f71cdc8320adbb34f1499f9232</id>
<content type='text'>
Do it in 2 passes: 1. gather variables, 2. step thru RPO transforming
loads/stores to each variable. More elegant solution to f9e3a52eaa.
More efficient since all variable usages are visited in CFG order, which
matters due to block sealing.
</content>
</entry>
<entry>
<title>mem2reg: improve on f9e3a52eaa</title>
<updated>2026-03-22T10:21:01+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-22T10:20:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=adf244459ef6946c2050764906357a4ec4010b3f'/>
<id>urn:sha1:adf244459ef6946c2050764906357a4ec4010b3f</id>
<content type='text'>
Move the alloca to the beginning of the block and do a 2nd pass on those
odd cases.
</content>
</entry>
<entry>
<title>mem2reg: fix rare edge case with weird control flow</title>
<updated>2026-03-22T09:49:30+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-22T09:45:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=f9e3a52eaa6ae91388aa247182da6df3cc8d5a05'/>
<id>urn:sha1:f9e3a52eaa6ae91388aa247182da6df3cc8d5a05</id>
<content type='text'>
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.
</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>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>
<entry>
<title>REFACTOR: move sources to src/</title>
<updated>2026-03-17T12:22:00+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-17T12:22:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=a8d6f8bf30c07edb775e56889f568ca20240bedf'/>
<id>urn:sha1:a8d6f8bf30c07edb775e56889f568ca20240bedf</id>
<content type='text'>
</content>
</entry>
</feed>
