Skip to content

Commit e9befa2

Browse files
authored
[SYCL][DebugInfo] Switch to nonsemantic-shader-200 for non-FPGA HW on linux (#13107)
--------- Signed-off-by: Sidorov, Dmitry <[email protected]>
1 parent c02f915 commit e9befa2

File tree

4 files changed

+25
-13
lines changed

4 files changed

+25
-13
lines changed

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10316,10 +10316,22 @@ static void getOtherSPIRVTransOpts(Compilation &C,
1031610316
bool IsCPU = Triple.isSPIR() &&
1031710317
Triple.getSubArch() == llvm::Triple::SPIRSubArch_x86_64;
1031810318
TranslatorArgs.push_back("-spirv-max-version=1.4");
10319-
TranslatorArgs.push_back("-spirv-debug-info-version=ocl-100");
10320-
// Prevent crash in the translator if input IR contains DIExpression
10321-
// operations which don't have mapping to OpenCL.DebugInfo.100 spec.
10322-
TranslatorArgs.push_back("-spirv-allow-extra-diexpressions");
10319+
// Enable NonSemanticShaderDebugInfo.200 for CPU AOT and for non-Windows
10320+
// Enable NonSemanticShaderDebugInfo.200 for CPU AOT and for non-Windows
10321+
const bool IsWindowsMSVC =
10322+
Triple.isWindowsMSVCEnvironment() ||
10323+
C.getDefaultToolChain().getTriple().isWindowsMSVCEnvironment();
10324+
const bool EnableNonSemanticDebug =
10325+
IsCPU || (!IsWindowsMSVC && !C.getDriver().IsFPGAHWMode());
10326+
if (EnableNonSemanticDebug) {
10327+
TranslatorArgs.push_back(
10328+
"-spirv-debug-info-version=nonsemantic-shader-200");
10329+
} else {
10330+
TranslatorArgs.push_back("-spirv-debug-info-version=ocl-100");
10331+
// Prevent crash in the translator if input IR contains DIExpression
10332+
// operations which don't have mapping to OpenCL.DebugInfo.100 spec.
10333+
TranslatorArgs.push_back("-spirv-allow-extra-diexpressions");
10334+
}
1032310335
std::string UnknownIntrinsics("-spirv-allow-unknown-intrinsics=llvm.genx.");
1032410336
if (IsCPU)
1032510337
UnknownIntrinsics += ",llvm.fpbuiltin";
@@ -10380,9 +10392,8 @@ static void getOtherSPIRVTransOpts(Compilation &C,
1038010392
",+SPV_KHR_uniform_group_instructions"
1038110393
",+SPV_INTEL_masked_gather_scatter"
1038210394
",+SPV_INTEL_tensor_float32_conversion"
10383-
",+SPV_INTEL_optnone";
10384-
if (ShouldPreserveMetadata)
10385-
ExtArg += ",+SPV_KHR_non_semantic_info";
10395+
",+SPV_INTEL_optnone"
10396+
",+SPV_KHR_non_semantic_info";
1038610397
if (IsCPU)
1038710398
ExtArg += ",+SPV_INTEL_fp_max_error";
1038810399

clang/test/Driver/sycl-offload-aot.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,9 +143,10 @@
143143
// CHK-TOOLS-AOT: llvm-link{{.*}} "[[OUTPUT1]]" "-o" "[[OUTPUT2:.+\.bc]]"
144144
// CHK-TOOLS-AOT: sycl-post-link{{.*}} "-o" "[[OUTPUT2_T:.+\.table]]" "[[OUTPUT2]]"
145145
// CHK-TOOLS-AOT: file-table-tform{{.*}} "-extract=Code" "-drop_titles" "-o" "[[OUTPUT2_1:.+\.txt]]" "[[OUTPUT2_T]]"
146-
// CHK-TOOLS-CPU: llvm-spirv{{.*}} "-o" "[[OUTPUT3_T:.+\.txt]]" "-spirv-max-version=1.4" "-spirv-debug-info-version=ocl-100" "-spirv-allow-extra-diexpressions" "-spirv-allow-unknown-intrinsics=llvm.genx.,llvm.fpbuiltin" {{.*}} "[[OUTPUT2_1]]"
147-
// CHK-TOOLS-GEN: llvm-spirv{{.*}} "-o" "[[OUTPUT3_T:.+\.txt]]" "-spirv-max-version=1.4" "-spirv-debug-info-version=ocl-100" "-spirv-allow-extra-diexpressions" "-spirv-allow-unknown-intrinsics=llvm.genx." {{.*}} "[[OUTPUT2_1]]"
148-
// CHK-TOOLS-FPGA: llvm-spirv{{.*}} "-o" "[[OUTPUT3_T:.+\.txt]]" "-spirv-max-version=1.4" "-spirv-debug-info-version=ocl-100" "-spirv-allow-extra-diexpressions" "-spirv-allow-unknown-intrinsics=llvm.genx." {{.*}} "[[OUTPUT2_1]]"
146+
// CHK-TOOLS-CPU: llvm-spirv{{.*}} "-o" "[[OUTPUT3_T:.+\.txt]]" "-spirv-max-version=1.4" "-spirv-debug-info-version=nonsemantic-shader-200" "-spirv-allow-unknown-intrinsics=llvm.genx.,llvm.fpbuiltin" {{.*}} "[[OUTPUT2_1]]"
147+
// CHK-TOOLS-GEN: llvm-spirv{{.*}} "-o" "[[OUTPUT3_T:.+\.txt]]" "-spirv-max-version=1.4" "-spirv-debug-info-version=nonsemantic-shader-200" "-spirv-allow-unknown-intrinsics=llvm.genx." {{.*}} "[[OUTPUT2_1]]"
148+
// CHK-TOOLS-FPGA-HW: llvm-spirv{{.*}} "-o" "[[OUTPUT3_T:.+\.txt]]" "-spirv-max-version=1.4" "-spirv-debug-info-version=ocl-100" "-spirv-allow-extra-diexpressions" "-spirv-allow-unknown-intrinsics=llvm.genx." {{.*}} "[[OUTPUT2_1]]"
149+
// CHK-TOOLS-FPGA-EMU: llvm-spirv{{.*}} "-o" "[[OUTPUT3_T:.+\.txt]]" "-spirv-max-version=1.4" "-spirv-debug-info-version=nonsemantic-shader-200" "-spirv-allow-unknown-intrinsics=llvm.genx." {{.*}} "[[OUTPUT2_1]]"
149150
// CHK-TOOLS-FPGA-HW: aoc{{.*}} "-o" "[[OUTPUT4_T:.+\.aocx]]" "[[OUTPUT3_T]]"
150151
// CHK-TOOLS-FPGA-EMU: opencl-aot{{.*}} "-spv=[[OUTPUT3_T]]" "-ir=[[OUTPUT4_T:.+\.aocx]]"
151152
// CHK-TOOLS-GEN: ocloc{{.*}} "-output" "[[OUTPUT4_T:.+\.out]]" {{.*}} "[[OUTPUT3_T]]"

clang/test/Driver/sycl-spirv-ext.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@
5555
// CHECK-DEFAULT-SAME:,+SPV_KHR_uniform_group_instructions
5656
// CHECK-DEFAULT-SAME:,+SPV_INTEL_masked_gather_scatter
5757
// CHECK-DEFAULT-SAME:,+SPV_INTEL_tensor_float32_conversion
58-
// CHECK-DEFAULT-SAME:,+SPV_INTEL_optnone"
58+
// CHECK-DEFAULT-SAME:,+SPV_INTEL_optnone
59+
// CHECK-DEFAULT-SAME:,+SPV_KHR_non_semantic_info"
5960
// CHECK-FPGA-HW: llvm-spirv{{.*}}"-spirv-ext=-all
6061
// CHECK-FPGA-HW-SAME:,+SPV_EXT_shader_atomic_float_add
6162
// CHECK-FPGA-HW-SAME:,+SPV_EXT_shader_atomic_float_min_max
@@ -119,5 +120,6 @@
119120
// CHECK-CPU-SAME:,+SPV_INTEL_masked_gather_scatter
120121
// CHECK-CPU-SAME:,+SPV_INTEL_tensor_float32_conversion
121122
// CHECK-CPU-SAME:,+SPV_INTEL_optnone
123+
// CHECK-CPU-SAME:,+SPV_KHR_non_semantic_info
122124
// CHECK-CPU-SAME:,+SPV_INTEL_fp_max_error"
123125

clang/test/Driver/sycl-spirv-metadata.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,3 @@
1313

1414
// CHECK-WITHOUT: "{{.*}}llvm-spirv"
1515
// CHECK-WITHOUT-NOT: --spirv-preserve-auxdata
16-
// CHECK-WITHOUT:-spirv-ext=
17-
// CHECK-WITHOUT-NOT: +SPV_KHR_non_semantic_info

0 commit comments

Comments
 (0)