-
Notifications
You must be signed in to change notification settings - Fork 14.3k
Reapply "[Driver][ROCm][OpenMP] Fix default ockl linking for OpenMP."… #126671
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@llvm/pr-subscribers-clang @llvm/pr-subscribers-clang-driver Author: Amit Kumar Pandey (ampandey-1995) Changes… (#126628) This reverts commit 0c6c4a9. Full diff: https://github.com/llvm/llvm-project/pull/126671.diff 4 Files Affected:
diff --git a/clang/lib/Driver/ToolChains/AMDGPU.cpp b/clang/lib/Driver/ToolChains/AMDGPU.cpp
index e66e5a32e58acd..202198e96c0127 100644
--- a/clang/lib/Driver/ToolChains/AMDGPU.cpp
+++ b/clang/lib/Driver/ToolChains/AMDGPU.cpp
@@ -1014,7 +1014,12 @@ RocmInstallationDetector::getCommonBitcodeLibs(
bool isOpenMP = false) const {
llvm::SmallVector<ToolChain::BitCodeLibraryInfo, 12> BCLibs;
- auto GPUSanEnabled = [GPUSan]() { return std::get<bool>(GPUSan); };
+ // GPU Sanitizer currently only supports ASan and is enabled through host
+ // ASan.
+ auto GPUSanEnabled = [GPUSan]() {
+ return std::get<bool>(GPUSan) &&
+ std::get<const SanitizerArgs>(GPUSan).needsAsanRt();
+ };
auto AddBCLib = [&](ToolChain::BitCodeLibraryInfo BCLib,
bool Internalize = true) {
BCLib.ShouldInternalize = Internalize;
@@ -1022,9 +1027,7 @@ RocmInstallationDetector::getCommonBitcodeLibs(
};
auto AddSanBCLibs = [&]() {
if (GPUSanEnabled()) {
- auto SanArgs = std::get<const SanitizerArgs>(GPUSan);
- if (SanArgs.needsAsanRt())
- AddBCLib(getAsanRTLPath(), false);
+ AddBCLib(getAsanRTLPath(), false);
}
};
@@ -1066,7 +1069,7 @@ ROCMToolChain::getCommonDeviceLibNames(const llvm::opt::ArgList &DriverArgs,
// them all?
std::tuple<bool, const SanitizerArgs> GPUSan(
DriverArgs.hasFlag(options::OPT_fgpu_sanitize,
- options::OPT_fno_gpu_sanitize, false),
+ options::OPT_fno_gpu_sanitize, true),
getSanitizerArgs(DriverArgs));
bool DAZ = DriverArgs.hasFlag(options::OPT_fgpu_flush_denormals_to_zero,
options::OPT_fno_gpu_flush_denormals_to_zero,
@@ -1099,7 +1102,7 @@ bool AMDGPUToolChain::shouldSkipSanitizeOption(
return false;
if (!DriverArgs.hasFlag(options::OPT_fgpu_sanitize,
- options::OPT_fno_gpu_sanitize, false))
+ options::OPT_fno_gpu_sanitize, true))
return true;
auto &Diags = TC.getDriver().getDiags();
diff --git a/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp b/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
index 00bf9c7338edd1..aba79f5fa6fa7b 100644
--- a/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
+++ b/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
@@ -68,7 +68,7 @@ llvm::opt::DerivedArgList *AMDGPUOpenMPToolChain::TranslateArgs(
Action::OffloadKind DeviceOffloadKind) const {
DerivedArgList *DAL =
HostTC.TranslateArgs(Args, BoundArch, DeviceOffloadKind);
- if (!DAL)
+ if (!DAL || Args.hasArg(options::OPT_fsanitize_EQ))
DAL = new DerivedArgList(Args.getBaseArgs());
const OptTable &Opts = getDriver().getOpts();
diff --git a/clang/test/Driver/amdgpu-openmp-sanitize-options.c b/clang/test/Driver/amdgpu-openmp-sanitize-options.c
index c28a758bfc0c5e..6b315672eb7ef8 100644
--- a/clang/test/Driver/amdgpu-openmp-sanitize-options.c
+++ b/clang/test/Driver/amdgpu-openmp-sanitize-options.c
@@ -1,7 +1,7 @@
// REQUIRES: x86-registered-target, amdgpu-registered-target
// Fail on invalid ROCm Path.
-// RUN: not %clang -no-canonical-prefixes -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp --offload-arch=gfx908:xnack+ -fsanitize=address -fgpu-sanitize -nogpuinc --rocm-path=%S/Inputs/rocm-invalid %s 2>&1 \
+// RUN: not %clang -no-canonical-prefixes -### -mcode-object-version=5 --target=x86_64-unknown-linux-gnu -fopenmp=libomp --offload-arch=gfx908:xnack+ -fsanitize=address -fgpu-sanitize -nogpuinc --rocm-path=%S/Inputs/rocm-invalid %s 2>&1 \
// RUN: | FileCheck --check-prefix=FAIL %s
// Enable multiple sanitizer's apart from ASan with invalid rocm-path.
@@ -13,38 +13,40 @@
// RUN: | FileCheck --check-prefix=NOTSUPPORTED %s
// GPU ASan Enabled Test Cases
-// ASan enabled for amdgpu-arch [gfx908]
-// RUN: %clang -no-canonical-prefixes -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp --offload-arch=gfx908 -fsanitize=address -fgpu-sanitize --rocm-path=%S/Inputs/rocm %s 2>&1 \
-// RUN: | FileCheck -check-prefixes=NOXNACK,GPUSAN %s
-
-// GPU ASan enabled for amdgpu-arch [gfx908:xnack-]
-// RUN: %clang -no-canonical-prefixes -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp --offload-arch=gfx908:xnack- -fsanitize=address -fgpu-sanitize --rocm-path=%S/Inputs/rocm %s 2>&1 \
-// RUN: | FileCheck -check-prefixes=XNACKNEG,GPUSAN %s
// GPU ASan enabled for amdgpu-arch [gfx908:xnack+]
// RUN: %clang -no-canonical-prefixes -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp --offload-arch=gfx908:xnack+ -fsanitize=address -fgpu-sanitize --rocm-path=%S/Inputs/rocm %s 2>&1 \
-// RUN: | FileCheck -check-prefixes=GPUSAN %s
+// RUN: | FileCheck -check-prefixes=HOSTSAN,GPUSAN,SAN %s
+
+// GPU ASan enabled through '-fsanitize=address' flag without '-fgpu-sanitize' for amdgpu-arch [gfx908:xnack+]
+// RUN: %clang -no-canonical-prefixes -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp --offload-arch=gfx908:xnack+ -fsanitize=address --rocm-path=%S/Inputs/rocm %s 2>&1 \
+// RUN: | FileCheck -check-prefixes=HOSTSAN,GPUSAN,SAN %s
// ASan enabled for multiple amdgpu-arch [gfx908:xnack+,gfx900:xnack+]
// RUN: %clang -no-canonical-prefixes -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp --offload-arch=gfx908:xnack+ --offload-arch=gfx900:xnack+ -fsanitize=address -fgpu-sanitize --rocm-path=%S/Inputs/rocm %s 2>&1 \
-// RUN: | FileCheck -check-prefixes=GPUSAN %s
+// RUN: | FileCheck -check-prefixes=HOSTSAN,GPUSAN,SAN %s
// GPU ASan Disabled Test Cases
-// ASan disabled for amdgpu-arch [gfx908]
-// RUN: %clang -no-canonical-prefixes -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp --offload-arch=gfx908 -fsanitize=address -fno-gpu-sanitize --rocm-path=%S/Inputs/rocm %s 2>&1 \
-// RUN: | FileCheck -check-prefixes=NOGPUSAN %s
+
+// GPU ASan disabled through '-fsanitize=address' without '-fgpu-sanitize' flag for amdgpu-arch [gfx908]
+// RUN: %clang -no-canonical-prefixes -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp --offload-arch=gfx908 -fsanitize=address --rocm-path=%S/Inputs/rocm %s 2>&1 \
+// RUN: | FileCheck -check-prefixes=NOXNACK,HOSTSAN,NOGPUSAN,SAN %s
+
+// GPU ASan disabled for amdgpu-arch [gfx908]
+// RUN: %clang -no-canonical-prefixes -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp --offload-arch=gfx908 -fsanitize=address -fgpu-sanitize --rocm-path=%S/Inputs/rocm %s 2>&1 \
+// RUN: | FileCheck -check-prefixes=NOXNACK,HOSTSAN,NOGPUSAN,SAN %s
// GPU ASan disabled for amdgpu-arch [gfx908:xnack-]
-// RUN: %clang -no-canonical-prefixes -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp --offload-arch=gfx908:xnack- -fsanitize=address -fno-gpu-sanitize --rocm-path=%S/Inputs/rocm %s 2>&1 \
-// RUN: | FileCheck -check-prefixes=NOGPUSAN %s
+// RUN: %clang -no-canonical-prefixes -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp --offload-arch=gfx908:xnack- -fsanitize=address -fgpu-sanitize --rocm-path=%S/Inputs/rocm %s 2>&1 \
+// RUN: | FileCheck -check-prefixes=XNACKNEG,HOSTSAN,NOGPUSAN,SAN %s
-// GPU ASan disabled for amdgpu-arch [gfx908:xnack+]
+// GPU ASan disabled using '-fno-gpu-sanitize' for amdgpu-arch [gfx908:xnack+]
// RUN: %clang -no-canonical-prefixes -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp --offload-arch=gfx908:xnack+ -fsanitize=address -fno-gpu-sanitize --rocm-path=%S/Inputs/rocm %s 2>&1 \
-// RUN: | FileCheck -check-prefixes=NOGPUSAN %s
+// RUN: | FileCheck -check-prefixes=HOSTSAN,NOGPUSAN,SAN %s
-// ASan disabled for amdgpu-arch [gfx908:xnack+,gfx900:xnack+]
+// GPU ASan disabled for multiple amdgpu-arch [gfx908:xnack+,gfx900:xnack+]
// RUN: %clang -no-canonical-prefixes -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp --offload-arch=gfx908:xnack+ --offload-arch=gfx900:xnack+ -fsanitize=address -fno-gpu-sanitize --rocm-path=%S/Inputs/rocm %s 2>&1 \
-// RUN: | FileCheck -check-prefixes=NOGPUSAN %s
+// RUN: | FileCheck -check-prefixes=HOSTSAN,NOGPUSAN,SAN %s
// FAIL-DAG: error: cannot find ROCm device library for ABI version 5; provide its path via '--rocm-path' or '--rocm-device-lib-path', or pass '-nogpulib' to build without ROCm device library
// NOTSUPPORTED-DAG: warning: ignoring '-fsanitize=leak' option as it is not currently supported for target 'amdgcn-amd-amdhsa'
@@ -52,14 +54,11 @@
// NOXNACK: warning: ignoring '-fsanitize=address' option for offload arch 'gfx908' as it is not currently supported there. Use it with an offload arch containing 'xnack+' instead
// XNACKNEG: warning: ignoring '-fsanitize=address' option for offload arch 'gfx908:xnack-' as it is not currently supported there. Use it with an offload arch containing 'xnack+' instead
-// GPUSAN: {{"[^"]*clang[^"]*" "-cc1" "-triple" "x86_64-unknown-linux-gnu".* "-fopenmp".* "-fsanitize=address".* "-fopenmp-targets=amdgcn-amd-amdhsa".* "-x" "c".*}}
-// GPUSAN: {{"[^"]*clang[^"]*" "-cc1" "-triple" "amdgcn-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu".* "-emit-llvm-bc".* "-target-cpu" "(gfx908|gfx900)".* "-fopenmp".* "-fsanitize=address".* "-x" "c".*}}
-// GPUSAN: {{"[^"]*clang-offload-packager[^"]*" "-o".* "--image=file=.*.bc,triple=amdgcn-amd-amdhsa,arch=gfx908(:xnack\-|:xnack\+)?,kind=openmp(,feature=(\-xnack|\+xnack))?"}}
-// GPUSAN: {{"[^"]*clang[^"]*" "-cc1" "-triple" "x86_64-unknown-linux-gnu".* "-fopenmp".* "-fsanitize=address".* "-fopenmp-targets=amdgcn-amd-amdhsa".* "-x" "ir".*}}
-// GPUSAN: {{"[^"]*clang-linker-wrapper[^"]*".* "--host-triple=x86_64-unknown-linux-gnu".* "--linker-path=[^"]*".* "--whole-archive" "[^"]*(libclang_rt.asan_static.a|libclang_rt.asan_static-x86_64.a)".* "--whole-archive" "[^"]*(libclang_rt.asan.a|libclang_rt.asan-x86_64.a)".*}}
+// HOSTSAN: {{"[^"]*clang[^"]*" "-cc1" "-triple" "x86_64-unknown-linux-gnu".* "-fopenmp".* "-fsanitize=address".* "-fopenmp-targets=amdgcn-amd-amdhsa".* "-x" "c".*}}
-// NOGPUSAN: {{"[^"]*clang[^"]*" "-cc1" "-triple" "x86_64-unknown-linux-gnu".* "-fopenmp".* "-fsanitize=address".* "-fopenmp-targets=amdgcn-amd-amdhsa".* "-x" "c".*}}
+// GPUSAN: {{"[^"]*clang[^"]*" "-cc1" "-triple" "amdgcn-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu".* "-emit-llvm-bc".* "-mlink-bitcode-file" "[^"]*asanrtl.bc".* "-mlink-bitcode-file" "[^"]*ockl.bc".* "-target-cpu" "(gfx908|gfx900)".* "-fopenmp".* "-fsanitize=address".* "-x" "c".*}}
// NOGPUSAN: {{"[^"]*clang[^"]*" "-cc1" "-triple" "amdgcn-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu".* "-emit-llvm-bc".* "-target-cpu" "(gfx908|gfx900)".* "-fopenmp".* "-x" "c".*}}
-// NOGPUSAN: {{"[^"]*clang-offload-packager[^"]*" "-o".* "--image=file=.*.bc,triple=amdgcn-amd-amdhsa,arch=gfx908(:xnack\-|:xnack\+)?,kind=openmp(,feature=(\-xnack|\+xnack))?"}}
-// NOGPUSAN: {{"[^"]*clang[^"]*" "-cc1" "-triple" "x86_64-unknown-linux-gnu".* "-fopenmp".* "-fsanitize=address".* "-fopenmp-targets=amdgcn-amd-amdhsa".* "-x" "ir".*}}
-// NOGPUSAN: {{"[^"]*clang-linker-wrapper[^"]*".* "--host-triple=x86_64-unknown-linux-gnu".* "--linker-path=[^"]*".* "--whole-archive" "[^"]*(libclang_rt.asan_static.a|libclang_rt.asan_static-x86_64.a)".* "--whole-archive" "[^"]*(libclang_rt.asan.a|libclang_rt.asan-x86_64.a)".*}}
+
+// SAN: {{"[^"]*clang-offload-packager[^"]*" "-o".* "--image=file=.*.bc,triple=amdgcn-amd-amdhsa,arch=gfx908(:xnack\-|:xnack\+)?,kind=openmp(,feature=(\-xnack|\+xnack))?"}}
+// SAN: {{"[^"]*clang[^"]*" "-cc1" "-triple" "x86_64-unknown-linux-gnu".* "-fopenmp".* "-fsanitize=address".* "-fopenmp-targets=amdgcn-amd-amdhsa".* "-x" "ir".*}}
+// SAN: {{"[^"]*clang-linker-wrapper[^"]*".* "--host-triple=x86_64-unknown-linux-gnu".* "--linker-path=[^"]*".* "--whole-archive" "[^"]*(libclang_rt.asan_static.a|libclang_rt.asan_static-x86_64.a)".* "--whole-archive" "[^"]*(libclang_rt.asan.a|libclang_rt.asan-x86_64.a)".*}}
\ No newline at end of file
diff --git a/clang/test/Driver/hip-sanitize-options.hip b/clang/test/Driver/hip-sanitize-options.hip
index 8a852867f5b3b3..8de0ee9e18426b 100644
--- a/clang/test/Driver/hip-sanitize-options.hip
+++ b/clang/test/Driver/hip-sanitize-options.hip
@@ -1,5 +1,5 @@
// RUN: %clang -### --target=x86_64-unknown-linux-gnu --offload-arch=gfx900:xnack+ \
-// RUN: -fsanitize=address -fgpu-sanitize \
+// RUN: -fsanitize=address \
// RUN: -nogpuinc --rocm-path=%S/Inputs/rocm \
// RUN: %s 2>&1 | FileCheck -check-prefixes=NORDC %s
|
Please explain in the commit message what changed since the original change. Thanks! |
3ddcfd9
to
e735ed1
Compare
auto GPUSanEnabled = [GPUSan]() { | ||
return std::get<bool>(GPUSan) && | ||
std::get<const SanitizerArgs>(GPUSan).needsAsanRt(); | ||
}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this using a lambda and capture for a simple and? I'm also surprised get<bool>
works instead of get<0>
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this using a lambda and capture for a simple and?
If we have other sanitizers apart from asan such as msan for GPU. Then , what I think we would be having another msanrtl.bc linked so that future code would be something like below for easy readability and maintainability purpose. Note: we cannot enable both ASan and MSan simultaneously at compile time. Using If
would make the condition too long.
auto GPUSanEnabled = [GPUSan](){
auto SanArgs = std::get<const SanitizerArgs>(GPUSan);
return std::get<bool>(GPUSan) &&
(SanArgs.needsAsanRt() || SanArgs.needsMsanRt()) ;
};
I'm also surprised
get<bool>
works instead ofget<0>
Yes, since the tuple contents are of unique types it works. Should I change it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just remove the lambda. It's over complicating a hypothetical future
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The fact that we have -fgpu-sanitize
at all is a mistake. The problem with these types of 'temporary' flags is that they come in and then never go away for legacy reasons. The correct solution would've been to force -Xarch_host
or -Xarch_device
if users didn't want it on both.
(llvm#126628) - This reverts commit 0c6c4a9. - Add '-mcode-object-version=5' as to explicitly use code object version 5 to match with 'FAIL' diagnostic. - Add Requires directive to support lit test run on platforms registered with x86_64 and amdgpu.
e735ed1
to
8367c38
Compare
9a16cd8
to
d0b644e
Compare
@@ -68,7 +68,7 @@ llvm::opt::DerivedArgList *AMDGPUOpenMPToolChain::TranslateArgs( | |||
Action::OffloadKind DeviceOffloadKind) const { | |||
DerivedArgList *DAL = | |||
HostTC.TranslateArgs(Args, BoundArch, DeviceOffloadKind); | |||
if (!DAL) | |||
if (!DAL || Args.hasArg(options::OPT_fsanitize_EQ)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Doesn't this leak memory? If DAL is not null we replace it with a new one.
// Skip sanitize options passed from the HostTC. The decision to instrument | ||
// device code is computed only by 'shouldSkipSanitizeOption'. | ||
if (!DAL && DAL->hasArg(options::OPT_fsanitize_EQ)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't fully understand why we need this. Shouldn't the shouldSkip
part handle this just fine?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, actually here the DAL computed from the HostTC picks up the sanitize option like -fsanitize=address
and pass forward to DAL
of device toolchain. The shouldSkipSanitizeOption
runs over each argument of Args [The user provided arguments which are not derived]
and checks if the -fsanitize=address
is there it early returns !false
which then avoids checking the :xnack+ capability.
So, assume the case where when we pass -fsanitize=address --offload-arch=gfx90a
. This should avoid appending -fsanitize=address
in the DAL for device toolchain but it dosen't since the DAL already has -fsanitize=address from host toolchain and due to early return from shouldSkipSanitizeOption
where it checks for the :xnack+
capability is skipped.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry I'm still confused. If the user cannot enable -fsanitize=address
if the GPU target doesn't support xnack
then that should be separate driver check / error. Unless we're just silently ignoring that?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What I have seen for HIPAMDToolChain , the DAL is always constructed every time, dynamically allocated every time.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We actually in check it in this part of code https://github.com/llvm/llvm-project/blob/752ebec054f8b0bf7c221813724984f10096355a/clang/lib/Driver/ToolChains/AMDGPU.cpp#L1118
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just don't understand the rationale for removing it from the argument list instead of just guarding wherever we look up this flag.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if it's not legal for some case, then emit an error. If the user doesn't want it then they can do
-Xarch-host -fsanitize=address
.
We actually emit the warning not error, since it's legal for the host to be asan instrumented but for device it depends based on --offload-arch=
containing :xnack+. If :xnack+ then allow it otherwise emit warning silently skip it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Silently ignoring this sounds pretty awful to me, but if that's what ROCm wants I guess that's the behavior.
We're not (supposed to be) silently ignoring it. We should be producing a warning that the device code has not been instrumented.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So, is it prohibitively difficult to do something more akin to.
if (Args.hasFlag(OPT_fsanitize_address, OPT_fno_sanitize, false) &&
Args.hasFlag(OPT_fgpu_sanitize, OPT_fno_gpu_sanitize, true)) {
if (isSanitizerLegal(Args))
// something
else
Diags.warn("incompatible, ignoring");
}
752ebec
to
da6fbed
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good enough for now, thanks. Maybe some day we could stash the GPU asan code in compiler-rt
somewhere so we can have upstream tests for this stuff.
Don't require std::tuple<bool,const SanitizerArgs> parameter. Simplify it to single boolean 'GPUSan'.
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/30/builds/15636 Here is the relevant piece of the build log for the reference
|
llvm#126671) - This reverts commit llvm@0c6c4a9. - Add '-mcode-object-version=5' as to explicitly use code object version 5 to match with 'FAIL' diagnostic. - Add Requires directive to support lit test run on platforms registered with x86_64 and amdgpu.
llvm#126671) - This reverts commit llvm@0c6c4a9. - Add '-mcode-object-version=5' as to explicitly use code object version 5 to match with 'FAIL' diagnostic. - Add Requires directive to support lit test run on platforms registered with x86_64 and amdgpu.
llvm#126671) - This reverts commit llvm@0c6c4a9. - Add '-mcode-object-version=5' as to explicitly use code object version 5 to match with 'FAIL' diagnostic. - Add Requires directive to support lit test run on platforms registered with x86_64 and amdgpu.
version 5 to match with 'FAIL' diagnostic.
registered with x86_64 and amdgpu.