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 felt {
12namespace detail {
14 struct Concept {
16 ::mlir::Value (*getLhs)(const Concept *impl, ::mlir::Operation *);
17 ::mlir::Value (*getRhs)(const Concept *impl, ::mlir::Operation *);
18 };
19 template<typename ConcreteOp>
20 class Model : public Concept {
21 public:
24
25 static inline ::mlir::Value getLhs(const Concept *impl, ::mlir::Operation *tablegen_opaque_val);
26 static inline ::mlir::Value getRhs(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 getLhs(const Concept *impl, ::mlir::Operation *tablegen_opaque_val);
35 static inline ::mlir::Value getRhs(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 FeltBinaryOpInterface : public ::mlir::OpInterface<FeltBinaryOpInterface, detail::FeltBinaryOpInterfaceInterfaceTraits> {
48public:
49 using ::mlir::OpInterface<FeltBinaryOpInterface, detail::FeltBinaryOpInterfaceInterfaceTraits>::OpInterface;
50 template <typename ConcreteOp>
51 struct Trait : public detail::FeltBinaryOpInterfaceTrait<ConcreteOp> {};
53 ::mlir::Value getLhs();
55 ::mlir::Value getRhs();
56};
57namespace detail {
58 template <typename ConcreteOp>
59 struct FeltBinaryOpInterfaceTrait : public ::mlir::OpInterface<FeltBinaryOpInterface, detail::FeltBinaryOpInterfaceInterfaceTraits>::Trait<ConcreteOp> {
60 };
61}// namespace detail
62} // namespace felt
63} // namespace llzk
64namespace llzk {
65namespace felt {
66template<typename ConcreteOp>
67::mlir::Value detail::FeltBinaryOpInterfaceInterfaceTraits::Model<ConcreteOp>::getLhs(const Concept *impl, ::mlir::Operation *tablegen_opaque_val) {
68 return (llvm::cast<ConcreteOp>(tablegen_opaque_val)).getLhs();
69}
70template<typename ConcreteOp>
71::mlir::Value detail::FeltBinaryOpInterfaceInterfaceTraits::Model<ConcreteOp>::getRhs(const Concept *impl, ::mlir::Operation *tablegen_opaque_val) {
72 return (llvm::cast<ConcreteOp>(tablegen_opaque_val)).getRhs();
73}
74template<typename ConcreteOp>
75::mlir::Value detail::FeltBinaryOpInterfaceInterfaceTraits::FallbackModel<ConcreteOp>::getLhs(const Concept *impl, ::mlir::Operation *tablegen_opaque_val) {
76 return static_cast<const ConcreteOp *>(impl)->getLhs(tablegen_opaque_val);
77}
78template<typename ConcreteOp>
79::mlir::Value detail::FeltBinaryOpInterfaceInterfaceTraits::FallbackModel<ConcreteOp>::getRhs(const Concept *impl, ::mlir::Operation *tablegen_opaque_val) {
80 return static_cast<const ConcreteOp *>(impl)->getRhs(tablegen_opaque_val);
81}
82} // namespace felt
83} // namespace llzk
::mlir::Value getRhs()
Gets the right operand.
::mlir::Value getLhs()
Gets the left operand.
static inline ::mlir::Value getLhs(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static inline ::mlir::Value getRhs(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static inline ::mlir::Value getRhs(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static inline ::mlir::Value getLhs(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
::mlir::Value(* getRhs)(const Concept *impl, ::mlir::Operation *)
::mlir::Value(* getLhs)(const Concept *impl, ::mlir::Operation *)
The methods defined by the interface.