namespace mlir {
class BytecodeOpInterface;
namespace detail {
struct BytecodeOpInterfaceInterfaceTraits { … };
template <typename ConcreteOp>
struct BytecodeOpInterfaceTrait;
}
class BytecodeOpInterface : public ::mlir::OpInterface<BytecodeOpInterface, detail::BytecodeOpInterfaceInterfaceTraits> { … };
namespace detail {
template <typename ConcreteOp>
struct BytecodeOpInterfaceTrait : public ::mlir::OpInterface<BytecodeOpInterface, detail::BytecodeOpInterfaceInterfaceTraits>::Trait<ConcreteOp> { … };
}
}
namespace mlir {
template<typename ConcreteOp>
LogicalResult detail::BytecodeOpInterfaceInterfaceTraits::Model<ConcreteOp>::readProperties(::mlir::DialectBytecodeReader & reader, ::mlir::OperationState & state) { … }
template<typename ConcreteOp>
void detail::BytecodeOpInterfaceInterfaceTraits::Model<ConcreteOp>::writeProperties(const Concept *impl, ::mlir::Operation *tablegen_opaque_val, ::mlir::DialectBytecodeWriter & writer) { … }
template<typename ConcreteOp>
LogicalResult detail::BytecodeOpInterfaceInterfaceTraits::FallbackModel<ConcreteOp>::readProperties(::mlir::DialectBytecodeReader & reader, ::mlir::OperationState & state) { … }
template<typename ConcreteOp>
void detail::BytecodeOpInterfaceInterfaceTraits::FallbackModel<ConcreteOp>::writeProperties(const Concept *impl, ::mlir::Operation *tablegen_opaque_val, ::mlir::DialectBytecodeWriter & writer) { … }
}