I'm currently researching some compiler optimizations for the CPU backend of the hipSYCL project inside a Clang & LLVM plugin. As we have to heavily rely on the compiler's auto-vectorizer, I wanted to have a look at whether I could take advantage of ICPX's promised performance benefits as it's based on LLVM and I guess there are others out there who'd benefit from this.
To do so, I'd have to be able to compile the plugin either against ICPX directly, thus requiring the necessary dev files (headers & libs), or find an API and ABI compatible LLVM version to build against and then just use the plugin with ICPX.
As the latter is very brittle, given there probably are some not easily observable changes in ICPX and guessing a good LLVM version being non-trivial, too.
Thus I'd like to ask whether there's any chance to get access to the required (binary) dev files or there's any other opportunity to use LLVM plugins with the production compilers.
Thanks for reaching out to us.
>>whether there's any chance to get access to the required (binary) dev files
You can use icpx/dpcpp from opensource oneAPI to get the dev files but access to required Intel oneAPI (binary) dev files may not be possible.
You can refer the below link regarding opensource oneAPI:
Thanks & Regards
I know I could use the https://github.com/intel/llvm project and build the plugin against that.
But to my knowledge, this Open Source project is mostly a staging repository and does not contain the vectorizer optimizations that bring the promised performance uplift compared to upstream LLVM. So to be able to take advantage of these improvements in conjunction with the LLVM plugin, to my knowledge, I'd have to directly build against and use the binary distributions of ICPX / DPCPP.
Please correct me if anything of the above is wrong, but right now, I don't think the inquiry is solved.
Being able to build the plugin does not require the full compiler to be open-sourced, but just shipping some additional files, that also don't expose much more of trade secrets than the binary distribution does already. Those additional files are shipped in a separate package for most other projects, so only those that need them, have to install them.
I'd really appreciate, if adding those development files would be considered!
We will no longer respond to this thread. If you require additional assistance from Intel, please start a new thread. Any further interaction in this thread will be considered community only.