//===- BasicPtxBuilderInterface.td - PTX builder interface -*- 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 // //===----------------------------------------------------------------------===// // // Defines the interface to build PTX (Parallel Thread Execution) from NVVM Ops // automatically. It is used by NVVM to LLVM pass. // //===----------------------------------------------------------------------===// #ifndef NVVM_DIALECT_NVVM_IR_BASICPTXBUILDERINTERFACE_H_ #define NVVM_DIALECT_NVVM_IR_BASICPTXBUILDERINTERFACE_H_ #include "mlir/Dialect/LLVMIR/LLVMDialect.h" #include "mlir/IR/BuiltinAttributes.h" #include "mlir/IR/PatternMatch.h" #include "mlir/IR/Value.h" namespace mlir { namespace NVVM { /// Register read/write modifier to build constraint string for PTX inline /// https://docs.nvidia.com/cuda/inline-ptx-assembly/index.html#parameters enum class PTXRegisterMod { … }; } // namespace NVVM } // namespace mlir /// Include the generated interface declarations. #include "mlir/Dialect/LLVMIR/BasicPtxBuilderInterface.h.inc" namespace mlir { namespace NVVM { /// A class to build PTX assembly automatically. It is used by /// BasicPtxBuilderInterface. class PtxBuilder { … }; } // namespace NVVM } // namespace mlir #endif // NVVM_DIALECT_NVVM_IR_BASICPTXBUILDERINTERFACE_H_