Skip to content

Commit 577220e

Browse files
author
Anastasia Stulova
committed
[OpenCL] Add std flag aliases clc++1.0 and CLC++1.0
Renamed language standard from openclcpp to openclcpp10. Added new std values i.e. '-cl-std=clc++1.0' and '-cl-std=CLC++1.0'. Patch by Topotuna (Justas Janickas)! Differential Revision: https://reviews.llvm.org/D106266
1 parent 1a7ed95 commit 577220e

File tree

7 files changed

+19
-12
lines changed

7 files changed

+19
-12
lines changed

clang/docs/UsersManual.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3297,8 +3297,9 @@ or in `the official release
32973297
<https://github.com/KhronosGroup/OpenCL-Docs/releases/tag/cxxforopencl-v1.0-r2>`_.
32983298

32993299
To enable the C++ for OpenCL mode, pass one of following command line options when
3300-
compiling ``.cl`` file ``-cl-std=clc++``, ``-cl-std=CLC++``, ``-std=clc++`` or
3301-
``-std=CLC++``.
3300+
compiling ``.cl`` file ``-cl-std=clc++``, ``-cl-std=CLC++``, ``-cl-std=clc++1.0``,
3301+
``-cl-std=CLC++1.0``, ``-std=clc++``, ``-std=CLC++``, ``-std=clc++1.0`` or
3302+
``-std=CLC++1.0``.
33023303

33033304
.. code-block:: c++
33043305

