<feed xmlns='http://www.w3.org/2005/Atom'>
<title>antcc/ir/intrin.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-17T12:22:00+00:00</updated>
<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>
<entry>
<title>backend: separate instrs for integer/float store</title>
<updated>2025-12-31T10:13:15+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-31T10:13:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=97c6d5c44f30b29b52d1dc431ab9f2df4bb47fd2'/>
<id>urn:sha1:97c6d5c44f30b29b52d1dc431ab9f2df4bb47fd2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>avoid GOT relocations in unnecessary instances</title>
<updated>2025-12-25T12:28:56+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-25T12:28:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=a6c2f8a9177eeae64b83e4aeafe46dbe310b3861'/>
<id>urn:sha1:a6c2f8a9177eeae64b83e4aeafe46dbe310b3861</id>
<content type='text'>
Also change xcon to have a flagset for symbols (whether it's a function,
locally defined; later: thread local, etc).
</content>
</entry>
<entry>
<title>backend: unify pass memory allocation strategies</title>
<updated>2025-12-20T18:31:50+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-20T16:59:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=e6fbab42185f4fb4e3a3b1e3e93eaa5d3d81b7c7'/>
<id>urn:sha1:e6fbab42185f4fb4e3a3b1e3e93eaa5d3d81b7c7</id>
<content type='text'>
It was all over the place for temporary data structures used by
individual passes. Now there is an arena specifically for that, which is
nicer.
</content>
</entry>
<entry>
<title>create distinct interned string type</title>
<updated>2025-12-15T21:39:52+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-15T21:39:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=302e24671942051d70707586cf8c605a5815edac'/>
<id>urn:sha1:302e24671942051d70707586cf8c605a5815edac</id>
<content type='text'>
Interned strings are used pervasively, so it's a good idea to add a
layer of type safety to differentiate them from general cstrs and avoid
potential bugs from comparing non-interned and interned strings. Not
that that's happened so far that I can remember, but it could.

I'm 90% sure it's legal to alias `struct {char c;}` pointers with `char`
pointers. This specific typedef gives type safety but with a simple
one-way `internstr -&gt; const char *` typecast (with `&amp;istr-&gt;c`).
Converting the other way around is more intentional: a straight up cast
`(internstr)cstr` which sticks out as unchecked and probably wrong, or
calling the intern(cstr) function, which is the right way.
</content>
</entry>
<entry>
<title>fix position independent loads of function symbols.</title>
<updated>2025-12-13T13:24:30+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-13T13:21:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=854df54e1839c8b96d1aaa9aeaa32c2ebbf535f8'/>
<id>urn:sha1:854df54e1839c8b96d1aaa9aeaa32c2ebbf535f8</id>
<content type='text'>
For `extern int x[1];`, can use PCREL32 for &amp;x. But for `extern int
x(int)`, must use GOTREL, when not being called directly (that's PLT).
Therefore the type of an external symbol (actually just whether it
denotes a function) matters when deciding what kind of relocation to
emit, so keep that information.
</content>
</entry>
<entry>
<title>rename arraylength macro -&gt; countof</title>
<updated>2025-12-11T19:43:24+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-11T19:43:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=88652eeb10cd9381aafb2d55e9474bb0799630b1'/>
<id>urn:sha1:88652eeb10cd9381aafb2d55e9474bb0799630b1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>change op names to match 285063eba44</title>
<updated>2025-11-21T15:49:53+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-11-21T15:49:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=ec4cfe9db9afc1d1c633a922174f5bb0685b0c32'/>
<id>urn:sha1:ec4cfe9db9afc1d1c633a922174f5bb0685b0c32</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rename IR classes to reflect bitsize</title>
<updated>2025-11-21T10:03:23+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-11-21T10:03:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=285063eba442e2a8ac29fd42e0d17d996bcc5d00'/>
<id>urn:sha1:285063eba442e2a8ac29fd42e0d17d996bcc5d00</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Organize source files into directories</title>
<updated>2025-10-19T06:09:09+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-10-19T06:09:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=dea8fd171acb54b6d9685422d5e391fb55074008'/>
<id>urn:sha1:dea8fd171acb54b6d9685422d5e391fb55074008</id>
<content type='text'>
</content>
</entry>
</feed>
