[X86] Finalizing SVML support in LLVM


Intel SVML (Short Vector Math Library) support in LLVM was sort of stuck is limbo for a long time, with some patches landed years ago and some didn’t, and we would like to finalize it.
Specifically those patches never landed and didn’t get much attention in general:

What is the best course of actions here?
My idea was to push calling conventions patch first as it doesn’t depends on anything but whom to ask for review it?

Current merged version of the patch: https://github.com/Hardcode84/llvm-project/commit/9de32f5474f1f78990b399214bdbb6c21f8f098e (based on llvm14)

Thanks for opening this discussion!

Aside from the larger question of upstreaming SVML support, there’s a more specific thing that’d be very helpful as well. To wit: for supporting numba & llvmlite (which require these patches) in conda-forge, we’d need to carry a version of the mentioned patch for LLVM 14, and we were hoping that someone with knowledge of this corner of the codebase could provide some degree of “this looks OK” before we do that.

I realize that interest in reviewing a patch targeting LLVM 14 is probably not very high, that’s why I’m not asking for a full formal review. For context about the gap to main: the numba JIT has to adapt to bytecode changes in LLVM & CPython, and it takes a lot of work to upgrade. Before upgrading, to LLVM 14 quite recently, llvmlite was still bound to LLVM 11.


We have first patch ready for review: Add SVML calling convention by ZzEeKkAa · Pull Request #67884 · llvm/llvm-project · GitHub
It adds SVML calling conventions to LLVM, actual usage of these CCs will be added in follow-up patches.
Getting some review would be great )


1 Like