clang/include/clang/Basic/LangStandards.def

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -180,17 +180,19 @@ LANGSTANDARD(opencl20, "cl2.0",
180180
LANGSTANDARD(opencl30, "cl3.0",
181181
OpenCL, "OpenCL 3.0",
182182
LineComment | C99 | Digraphs | HexFloat | OpenCL)
183-
LANGSTANDARD(openclcpp, "clc++",
184-
OpenCL, "C++ for OpenCL",
183+
LANGSTANDARD(openclcpp10, "clc++1.0",
184+
OpenCL, "C++ for OpenCL 1.0",
185185
LineComment | CPlusPlus | CPlusPlus11 | CPlusPlus14 | CPlusPlus17 |
186186
Digraphs | HexFloat | OpenCL)
187+
LANGSTANDARD_ALIAS(openclcpp10, "clc++")
187188

188189
LANGSTANDARD_ALIAS_DEPR(opencl10, "CL")
189190
LANGSTANDARD_ALIAS_DEPR(opencl11, "CL1.1")
190191
LANGSTANDARD_ALIAS_DEPR(opencl12, "CL1.2")
191192
LANGSTANDARD_ALIAS_DEPR(opencl20, "CL2.0")
192193
LANGSTANDARD_ALIAS_DEPR(opencl30, "CL3.0")
193-
LANGSTANDARD_ALIAS_DEPR(openclcpp, "CLC++")
194+
LANGSTANDARD_ALIAS_DEPR(openclcpp10, "CLC++")
195+
LANGSTANDARD_ALIAS_DEPR(openclcpp10, "CLC++1.0")
194196

195197
// CUDA
196198
LANGSTANDARD(cuda, "cuda", CUDA, "NVIDIA CUDA(tm)",

clang/include/clang/Driver/Options.td

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -843,7 +843,8 @@ def cl_no_signed_zeros : Flag<["-"], "cl-no-signed-zeros">, Group<opencl_Group>,
843843
HelpText<"OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.">,
844844
MarshallingInfoFlag<LangOpts<"CLNoSignedZero">>;
845845
def cl_std_EQ : Joined<["-"], "cl-std=">, Group<opencl_Group>, Flags<[CC1Option]>,
846-
HelpText<"OpenCL language standard to compile for.">, Values<"cl,CL,cl1.0,CL1.0,cl1.1,CL1.1,cl1.2,CL1.2,cl2.0,CL2.0,cl3.0,CL3.0,clc++,CLC++">;
846+
HelpText<"OpenCL language standard to compile for.">,
847+
Values<"cl,CL,cl1.0,CL1.0,cl1.1,CL1.1,cl1.2,CL1.2,cl2.0,CL2.0,cl3.0,CL3.0,clc++,CLC++,clc++1.0,CLC++1.0">;
847848
def cl_denorms_are_zero : Flag<["-"], "cl-denorms-are-zero">, Group<opencl_Group>,
848849
HelpText<"OpenCL only. Allow denormals to be flushed to zero.">;
849850
def cl_fp32_correctly_rounded_divide_sqrt : Flag<["-"], "cl-fp32-correctly-rounded-divide-sqrt">, Group<opencl_Group>, Flags<[CC1Option]>,

clang/lib/Frontend/CompilerInvocation.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3091,7 +3091,7 @@ void CompilerInvocation::setLangDefaults(LangOptions &Opts, InputKind IK,
30913091
LangStd = LangStandard::lang_opencl12;
30923092
break;
30933093
case Language::OpenCLCXX:
3094-
LangStd = LangStandard::lang_openclcpp;
3094+
LangStd = LangStandard::lang_openclcpp10;
30953095
break;
30963096
case Language::CUDA:
30973097
LangStd = LangStandard::lang_cuda;
@@ -3164,7 +3164,7 @@ void CompilerInvocation::setLangDefaults(LangOptions &Opts, InputKind IK,
31643164
Opts.OpenCLVersion = 200;
31653165
else if (LangStd == LangStandard::lang_opencl30)
31663166
Opts.OpenCLVersion = 300;
3167-
else if (LangStd == LangStandard::lang_openclcpp)
3167+
else if (LangStd == LangStandard::lang_openclcpp10)
31683168
Opts.OpenCLCPlusPlusVersion = 100;
31693169

31703170
// OpenCL has some additional defaults.
@@ -3314,7 +3314,7 @@ void CompilerInvocation::GenerateLangArgs(const LangOptions &Opts,
33143314
case LangStandard::lang_opencl12:
33153315
case LangStandard::lang_opencl20:
33163316
case LangStandard::lang_opencl30:
3317-
case LangStandard::lang_openclcpp:
3317+
case LangStandard::lang_openclcpp10:
33183318
StdOpt = OPT_cl_std_EQ;
33193319
break;
33203320
default:
@@ -3608,7 +3608,8 @@ bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args,
36083608
.Cases("cl1.2", "CL1.2", LangStandard::lang_opencl12)
36093609
.Cases("cl2.0", "CL2.0", LangStandard::lang_opencl20)
36103610
.Cases("cl3.0", "CL3.0", LangStandard::lang_opencl30)
3611-
.Cases("clc++", "CLC++", LangStandard::lang_openclcpp)
3611+
.Cases("clc++", "CLC++", LangStandard::lang_openclcpp10)
3612+
.Cases("clc++1.0", "CLC++1.0", LangStandard::lang_openclcpp10)
36123613
.Default(LangStandard::lang_unspecified);
36133614

36143615
if (OpenCLLangStd == LangStandard::lang_unspecified) {

clang/test/Driver/autocomplete.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@
4949
// CLSTDALL-NEXT: CL3.0
5050
// CLSTDALL-NEXT: clc++
5151
// CLSTDALL-NEXT: CLC++
52+
// CLSTDALL-NEXT: clc++1.0
53+
// CLSTDALL-NEXT: CLC++1.0
5254
// RUN: %clang --autocomplete=-fno-sanitize-coverage=,f | FileCheck %s -check-prefix=FNOSANICOVER
5355
// FNOSANICOVER: func
5456
// RUN: %clang --autocomplete=-fno-sanitize-coverage= | FileCheck %s -check-prefix=FNOSANICOVERALL

clang/test/Driver/unknown-std.cl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
// CHECK-NEXT: note: use 'cl1.2' for 'OpenCL 1.2' standard
1212
// CHECK-NEXT: note: use 'cl2.0' for 'OpenCL 2.0' standard
1313
// CHECK-NEXT: note: use 'cl3.0' for 'OpenCL 3.0' standard
14-
// CHECK-NEXT: note: use 'clc++' for 'C++ for OpenCL' standard
14+
// CHECK-NEXT: note: use 'clc++1.0' or 'clc++' for 'C++ for OpenCL 1.0' standard
1515

1616
// Make sure that no other output is present.
1717
// CHECK-NOT: {{^.+$}}

lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,7 @@ static void ParseLangArgs(LangOptions &Opts, InputKind IK, const char *triple) {
478478
LangStd = LangStandard::lang_opencl10;
479479
break;
480480
case clang::Language::OpenCLCXX:
481-
LangStd = LangStandard::lang_openclcpp;
481+
LangStd = LangStandard::lang_openclcpp10;
482482
break;
483483
case clang::Language::CUDA:
484484
LangStd = LangStandard::lang_cuda;

0 commit comments

Comments
 (0)