Hi Folks,
I am currently trying to upgrade a JIT project of ours to LLVM15 and I am struggling to figure out a way to upgrade to handle the Float16 ABI.
Historically we have represented half as a storage format, similar to LLVM14 and before. In our runtime on Windows we would supply our own __extendhfsf2, __gnu_d2h_ieee, etc. With the switch to LLVM15 this no longer works, as would be expected due to the ABI change. Thus I was hoping to lean on compiler-rt to supply the builtins.
I can get the builtin lib using the defines below.
LLVM_ENABLE_RUNTIMES=“compiler-rt”
LLVM_RUNTIME_TARGETS=“x86_64-pc-windows”
COMPILER_RT_BUILD_BUILTINS=ON
However when I dumpbin the lib the functions I need are External.
…
SECT4 notype () External | __extendhfsf2
…
Am I just doing something silly or is my workflow fundamentally flawed?
Is there a workflow I can employ to get the half builtins that will work with the new API and Windows?
Any hints are greatly appreciated
Cheers,
JP
Note Originally I didn’t think the RUNTIME_“target”_BLAHBLAH note for the -D from (How to compile C++ files under compiler-rt with -stdlib=libc++? - #12 by RVP) didn’t pertain to this example. But I honestly didn’t try, running that experiment now just to confirm.