xref: /freebsd/contrib/llvm-project/llvm/lib/Target/SPIRV/SPIRV.td (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
1//===-- SPIRV.td - Describe the SPIR-V Target Machine ------*- tablegen -*-===//
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
9include "llvm/Target/Target.td"
10
11include "SPIRVRegisterInfo.td"
12include "SPIRVRegisterBanks.td"
13include "SPIRVInstrInfo.td"
14include "SPIRVBuiltins.td"
15
16def SPIRVInstrInfo : InstrInfo;
17
18class Proc<string Name, list<SubtargetFeature> Features>
19 : Processor<Name, NoItineraries, Features>;
20
21def : Proc<"generic", []>;
22
23def SPIRVInstPrinter : AsmWriter {
24  string AsmWriterClassName  = "InstPrinter";
25  bit isMCAsmWriter = 1;
26}
27
28def SPIRV : Target {
29  let InstructionSet = SPIRVInstrInfo;
30  let AssemblyWriters = [SPIRVInstPrinter];
31}
32