See the following bug: https://bugs.llvm.org/show_bug.cgi?id=42881 I think this is a bug in LLVM, but the code in question wasn't the best code anyway. By fixing this, about 16 bytes of code are saved on ARM chips (and much more on AVR).
This page has been a big help in adding support for this new chip: https://wiki.osdev.org/HiFive-1_Bare_Bones