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};
43template <typename ConcreteOp>
45
46} // namespace detail
47class GlobalRefOpInterface : public ::mlir::OpInterface<GlobalRefOpInterface, detail::GlobalRefOpInterfaceInterfaceTraits> {
48public:
49 using ::mlir::OpInterface<GlobalRefOpInterface, detail::GlobalRefOpInterfaceInterfaceTraits>::OpInterface;
50 template <typename ConcreteOp>
51 struct Trait : public detail::GlobalRefOpInterfaceTrait<ConcreteOp> {};
53 ::mlir::Value getVal();
55 ::mlir::SymbolRefAttr getNameRef();
56
58 ::mlir::FailureOr<SymbolLookupResult<GlobalDefOp>> getGlobalDefOp(::mlir::SymbolTableCollection &tables);
59};
60namespace detail {
61 template <typename ConcreteOp>
62 struct GlobalRefOpInterfaceTrait : public ::mlir::OpInterface<GlobalRefOpInterface, detail::GlobalRefOpInterfaceInterfaceTraits>::Trait<ConcreteOp> {
63 };
64}// namespace detail
65} // namespace global
66} // namespace llzk
67namespace llzk {
68namespace global {
69template<typename ConcreteOp>
70::mlir::Value detail::GlobalRefOpInterfaceInterfaceTraits::Model<ConcreteOp>::getVal(const Concept *impl, ::mlir::Operation *tablegen_opaque_val) {
71 return (llvm::cast<ConcreteOp>(tablegen_opaque_val)).getVal();
72}
73template<typename ConcreteOp>
74::mlir::SymbolRefAttr detail::GlobalRefOpInterfaceInterfaceTraits::Model<ConcreteOp>::getNameRef(const Concept *impl, ::mlir::Operation *tablegen_opaque_val) {
75 return (llvm::cast<ConcreteOp>(tablegen_opaque_val)).getNameRef();
76}
77template<typename ConcreteOp>
78::mlir::Value detail::GlobalRefOpInterfaceInterfaceTraits::FallbackModel<ConcreteOp>::getVal(const Concept *impl, ::mlir::Operation *tablegen_opaque_val) {
79 return static_cast<const ConcreteOp *>(impl)->getVal(tablegen_opaque_val);
80}
81template<typename ConcreteOp>
82::mlir::SymbolRefAttr detail::GlobalRefOpInterfaceInterfaceTraits::FallbackModel<ConcreteOp>::getNameRef(const Concept *impl, ::mlir::Operation *tablegen_opaque_val) {
83 return static_cast<const ConcreteOp *>(impl)->getNameRef(tablegen_opaque_val);
84}
85} // namespace global
86} // 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:188
::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.