| //===-- SPIRV.td - Describe the SPIR-V Target Machine ------*- tablegen -*-===// | |
| // | |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| // | |
| //===----------------------------------------------------------------------===// | |
| include "llvm/Target/Target.td" | |
| include "SPIRVRegisterInfo.td" | |
| include "SPIRVRegisterBanks.td" | |
| include "SPIRVInstrInfo.td" | |
| include "SPIRVBuiltins.td" | |
| def SPIRVInstrInfo : InstrInfo; | |
| class Proc<string Name, list<SubtargetFeature> Features> | |
| : Processor<Name, NoItineraries, Features>; | |
| def : Proc<"generic", []>; | |
| def SPIRV10 : SubtargetFeature<"spirv1.0", "SPIRVVersion", "10", | |
| "Use SPIR-V version 1.0">; | |
| def SPIRV11 : SubtargetFeature<"spirv1.1", "SPIRVVersion", "11", | |
| "Use SPIR-V version 1.1">; | |
| def SPIRV12 : SubtargetFeature<"spirv1.2", "SPIRVVersion", "12", | |
| "Use SPIR-V version 1.2">; | |
| def SPIRV13 : SubtargetFeature<"spirv1.3", "SPIRVVersion", "13", | |
| "Use SPIR-V version 1.3">; | |
| def SPIRV14 : SubtargetFeature<"spirv1.4", "SPIRVVersion", "14", | |
| "Use SPIR-V version 1.4">; | |
| def SPIRV15 : SubtargetFeature<"spirv1.5", "SPIRVVersion", "15", | |
| "Use SPIR-V version 1.5">; | |
| def SPIRVInstPrinter : AsmWriter { | |
| string AsmWriterClassName = "InstPrinter"; | |
| bit isMCAsmWriter = 1; | |
| } | |
| def SPIRV : Target { | |
| let InstructionSet = SPIRVInstrInfo; | |
| let AssemblyWriters = [SPIRVInstPrinter]; | |
| } |