Does LLVM support any target platforms on which the natural integer
size/pointer size is smaller than 32 bits? For example, I noticed
mention of PIC16, is that such a platform?
If so, does the usual rule about the largest supported integer being
the size of two pointers still apply? So that on that platform you
can't use 64-bit integers, but you can use 32-bit integers?
The PIC16 is an 8-bit target, and the msp430 is a 16-bit target. The rules about the largest supported integer no longer apply as much- for most operations, codegen can now handle arbitrary precision (exceptions: mul, udiv, urem, sdiv, srem). For those five, library calls should be emitted for big integers - best way to check if they're supported is to just try them
I tried 128 bit integers on both of those, and msp430 crashes (in llc
2.6), but pic16 does indeed generate correct looking in-line code for
addition, and library calls for multiplication. Thanks!