1 //===--- SPIR.cpp - Implement SPIR and SPIR-V target feature support ------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 // 9 // This file implements SPIR and SPIR-V TargetInfo objects. 10 // 11 //===----------------------------------------------------------------------===// 12 13 #include "SPIR.h" 14 #include "Targets.h" 15 16 using namespace clang; 17 using namespace clang::targets; 18 19 void SPIRTargetInfo::getTargetDefines(const LangOptions &Opts, 20 MacroBuilder &Builder) const { 21 DefineStd(Builder, "SPIR", Opts); 22 } 23 24 void SPIR32TargetInfo::getTargetDefines(const LangOptions &Opts, 25 MacroBuilder &Builder) const { 26 SPIRTargetInfo::getTargetDefines(Opts, Builder); 27 DefineStd(Builder, "SPIR32", Opts); 28 } 29 30 void SPIR64TargetInfo::getTargetDefines(const LangOptions &Opts, 31 MacroBuilder &Builder) const { 32 SPIRTargetInfo::getTargetDefines(Opts, Builder); 33 DefineStd(Builder, "SPIR64", Opts); 34 } 35 36 void SPIRVTargetInfo::getTargetDefines(const LangOptions &Opts, 37 MacroBuilder &Builder) const { 38 DefineStd(Builder, "SPIRV", Opts); 39 } 40 41 void SPIRV32TargetInfo::getTargetDefines(const LangOptions &Opts, 42 MacroBuilder &Builder) const { 43 SPIRVTargetInfo::getTargetDefines(Opts, Builder); 44 DefineStd(Builder, "SPIRV32", Opts); 45 } 46 47 void SPIRV64TargetInfo::getTargetDefines(const LangOptions &Opts, 48 MacroBuilder &Builder) const { 49 SPIRVTargetInfo::getTargetDefines(Opts, Builder); 50 DefineStd(Builder, "SPIRV64", Opts); 51 } 52