[clang] ff50b12 - [SYCL] Ignore file-scope asm during device-side SYCL compilation.

Artur Gainullin via cfe-commits cfe-commits at lists.llvm.org
Fri Feb 12 17:00:58 PST 2021


Author: Artur Gainullin
Date: 2021-02-12T17:00:45-08:00
New Revision: ff50b121e336503621da80676116f82d82e91196

URL: https://github.com/llvm/llvm-project/commit/ff50b121e336503621da80676116f82d82e91196
DIFF: https://github.com/llvm/llvm-project/commit/ff50b121e336503621da80676116f82d82e91196.diff

LOG: [SYCL] Ignore file-scope asm during device-side SYCL compilation.

Reviewed By: bader, eandrews

Differential Revision: https://reviews.llvm.org/D96538

Added: 
    clang/test/CodeGenSYCL/filescope_asm.c

Modified: 
    clang/lib/CodeGen/CodeGenModule.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index 6321f745593b..4688f13dae21 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -5672,6 +5672,9 @@ void CodeGenModule::EmitTopLevelDecl(Decl *D) {
     // File-scope asm is ignored during device-side OpenMP compilation.
     if (LangOpts.OpenMPIsDevice)
       break;
+    // File-scope asm is ignored during device-side SYCL compilation.
+    if (LangOpts.SYCLIsDevice)
+      break;
     auto *AD = cast<FileScopeAsmDecl>(D);
     getModule().appendModuleInlineAsm(AD->getAsmString()->getString());
     break;

diff  --git a/clang/test/CodeGenSYCL/filescope_asm.c b/clang/test/CodeGenSYCL/filescope_asm.c
new file mode 100644
index 000000000000..5f4f6709a0e1
--- /dev/null
+++ b/clang/test/CodeGenSYCL/filescope_asm.c
@@ -0,0 +1,6 @@
+// RUN:  %clang_cc1 -fsycl -fsycl-is-device -triple spir64-unknown-unknown-sycldevice -emit-llvm %s -o - | FileCheck %s
+//
+// Check that file-scope asm is ignored during device-side SYCL compilation.
+//
+// CHECK-NOT: module asm "foo"
+__asm__("foo");


        


More information about the cfe-commits mailing list