This is split out from the LTO change. It's needed by the LTO build so that we can easily build these files in non-LTO mode, since they satisfy calls emitted by LLVM codegen after LTO.