[clang] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation (PR #78333)
https://github.com/shiltian closed https://github.com/llvm/llvm-project/pull/78333 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation (PR #78333)
https://github.com/lntue updated https://github.com/llvm/llvm-project/pull/78333 >From 5eb2678a0a6a55c2d441b322d4eaaa8fe829a30f Mon Sep 17 00:00:00 2001 From: Shilei Tian Date: Tue, 23 Jan 2024 16:14:48 -0500 Subject: [PATCH] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation We can directly call `clang -c -x cl -target amdgcn -mcpu=gfx90a test.cl -o test.o` to compile an OpenCL kernel file. However, when `--save-temps` is enabled, it doesn't work because the preprocessed file (`.i` file) is taken as C source file when it is fed to the front end, thus causing compilation error because those OpenCL keywords can't be recognized. This patch fixes the issue. --- clang/include/clang/Driver/Types.def | 6 -- clang/lib/Driver/Types.cpp | 7 ++- clang/test/Driver/opencl_aot_save_temps.cl | 16 3 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 clang/test/Driver/opencl_aot_save_temps.cl diff --git a/clang/include/clang/Driver/Types.def b/clang/include/clang/Driver/Types.def index b889883125c4c1..f72c27e1ee7019 100644 --- a/clang/include/clang/Driver/Types.def +++ b/clang/include/clang/Driver/Types.def @@ -37,8 +37,10 @@ // C family source language (with and without preprocessing). TYPE("cpp-output", PP_C, INVALID, "i", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("c",C,PP_C,"c", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) -TYPE("cl", CL, PP_C,"cl", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) -TYPE("clcpp",CLCXX,PP_CXX, "clcpp", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("cl", CL, PP_CL, "cl", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("cl-cpp-output",PP_CL,INVALID, "cli", phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("clcpp",CLCXX,PP_CLCXX,"clcpp", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("clcpp-cpp-output", PP_CLCXX, INVALID, "clii", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda-cpp-output", PP_CUDA, INVALID, "cui", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda", CUDA, PP_CUDA, "cu", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda", CUDA_DEVICE, PP_CUDA, "cu", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) diff --git a/clang/lib/Driver/Types.cpp b/clang/lib/Driver/Types.cpp index 08df34ade7b653..a7b6b9000e1d2b 100644 --- a/clang/lib/Driver/Types.cpp +++ b/clang/lib/Driver/Types.cpp @@ -133,7 +133,7 @@ bool types::isAcceptedByClang(ID Id) { case TY_Asm: case TY_C: case TY_PP_C: - case TY_CL: case TY_CLCXX: + case TY_CL: case TY_PP_CL: case TY_CLCXX: case TY_PP_CLCXX: case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE: case TY_HIP: @@ -181,7 +181,9 @@ bool types::isDerivedFromC(ID Id) { case TY_PP_C: case TY_C: case TY_CL: + case TY_PP_CL: case TY_CLCXX: + case TY_PP_CLCXX: case TY_PP_CUDA: case TY_CUDA: case TY_CUDA_DEVICE: @@ -241,6 +243,7 @@ bool types::isCXX(ID Id) { case TY_PP_CXXHeaderUnit: case TY_ObjCXXHeader: case TY_PP_ObjCXXHeader: case TY_CXXModule: case TY_PP_CXXModule: + case TY_PP_CLCXX: case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE: case TY_HIP: case TY_PP_HIP: @@ -310,7 +313,9 @@ types::ID types::lookupTypeForExtension(llvm::StringRef Ext) { .Case("cc", TY_CXX) .Case("CC", TY_CXX) .Case("cl", TY_CL) + .Case("cli", TY_PP_CL) .Case("clcpp", TY_CLCXX) + .Case("clii", TY_PP_CLCXX) .Case("cp", TY_CXX) .Case("cu", TY_CUDA) .Case("hh", TY_CXXHeader) diff --git a/clang/test/Driver/opencl_aot_save_temps.cl b/clang/test/Driver/opencl_aot_save_temps.cl new file mode 100644 index 00..7b3149871f8fc2 --- /dev/null +++ b/clang/test/Driver/opencl_aot_save_temps.cl @@ -0,0 +1,16 @@ +// RUN: %clang -x cl --save-temps -c -### %s 2>&1 | FileCheck %s +// RUN: %clang -x cl -ccc-print-phases -c %s 2>&1 | FileCheck %s -check-prefix=CHECK-PHASES + +// CHECK: "-o" "[[CLI_NAME:.+]].cli" "-x" "cl" +// CHECK-NEXT: "-o" "[[CLI_NAME]].bc" "-x" "cl-cpp-output"{{.*}}"[[CLI_NAME:.+]].cli" + +// CHECK-PHASES: 0: input, {{.*}}, cl +// CHECK-PHASES: 1: preprocessor, {0}, cl-cpp-output +// CHECK-PHASES: 2: compiler, {1}, ir + +uint3 add(uint3 a, uint3 b) {
[clang] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation (PR #78333)
https://github.com/shiltian updated https://github.com/llvm/llvm-project/pull/78333 >From 5eb2678a0a6a55c2d441b322d4eaaa8fe829a30f Mon Sep 17 00:00:00 2001 From: Shilei Tian Date: Tue, 23 Jan 2024 16:14:48 -0500 Subject: [PATCH] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation We can directly call `clang -c -x cl -target amdgcn -mcpu=gfx90a test.cl -o test.o` to compile an OpenCL kernel file. However, when `--save-temps` is enabled, it doesn't work because the preprocessed file (`.i` file) is taken as C source file when it is fed to the front end, thus causing compilation error because those OpenCL keywords can't be recognized. This patch fixes the issue. --- clang/include/clang/Driver/Types.def | 6 -- clang/lib/Driver/Types.cpp | 7 ++- clang/test/Driver/opencl_aot_save_temps.cl | 16 3 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 clang/test/Driver/opencl_aot_save_temps.cl diff --git a/clang/include/clang/Driver/Types.def b/clang/include/clang/Driver/Types.def index b889883125c4c16..f72c27e1ee70193 100644 --- a/clang/include/clang/Driver/Types.def +++ b/clang/include/clang/Driver/Types.def @@ -37,8 +37,10 @@ // C family source language (with and without preprocessing). TYPE("cpp-output", PP_C, INVALID, "i", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("c",C,PP_C,"c", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) -TYPE("cl", CL, PP_C,"cl", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) -TYPE("clcpp",CLCXX,PP_CXX, "clcpp", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("cl", CL, PP_CL, "cl", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("cl-cpp-output",PP_CL,INVALID, "cli", phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("clcpp",CLCXX,PP_CLCXX,"clcpp", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("clcpp-cpp-output", PP_CLCXX, INVALID, "clii", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda-cpp-output", PP_CUDA, INVALID, "cui", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda", CUDA, PP_CUDA, "cu", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda", CUDA_DEVICE, PP_CUDA, "cu", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) diff --git a/clang/lib/Driver/Types.cpp b/clang/lib/Driver/Types.cpp index 08df34ade7b6530..a7b6b9000e1d2b1 100644 --- a/clang/lib/Driver/Types.cpp +++ b/clang/lib/Driver/Types.cpp @@ -133,7 +133,7 @@ bool types::isAcceptedByClang(ID Id) { case TY_Asm: case TY_C: case TY_PP_C: - case TY_CL: case TY_CLCXX: + case TY_CL: case TY_PP_CL: case TY_CLCXX: case TY_PP_CLCXX: case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE: case TY_HIP: @@ -181,7 +181,9 @@ bool types::isDerivedFromC(ID Id) { case TY_PP_C: case TY_C: case TY_CL: + case TY_PP_CL: case TY_CLCXX: + case TY_PP_CLCXX: case TY_PP_CUDA: case TY_CUDA: case TY_CUDA_DEVICE: @@ -241,6 +243,7 @@ bool types::isCXX(ID Id) { case TY_PP_CXXHeaderUnit: case TY_ObjCXXHeader: case TY_PP_ObjCXXHeader: case TY_CXXModule: case TY_PP_CXXModule: + case TY_PP_CLCXX: case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE: case TY_HIP: case TY_PP_HIP: @@ -310,7 +313,9 @@ types::ID types::lookupTypeForExtension(llvm::StringRef Ext) { .Case("cc", TY_CXX) .Case("CC", TY_CXX) .Case("cl", TY_CL) + .Case("cli", TY_PP_CL) .Case("clcpp", TY_CLCXX) + .Case("clii", TY_PP_CLCXX) .Case("cp", TY_CXX) .Case("cu", TY_CUDA) .Case("hh", TY_CXXHeader) diff --git a/clang/test/Driver/opencl_aot_save_temps.cl b/clang/test/Driver/opencl_aot_save_temps.cl new file mode 100644 index 000..7b3149871f8fc2c --- /dev/null +++ b/clang/test/Driver/opencl_aot_save_temps.cl @@ -0,0 +1,16 @@ +// RUN: %clang -x cl --save-temps -c -### %s 2>&1 | FileCheck %s +// RUN: %clang -x cl -ccc-print-phases -c %s 2>&1 | FileCheck %s -check-prefix=CHECK-PHASES + +// CHECK: "-o" "[[CLI_NAME:.+]].cli" "-x" "cl" +// CHECK-NEXT: "-o" "[[CLI_NAME]].bc" "-x" "cl-cpp-output"{{.*}}"[[CLI_NAME:.+]].cli" + +// CHECK-PHASES: 0: input, {{.*}}, cl +// CHECK-PHASES: 1: preprocessor, {0}, cl-cpp-output +// CHECK-PHASES: 2: compiler, {1}, ir + +uint3 add(uint3 a,
[clang] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation (PR #78333)
https://github.com/shiltian updated https://github.com/llvm/llvm-project/pull/78333 >From 9ae3562ab4a6fb152c2a92f50b72d86711bbad8b Mon Sep 17 00:00:00 2001 From: Shilei Tian Date: Tue, 23 Jan 2024 12:35:42 -0500 Subject: [PATCH] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation We can directly call `clang -c -x cl -target amdgcn -mcpu=gfx90a test.cl -o test.o` to compile an OpenCL kernel file. However, when `--save-temps` is enabled, it doesn't work because the preprocessed file (`.i` file) is taken as C source file when it is fed to the front end, thus causing compilation error because those OpenCL keywords can't be recognized. This patch fixes the issue. --- clang/include/clang/Driver/Types.def | 6 -- clang/lib/Driver/Types.cpp | 7 ++- clang/test/Driver/opencl_aot_save_temps.cl | 19 +++ 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 clang/test/Driver/opencl_aot_save_temps.cl diff --git a/clang/include/clang/Driver/Types.def b/clang/include/clang/Driver/Types.def index b889883125c4c1..f72c27e1ee7019 100644 --- a/clang/include/clang/Driver/Types.def +++ b/clang/include/clang/Driver/Types.def @@ -37,8 +37,10 @@ // C family source language (with and without preprocessing). TYPE("cpp-output", PP_C, INVALID, "i", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("c",C,PP_C,"c", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) -TYPE("cl", CL, PP_C,"cl", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) -TYPE("clcpp",CLCXX,PP_CXX, "clcpp", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("cl", CL, PP_CL, "cl", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("cl-cpp-output",PP_CL,INVALID, "cli", phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("clcpp",CLCXX,PP_CLCXX,"clcpp", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("clcpp-cpp-output", PP_CLCXX, INVALID, "clii", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda-cpp-output", PP_CUDA, INVALID, "cui", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda", CUDA, PP_CUDA, "cu", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda", CUDA_DEVICE, PP_CUDA, "cu", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) diff --git a/clang/lib/Driver/Types.cpp b/clang/lib/Driver/Types.cpp index 08df34ade7b653..a7b6b9000e1d2b 100644 --- a/clang/lib/Driver/Types.cpp +++ b/clang/lib/Driver/Types.cpp @@ -133,7 +133,7 @@ bool types::isAcceptedByClang(ID Id) { case TY_Asm: case TY_C: case TY_PP_C: - case TY_CL: case TY_CLCXX: + case TY_CL: case TY_PP_CL: case TY_CLCXX: case TY_PP_CLCXX: case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE: case TY_HIP: @@ -181,7 +181,9 @@ bool types::isDerivedFromC(ID Id) { case TY_PP_C: case TY_C: case TY_CL: + case TY_PP_CL: case TY_CLCXX: + case TY_PP_CLCXX: case TY_PP_CUDA: case TY_CUDA: case TY_CUDA_DEVICE: @@ -241,6 +243,7 @@ bool types::isCXX(ID Id) { case TY_PP_CXXHeaderUnit: case TY_ObjCXXHeader: case TY_PP_ObjCXXHeader: case TY_CXXModule: case TY_PP_CXXModule: + case TY_PP_CLCXX: case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE: case TY_HIP: case TY_PP_HIP: @@ -310,7 +313,9 @@ types::ID types::lookupTypeForExtension(llvm::StringRef Ext) { .Case("cc", TY_CXX) .Case("CC", TY_CXX) .Case("cl", TY_CL) + .Case("cli", TY_PP_CL) .Case("clcpp", TY_CLCXX) + .Case("clii", TY_PP_CLCXX) .Case("cp", TY_CXX) .Case("cu", TY_CUDA) .Case("hh", TY_CXXHeader) diff --git a/clang/test/Driver/opencl_aot_save_temps.cl b/clang/test/Driver/opencl_aot_save_temps.cl new file mode 100644 index 00..b78014ca617b9a --- /dev/null +++ b/clang/test/Driver/opencl_aot_save_temps.cl @@ -0,0 +1,19 @@ +// RUN: %clang -x cl --save-temps -c -### %s 2>&1 | FileCheck %s +// RUN: %clang -x cl -ccc-print-phases -c %s 2>&1 | FileCheck %s -check-prefix=CHECK-PHASES + +// CHECK: "-o" "[[CLI_NAME:.+]].cli" "-x" "cl" +// CHECK-NEXT: "-o" "[[CLI_NAME]].bc" "-x" "cl-cpp-output"{{.*}}"[[CLI_NAME:.+]].cli" + +// CHECK-PHASES: 0: input, {{.*}}, cl +// CHECK-PHASES: 1: preprocessor, {0}, cl-cpp-output +// CHECK-PHASES: 2: compiler, {1}, ir +// CHECK-PHASES: 3:
[clang] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation (PR #78333)
https://github.com/jhuber6 approved this pull request. https://github.com/llvm/llvm-project/pull/78333 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation (PR #78333)
https://github.com/shiltian updated https://github.com/llvm/llvm-project/pull/78333 >From 6770e41a1bf1b2595f162a09c81760314e5061b2 Mon Sep 17 00:00:00 2001 From: Shilei Tian Date: Tue, 23 Jan 2024 09:27:38 -0500 Subject: [PATCH] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation We can directly call `clang -c -x cl -target amdgcn -mcpu=gfx90a test.cl -o test.o` to compile an OpenCL kernel file. However, when `--save-temps` is enabled, it doesn't work because the preprocessed file (`.i` file) is taken as C source file when it is fed to the front end, thus causing compilation error because those OpenCL keywords can't be recognized. This patch fixes the issue. --- clang/include/clang/Driver/Types.def | 6 -- clang/lib/Driver/Types.cpp | 7 ++- clang/test/Driver/opencl_aot_save_temps.cl | 19 +++ 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 clang/test/Driver/opencl_aot_save_temps.cl diff --git a/clang/include/clang/Driver/Types.def b/clang/include/clang/Driver/Types.def index b889883125c4c1..f72c27e1ee7019 100644 --- a/clang/include/clang/Driver/Types.def +++ b/clang/include/clang/Driver/Types.def @@ -37,8 +37,10 @@ // C family source language (with and without preprocessing). TYPE("cpp-output", PP_C, INVALID, "i", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("c",C,PP_C,"c", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) -TYPE("cl", CL, PP_C,"cl", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) -TYPE("clcpp",CLCXX,PP_CXX, "clcpp", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("cl", CL, PP_CL, "cl", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("cl-cpp-output",PP_CL,INVALID, "cli", phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("clcpp",CLCXX,PP_CLCXX,"clcpp", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("clcpp-cpp-output", PP_CLCXX, INVALID, "clii", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda-cpp-output", PP_CUDA, INVALID, "cui", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda", CUDA, PP_CUDA, "cu", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda", CUDA_DEVICE, PP_CUDA, "cu", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) diff --git a/clang/lib/Driver/Types.cpp b/clang/lib/Driver/Types.cpp index 08df34ade7b653..a7b6b9000e1d2b 100644 --- a/clang/lib/Driver/Types.cpp +++ b/clang/lib/Driver/Types.cpp @@ -133,7 +133,7 @@ bool types::isAcceptedByClang(ID Id) { case TY_Asm: case TY_C: case TY_PP_C: - case TY_CL: case TY_CLCXX: + case TY_CL: case TY_PP_CL: case TY_CLCXX: case TY_PP_CLCXX: case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE: case TY_HIP: @@ -181,7 +181,9 @@ bool types::isDerivedFromC(ID Id) { case TY_PP_C: case TY_C: case TY_CL: + case TY_PP_CL: case TY_CLCXX: + case TY_PP_CLCXX: case TY_PP_CUDA: case TY_CUDA: case TY_CUDA_DEVICE: @@ -241,6 +243,7 @@ bool types::isCXX(ID Id) { case TY_PP_CXXHeaderUnit: case TY_ObjCXXHeader: case TY_PP_ObjCXXHeader: case TY_CXXModule: case TY_PP_CXXModule: + case TY_PP_CLCXX: case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE: case TY_HIP: case TY_PP_HIP: @@ -310,7 +313,9 @@ types::ID types::lookupTypeForExtension(llvm::StringRef Ext) { .Case("cc", TY_CXX) .Case("CC", TY_CXX) .Case("cl", TY_CL) + .Case("cli", TY_PP_CL) .Case("clcpp", TY_CLCXX) + .Case("clii", TY_PP_CLCXX) .Case("cp", TY_CXX) .Case("cu", TY_CUDA) .Case("hh", TY_CXXHeader) diff --git a/clang/test/Driver/opencl_aot_save_temps.cl b/clang/test/Driver/opencl_aot_save_temps.cl new file mode 100644 index 00..6967a7ba412638 --- /dev/null +++ b/clang/test/Driver/opencl_aot_save_temps.cl @@ -0,0 +1,19 @@ +// RUN: %clang -x cl --save-temps -c -### %s 2>&1 | FileCheck %s +// RUN: %clang -x cl -ccc-print-phases --save-temps -c %s 2>&1 | FileCheck %s -check-prefix=CHECK-PHASES + +// CHECK: "-o" "[[CLI_NAME:.+]].cli" "-x" "cl" +// CHECK-NEXT: "-o" "[[CLI_NAME]].bc" "-x" "cl-cpp-output"{{.*}}"[[CLI_NAME:.+]].cli" + +// CHECK-PHASES: 0: input, {{.*}}, cl +// CHECK-PHASES: 1: preprocessor, {0}, cl-cpp-output +// CHECK-PHASES: 2: compiler, {1}, ir +//
[clang] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation (PR #78333)
https://github.com/shiltian updated https://github.com/llvm/llvm-project/pull/78333 >From 2fb901b2379290b162647f0b6d152b93df1b1e7f Mon Sep 17 00:00:00 2001 From: Shilei Tian Date: Mon, 22 Jan 2024 15:39:19 -0500 Subject: [PATCH] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation We can directly call `clang -c -x cl -target amdgcn -mcpu=gfx90a test.cl -o test.o` to compile an OpenCL kernel file. However, when `--save-temps` is enabled, it doesn't work because the preprocessed file (`.i` file) is taken as C source file when it is fed to the front end, thus causing compilation error because those OpenCL keywords can't be recognized. This patch fixes the issue. --- clang/include/clang/Driver/Types.def | 6 -- clang/lib/Driver/Types.cpp | 7 ++- clang/test/Driver/opencl_aot_save_temps.cl | 11 +++ 3 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 clang/test/Driver/opencl_aot_save_temps.cl diff --git a/clang/include/clang/Driver/Types.def b/clang/include/clang/Driver/Types.def index b889883125c4c16..f72c27e1ee70193 100644 --- a/clang/include/clang/Driver/Types.def +++ b/clang/include/clang/Driver/Types.def @@ -37,8 +37,10 @@ // C family source language (with and without preprocessing). TYPE("cpp-output", PP_C, INVALID, "i", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("c",C,PP_C,"c", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) -TYPE("cl", CL, PP_C,"cl", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) -TYPE("clcpp",CLCXX,PP_CXX, "clcpp", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("cl", CL, PP_CL, "cl", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("cl-cpp-output",PP_CL,INVALID, "cli", phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("clcpp",CLCXX,PP_CLCXX,"clcpp", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("clcpp-cpp-output", PP_CLCXX, INVALID, "clii", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda-cpp-output", PP_CUDA, INVALID, "cui", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda", CUDA, PP_CUDA, "cu", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda", CUDA_DEVICE, PP_CUDA, "cu", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) diff --git a/clang/lib/Driver/Types.cpp b/clang/lib/Driver/Types.cpp index 08df34ade7b6530..a7b6b9000e1d2b1 100644 --- a/clang/lib/Driver/Types.cpp +++ b/clang/lib/Driver/Types.cpp @@ -133,7 +133,7 @@ bool types::isAcceptedByClang(ID Id) { case TY_Asm: case TY_C: case TY_PP_C: - case TY_CL: case TY_CLCXX: + case TY_CL: case TY_PP_CL: case TY_CLCXX: case TY_PP_CLCXX: case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE: case TY_HIP: @@ -181,7 +181,9 @@ bool types::isDerivedFromC(ID Id) { case TY_PP_C: case TY_C: case TY_CL: + case TY_PP_CL: case TY_CLCXX: + case TY_PP_CLCXX: case TY_PP_CUDA: case TY_CUDA: case TY_CUDA_DEVICE: @@ -241,6 +243,7 @@ bool types::isCXX(ID Id) { case TY_PP_CXXHeaderUnit: case TY_ObjCXXHeader: case TY_PP_ObjCXXHeader: case TY_CXXModule: case TY_PP_CXXModule: + case TY_PP_CLCXX: case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE: case TY_HIP: case TY_PP_HIP: @@ -310,7 +313,9 @@ types::ID types::lookupTypeForExtension(llvm::StringRef Ext) { .Case("cc", TY_CXX) .Case("CC", TY_CXX) .Case("cl", TY_CL) + .Case("cli", TY_PP_CL) .Case("clcpp", TY_CLCXX) + .Case("clii", TY_PP_CLCXX) .Case("cp", TY_CXX) .Case("cu", TY_CUDA) .Case("hh", TY_CXXHeader) diff --git a/clang/test/Driver/opencl_aot_save_temps.cl b/clang/test/Driver/opencl_aot_save_temps.cl new file mode 100644 index 000..4e7a8fdb314822a --- /dev/null +++ b/clang/test/Driver/opencl_aot_save_temps.cl @@ -0,0 +1,11 @@ +// RUN: %clang -x cl --save-temps -c -### %s 2>&1 | FileCheck %s + +// CHECK: "-o" "[[CLI_NAME:.+]].cli" "-x" "cl" +// CHECK-NEXT: "-o" "[[CLI_NAME]].bc" "-x" "cl-cpp-output"{{.*}}"[[CLI_NAME:.+]].cli" + +uint3 add(uint3 a, uint3 b) { + ulong x = a.x + (ulong)b.x; + ulong y = a.y + (ulong)b.y + (x >> 32); + uint z = a.z + b.z + (y >> 32); + return (uint3)(x, y, z); +} ___ cfe-commits mailing list
[clang] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation (PR #78333)
https://github.com/jhuber6 edited https://github.com/llvm/llvm-project/pull/78333 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation (PR #78333)
https://github.com/jhuber6 commented: You should add a test that checks the output of `-ccc-print-phases` and `-ccc-print-bindings`. https://github.com/llvm/llvm-project/pull/78333 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation (PR #78333)
https://github.com/yxsamliu approved this pull request. https://github.com/llvm/llvm-project/pull/78333 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation (PR #78333)
llvmbot wrote: @llvm/pr-subscribers-clang Author: Shilei Tian (shiltian) Changes We can directly call `clang -c -x cl -target amdgcn -mcpu=gfx90a test.cl -o test.o` to compile an OpenCL kernel file. However, when `--save-temps` is enabled, it doesn't work because the preprocessed file (`.i` file) is taken as C source file when it is fed to the front end, thus causing compilation error because those OpenCL keywords can't be recognized. This patch fixes the issue. --- Full diff: https://github.com/llvm/llvm-project/pull/78333.diff 3 Files Affected: - (modified) clang/include/clang/Driver/Types.def (+4-2) - (modified) clang/lib/Driver/Types.cpp (+6-1) - (added) clang/test/Driver/opencl_aot_save_temps.cl (+9) ``diff diff --git a/clang/include/clang/Driver/Types.def b/clang/include/clang/Driver/Types.def index b889883125c4c16..f72c27e1ee70193 100644 --- a/clang/include/clang/Driver/Types.def +++ b/clang/include/clang/Driver/Types.def @@ -37,8 +37,10 @@ // C family source language (with and without preprocessing). TYPE("cpp-output", PP_C, INVALID, "i", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("c",C,PP_C,"c", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) -TYPE("cl", CL, PP_C,"cl", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) -TYPE("clcpp",CLCXX,PP_CXX, "clcpp", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("cl", CL, PP_CL, "cl", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("cl-cpp-output",PP_CL,INVALID, "cli", phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("clcpp",CLCXX,PP_CLCXX,"clcpp", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("clcpp-cpp-output", PP_CLCXX, INVALID, "clii", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda-cpp-output", PP_CUDA, INVALID, "cui", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda", CUDA, PP_CUDA, "cu", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda", CUDA_DEVICE, PP_CUDA, "cu", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) diff --git a/clang/lib/Driver/Types.cpp b/clang/lib/Driver/Types.cpp index 08df34ade7b6530..a7b6b9000e1d2b1 100644 --- a/clang/lib/Driver/Types.cpp +++ b/clang/lib/Driver/Types.cpp @@ -133,7 +133,7 @@ bool types::isAcceptedByClang(ID Id) { case TY_Asm: case TY_C: case TY_PP_C: - case TY_CL: case TY_CLCXX: + case TY_CL: case TY_PP_CL: case TY_CLCXX: case TY_PP_CLCXX: case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE: case TY_HIP: @@ -181,7 +181,9 @@ bool types::isDerivedFromC(ID Id) { case TY_PP_C: case TY_C: case TY_CL: + case TY_PP_CL: case TY_CLCXX: + case TY_PP_CLCXX: case TY_PP_CUDA: case TY_CUDA: case TY_CUDA_DEVICE: @@ -241,6 +243,7 @@ bool types::isCXX(ID Id) { case TY_PP_CXXHeaderUnit: case TY_ObjCXXHeader: case TY_PP_ObjCXXHeader: case TY_CXXModule: case TY_PP_CXXModule: + case TY_PP_CLCXX: case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE: case TY_HIP: case TY_PP_HIP: @@ -310,7 +313,9 @@ types::ID types::lookupTypeForExtension(llvm::StringRef Ext) { .Case("cc", TY_CXX) .Case("CC", TY_CXX) .Case("cl", TY_CL) + .Case("cli", TY_PP_CL) .Case("clcpp", TY_CLCXX) + .Case("clii", TY_PP_CLCXX) .Case("cp", TY_CXX) .Case("cu", TY_CUDA) .Case("hh", TY_CXXHeader) diff --git a/clang/test/Driver/opencl_aot_save_temps.cl b/clang/test/Driver/opencl_aot_save_temps.cl new file mode 100644 index 000..d858992eb59b789 --- /dev/null +++ b/clang/test/Driver/opencl_aot_save_temps.cl @@ -0,0 +1,9 @@ +// RUN: %clang -x cl -c %s +// RUN: %clang -x cl --save-temps -c %s + +uint3 add(uint3 a, uint3 b) { + ulong x = a.x + (ulong)b.x; + ulong y = a.y + (ulong)b.y + (x >> 32); + uint z = a.z + b.z + (y >> 32); + return (uint3)(x, y, z); +} `` https://github.com/llvm/llvm-project/pull/78333 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation (PR #78333)
https://github.com/shiltian ready_for_review https://github.com/llvm/llvm-project/pull/78333 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation (PR #78333)
https://github.com/shiltian updated https://github.com/llvm/llvm-project/pull/78333 >From 837a9fd2c1fac7dcdf2c8538e6634eccf36ee7b6 Mon Sep 17 00:00:00 2001 From: Shilei Tian Date: Fri, 19 Jan 2024 23:46:54 -0500 Subject: [PATCH] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation We can directly call `clang -c -x cl -target amdgcn -mcpu=gfx90a test.cl -o test.o` to compile an OpenCL kernel file. However, when `--save-temps` is enabled, it doesn't work because the preprocessed file (`.i` file) is taken as C source file when it is fed to the front end, thus causing compilation error because those OpenCL keywords can't be recognized. This patch fixes the issue. --- clang/include/clang/Driver/Types.def | 6 -- clang/lib/Driver/Types.cpp | 7 ++- clang/test/Driver/opencl_aot_save_temps.cl | 9 + 3 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 clang/test/Driver/opencl_aot_save_temps.cl diff --git a/clang/include/clang/Driver/Types.def b/clang/include/clang/Driver/Types.def index b889883125c4c16..f72c27e1ee70193 100644 --- a/clang/include/clang/Driver/Types.def +++ b/clang/include/clang/Driver/Types.def @@ -37,8 +37,10 @@ // C family source language (with and without preprocessing). TYPE("cpp-output", PP_C, INVALID, "i", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("c",C,PP_C,"c", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) -TYPE("cl", CL, PP_C,"cl", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) -TYPE("clcpp",CLCXX,PP_CXX, "clcpp", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("cl", CL, PP_CL, "cl", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("cl-cpp-output",PP_CL,INVALID, "cli", phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("clcpp",CLCXX,PP_CLCXX,"clcpp", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("clcpp-cpp-output", PP_CLCXX, INVALID, "clii", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda-cpp-output", PP_CUDA, INVALID, "cui", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda", CUDA, PP_CUDA, "cu", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda", CUDA_DEVICE, PP_CUDA, "cu", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) diff --git a/clang/lib/Driver/Types.cpp b/clang/lib/Driver/Types.cpp index 08df34ade7b6530..a7b6b9000e1d2b1 100644 --- a/clang/lib/Driver/Types.cpp +++ b/clang/lib/Driver/Types.cpp @@ -133,7 +133,7 @@ bool types::isAcceptedByClang(ID Id) { case TY_Asm: case TY_C: case TY_PP_C: - case TY_CL: case TY_CLCXX: + case TY_CL: case TY_PP_CL: case TY_CLCXX: case TY_PP_CLCXX: case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE: case TY_HIP: @@ -181,7 +181,9 @@ bool types::isDerivedFromC(ID Id) { case TY_PP_C: case TY_C: case TY_CL: + case TY_PP_CL: case TY_CLCXX: + case TY_PP_CLCXX: case TY_PP_CUDA: case TY_CUDA: case TY_CUDA_DEVICE: @@ -241,6 +243,7 @@ bool types::isCXX(ID Id) { case TY_PP_CXXHeaderUnit: case TY_ObjCXXHeader: case TY_PP_ObjCXXHeader: case TY_CXXModule: case TY_PP_CXXModule: + case TY_PP_CLCXX: case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE: case TY_HIP: case TY_PP_HIP: @@ -310,7 +313,9 @@ types::ID types::lookupTypeForExtension(llvm::StringRef Ext) { .Case("cc", TY_CXX) .Case("CC", TY_CXX) .Case("cl", TY_CL) + .Case("cli", TY_PP_CL) .Case("clcpp", TY_CLCXX) + .Case("clii", TY_PP_CLCXX) .Case("cp", TY_CXX) .Case("cu", TY_CUDA) .Case("hh", TY_CXXHeader) diff --git a/clang/test/Driver/opencl_aot_save_temps.cl b/clang/test/Driver/opencl_aot_save_temps.cl new file mode 100644 index 000..d858992eb59b789 --- /dev/null +++ b/clang/test/Driver/opencl_aot_save_temps.cl @@ -0,0 +1,9 @@ +// RUN: %clang -x cl -c %s +// RUN: %clang -x cl --save-temps -c %s + +uint3 add(uint3 a, uint3 b) { + ulong x = a.x + (ulong)b.x; + ulong y = a.y + (ulong)b.y + (x >> 32); + uint z = a.z + b.z + (y >> 32); + return (uint3)(x, y, z); +} ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation (PR #78333)
shiltian wrote: I'm working on a test case. https://github.com/llvm/llvm-project/pull/78333 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation (PR #78333)
github-actions[bot] wrote: :warning: C/C++ code formatter, clang-format found issues in your code. :warning: You can test this locally with the following command: ``bash git-clang-format --diff da6806dcb45d311efceaba0d770d9027d68a0de9 9fa50ffb330ef9b77eac6f7b63be5b91dd153e85 -- clang/lib/Driver/Types.cpp `` View the diff from clang-format here. ``diff diff --git a/clang/lib/Driver/Types.cpp b/clang/lib/Driver/Types.cpp index a7b6b9000e..fc6ccf103b 100644 --- a/clang/lib/Driver/Types.cpp +++ b/clang/lib/Driver/Types.cpp @@ -133,7 +133,10 @@ bool types::isAcceptedByClang(ID Id) { case TY_Asm: case TY_C: case TY_PP_C: - case TY_CL: case TY_PP_CL: case TY_CLCXX: case TY_PP_CLCXX: + case TY_CL: + case TY_PP_CL: + case TY_CLCXX: + case TY_PP_CLCXX: case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE: case TY_HIP: `` https://github.com/llvm/llvm-project/pull/78333 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation (PR #78333)
https://github.com/shiltian created https://github.com/llvm/llvm-project/pull/78333 We can directly call `clang -c -x cl -target amdgcn -mcpu=gfx90a test.cl -o test.o` to compile an OpenCL kernel file. However, when `--save-temps` is enabled, it doesn't work because the preprocessed file (`.i` file) is taken as C source file when it is fed to the front end, thus causing compilation error because those OpenCL keywords can't be recognized. This patch fixes the issue. >From 9fa50ffb330ef9b77eac6f7b63be5b91dd153e85 Mon Sep 17 00:00:00 2001 From: Shilei Tian Date: Tue, 16 Jan 2024 14:29:21 -0500 Subject: [PATCH] [Clang][Driver] Fix `--save-temps` for OpenCL AoT compilation We can directly call `clang -c -x cl -target amdgcn -mcpu=gfx90a test.cl -o test.o` to compile an OpenCL kernel file. However, when `--save-temps` is enabled, it doesn't work because the preprocessed file (`.i` file) is taken as C source file when it is fed to the front end, thus causing compilation error because those OpenCL keywords can't be recognized. This patch fixes the issue. --- clang/include/clang/Driver/Types.def | 6 -- clang/lib/Driver/Types.cpp | 7 ++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/clang/include/clang/Driver/Types.def b/clang/include/clang/Driver/Types.def index b889883125c4c1..f72c27e1ee7019 100644 --- a/clang/include/clang/Driver/Types.def +++ b/clang/include/clang/Driver/Types.def @@ -37,8 +37,10 @@ // C family source language (with and without preprocessing). TYPE("cpp-output", PP_C, INVALID, "i", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("c",C,PP_C,"c", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) -TYPE("cl", CL, PP_C,"cl", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) -TYPE("clcpp",CLCXX,PP_CXX, "clcpp", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("cl", CL, PP_CL, "cl", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("cl-cpp-output",PP_CL,INVALID, "cli", phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("clcpp",CLCXX,PP_CLCXX,"clcpp", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) +TYPE("clcpp-cpp-output", PP_CLCXX, INVALID, "clii", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda-cpp-output", PP_CUDA, INVALID, "cui", phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda", CUDA, PP_CUDA, "cu", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) TYPE("cuda", CUDA_DEVICE, PP_CUDA, "cu", phases::Preprocess, phases::Compile, phases::Backend, phases::Assemble, phases::Link) diff --git a/clang/lib/Driver/Types.cpp b/clang/lib/Driver/Types.cpp index 08df34ade7b653..a7b6b9000e1d2b 100644 --- a/clang/lib/Driver/Types.cpp +++ b/clang/lib/Driver/Types.cpp @@ -133,7 +133,7 @@ bool types::isAcceptedByClang(ID Id) { case TY_Asm: case TY_C: case TY_PP_C: - case TY_CL: case TY_CLCXX: + case TY_CL: case TY_PP_CL: case TY_CLCXX: case TY_PP_CLCXX: case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE: case TY_HIP: @@ -181,7 +181,9 @@ bool types::isDerivedFromC(ID Id) { case TY_PP_C: case TY_C: case TY_CL: + case TY_PP_CL: case TY_CLCXX: + case TY_PP_CLCXX: case TY_PP_CUDA: case TY_CUDA: case TY_CUDA_DEVICE: @@ -241,6 +243,7 @@ bool types::isCXX(ID Id) { case TY_PP_CXXHeaderUnit: case TY_ObjCXXHeader: case TY_PP_ObjCXXHeader: case TY_CXXModule: case TY_PP_CXXModule: + case TY_PP_CLCXX: case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE: case TY_HIP: case TY_PP_HIP: @@ -310,7 +313,9 @@ types::ID types::lookupTypeForExtension(llvm::StringRef Ext) { .Case("cc", TY_CXX) .Case("CC", TY_CXX) .Case("cl", TY_CL) + .Case("cli", TY_PP_CL) .Case("clcpp", TY_CLCXX) + .Case("clii", TY_PP_CLCXX) .Case("cp", TY_CXX) .Case("cu", TY_CUDA) .Case("hh", TY_CXXHeader) ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits