From 7bbe1bb4ce82f3c194e290abb8fc4b929509d659 Mon Sep 17 00:00:00 2001 From: Sven van Haastregt Date: Mon, 4 Dec 2017 15:01:08 +0000 Subject: [PATCH] [OpenCL] Define __IMAGE_SUPPORT__ macro for SPIR Add #define __IMAGE_SUPPORT__ 1 for SPIR targets to indicate that SPIR supports images. Patch by Dmitry Borisenkov. Differential Revision: https://reviews.llvm.org/D40252 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@319658 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Frontend/InitPreprocessor.cpp | 4 ++++ test/Preprocessor/predefined-macros.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/lib/Frontend/InitPreprocessor.cpp b/lib/Frontend/InitPreprocessor.cpp index 67c1faddc3..74a751f1f6 100644 --- a/lib/Frontend/InitPreprocessor.cpp +++ b/lib/Frontend/InitPreprocessor.cpp @@ -1034,6 +1034,10 @@ static void InitializePredefinedMacros(const TargetInfo &TI, LangOpts.OpenCLVersion)) \ Builder.defineMacro(#Ext); #include "clang/Basic/OpenCLExtensions.def" + + auto Arch = TI.getTriple().getArch(); + if (Arch == llvm::Triple::spir || Arch == llvm::Triple::spir64) + Builder.defineMacro("__IMAGE_SUPPORT__"); } if (TI.hasInt128Type() && LangOpts.CPlusPlus && LangOpts.GNUMode) { diff --git a/test/Preprocessor/predefined-macros.c b/test/Preprocessor/predefined-macros.c index f920a9845c..def1ef90f5 100644 --- a/test/Preprocessor/predefined-macros.c +++ b/test/Preprocessor/predefined-macros.c @@ -267,3 +267,7 @@ // CHECK-ARM64-MINGW: #define _WIN32 1 // CHECK-ARM64-MINGW: #define _WIN64 1 // CHECK-ARM64-MINGW: #define __aarch64__ 1 + +// RUN: %clang_cc1 %s -E -dM -o - -x cl -triple spir-unknown-unknown \ +// RUN: | FileCheck -match-full-lines %s --check-prefix=CHECK-SPIR +// CHECK-SPIR: #define __IMAGE_SUPPORT__ 1 -- 2.50.1