LLZK 0.1.0
Veridise's ZK Language IR
Loading...
Searching...
No Matches
LLZKValidationPasses.h.inc
Go to the documentation of this file.
1/* Autogenerated by mlir-tblgen; don't manually edit */
2
3#ifdef GEN_PASS_DECL
4// Generate declarations for all passes.
5#define GEN_PASS_DECL_FIELDWRITEVALIDATORPASS
6#undef GEN_PASS_DECL
7#endif // GEN_PASS_DECL
8
9//===----------------------------------------------------------------------===//
10// FieldWriteValidatorPass
11//===----------------------------------------------------------------------===//
12#ifdef GEN_PASS_DECL_FIELDWRITEVALIDATORPASS
13#undef GEN_PASS_DECL_FIELDWRITEVALIDATORPASS
14#endif // GEN_PASS_DECL_FIELDWRITEVALIDATORPASS
15#ifdef GEN_PASS_DEF_FIELDWRITEVALIDATORPASS
16namespace impl {
17
18template <typename DerivedT>
19class FieldWriteValidatorPassBase : public ::mlir::OperationPass<::llzk::component::StructDefOp> {
20public:
21 using Base = FieldWriteValidatorPassBase;
22
23 FieldWriteValidatorPassBase() : ::mlir::OperationPass<::llzk::component::StructDefOp>(::mlir::TypeID::get<DerivedT>()) {}
24 FieldWriteValidatorPassBase(const FieldWriteValidatorPassBase &other) : ::mlir::OperationPass<::llzk::component::StructDefOp>(other) {}
25
27 static constexpr ::llvm::StringLiteral getArgumentName() {
28 return ::llvm::StringLiteral("llzk-validate-field-writes");
29 }
30 ::llvm::StringRef getArgument() const override { return "llzk-validate-field-writes"; }
31
32 ::llvm::StringRef getDescription() const override { return "Detect multiple and missing writes to the same field of a component."; }
33
35 static constexpr ::llvm::StringLiteral getPassName() {
36 return ::llvm::StringLiteral("FieldWriteValidatorPass");
37 }
38 ::llvm::StringRef getName() const override { return "FieldWriteValidatorPass"; }
39
41 static bool classof(const ::mlir::Pass *pass) {
42 return pass->getTypeID() == ::mlir::TypeID::get<DerivedT>();
43 }
44
46 std::unique_ptr<::mlir::Pass> clonePass() const override {
47 return std::make_unique<DerivedT>(*static_cast<const DerivedT *>(this));
48 }
49
51 void getDependentDialects(::mlir::DialectRegistry &registry) const override {
52 registry.insert<llzk::LLZKDialect>();
53 registry.insert<llzk::boolean::BoolDialect>();
54 registry.insert<llzk::array::ArrayDialect>();
55 registry.insert<llzk::component::StructDialect>();
56 registry.insert<llzk::constrain::ConstrainDialect>();
57 registry.insert<llzk::felt::FeltDialect>();
58 registry.insert<llzk::global::GlobalDialect>();
59 registry.insert<llzk::include::IncludeDialect>();
60 registry.insert<llzk::function::FunctionDialect>();
61 registry.insert<llzk::string::StringDialect>();
62 registry.insert<llzk::polymorphic::PolymorphicDialect>();
63 registry.insert<llzk::undef::UndefDialect>();
64 registry.insert<mlir::arith::ArithDialect>();
65 registry.insert<mlir::scf::SCFDialect>();
66 }
67
71 MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(FieldWriteValidatorPassBase<DerivedT>)
72
73protected:
74private:
75};
76} // namespace impl
77#undef GEN_PASS_DEF_FIELDWRITEVALIDATORPASS
78#endif // GEN_PASS_DEF_FIELDWRITEVALIDATORPASS
79#ifdef GEN_PASS_REGISTRATION
80
81//===----------------------------------------------------------------------===//
82// FieldWriteValidatorPass Registration
83//===----------------------------------------------------------------------===//
84
86 ::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
88 });
89}
90
91// Old registration code, kept for temporary backwards compatibility.
93 ::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
95 });
96}
97
98//===----------------------------------------------------------------------===//
99// Validation Registration
100//===----------------------------------------------------------------------===//
101
102inline void registerValidationPasses() {
104}
105#undef GEN_PASS_REGISTRATION
106#endif // GEN_PASS_REGISTRATION
107// Deprecated. Please use the new per-pass macros.
108#ifdef GEN_PASS_CLASSES
109
110template <typename DerivedT>
111class FieldWriteValidatorPassBase : public ::mlir::OperationPass<::llzk::component::StructDefOp> {
112public:
113 using Base = FieldWriteValidatorPassBase;
114
115 FieldWriteValidatorPassBase() : ::mlir::OperationPass<::llzk::component::StructDefOp>(::mlir::TypeID::get<DerivedT>()) {}
116 FieldWriteValidatorPassBase(const FieldWriteValidatorPassBase &other) : ::mlir::OperationPass<::llzk::component::StructDefOp>(other) {}
117
119 static constexpr ::llvm::StringLiteral getArgumentName() {
120 return ::llvm::StringLiteral("llzk-validate-field-writes");
121 }
122 ::llvm::StringRef getArgument() const override { return "llzk-validate-field-writes"; }
123
124 ::llvm::StringRef getDescription() const override { return "Detect multiple and missing writes to the same field of a component."; }
125
127 static constexpr ::llvm::StringLiteral getPassName() {
128 return ::llvm::StringLiteral("FieldWriteValidatorPass");
129 }
130 ::llvm::StringRef getName() const override { return "FieldWriteValidatorPass"; }
131
133 static bool classof(const ::mlir::Pass *pass) {
134 return pass->getTypeID() == ::mlir::TypeID::get<DerivedT>();
135 }
136
138 std::unique_ptr<::mlir::Pass> clonePass() const override {
139 return std::make_unique<DerivedT>(*static_cast<const DerivedT *>(this));
140 }
141
143 void getDependentDialects(::mlir::DialectRegistry &registry) const override {
144 registry.insert<llzk::LLZKDialect>();
145 registry.insert<llzk::boolean::BoolDialect>();
146 registry.insert<llzk::array::ArrayDialect>();
147 registry.insert<llzk::component::StructDialect>();
148 registry.insert<llzk::constrain::ConstrainDialect>();
149 registry.insert<llzk::felt::FeltDialect>();
150 registry.insert<llzk::global::GlobalDialect>();
151 registry.insert<llzk::include::IncludeDialect>();
152 registry.insert<llzk::function::FunctionDialect>();
153 registry.insert<llzk::string::StringDialect>();
154 registry.insert<llzk::polymorphic::PolymorphicDialect>();
155 registry.insert<llzk::undef::UndefDialect>();
156 registry.insert<mlir::arith::ArithDialect>();
157 registry.insert<mlir::scf::SCFDialect>();
158 }
159
163 MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(FieldWriteValidatorPassBase<DerivedT>)
164
165protected:
166};
167#undef GEN_PASS_CLASSES
168#endif // GEN_PASS_CLASSES
std::unique_ptr< mlir::Pass > createFieldWriteValidatorPass()
void registerFieldWriteValidatorPassPass()
void registerValidationPasses()
void registerFieldWriteValidatorPass()