[cfe-dev] [RFC][OpenMP][CUDA] Unified Offloading Support in Clang Driver

Andrey Bokhanko via cfe-dev cfe-dev at lists.llvm.org
Wed Mar 9 05:59:54 PST 2016


I asked Intel GCC guys who implemented OpenMP offloading support in GCC,
and as they told me, GCC also employs option #4 from Hal's list -- it puts
both host and target code in a single ELF file. "Code" in GCC case is
always GCC's IR (Gimple), though -- they require GCC invocation from linker
in order to produce a multi-target executable. This makes GCC
non-interoperable with any other offloading compiler and effectively
produces its own standard.

Thus, prior art from:
* nvcc
* Pathscale

indicates only one direction -- compiler driver produces a single object
file with target code embedded in data section.

Justin, is this convincing enough? I don't see any good reasons why clang
should go against what every other compiler on the planet does.

Re: objdump doesn't understand ELF format with code for multiple targets.
The same is true for fat executable files as well, isn't? So if we need to
teach objdump how to recognize fat files, we already have this problem.

Software Engineer
Intel Compiler Team
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20160309/cdbd677c/attachment.html>

More information about the cfe-dev mailing list