Daniel Thornburgh
Daniel Thornburgh
There are now two examples of the pattern of symbol referenced generation used to zero `.bss` and copy `.data`: one for regular memory, and one for the zero page (`.zp.bss`...
Loops that walk a pointer through a region of memory usually involve one of the indexed addressing modes with one of the 8-bit indexed registers. Instead of incrementing the 16-bit...
The general performance of the calling convention may be improved by passing 64-bit integers by pointer, just as large structs are.
A CPU type should be added for the Ricoh 2A03 (and implicitly the PAL 2A07) used in the NES. The only difference is that the D flag has no effect...
Even with a whole-program zero page allocation pass after codegen, opportunities to use the zero page may still be missed. For example, a memset over a small array could be...
The `mem...` family instructions have pretty terrible lowering for small sizes; they always perform a libcall. Just setting up the arguments for the libcall can be more code than doing...
We've already incorporated a good amount of libcxx and libcxxabi code into the SDK. It would really be nice to have a real C++ implementation available, and the fact that...
One of the biggest performance optimizations that can be done on the 6502 is to transform arrays-of-structs into structs-of-arrays. When applicable, this can replace the need to bump pointers by...
An existing soft float library should be compiled for the platform. Floating point operations should be made to call out to this library. The library should be included in the...
Something is wonky with the sizes of our packages; the Arch Linux packages for LLVM and Clang together are under 80MB, while our distribution is at 535MB. It's possible that...