LLZK
3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
Toggle main menu visibility
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
9
namespace
llzk::felt
{
10
12
class
FeltBinaryOpInterface
;
13
14
}
// namespace llzk::felt
15
namespace
llzk::felt
{
16
18
namespace
detail
{
19
struct
FeltBinaryOpInterfaceInterfaceTraits
{
20
struct
Concept
{
22
::mlir::Value (*
getLhs
)(
const
Concept
*
impl
, ::mlir::Operation *);
23
::mlir::Value (*
getRhs
)(
const
Concept
*
impl
, ::mlir::Operation *);
24
};
25
template
<
typename
ConcreteOp>
26
class
Model
:
public
Concept
{
27
public
:
28
using
Interface
=
::llzk::felt::FeltBinaryOpInterface
;
29
Model
() :
Concept
{
getLhs
,
getRhs
} {}
30
31
static
inline ::mlir::Value
getLhs
(
const
Concept
*
impl
, ::mlir::Operation *tablegen_opaque_val);
32
static
inline ::mlir::Value
getRhs
(
const
Concept
*
impl
, ::mlir::Operation *tablegen_opaque_val);
33
};
34
template
<
typename
ConcreteOp>
35
class
FallbackModel
:
public
Concept
{
36
public
:
37
using
Interface
=
::llzk::felt::FeltBinaryOpInterface
;
38
FallbackModel
() :
Concept
{
getLhs
,
getRhs
} {}
39
40
static
inline ::mlir::Value
getLhs
(
const
Concept
*
impl
, ::mlir::Operation *tablegen_opaque_val);
41
static
inline ::mlir::Value
getRhs
(
const
Concept
*
impl
, ::mlir::Operation *tablegen_opaque_val);
42
};
43
template
<
typename
ConcreteModel,
typename
ConcreteOp>
44
class
ExternalModel
:
public
FallbackModel
<ConcreteModel> {
45
public
:
46
using
ConcreteEntity
= ConcreteOp;
47
};
48
};
49
template
<
typename
ConcreteOp>
50
struct
FeltBinaryOpInterfaceTrait
;
51
52
}
// namespace detail
53
class
FeltBinaryOpInterface
:
public
::mlir::OpInterface<FeltBinaryOpInterface, detail::FeltBinaryOpInterfaceInterfaceTraits> {
54
public
:
55
using ::mlir::OpInterface<FeltBinaryOpInterface, detail::FeltBinaryOpInterfaceInterfaceTraits>::OpInterface;
56
template
<
typename
ConcreteOp>
57
struct
Trait
:
public
detail::FeltBinaryOpInterfaceTrait
<ConcreteOp> {};
58
60
::mlir::Value
getLhs
();
61
63
::mlir::Value
getRhs
();
64
};
65
66
}
// namespace llzk::felt
67
namespace
llzk::felt::detail
{
68
69
template
<
typename
ConcreteOp>
70
struct
FeltBinaryOpInterfaceTrait
:
public
::mlir::OpInterface<FeltBinaryOpInterface, detail::FeltBinaryOpInterfaceInterfaceTraits>::Trait<ConcreteOp> {
71
};
72
73
}
// namespace llzk::felt::detail
74
namespace
llzk::felt
{
75
76
template
<
typename
ConcreteOp>
77
::mlir::Value
detail::FeltBinaryOpInterfaceInterfaceTraits::Model<ConcreteOp>::getLhs
(
const
Concept
*
impl
, ::mlir::Operation *tablegen_opaque_val) {
78
return
(llvm::cast<ConcreteOp>(tablegen_opaque_val)).getLhs();
79
}
80
template
<
typename
ConcreteOp>
81
::mlir::Value
detail::FeltBinaryOpInterfaceInterfaceTraits::Model<ConcreteOp>::getRhs
(
const
Concept
*
impl
, ::mlir::Operation *tablegen_opaque_val) {
82
return
(llvm::cast<ConcreteOp>(tablegen_opaque_val)).getRhs();
83
}
84
template
<
typename
ConcreteOp>
85
::mlir::Value
detail::FeltBinaryOpInterfaceInterfaceTraits::FallbackModel<ConcreteOp>::getLhs
(
const
Concept
*
impl
, ::mlir::Operation *tablegen_opaque_val) {
86
return
static_cast<
const
ConcreteOp *
>
(
impl
)->
getLhs
(tablegen_opaque_val);
87
}
88
template
<
typename
ConcreteOp>
89
::mlir::Value
detail::FeltBinaryOpInterfaceInterfaceTraits::FallbackModel<ConcreteOp>::getRhs
(
const
Concept
*
impl
, ::mlir::Operation *tablegen_opaque_val) {
90
return
static_cast<
const
ConcreteOp *
>
(
impl
)->
getRhs
(tablegen_opaque_val);
91
}
92
93
}
// namespace llzk::felt
llzk::felt::FeltBinaryOpInterface
Definition
OpInterfaces.h.inc:53
llzk::felt::FeltBinaryOpInterface::getRhs
::mlir::Value getRhs()
Gets the right operand.
Definition
OpInterfaces.cpp.inc:16
llzk::felt::FeltBinaryOpInterface::getLhs
::mlir::Value getLhs()
Gets the left operand.
Definition
OpInterfaces.cpp.inc:11
llzk::felt::detail::FeltBinaryOpInterfaceInterfaceTraits::ExternalModel
Definition
OpInterfaces.h.inc:44
llzk::felt::detail::FeltBinaryOpInterfaceInterfaceTraits::ExternalModel::ConcreteEntity
ConcreteOp ConcreteEntity
Definition
OpInterfaces.h.inc:46
llzk::felt::detail::FeltBinaryOpInterfaceInterfaceTraits::FallbackModel::FallbackModel
FallbackModel()
Definition
OpInterfaces.h.inc:38
llzk::felt::detail::FeltBinaryOpInterfaceInterfaceTraits::FallbackModel::getLhs
static inline ::mlir::Value getLhs(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
Definition
OpInterfaces.h.inc:85
llzk::felt::detail::FeltBinaryOpInterfaceInterfaceTraits::FallbackModel::getRhs
static inline ::mlir::Value getRhs(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
Definition
OpInterfaces.h.inc:89
llzk::felt::detail::FeltBinaryOpInterfaceInterfaceTraits::FallbackModel::Interface
::llzk::felt::FeltBinaryOpInterface Interface
Definition
OpInterfaces.h.inc:37
llzk::felt::detail::FeltBinaryOpInterfaceInterfaceTraits::Model::Model
Model()
Definition
OpInterfaces.h.inc:29
llzk::felt::detail::FeltBinaryOpInterfaceInterfaceTraits::Model::getRhs
static inline ::mlir::Value getRhs(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
Definition
OpInterfaces.h.inc:81
llzk::felt::detail::FeltBinaryOpInterfaceInterfaceTraits::Model::Interface
::llzk::felt::FeltBinaryOpInterface Interface
Definition
OpInterfaces.h.inc:28
llzk::felt::detail::FeltBinaryOpInterfaceInterfaceTraits::Model::getLhs
static inline ::mlir::Value getLhs(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
Definition
OpInterfaces.h.inc:77
llzk::felt::detail
Common interface for binary arithmetic operations on felts.
Definition
OpInterfaces.h.inc:18
llzk::felt
Definition
Attrs.cpp:16
llzk::impl
Definition
CallGraphPasses.cpp:29
llzk::felt::FeltBinaryOpInterface::Trait
Definition
OpInterfaces.h.inc:57
llzk::felt::detail::FeltBinaryOpInterfaceInterfaceTraits::Concept
Definition
OpInterfaces.h.inc:20
llzk::felt::detail::FeltBinaryOpInterfaceInterfaceTraits::Concept::getRhs
::mlir::Value(* getRhs)(const Concept *impl, ::mlir::Operation *)
Definition
OpInterfaces.h.inc:23
llzk::felt::detail::FeltBinaryOpInterfaceInterfaceTraits::Concept::getLhs
::mlir::Value(* getLhs)(const Concept *impl, ::mlir::Operation *)
The methods defined by the interface.
Definition
OpInterfaces.h.inc:22
llzk::felt::detail::FeltBinaryOpInterfaceInterfaceTraits
Definition
OpInterfaces.h.inc:19
llzk::felt::detail::FeltBinaryOpInterfaceTrait
Definition
OpInterfaces.h.inc:70
build
include
llzk
Dialect
Felt
IR
OpInterfaces.h.inc
Generated by
1.17.0
Copyright 2025 Veridise Inc. under the Apache License v2.0. Copyright 2026 Project LLZK under the Apache License v2.0.