LLZK 0.1.0
Veridise's ZK Language IR
Loading...
Searching...
No Matches
OpInterfaces.h.inc
Go to the documentation of this file.
1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Interface Declarations *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9namespace llzk {
10namespace global {
12namespace detail {
14 struct Concept {
16 ::mlir::Value (*getVal)(const Concept *impl, ::mlir::Operation *);
17 ::mlir::SymbolRefAttr (*getNameRef)(const Concept *impl, ::mlir::Operation *);
18 };
19 template<typename ConcreteOp>
20 class Model : public Concept {
21 public:
24
25 static inline ::mlir::Value getVal(const Concept *impl, ::mlir::Operation *tablegen_opaque_val);
26 static inline ::mlir::SymbolRefAttr getNameRef(const Concept *impl, ::mlir::Operation *tablegen_opaque_val);
27 };
28 template<typename ConcreteOp>
29 class FallbackModel : public Concept {
30 public:
33
34 static inline ::mlir::Value getVal(const Concept *impl, ::mlir::Operation *tablegen_opaque_val);
35 static inline ::mlir::SymbolRefAttr getNameRef(const Concept *impl, ::mlir::Operation *tablegen_opaque_val);
36 };
37 template<typename ConcreteModel, typename ConcreteOp>
38 class ExternalModel : public FallbackModel<ConcreteModel> {
39 public:
40 using ConcreteEntity = ConcreteOp;
41 };
42};template <typename ConcreteOp>
44
45} // namespace detail
46class GlobalRefOpInterface : public ::mlir::OpInterface<GlobalRefOpInterface, detail::GlobalRefOpInterfaceInterfaceTraits> {
47public:
48 using ::mlir::OpInterface<GlobalRefOpInterface, detail::GlobalRefOpInterfaceInterfaceTraits>::OpInterface;
49 template <typename ConcreteOp>
50 struct Trait : public detail::GlobalRefOpInterfaceTrait<ConcreteOp> {};
52 ::mlir::Value getVal();
54 ::mlir::SymbolRefAttr getNameRef();
55
57 ::mlir::FailureOr<SymbolLookupResult<GlobalDefOp>> getGlobalDefOp(::mlir::SymbolTableCollection &tables);
58};
59namespace detail {
60 template <typename ConcreteOp>
61 struct GlobalRefOpInterfaceTrait : public ::mlir::OpInterface<GlobalRefOpInterface, detail::GlobalRefOpInterfaceInterfaceTraits>::Trait<ConcreteOp> {
62 };
63}// namespace detail
64} // namespace global
65} // namespace llzk
66namespace llzk {
67namespace global {
68template<typename ConcreteOp>
69::mlir::Value detail::GlobalRefOpInterfaceInterfaceTraits::Model<ConcreteOp>::getVal(const Concept *impl, ::mlir::Operation *tablegen_opaque_val) {
70 return (llvm::cast<ConcreteOp>(tablegen_opaque_val)).getVal();
71}
72template<typename ConcreteOp>
73::mlir::SymbolRefAttr detail::GlobalRefOpInterfaceInterfaceTraits::Model<ConcreteOp>::getNameRef(const Concept *impl, ::mlir::Operation *tablegen_opaque_val) {
74 return (llvm::cast<ConcreteOp>(tablegen_opaque_val)).getNameRef();
75}
76template<typename ConcreteOp>
77::mlir::Value detail::GlobalRefOpInterfaceInterfaceTraits::FallbackModel<ConcreteOp>::getVal(const Concept *impl, ::mlir::Operation *tablegen_opaque_val) {
78 return static_cast<const ConcreteOp *>(impl)->getVal(tablegen_opaque_val);
79}
80template<typename ConcreteOp>
81::mlir::SymbolRefAttr detail::GlobalRefOpInterfaceInterfaceTraits::FallbackModel<ConcreteOp>::getNameRef(const Concept *impl, ::mlir::Operation *tablegen_opaque_val) {
82 return static_cast<const ConcreteOp *>(impl)->getNameRef(tablegen_opaque_val);
83}
84} // namespace global
85} // namespace llzk
::mlir::Value getVal()
Gets the SSA Value that holds the read/write data for the GlobalRefOp.
::mlir::FailureOr< SymbolLookupResult< GlobalDefOp > > getGlobalDefOp(::mlir::SymbolTableCollection &tables)
Gets the definition for the global referenced in this op.
Definition Ops.cpp:186
::mlir::SymbolRefAttr getNameRef()
Gets the global name attribute from the GlobalRefOp.
static inline ::mlir::Value getVal(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static inline ::mlir::SymbolRefAttr getNameRef(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static inline ::mlir::SymbolRefAttr getNameRef(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static inline ::mlir::Value getVal(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
::mlir::SymbolRefAttr(* getNameRef)(const Concept *impl, ::mlir::Operation *)
::mlir::Value(* getVal)(const Concept *impl, ::mlir::Operation *)
The methods defined by the interface.