Adding 16-bit Character Support in LLVM
LLVM has a great track record for being able to target a large range of processors, both large 32/64-bit devices and deeply embedded 8/16-bit processors. From most perspectives, from Clang through to code generation, the size of most operations do not make much difference to the ease of implementation. However there are some assumptions that are baked deeply into the compiler; one of which is the memory access width, more specifically that it is addressible in 8-bit words. This however is not always the case, many embedded DSPs can only access memory with 16-bit addressibility, and trying to teach LLVM about this proves to be a challenge.
In this talk, we will present our first explorations in this area, and share our thoughts on how we can make LLVM more memory agnostic for all targets with non-8-bit memory.