[PATCH] D142118: [HIP] Unbundler allows missing host entry
Yaxun Liu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 19 07:45:28 PST 2023
yaxunl created this revision.
yaxunl added a reviewer: tra.
Herald added a project: All.
yaxunl requested review of this revision.
Herald added subscribers: sstefan1, MaskRay.
Herald added a reviewer: jdoerfert.
clang-offload-bundler should allow missing host entry when unbundling with option
--allow-missing-bundles specified.
This is for the use cases where users want to link device-only bundles with
bundles containing both device and host entries.
https://reviews.llvm.org/D142118
Files:
clang/lib/Driver/OffloadBundler.cpp
clang/test/Driver/clang-offload-bundler.c
Index: clang/test/Driver/clang-offload-bundler.c
===================================================================
--- clang/test/Driver/clang-offload-bundler.c
+++ clang/test/Driver/clang-offload-bundler.c
@@ -224,8 +224,11 @@
// RUN: diff %t.empty %t.res.tgt2
// Check that bindler prints an error if given host bundle does not exist in the fat binary.
-// RUN: not clang-offload-bundler -type=s -targets=host-amdgcn-xxx-linux-gnu,openmp-powerpc64le-ibm-linux-gnu -output=%t.res.s -output=%t.res.tgt1 -input=%t.bundle3.s -unbundle -allow-missing-bundles 2>&1 | FileCheck %s --check-prefix CK-NO-HOST-BUNDLE
-// CK-NO-HOST-BUNDLE: error: Can't find bundle for the host target
+// RUN: not clang-offload-bundler -type=s -targets=host-amdgcn-xxx-linux-gnu,openmp-powerpc64le-ibm-linux-gnu -output=%t.res.s -output=%t.res.tgt1 -input=%t.bundle3.s -unbundle 2>&1 | FileCheck %s --check-prefix CK-NO-HOST-BUNDLE
+// CK-NO-HOST-BUNDLE: error: Can't find bundles for host-amdgcn-xxx-linux-gnu
+
+// Check missing host entry is allowed with -allow-missing-bundles
+// RUN: clang-offload-bundler -type=s -targets=host-amdgcn-xxx-linux-gnu,openmp-powerpc64le-ibm-linux-gnu -output=%t.res.s -output=%t.res.tgt1 -input=%t.bundle3.s -unbundle -allow-missing-bundles
//
// Check binary bundle/unbundle. The content that we have before bundling must be the same we have after unbundling.
Index: clang/lib/Driver/OffloadBundler.cpp
===================================================================
--- clang/lib/Driver/OffloadBundler.cpp
+++ clang/lib/Driver/OffloadBundler.cpp
@@ -1060,7 +1060,7 @@
// If we found elements, we emit an error if none of those were for the host
// in case host bundle name was provided in command line.
- if (!FoundHostBundle && BundlerConfig.HostInputIndex != ~0u)
+ if (!FoundHostBundle && BundlerConfig.HostInputIndex != ~0u && !BundlerConfig.AllowMissingBundles)
return createStringError(inconvertibleErrorCode(),
"Can't find bundle for the host target");
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D142118.490512.patch
Type: text/x-patch
Size: 2036 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230119/ae7ee72b/attachment.bin>
More information about the cfe-commits
mailing list