[PATCH] D152882: [LinkerWrapper] Support device binaries in multiple link jobs
Joseph Huber via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Jun 13 19:19:05 PDT 2023
jhuber6 created this revision.
jhuber6 added reviewers: JonChesterfield, tra, yaxunl.
Herald added a subscriber: tpr.
Herald added a project: All.
jhuber6 requested review of this revision.
Herald added subscribers: llvm-commits, cfe-commits, jplehr, sstefan1, MaskRay.
Herald added a reviewer: jdoerfert.
Herald added projects: clang, LLVM.
Currently the linker wrapper strictly assigns a single input binary to a
single link job based off of its input architecture. This is not
sufficient to implement the AMDGPU target ID correctly as this could
have many compatible architectures participating in multiple links.
This patch introduces the ability to have a single binary input be
linked multiple times. For example, given the following, we will now
link in the static library where previously we would not.
clang foo.c -fopenmp --offload-arch=gfx90a
llvm-ar rcs libfoo.a foo.o
clang foo.c -fopenmp --offload-arch=gfx90a:xnack+ libfoo.a
This also means that given the following we will link the basic input
twice, but that's on the user for providing two versions.
clang foo.c -fopenmp --offload-arch=gfx90a,gfx90a:xnack+
This should allow us to also support a "generic" target in the future
for IR without a specific architecture.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D152882
Files:
clang/lib/Driver/ToolChains/Clang.cpp
clang/test/Driver/linker-wrapper.c
clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
clang/tools/clang-linker-wrapper/LinkerWrapperOpts.td
llvm/include/llvm/Object/OffloadBinary.h
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D152882.531152.patch
Type: text/x-patch
Size: 11781 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230614/c74c2b6b/attachment.bin>
More information about the cfe-commits
mailing list