Skip to content

Commit cfa9342

Browse files
committed
[Driver][ROCm][ASan] Skip checking ':xnack+' feature for gfx12.
Enable ASan instrumentation for 'gfx12' family targets.The GPU features like ':xnack+ or :sramecc+' are implicitly handled in the hardware for gfx12 family.
1 parent d51750d commit cfa9342

File tree

5 files changed

+23
-5
lines changed

5 files changed

+23
-5
lines changed

clang/lib/Driver/ToolChains/AMDGPU.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1112,6 +1112,11 @@ bool AMDGPUToolChain::shouldSkipSanitizeOption(
11121112

11131113
assert(OptionalGpuArch && "Invalid Target ID");
11141114
(void)OptionalGpuArch;
1115+
1116+
// Skip checking 'xnack+' feature availability for gfx12 family.
1117+
if (llvm::AMDGPU::getIsaVersion(TargetID).Major == 12)
1118+
return false;
1119+
11151120
auto Loc = FeatureMap.find("xnack");
11161121
if (Loc == FeatureMap.end() || !Loc->second) {
11171122
Diags.Report(

clang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_1200.bc

Whitespace-only changes.

clang/test/Driver/amdgpu-openmp-sanitize-options.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
// RUN: | FileCheck --check-prefix=NOTSUPPORTED %s
1414

1515
// GPU ASan Enabled Test Cases
16-
1716
// GPU ASan enabled for amdgpu-arch [gfx908:xnack+]
1817
// 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 \
1918
// RUN: | FileCheck -check-prefixes=HOSTSAN,GPUSAN,SAN %s
@@ -22,12 +21,15 @@
2221
// 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 \
2322
// RUN: | FileCheck -check-prefixes=HOSTSAN,GPUSAN,SAN %s
2423

25-
// ASan enabled for multiple amdgpu-arch [gfx908:xnack+,gfx900:xnack+]
24+
// GPU ASan enabled for multiple amdgpu-arch [gfx908:xnack+,gfx900:xnack+]
2625
// 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 \
2726
// RUN: | FileCheck -check-prefixes=HOSTSAN,GPUSAN,SAN %s
2827

29-
// GPU ASan Disabled Test Cases
28+
// GPU ASan enabled for amdgpu-arch [gfx1200]
29+
// RUN: %clang -no-canonical-prefixes -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp --offload-arch=gfx1200 -fsanitize=address -fgpu-sanitize --rocm-path=%S/Inputs/rocm %s 2>&1 \
30+
// RUN: | FileCheck -check-prefixes=HOSTSAN,GPUSAN,SAN %s
3031

32+
// GPU ASan Disabled Test Cases
3133
// GPU ASan disabled through '-fsanitize=address' without '-fgpu-sanitize' flag for amdgpu-arch [gfx908]
3234
// 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 \
3335
// RUN: | FileCheck -check-prefixes=NOXNACK,HOSTSAN,NOGPUSAN,SAN %s
@@ -56,9 +58,9 @@
5658

5759
// HOSTSAN: {{"[^"]*clang[^"]*" "-cc1" "-triple" "x86_64-unknown-linux-gnu".* "-fopenmp".* "-fsanitize=address".* "-fopenmp-targets=amdgcn-amd-amdhsa".* "-x" "c".*}}
5860

59-
// 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".*}}
61+
// 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" "(gfx1200|gfx908|gfx900)".* "-fopenmp".* "-fsanitize=address".* "-x" "c".*}}
6062
// NOGPUSAN: {{"[^"]*clang[^"]*" "-cc1" "-triple" "amdgcn-amd-amdhsa" "-aux-triple" "x86_64-unknown-linux-gnu".* "-emit-llvm-bc".* "-target-cpu" "(gfx908|gfx900)".* "-fopenmp".* "-x" "c".*}}
6163

62-
// SAN: {{"[^"]*clang-offload-packager[^"]*" "-o".* "--image=file=.*.bc,triple=amdgcn-amd-amdhsa,arch=gfx908(:xnack\-|:xnack\+)?,kind=openmp(,feature=(\-xnack|\+xnack))?"}}
64+
// SAN: {{"[^"]*clang-offload-packager[^"]*" "-o".* "--image=file=.*.bc,triple=amdgcn-amd-amdhsa,arch=(gfx1200|gfx908)(:xnack\-|:xnack\+)?,kind=openmp(,feature=(\-xnack|\+xnack))?"}}
6365
// SAN: {{"[^"]*clang[^"]*" "-cc1" "-triple" "x86_64-unknown-linux-gnu".* "-fopenmp".* "-fsanitize=address".* "-fopenmp-targets=amdgcn-amd-amdhsa".* "-x" "ir".*}}
6466
// 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)".*}}

clang/test/Driver/hip-sanitize-options.hip

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
// RUN: -nogpuinc --rocm-path=%S/Inputs/rocm \
44
// RUN: %s 2>&1 | FileCheck -check-prefixes=NORDC %s
55

6+
// RUN: %clang -### --target=x86_64-unknown-linux-gnu --offload-arch=gfx1200 \
7+
// RUN: -fsanitize=address \
8+
// RUN: -nogpuinc --rocm-path=%S/Inputs/rocm \
9+
// RUN: %s 2>&1 | FileCheck -check-prefixes=NORDC %s
10+
611
// RUN: %clang -### --target=x86_64-unknown-linux-gnu --offload-arch=gfx900:xnack+ \
712
// RUN: -fsanitize=address -fno-gpu-sanitize \
813
// RUN: -nogpuinc --rocm-path=%S/Inputs/rocm \

clang/test/Driver/rocm-device-libs.cl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,12 @@
138138
// RUN: %s \
139139
// RUN: 2>&1 | FileCheck --check-prefixes=ASAN,COMMON %s
140140

141+
// RUN: %clang -### -target amdgcn-amd-amdhsa \
142+
// RUN: -x cl -mcpu=gfx1200 -fsanitize=address \
143+
// RUN: --rocm-path=%S/Inputs/rocm \
144+
// RUN: %s \
145+
// RUN: 2>&1 | FileCheck --check-prefixes=ASAN,COMMON %s
146+
141147
// RUN: %clang -### -target amdgcn-amd-amdhsa \
142148
// RUN: -x cl -mcpu=gfx908:xnack+ \
143149
// RUN: --rocm-path=%S/Inputs/rocm \

0 commit comments

Comments
 (0)