I’ve got an embedded development board with an ARMv4 chip that has no thumb support whatsoever. Given that lib/Target/ARM/ARM.td has no apparent option for ARMv4 without Thumb, can I still use clang for ARMv4, or am I out of luck? Can I expect to use clang in the future, or am I going to be stuck with the mess that is gcc?
It ought to work; just specify the CPU as "generic" or "strongarm".
Granted, there's relatively little testing for anything older than
ARMv6, but all the pieces are there.
LLVM is only free to select both if you specify armv4t. If you specify
armv4 in the triple it should only select ARM instructions. If LLVM
does otherwise, it's a bug.
Please, submit bugs in the bugzilla with a reproducible case if you
find anything that is out of place.
We tested armv4t with Clang/LLVM and support is surprisingly very
good, since not many people test it. But we haven't tested StrongARM,
so would be good to hear from you the results.