LLZK 2.1.1
An open-source IR for Zero Knowledge (ZK) circuits
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 verif {
12namespace detail {
14 struct Concept {
16 ::mlir::TypedValue<::mlir::IntegerType> (*getCondition)(const Concept *impl, ::mlir::Operation *);
18 const ::mlir::MemoryEffectOpInterface::Concept *implMemoryEffectOpInterface = nullptr;
19
20 void initializeInterfaceConcept(::mlir::detail::InterfaceMap &interfaceMap) {
21 implMemoryEffectOpInterface = interfaceMap.lookup<::mlir::MemoryEffectOpInterface>();
22 assert(implMemoryEffectOpInterface && "`::llzk::verif::ConditionOpInterface` expected its base interface `::mlir::MemoryEffectOpInterface` to be registered");
23 }
24 };
25 template<typename ConcreteOp>
26 class Model : public Concept {
27 public:
30
31 static inline ::mlir::TypedValue<::mlir::IntegerType> getCondition(const Concept *impl, ::mlir::Operation *tablegen_opaque_val);
32 };
33 template<typename ConcreteOp>
34 class FallbackModel : public Concept {
35 public:
38
39 static inline ::mlir::TypedValue<::mlir::IntegerType> getCondition(const Concept *impl, ::mlir::Operation *tablegen_opaque_val);
40 };
41 template<typename ConcreteModel, typename ConcreteOp>
42 class ExternalModel : public FallbackModel<ConcreteModel> {
43 public:
44 using ConcreteEntity = ConcreteOp;
45 };
46};
47template <typename ConcreteOp>
49
50} // namespace detail
51class ConditionOpInterface : public ::mlir::OpInterface<ConditionOpInterface, detail::ConditionOpInterfaceInterfaceTraits> {
52public:
53 using ::mlir::OpInterface<ConditionOpInterface, detail::ConditionOpInterfaceInterfaceTraits>::OpInterface;
54 template <typename ConcreteOp>
55 struct Trait : public detail::ConditionOpInterfaceTrait<ConcreteOp> {};
57 ::mlir::TypedValue<::mlir::IntegerType> getCondition();
58 //===----------------------------------------------------------------===//
59 // Inherited from ::mlir::MemoryEffectOpInterface
60 //===----------------------------------------------------------------===//
61
62 operator ::mlir::MemoryEffectOpInterface () const {
63 if (!*this) return nullptr;
64 return ::mlir::MemoryEffectOpInterface(*this, getImpl()->implMemoryEffectOpInterface);
65 }
66
68 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> & effects);
69};
70namespace detail {
71 template <typename ConcreteOp>
72 struct ConditionOpInterfaceTrait : public ::mlir::OpInterface<ConditionOpInterface, detail::ConditionOpInterfaceInterfaceTraits>::Trait<ConcreteOp> {
73 };
74}// namespace detail
75} // namespace verif
76} // namespace llzk
77namespace llzk {
78namespace verif {
79class PreconditionOpInterface;
80namespace detail {
82 struct Concept {
85 const ::mlir::MemoryEffectOpInterface::Concept *implMemoryEffectOpInterface = nullptr;
86 const ::llzk::verif::ConditionOpInterface::Concept *implConditionOpInterface = nullptr;
87
88 void initializeInterfaceConcept(::mlir::detail::InterfaceMap &interfaceMap) {
89 implMemoryEffectOpInterface = interfaceMap.lookup<::mlir::MemoryEffectOpInterface>();
90 assert(implMemoryEffectOpInterface && "`::llzk::verif::PreconditionOpInterface` expected its base interface `::mlir::MemoryEffectOpInterface` to be registered");
92 assert(implConditionOpInterface && "`::llzk::verif::PreconditionOpInterface` expected its base interface `::llzk::verif::ConditionOpInterface` to be registered");
93 }
94 };
95 template<typename ConcreteOp>
96 class Model : public Concept {
97 public:
99 Model() : Concept{} {}
100
101 };
102 template<typename ConcreteOp>
109 template<typename ConcreteModel, typename ConcreteOp>
110 class ExternalModel : public FallbackModel<ConcreteModel> {
111 public:
112 using ConcreteEntity = ConcreteOp;
113 };
114};
115template <typename ConcreteOp>
117
118} // namespace detail
119class PreconditionOpInterface : public ::mlir::OpInterface<PreconditionOpInterface, detail::PreconditionOpInterfaceInterfaceTraits> {
120public:
121 using ::mlir::OpInterface<PreconditionOpInterface, detail::PreconditionOpInterfaceInterfaceTraits>::OpInterface;
122 template <typename ConcreteOp>
123 struct Trait : public detail::PreconditionOpInterfaceTrait<ConcreteOp> {};
124 //===----------------------------------------------------------------===//
125 // Inherited from ::mlir::MemoryEffectOpInterface
126 //===----------------------------------------------------------------===//
127
128 operator ::mlir::MemoryEffectOpInterface () const {
129 if (!*this) return nullptr;
130 return ::mlir::MemoryEffectOpInterface(*this, getImpl()->implMemoryEffectOpInterface);
131 }
132
134 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> & effects);
135 //===----------------------------------------------------------------===//
136 // Inherited from ::llzk::verif::ConditionOpInterface
137 //===----------------------------------------------------------------===//
138
139 operator ::llzk::verif::ConditionOpInterface () const {
140 if (!*this) return nullptr;
141 return ::llzk::verif::ConditionOpInterface(*this, getImpl()->implConditionOpInterface);
142 }
143
145 ::mlir::TypedValue<::mlir::IntegerType> getCondition();
146};
147namespace detail {
148 template <typename ConcreteOp>
149 struct PreconditionOpInterfaceTrait : public ::mlir::OpInterface<PreconditionOpInterface, detail::PreconditionOpInterfaceInterfaceTraits>::Trait<ConcreteOp> {
150 };
151}// namespace detail
152} // namespace verif
153} // namespace llzk
154namespace llzk {
155namespace verif {
156class PostconditionOpInterface;
157namespace detail {
159 struct Concept {
162 const ::mlir::MemoryEffectOpInterface::Concept *implMemoryEffectOpInterface = nullptr;
163 const ::llzk::verif::ConditionOpInterface::Concept *implConditionOpInterface = nullptr;
164
165 void initializeInterfaceConcept(::mlir::detail::InterfaceMap &interfaceMap) {
166 implMemoryEffectOpInterface = interfaceMap.lookup<::mlir::MemoryEffectOpInterface>();
167 assert(implMemoryEffectOpInterface && "`::llzk::verif::PostconditionOpInterface` expected its base interface `::mlir::MemoryEffectOpInterface` to be registered");
169 assert(implConditionOpInterface && "`::llzk::verif::PostconditionOpInterface` expected its base interface `::llzk::verif::ConditionOpInterface` to be registered");
170 }
171 };
172 template<typename ConcreteOp>
173 class Model : public Concept {
174 public:
176 Model() : Concept{} {}
177
178 };
179 template<typename ConcreteOp>
186 template<typename ConcreteModel, typename ConcreteOp>
187 class ExternalModel : public FallbackModel<ConcreteModel> {
188 public:
189 using ConcreteEntity = ConcreteOp;
190 };
191};
192template <typename ConcreteOp>
194
195} // namespace detail
196class PostconditionOpInterface : public ::mlir::OpInterface<PostconditionOpInterface, detail::PostconditionOpInterfaceInterfaceTraits> {
197public:
198 using ::mlir::OpInterface<PostconditionOpInterface, detail::PostconditionOpInterfaceInterfaceTraits>::OpInterface;
199 template <typename ConcreteOp>
200 struct Trait : public detail::PostconditionOpInterfaceTrait<ConcreteOp> {};
201 //===----------------------------------------------------------------===//
202 // Inherited from ::mlir::MemoryEffectOpInterface
203 //===----------------------------------------------------------------===//
204
205 operator ::mlir::MemoryEffectOpInterface () const {
206 if (!*this) return nullptr;
207 return ::mlir::MemoryEffectOpInterface(*this, getImpl()->implMemoryEffectOpInterface);
208 }
209
211 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> & effects);
212 //===----------------------------------------------------------------===//
213 // Inherited from ::llzk::verif::ConditionOpInterface
214 //===----------------------------------------------------------------===//
215
216 operator ::llzk::verif::ConditionOpInterface () const {
217 if (!*this) return nullptr;
218 return ::llzk::verif::ConditionOpInterface(*this, getImpl()->implConditionOpInterface);
219 }
220
222 ::mlir::TypedValue<::mlir::IntegerType> getCondition();
223};
224namespace detail {
225 template <typename ConcreteOp>
226 struct PostconditionOpInterfaceTrait : public ::mlir::OpInterface<PostconditionOpInterface, detail::PostconditionOpInterfaceInterfaceTraits>::Trait<ConcreteOp> {
227 };
228}// namespace detail
229} // namespace verif
230} // namespace llzk
231namespace llzk {
232namespace verif {
233template<typename ConcreteOp>
234::mlir::TypedValue<::mlir::IntegerType> detail::ConditionOpInterfaceInterfaceTraits::Model<ConcreteOp>::getCondition(const Concept *impl, ::mlir::Operation *tablegen_opaque_val) {
235 return (llvm::cast<ConcreteOp>(tablegen_opaque_val)).getCondition();
236}
237template<typename ConcreteOp>
238::mlir::TypedValue<::mlir::IntegerType> detail::ConditionOpInterfaceInterfaceTraits::FallbackModel<ConcreteOp>::getCondition(const Concept *impl, ::mlir::Operation *tablegen_opaque_val) {
239 return static_cast<const ConcreteOp *>(impl)->getCondition(tablegen_opaque_val);
240}
241} // namespace verif
242} // namespace llzk
243namespace llzk {
244namespace verif {
245} // namespace verif
246} // namespace llzk
247namespace llzk {
248namespace verif {
249} // namespace verif
250} // namespace llzk
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Collects all of the operation's effects into effects.
::mlir::TypedValue<::mlir::IntegerType > getCondition()
Gets the SSA Value for the condition operand.
::mlir::TypedValue<::mlir::IntegerType > getCondition()
Gets the SSA Value for the condition operand.
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Collects all of the operation's effects into effects.
::mlir::TypedValue<::mlir::IntegerType > getCondition()
Gets the SSA Value for the condition operand.
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Collects all of the operation's effects into effects.
static inline ::mlir::TypedValue<::mlir::IntegerType > getCondition(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static inline ::mlir::TypedValue<::mlir::IntegerType > getCondition(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
const ::mlir::MemoryEffectOpInterface::Concept * implMemoryEffectOpInterface
The base classes of this interface.
void initializeInterfaceConcept(::mlir::detail::InterfaceMap &interfaceMap)
::mlir::TypedValue<::mlir::IntegerType >(* getCondition)(const Concept *impl, ::mlir::Operation *)
The methods defined by the interface.
const ::mlir::MemoryEffectOpInterface::Concept * implMemoryEffectOpInterface
The methods defined by the interface.
const ::llzk::verif::ConditionOpInterface::Concept * implConditionOpInterface
void initializeInterfaceConcept(::mlir::detail::InterfaceMap &interfaceMap)
const ::mlir::MemoryEffectOpInterface::Concept * implMemoryEffectOpInterface
The methods defined by the interface.
void initializeInterfaceConcept(::mlir::detail::InterfaceMap &interfaceMap)
const ::llzk::verif::ConditionOpInterface::Concept * implConditionOpInterface