From 62454067a548106091c8377608596e465a715d1c Mon Sep 17 00:00:00 2001 From: Denis Bakhvalov Date: Wed, 31 Mar 2021 14:11:36 -0700 Subject: [PATCH 1/8] [ESIMD] Remove -fsycl-explicit-simd option ESIMD no longer requires -fsycl-explicit-simd flag, so it can be removed. --- clang/include/clang/Driver/Options.td | 4 ---- clang/lib/Driver/ToolChains/Clang.cpp | 8 -------- clang/test/Driver/sycl-esimd.cpp | 10 ---------- clang/test/Driver/sycl-offload.c | 1 - clang/test/SemaSYCL/esimd-globals-in-sycl-context.cpp | 2 +- sycl/test/esimd/block_load_store.cpp | 2 +- sycl/test/esimd/esimd-util-compiler-eval.cpp | 2 +- sycl/test/esimd/esimd_math.cpp | 2 +- sycl/test/esimd/flat_atomic.cpp | 2 +- sycl/test/esimd/gather4_scatter4.cpp | 2 +- sycl/test/esimd/gather_scatter.cpp | 2 +- sycl/test/esimd/glob.cpp | 2 +- sycl/test/esimd/global_var.cpp | 2 +- sycl/test/esimd/hw_compile.cpp | 2 +- sycl/test/esimd/intrins_trans.cpp | 2 +- sycl/test/esimd/odr.cpp | 6 +++--- sycl/test/esimd/simd.cpp | 2 +- sycl/test/esimd/simd_merge.cpp | 2 +- sycl/test/esimd/simd_view.cpp | 2 +- sycl/test/esimd/slm_atomic.cpp | 2 +- sycl/test/esimd/slm_block.cpp | 2 +- sycl/test/esimd/slm_load.cpp | 2 +- sycl/test/esimd/slm_load4.cpp | 2 +- sycl/test/esimd/spirv_intrins_trans.cpp | 2 +- sycl/test/esimd/vadd.cpp | 6 +++--- sycl/test/on-device/lit.cfg.py | 4 ---- 26 files changed, 25 insertions(+), 52 deletions(-) delete mode 100644 clang/test/Driver/sycl-esimd.cpp diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 25a1ef956d99f..80e9dd9c98764 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -4370,10 +4370,6 @@ def fsycl : Flag<["-"], "fsycl">, Flags<[NoXarchOption, CoreOption]>, Group; def fno_sycl : Flag<["-"], "fno-sycl">, Flags<[NoXarchOption, CoreOption]>, Group, HelpText<"Disables SYCL kernels compilation for device">; -defm sycl_esimd: BoolFOption<"sycl-explicit-simd", - LangOpts<"SYCLExplicitSIMD">, DefaultFalse, - PosFlag, NegFlag, - BothFlags<[NoArgumentUnused, CoreOption], "SYCL explicit SIMD extension.">>; defm sycl_early_optimizations : OptOutFFlag<"sycl-early-optimizations", "Enable", "Disable", " standard optimization pipeline for SYCL device compiler", [CoreOption]>; def fsycl_dead_args_optimization : Flag<["-"], "fsycl-dead-args-optimization">, Group, Flags<[NoArgumentUnused, CoreOption]>, HelpText<"Enables " diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 53998ab1a2b3e..8ca73a5b13172 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -4344,10 +4344,6 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-fsycl-is-device"); CmdArgs.push_back("-fdeclare-spirv-builtins"); - if (Args.hasFlag(options::OPT_fsycl_esimd, options::OPT_fno_sycl_esimd, - false)) - CmdArgs.push_back("-fsycl-explicit-simd"); - // Default value for FPGA is false, for all other targets is true. if (!Args.hasFlag(options::OPT_fsycl_early_optimizations, options::OPT_fno_sycl_early_optimizations, @@ -6638,10 +6634,6 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, // doing the host pass. CmdArgs.push_back("-fsycl-is-host"); - if (Args.hasFlag(options::OPT_fsycl_esimd, options::OPT_fno_sycl_esimd, - false)) - CmdArgs.push_back("-fsycl-explicit-simd"); - if (!D.IsCLMode()) { // SYCL library is guaranteed to work correctly only with dynamic // MSVC runtime. diff --git a/clang/test/Driver/sycl-esimd.cpp b/clang/test/Driver/sycl-esimd.cpp deleted file mode 100644 index 7629051966818..0000000000000 --- a/clang/test/Driver/sycl-esimd.cpp +++ /dev/null @@ -1,10 +0,0 @@ -/// Check that explicit SIMD extension is disabled by default: -// RUN: %clang -### %s 2>&1 \ -// RUN: | FileCheck -check-prefix=CHECK-DEFAULT %s -// CHECK-DEFAULT-NOT: "-fsycl-explicit-simd" - -/// Check "-fsycl-explicit-simd" is passed when compiling for device and host: -// RUN: %clang -### -fsycl -fsycl-explicit-simd %s 2>&1 \ -// RUN: | FileCheck -check-prefix=CHECK-SYCL-ESIMD %s -// CHECK-SYCL-ESIMD: "-cc1"{{.*}} "-fsycl-explicit-simd"{{.*}} -// CHECK-SYCL-ESIMD: "-cc1"{{.*}} "-fsycl-explicit-simd"{{.*}} diff --git a/clang/test/Driver/sycl-offload.c b/clang/test/Driver/sycl-offload.c index ab10a0f0bfa2f..1683654fd62ed 100644 --- a/clang/test/Driver/sycl-offload.c +++ b/clang/test/Driver/sycl-offload.c @@ -596,7 +596,6 @@ /// Check "-spirv-allow-unknown-intrinsics=llvm.genx." option is emitted for llvm-spirv tool // RUN: %clangxx %s -fsycl -### 2>&1 | FileCheck %s --check-prefix=CHK-ALLOW-INTRIN -// RUN: %clangxx %s -fsycl -fsycl-explicit-simd -### 2>&1 | FileCheck %s --check-prefix=CHK-ALLOW-INTRIN // CHK-ALLOW-INTRIN: llvm-spirv{{.*}}-spirv-allow-unknown-intrinsics=llvm.genx. /// ########################################################################### diff --git a/clang/test/SemaSYCL/esimd-globals-in-sycl-context.cpp b/clang/test/SemaSYCL/esimd-globals-in-sycl-context.cpp index 362c1744b076f..87e40e54cba88 100644 --- a/clang/test/SemaSYCL/esimd-globals-in-sycl-context.cpp +++ b/clang/test/SemaSYCL/esimd-globals-in-sycl-context.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fsycl-is-device -fsycl-explicit-simd -fsyntax-only -verify %s +// RUN: %clang_cc1 -fsycl-is-device -fsyntax-only -verify %s // This test checks usage of an ESIMD global in ESIMD(positive) and SYCL(negative) contexts. diff --git a/sycl/test/esimd/block_load_store.cpp b/sycl/test/esimd/block_load_store.cpp index 974e633f7d096..8399eccfe2f85 100644 --- a/sycl/test/esimd/block_load_store.cpp +++ b/sycl/test/esimd/block_load_store.cpp @@ -1,4 +1,4 @@ -// RUN: %clangxx -fsycl -fsycl-explicit-simd -fsycl-device-only -fsyntax-only -Xclang -verify %s +// RUN: %clangxx -fsycl -fsycl-device-only -fsyntax-only -Xclang -verify %s // expected-no-diagnostics #include diff --git a/sycl/test/esimd/esimd-util-compiler-eval.cpp b/sycl/test/esimd/esimd-util-compiler-eval.cpp index 15aead6ce8b17..c2450ba118941 100644 --- a/sycl/test/esimd/esimd-util-compiler-eval.cpp +++ b/sycl/test/esimd/esimd-util-compiler-eval.cpp @@ -1,4 +1,4 @@ -// RUN: %clangxx -fsycl -fsycl-explicit-simd -fsycl-device-only -c %s +// RUN: %clangxx -fsycl -fsycl-device-only -c %s // This test checks compile-time evaluation of functions from esimd_util.hpp #include "CL/sycl.hpp" diff --git a/sycl/test/esimd/esimd_math.cpp b/sycl/test/esimd/esimd_math.cpp index 34385ff058d98..a189aae3a9c09 100644 --- a/sycl/test/esimd/esimd_math.cpp +++ b/sycl/test/esimd/esimd_math.cpp @@ -1,4 +1,4 @@ -// RUN: %clangxx -fsycl -fsycl-explicit-simd -fsycl-device-only -fsyntax-only -Xclang -verify %s +// RUN: %clangxx -fsycl -fsycl-device-only -fsyntax-only -Xclang -verify %s // expected-no-diagnostics #include diff --git a/sycl/test/esimd/flat_atomic.cpp b/sycl/test/esimd/flat_atomic.cpp index 9b8fa775c21b7..1e8cb939cd573 100644 --- a/sycl/test/esimd/flat_atomic.cpp +++ b/sycl/test/esimd/flat_atomic.cpp @@ -1,4 +1,4 @@ -// RUN: %clangxx -fsycl -fsycl-explicit-simd -fsycl-device-only -fsyntax-only -Xclang -verify %s +// RUN: %clangxx -fsycl -fsycl-device-only -fsyntax-only -Xclang -verify %s // expected-no-diagnostics #include diff --git a/sycl/test/esimd/gather4_scatter4.cpp b/sycl/test/esimd/gather4_scatter4.cpp index b8b92305b14f3..4c34b9cc5da61 100644 --- a/sycl/test/esimd/gather4_scatter4.cpp +++ b/sycl/test/esimd/gather4_scatter4.cpp @@ -1,4 +1,4 @@ -// RUN: %clangxx -fsycl -fsycl-explicit-simd -fsycl-device-only -fsyntax-only -Xclang -verify %s +// RUN: %clangxx -fsycl -fsycl-device-only -fsyntax-only -Xclang -verify %s // expected-no-diagnostics #include diff --git a/sycl/test/esimd/gather_scatter.cpp b/sycl/test/esimd/gather_scatter.cpp index 80c0400a94d41..75a491225e80c 100644 --- a/sycl/test/esimd/gather_scatter.cpp +++ b/sycl/test/esimd/gather_scatter.cpp @@ -1,4 +1,4 @@ -// RUN: %clangxx -fsycl -fsycl-explicit-simd -fsycl-device-only -fsyntax-only -Xclang -verify %s +// RUN: %clangxx -fsycl -fsycl-device-only -fsyntax-only -Xclang -verify %s // expected-no-diagnostics #include diff --git a/sycl/test/esimd/glob.cpp b/sycl/test/esimd/glob.cpp index 333cf3d147344..0739e6a314671 100644 --- a/sycl/test/esimd/glob.cpp +++ b/sycl/test/esimd/glob.cpp @@ -1,4 +1,4 @@ -// RUN: %clangxx -fsycl -fsycl-explicit-simd -c -fsycl-device-only -Xclang -emit-llvm %s -o %t +// RUN: %clangxx -fsycl -c -fsycl-device-only -Xclang -emit-llvm %s -o %t // RUN: sycl-post-link -split-esimd -lower-esimd -O2 -S %t -o %t.table // RUN: FileCheck %s -input-file=%t_esimd_0.ll diff --git a/sycl/test/esimd/global_var.cpp b/sycl/test/esimd/global_var.cpp index 1503159c4b09d..04ab1acf76a6f 100644 --- a/sycl/test/esimd/global_var.cpp +++ b/sycl/test/esimd/global_var.cpp @@ -1,4 +1,4 @@ -// RUN: %clangxx -fsycl -fsycl-explicit-simd -fsycl-device-only -fsyntax-only -Xclang -verify %s +// RUN: %clangxx -fsycl -fsycl-device-only -fsyntax-only -Xclang -verify %s #include #include diff --git a/sycl/test/esimd/hw_compile.cpp b/sycl/test/esimd/hw_compile.cpp index c10fc33e277d1..c497b43f4b4a9 100644 --- a/sycl/test/esimd/hw_compile.cpp +++ b/sycl/test/esimd/hw_compile.cpp @@ -1,5 +1,5 @@ // Basic ESIMD test which checks that ESIMD invocation syntax can get compiled. -// RUN: %clangxx -fsycl -fsycl-explicit-simd -fsycl-device-only -c %s -o %t.bc +// RUN: %clangxx -fsycl -fsycl-device-only -c %s -o %t.bc #include #include diff --git a/sycl/test/esimd/intrins_trans.cpp b/sycl/test/esimd/intrins_trans.cpp index 1cec4c871d5fb..3d2d21ad534c3 100644 --- a/sycl/test/esimd/intrins_trans.cpp +++ b/sycl/test/esimd/intrins_trans.cpp @@ -1,4 +1,4 @@ -// RUN: %clangxx -O0 -fsycl -fsycl-explicit-simd -fsycl-device-only -Xclang -emit-llvm %s -o %t +// RUN: %clangxx -O0 -fsycl -fsycl-device-only -Xclang -emit-llvm %s -o %t // RUN: sycl-post-link -split-esimd -lower-esimd -O0 -S %t -o %t.table // RUN: FileCheck %s -input-file=%t_esimd_0.ll diff --git a/sycl/test/esimd/odr.cpp b/sycl/test/esimd/odr.cpp index 0276420fd525a..cbd95a16d2743 100644 --- a/sycl/test/esimd/odr.cpp +++ b/sycl/test/esimd/odr.cpp @@ -4,9 +4,9 @@ // Template functions must have the same instantiation in both sources to cause // ODR problems potentially - esimd_min is used for that purpose. // -// RUN: %clangxx -fsycl -fsycl-explicit-simd -fsycl-targets=%sycl_triple -DSOURCE1 -c %s -o %t1.o -// RUN: %clangxx -fsycl -fsycl-explicit-simd -fsycl-targets=%sycl_triple -DSOURCE2 -c %s -o %t2.o -// RUN: %clangxx -fsycl -fsycl-explicit-simd -fsycl-targets=%sycl_triple %t1.o %t2.o -o %t.exe +// RUN: %clangxx -fsycl -fsycl-targets=%sycl_triple -DSOURCE1 -c %s -o %t1.o +// RUN: %clangxx -fsycl -fsycl-targets=%sycl_triple -DSOURCE2 -c %s -o %t2.o +// RUN: %clangxx -fsycl -fsycl-targets=%sycl_triple %t1.o %t2.o -o %t.exe // // Cuda does not support intrinsics generated by the ESIMD compilation path: // UNSUPPORTED: cuda diff --git a/sycl/test/esimd/simd.cpp b/sycl/test/esimd/simd.cpp index b0519d85ce189..37ff364550d2d 100644 --- a/sycl/test/esimd/simd.cpp +++ b/sycl/test/esimd/simd.cpp @@ -1,4 +1,4 @@ -// RUN: %clangxx -fsycl -fsycl-explicit-simd -fsycl-device-only -fsyntax-only -Xclang -verify %s +// RUN: %clangxx -fsycl -fsycl-device-only -fsyntax-only -Xclang -verify %s // expected-no-diagnostics #include diff --git a/sycl/test/esimd/simd_merge.cpp b/sycl/test/esimd/simd_merge.cpp index 394922a1e3773..b0feefe372ff7 100644 --- a/sycl/test/esimd/simd_merge.cpp +++ b/sycl/test/esimd/simd_merge.cpp @@ -1,4 +1,4 @@ -// RUN: %clangxx -fsycl -fsycl-explicit-simd -fsycl-device-only -fsyntax-only -Xclang -verify %s +// RUN: %clangxx -fsycl -fsycl-device-only -fsyntax-only -Xclang -verify %s // expected-no-diagnostics #include diff --git a/sycl/test/esimd/simd_view.cpp b/sycl/test/esimd/simd_view.cpp index 7f94b1724b6fe..16ee2c581d84a 100644 --- a/sycl/test/esimd/simd_view.cpp +++ b/sycl/test/esimd/simd_view.cpp @@ -1,4 +1,4 @@ -// RUN: %clangxx -fsycl -fsycl-explicit-simd -fsycl-device-only -fsyntax-only -Xclang -verify %s +// RUN: %clangxx -fsycl -fsycl-device-only -fsyntax-only -Xclang -verify %s // expected-no-diagnostics #include diff --git a/sycl/test/esimd/slm_atomic.cpp b/sycl/test/esimd/slm_atomic.cpp index c0dda1dade4fd..9a3add29d6858 100644 --- a/sycl/test/esimd/slm_atomic.cpp +++ b/sycl/test/esimd/slm_atomic.cpp @@ -1,4 +1,4 @@ -// RUN: %clangxx -fsycl -fsycl-explicit-simd -fsycl-device-only -fsyntax-only -Xclang -verify %s +// RUN: %clangxx -fsycl -fsycl-device-only -fsyntax-only -Xclang -verify %s // expected-no-diagnostics #include diff --git a/sycl/test/esimd/slm_block.cpp b/sycl/test/esimd/slm_block.cpp index d8d2937a9f67a..69f16c5c665cd 100644 --- a/sycl/test/esimd/slm_block.cpp +++ b/sycl/test/esimd/slm_block.cpp @@ -1,4 +1,4 @@ -// RUN: %clangxx -fsycl -fsycl-explicit-simd -fsycl-device-only -fsyntax-only -Xclang -verify %s +// RUN: %clangxx -fsycl -fsycl-device-only -fsyntax-only -Xclang -verify %s // expected-no-diagnostics #include diff --git a/sycl/test/esimd/slm_load.cpp b/sycl/test/esimd/slm_load.cpp index 2bac3ebf543d6..3cd34b65bbd8c 100644 --- a/sycl/test/esimd/slm_load.cpp +++ b/sycl/test/esimd/slm_load.cpp @@ -1,4 +1,4 @@ -// RUN: %clangxx -fsycl -fsycl-explicit-simd -fsycl-device-only -fsyntax-only -Xclang -verify %s +// RUN: %clangxx -fsycl -fsycl-device-only -fsyntax-only -Xclang -verify %s // expected-no-diagnostics #include diff --git a/sycl/test/esimd/slm_load4.cpp b/sycl/test/esimd/slm_load4.cpp index d173e8b505097..caee1a2c629d1 100644 --- a/sycl/test/esimd/slm_load4.cpp +++ b/sycl/test/esimd/slm_load4.cpp @@ -1,4 +1,4 @@ -// RUN: %clangxx -fsycl -fsycl-explicit-simd -fsycl-device-only -fsyntax-only -Xclang -verify %s +// RUN: %clangxx -fsycl -fsycl-device-only -fsyntax-only -Xclang -verify %s // expected-no-diagnostics #include diff --git a/sycl/test/esimd/spirv_intrins_trans.cpp b/sycl/test/esimd/spirv_intrins_trans.cpp index 512d2391b1de4..335e8bdcafbb4 100644 --- a/sycl/test/esimd/spirv_intrins_trans.cpp +++ b/sycl/test/esimd/spirv_intrins_trans.cpp @@ -1,4 +1,4 @@ -// RUN: %clangxx -fsycl -fsycl-explicit-simd -fsycl-device-only -S -emit-llvm -x c++ %s -o %t +// RUN: %clangxx -fsycl -fsycl-device-only -S -emit-llvm -x c++ %s -o %t // RUN: sycl-post-link -split-esimd -lower-esimd -O0 -S %t -o %t.table // RUN: FileCheck %s -input-file=%t_esimd_0.ll diff --git a/sycl/test/esimd/vadd.cpp b/sycl/test/esimd/vadd.cpp index 83e4b30407324..780e97a015f1a 100644 --- a/sycl/test/esimd/vadd.cpp +++ b/sycl/test/esimd/vadd.cpp @@ -1,9 +1,9 @@ -// RUN: %clangxx -fsycl -fsycl-explicit-simd %s -o %t.out +// RUN: %clangxx -fsycl %s -o %t.out // RUN: %RUN_ON_HOST %t.out // Check that the code compiles with -O0 and -g -// RUN: %clangxx -I %sycl_include %s -o %t.out -fsycl -fsycl-explicit-simd -O0 -// RUN: %clangxx -I %sycl_include %s -o %t.out -fsycl -fsycl-explicit-simd -O0 -g +// RUN: %clangxx -I %sycl_include %s -o %t.out -fsycl -O0 +// RUN: %clangxx -I %sycl_include %s -o %t.out -fsycl -O0 -g #include #include diff --git a/sycl/test/on-device/lit.cfg.py b/sycl/test/on-device/lit.cfg.py index d8ad9fc67a519..9d6fe630dc0e1 100644 --- a/sycl/test/on-device/lit.cfg.py +++ b/sycl/test/on-device/lit.cfg.py @@ -225,10 +225,6 @@ def getDeviceCount(device_type): if platform.system() == "Linux": gpu_run_on_linux_substitute = "env SYCL_DEVICE_FILTER={SYCL_PLUGIN}:gpu ".format(SYCL_PLUGIN=backend) gpu_check_on_linux_substitute = "| FileCheck %s" - # ESIMD-specific setup. Requires OpenCL for now. - esimd_run_substitute = " env SYCL_DEVICE_FILTER=opencl:gpu SYCL_PROGRAM_COMPILE_OPTIONS=-vc-codegen" - config.substitutions.append( ('%ESIMD_RUN_PLACEHOLDER', esimd_run_substitute) ) - config.substitutions.append( ('%clangxx-esimd', "clang++ -fsycl-explicit-simd" ) ) else: lit_config.warning("GPU device not found") From 1baccccb39a660667ec729761460e68548b310d7 Mon Sep 17 00:00:00 2001 From: Denis Bakhvalov Date: Mon, 5 Apr 2021 15:42:39 -0700 Subject: [PATCH 2/8] Returned the option, but deprecated it --- clang/include/clang/Driver/Options.td | 4 ++++ clang/lib/Driver/ToolChains/Clang.cpp | 4 +++- clang/test/Driver/sycl-esimd.cpp | 4 ++++ 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 clang/test/Driver/sycl-esimd.cpp diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 80e9dd9c98764..25a1ef956d99f 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -4370,6 +4370,10 @@ def fsycl : Flag<["-"], "fsycl">, Flags<[NoXarchOption, CoreOption]>, Group; def fno_sycl : Flag<["-"], "fno-sycl">, Flags<[NoXarchOption, CoreOption]>, Group, HelpText<"Disables SYCL kernels compilation for device">; +defm sycl_esimd: BoolFOption<"sycl-explicit-simd", + LangOpts<"SYCLExplicitSIMD">, DefaultFalse, + PosFlag, NegFlag, + BothFlags<[NoArgumentUnused, CoreOption], "SYCL explicit SIMD extension.">>; defm sycl_early_optimizations : OptOutFFlag<"sycl-early-optimizations", "Enable", "Disable", " standard optimization pipeline for SYCL device compiler", [CoreOption]>; def fsycl_dead_args_optimization : Flag<["-"], "fsycl-dead-args-optimization">, Group, Flags<[NoArgumentUnused, CoreOption]>, HelpText<"Enables " diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 8ca73a5b13172..59ff1f6137b5b 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -5406,7 +5406,9 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, } for (const Arg *A : - Args.filtered(options::OPT_clang_ignored_legacy_options_Group)) { + // TODO: remove -fsycl-explicit-simd when support is dropped. + Args.filtered(options::OPT_clang_ignored_legacy_options_Group, + options::OPT_fsycl_esimd, options::OPT_fno_sycl_esimd)) { D.Diag(diag::warn_ignored_clang_option) << A->getAsString(Args); A->claim(); } diff --git a/clang/test/Driver/sycl-esimd.cpp b/clang/test/Driver/sycl-esimd.cpp new file mode 100644 index 0000000000000..4ab99a64a085f --- /dev/null +++ b/clang/test/Driver/sycl-esimd.cpp @@ -0,0 +1,4 @@ +/// Check that the warning is emmited for using "-fsycl-explicit-simd" +// RUN: %clang -### -fsycl-explicit-simd %s 2>&1 | FileCheck %s +// RUN: %clang -### -fno-sycl-explicit-simd %s 2>&1 | FileCheck %s +// CHECK: the flag '-f{{.*}}sycl-explicit-simd' has been deprecated and will be ignored From 6ab9eaaabd21e632b02098e4f8bb6bf4ffcf7d46 Mon Sep 17 00:00:00 2001 From: Denis Bakhvalov Date: Mon, 5 Apr 2021 15:48:49 -0700 Subject: [PATCH 3/8] Updated docs --- sycl/doc/UsersManual.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sycl/doc/UsersManual.md b/sycl/doc/UsersManual.md index a8ba4715ff645..a0a6c115dc56a 100644 --- a/sycl/doc/UsersManual.md +++ b/sycl/doc/UsersManual.md @@ -53,6 +53,11 @@ and not recommended to use in production environment. Enables/Disables unnamed SYCL lambda kernels support. Disabled by default. +**`-f[no-]sycl-explicit-simd`** [DEPRECATED] + + Enables/Disables SYCL explicit SIMD extension. + Disabled by default. Is not used anymore. + ## Optimization options **`-f[no-]sycl-early-optimizations`** From d75f296fc8468d2341787255ebd8a61e4dbfa952 Mon Sep 17 00:00:00 2001 From: Denis Bakhvalov Date: Mon, 5 Apr 2021 16:33:37 -0700 Subject: [PATCH 4/8] Fixed review comment --- clang/include/clang/Driver/Options.td | 2 ++ clang/lib/Driver/ToolChains/Clang.cpp | 4 +--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 25a1ef956d99f..6b80657b4371a 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -4370,7 +4370,9 @@ def fsycl : Flag<["-"], "fsycl">, Flags<[NoXarchOption, CoreOption]>, Group; def fno_sycl : Flag<["-"], "fno-sycl">, Flags<[NoXarchOption, CoreOption]>, Group, HelpText<"Disables SYCL kernels compilation for device">; +// TODO: -fsycl-explicit-simd is deprecated. remove it when support is dropped. defm sycl_esimd: BoolFOption<"sycl-explicit-simd", + Group, LangOpts<"SYCLExplicitSIMD">, DefaultFalse, PosFlag, NegFlag, BothFlags<[NoArgumentUnused, CoreOption], "SYCL explicit SIMD extension.">>; diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 59ff1f6137b5b..8ca73a5b13172 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -5406,9 +5406,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, } for (const Arg *A : - // TODO: remove -fsycl-explicit-simd when support is dropped. - Args.filtered(options::OPT_clang_ignored_legacy_options_Group, - options::OPT_fsycl_esimd, options::OPT_fno_sycl_esimd)) { + Args.filtered(options::OPT_clang_ignored_legacy_options_Group)) { D.Diag(diag::warn_ignored_clang_option) << A->getAsString(Args); A->claim(); } From 80ec9612a95aaece40a7b293d2bd0845fcfb7e8b Mon Sep 17 00:00:00 2001 From: Denis Bakhvalov Date: Tue, 6 Apr 2021 09:42:38 -0700 Subject: [PATCH 5/8] Fixed deprecation messages --- clang/include/clang/Driver/Options.td | 2 +- sycl/doc/UsersManual.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 6b80657b4371a..d556605328e36 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -4375,7 +4375,7 @@ defm sycl_esimd: BoolFOption<"sycl-explicit-simd", Group, LangOpts<"SYCLExplicitSIMD">, DefaultFalse, PosFlag, NegFlag, - BothFlags<[NoArgumentUnused, CoreOption], "SYCL explicit SIMD extension.">>; + BothFlags<[NoArgumentUnused, CoreOption], " SYCL explicit SIMD extension. (deprecated)">>; defm sycl_early_optimizations : OptOutFFlag<"sycl-early-optimizations", "Enable", "Disable", " standard optimization pipeline for SYCL device compiler", [CoreOption]>; def fsycl_dead_args_optimization : Flag<["-"], "fsycl-dead-args-optimization">, Group, Flags<[NoArgumentUnused, CoreOption]>, HelpText<"Enables " diff --git a/sycl/doc/UsersManual.md b/sycl/doc/UsersManual.md index a0a6c115dc56a..d4899b7b4b86c 100644 --- a/sycl/doc/UsersManual.md +++ b/sycl/doc/UsersManual.md @@ -55,8 +55,8 @@ and not recommended to use in production environment. **`-f[no-]sycl-explicit-simd`** [DEPRECATED] - Enables/Disables SYCL explicit SIMD extension. - Disabled by default. Is not used anymore. + The option was used to enable/disable SYCL explicit SIMD extension. + Not used anymore. ## Optimization options From 969ba08babedd7f5c5003733a61b5b263ba6657e Mon Sep 17 00:00:00 2001 From: Denis Bakhvalov Date: Tue, 6 Apr 2021 10:06:58 -0700 Subject: [PATCH 6/8] Fixed build issue --- clang/include/clang/Driver/Options.td | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index d556605328e36..9731297a71b37 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -4371,11 +4371,10 @@ def fsycl : Flag<["-"], "fsycl">, Flags<[NoXarchOption, CoreOption]>, Group, Flags<[NoXarchOption, CoreOption]>, Group, HelpText<"Disables SYCL kernels compilation for device">; // TODO: -fsycl-explicit-simd is deprecated. remove it when support is dropped. -defm sycl_esimd: BoolFOption<"sycl-explicit-simd", - Group, - LangOpts<"SYCLExplicitSIMD">, DefaultFalse, - PosFlag, NegFlag, - BothFlags<[NoArgumentUnused, CoreOption], " SYCL explicit SIMD extension. (deprecated)">>; +def : Flag<["-"], "fsycl-explicit-simd">, Group, + HelpText<"Enable SYCL explicit SIMD extension. (deprecated)">; +def : Flag<["-"], "fno-sycl-explicit-simd">, Group, + HelpText<"Disable SYCL explicit SIMD extension. (deprecated)">; defm sycl_early_optimizations : OptOutFFlag<"sycl-early-optimizations", "Enable", "Disable", " standard optimization pipeline for SYCL device compiler", [CoreOption]>; def fsycl_dead_args_optimization : Flag<["-"], "fsycl-dead-args-optimization">, Group, Flags<[NoArgumentUnused, CoreOption]>, HelpText<"Enables " From bc7e86d05013e4347fcff2a84f354db0b4bc3d07 Mon Sep 17 00:00:00 2001 From: Denis Bakhvalov Date: Tue, 6 Apr 2021 11:19:38 -0700 Subject: [PATCH 7/8] Added CoreOption --- clang/include/clang/Driver/Options.td | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 9731297a71b37..9851fe01d9f37 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -4371,9 +4371,9 @@ def fsycl : Flag<["-"], "fsycl">, Flags<[NoXarchOption, CoreOption]>, Group, Flags<[NoXarchOption, CoreOption]>, Group, HelpText<"Disables SYCL kernels compilation for device">; // TODO: -fsycl-explicit-simd is deprecated. remove it when support is dropped. -def : Flag<["-"], "fsycl-explicit-simd">, Group, +def : Flag<["-"], "fsycl-explicit-simd">, Flags<[CoreOption]>, Group, HelpText<"Enable SYCL explicit SIMD extension. (deprecated)">; -def : Flag<["-"], "fno-sycl-explicit-simd">, Group, +def : Flag<["-"], "fno-sycl-explicit-simd">, Flags<[CoreOption]>, Group, HelpText<"Disable SYCL explicit SIMD extension. (deprecated)">; defm sycl_early_optimizations : OptOutFFlag<"sycl-early-optimizations", "Enable", "Disable", " standard optimization pipeline for SYCL device compiler", [CoreOption]>; def fsycl_dead_args_optimization : Flag<["-"], "fsycl-dead-args-optimization">, From f709b6cb53b93052b533472afc4c49f430cff1c9 Mon Sep 17 00:00:00 2001 From: Alexey Bader Date: Thu, 8 Apr 2021 17:44:01 +0300 Subject: [PATCH 8/8] Update clang/include/clang/Driver/Options.td Co-authored-by: Aaron Ballman --- clang/include/clang/Driver/Options.td | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 9851fe01d9f37..de213a70dee4a 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -4370,7 +4370,7 @@ def fsycl : Flag<["-"], "fsycl">, Flags<[NoXarchOption, CoreOption]>, Group; def fno_sycl : Flag<["-"], "fno-sycl">, Flags<[NoXarchOption, CoreOption]>, Group, HelpText<"Disables SYCL kernels compilation for device">; -// TODO: -fsycl-explicit-simd is deprecated. remove it when support is dropped. +// FIXME: -fsycl-explicit-simd is deprecated. remove it when support is dropped. def : Flag<["-"], "fsycl-explicit-simd">, Flags<[CoreOption]>, Group, HelpText<"Enable SYCL explicit SIMD extension. (deprecated)">; def : Flag<["-"], "fno-sycl-explicit-simd">, Flags<[CoreOption]>, Group,