LLZK 0.1.0
Veridise's ZK Language IR
Loading...
Searching...
No Matches
TransformationPasses.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_EMPTYPARAMLISTREMOVALPASS
6#define GEN_PASS_DECL_FLATTENINGPASS
7#undef GEN_PASS_DECL
8#endif // GEN_PASS_DECL
9
10//===----------------------------------------------------------------------===//
11// EmptyParamListRemovalPass
12//===----------------------------------------------------------------------===//
13#ifdef GEN_PASS_DECL_EMPTYPARAMLISTREMOVALPASS
14#undef GEN_PASS_DECL_EMPTYPARAMLISTREMOVALPASS
15#endif // GEN_PASS_DECL_EMPTYPARAMLISTREMOVALPASS
16#ifdef GEN_PASS_DEF_EMPTYPARAMLISTREMOVALPASS
17namespace impl {
18
19template <typename DerivedT>
20class EmptyParamListRemovalPassBase : public ::mlir::OperationPass<::mlir::ModuleOp> {
21public:
22 using Base = EmptyParamListRemovalPassBase;
23
24 EmptyParamListRemovalPassBase() : ::mlir::OperationPass<::mlir::ModuleOp>(::mlir::TypeID::get<DerivedT>()) {}
25 EmptyParamListRemovalPassBase(const EmptyParamListRemovalPassBase &other) : ::mlir::OperationPass<::mlir::ModuleOp>(other) {}
26
28 static constexpr ::llvm::StringLiteral getArgumentName() {
29 return ::llvm::StringLiteral("llzk-drop-empty-params");
30 }
31 ::llvm::StringRef getArgument() const override { return "llzk-drop-empty-params"; }
32
33 ::llvm::StringRef getDescription() const override { return "Remove empty struct parameter lists"; }
34
36 static constexpr ::llvm::StringLiteral getPassName() {
37 return ::llvm::StringLiteral("EmptyParamListRemovalPass");
38 }
39 ::llvm::StringRef getName() const override { return "EmptyParamListRemovalPass"; }
40
42 static bool classof(const ::mlir::Pass *pass) {
43 return pass->getTypeID() == ::mlir::TypeID::get<DerivedT>();
44 }
45
47 std::unique_ptr<::mlir::Pass> clonePass() const override {
48 return std::make_unique<DerivedT>(*static_cast<const DerivedT *>(this));
49 }
50
52 void getDependentDialects(::mlir::DialectRegistry &registry) const override {
53 registry.insert<llzk::LLZKDialect>();
54 registry.insert<llzk::boolean::BoolDialect>();
55 registry.insert<llzk::array::ArrayDialect>();
56 registry.insert<llzk::component::StructDialect>();
57 registry.insert<llzk::constrain::ConstrainDialect>();
58 registry.insert<llzk::felt::FeltDialect>();
59 registry.insert<llzk::global::GlobalDialect>();
60 registry.insert<llzk::include::IncludeDialect>();
61 registry.insert<llzk::function::FunctionDialect>();
62 registry.insert<llzk::string::StringDialect>();
63 registry.insert<llzk::polymorphic::PolymorphicDialect>();
64 registry.insert<llzk::undef::UndefDialect>();
65 registry.insert<mlir::arith::ArithDialect>();
66 registry.insert<mlir::scf::SCFDialect>();
67 }
68
72 MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(EmptyParamListRemovalPassBase<DerivedT>)
73
74protected:
75private:
76};
77} // namespace impl
78#undef GEN_PASS_DEF_EMPTYPARAMLISTREMOVALPASS
79#endif // GEN_PASS_DEF_EMPTYPARAMLISTREMOVALPASS
80
81//===----------------------------------------------------------------------===//
82// FlatteningPass
83//===----------------------------------------------------------------------===//
84#ifdef GEN_PASS_DECL_FLATTENINGPASS
85#undef GEN_PASS_DECL_FLATTENINGPASS
86#endif // GEN_PASS_DECL_FLATTENINGPASS
87#ifdef GEN_PASS_DEF_FLATTENINGPASS
88namespace impl {
89
90template <typename DerivedT>
91class FlatteningPassBase : public ::mlir::OperationPass<::mlir::ModuleOp> {
92public:
93 using Base = FlatteningPassBase;
94
95 FlatteningPassBase() : ::mlir::OperationPass<::mlir::ModuleOp>(::mlir::TypeID::get<DerivedT>()) {}
96 FlatteningPassBase(const FlatteningPassBase &other) : ::mlir::OperationPass<::mlir::ModuleOp>(other) {}
97
99 static constexpr ::llvm::StringLiteral getArgumentName() {
100 return ::llvm::StringLiteral("llzk-flatten");
101 }
102 ::llvm::StringRef getArgument() const override { return "llzk-flatten"; }
103
104 ::llvm::StringRef getDescription() const override { return "Flatten structs and unroll loops"; }
105
107 static constexpr ::llvm::StringLiteral getPassName() {
108 return ::llvm::StringLiteral("FlatteningPass");
109 }
110 ::llvm::StringRef getName() const override { return "FlatteningPass"; }
111
113 static bool classof(const ::mlir::Pass *pass) {
114 return pass->getTypeID() == ::mlir::TypeID::get<DerivedT>();
115 }
116
118 std::unique_ptr<::mlir::Pass> clonePass() const override {
119 return std::make_unique<DerivedT>(*static_cast<const DerivedT *>(this));
120 }
121
123 void getDependentDialects(::mlir::DialectRegistry &registry) const override {
124 registry.insert<llzk::LLZKDialect>();
125 registry.insert<llzk::boolean::BoolDialect>();
126 registry.insert<llzk::array::ArrayDialect>();
127 registry.insert<llzk::component::StructDialect>();
128 registry.insert<llzk::constrain::ConstrainDialect>();
129 registry.insert<llzk::felt::FeltDialect>();
130 registry.insert<llzk::global::GlobalDialect>();
131 registry.insert<llzk::include::IncludeDialect>();
132 registry.insert<llzk::function::FunctionDialect>();
133 registry.insert<llzk::string::StringDialect>();
134 registry.insert<llzk::polymorphic::PolymorphicDialect>();
135 registry.insert<llzk::undef::UndefDialect>();
136 registry.insert<mlir::arith::ArithDialect>();
137 registry.insert<mlir::scf::SCFDialect>();
138 }
139
143 MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(FlatteningPassBase<DerivedT>)
144
145protected:
146private:
147};
148} // namespace impl
149#undef GEN_PASS_DEF_FLATTENINGPASS
150#endif // GEN_PASS_DEF_FLATTENINGPASS
151#ifdef GEN_PASS_REGISTRATION
152
153//===----------------------------------------------------------------------===//
154// EmptyParamListRemovalPass Registration
155//===----------------------------------------------------------------------===//
156
158 ::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
160 });
161}
162
163// Old registration code, kept for temporary backwards compatibility.
165 ::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
167 });
168}
169
170//===----------------------------------------------------------------------===//
171// FlatteningPass Registration
172//===----------------------------------------------------------------------===//
173
174inline void registerFlatteningPass() {
175 ::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
177 });
178}
179
180// Old registration code, kept for temporary backwards compatibility.
181inline void registerFlatteningPassPass() {
182 ::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
184 });
185}
186
187//===----------------------------------------------------------------------===//
188// Transformation Registration
189//===----------------------------------------------------------------------===//
190
191inline void registerTransformationPasses() {
194}
195#undef GEN_PASS_REGISTRATION
196#endif // GEN_PASS_REGISTRATION
197// Deprecated. Please use the new per-pass macros.
198#ifdef GEN_PASS_CLASSES
199
200template <typename DerivedT>
201class EmptyParamListRemovalPassBase : public ::mlir::OperationPass<::mlir::ModuleOp> {
202public:
203 using Base = EmptyParamListRemovalPassBase;
204
205 EmptyParamListRemovalPassBase() : ::mlir::OperationPass<::mlir::ModuleOp>(::mlir::TypeID::get<DerivedT>()) {}
206 EmptyParamListRemovalPassBase(const EmptyParamListRemovalPassBase &other) : ::mlir::OperationPass<::mlir::ModuleOp>(other) {}
207
209 static constexpr ::llvm::StringLiteral getArgumentName() {
210 return ::llvm::StringLiteral("llzk-drop-empty-params");
211 }
212 ::llvm::StringRef getArgument() const override { return "llzk-drop-empty-params"; }
213
214 ::llvm::StringRef getDescription() const override { return "Remove empty struct parameter lists"; }
215
217 static constexpr ::llvm::StringLiteral getPassName() {
218 return ::llvm::StringLiteral("EmptyParamListRemovalPass");
219 }
220 ::llvm::StringRef getName() const override { return "EmptyParamListRemovalPass"; }
221
223 static bool classof(const ::mlir::Pass *pass) {
224 return pass->getTypeID() == ::mlir::TypeID::get<DerivedT>();
225 }
226
228 std::unique_ptr<::mlir::Pass> clonePass() const override {
229 return std::make_unique<DerivedT>(*static_cast<const DerivedT *>(this));
230 }
231
233 void getDependentDialects(::mlir::DialectRegistry &registry) const override {
234 registry.insert<llzk::LLZKDialect>();
235 registry.insert<llzk::boolean::BoolDialect>();
236 registry.insert<llzk::array::ArrayDialect>();
237 registry.insert<llzk::component::StructDialect>();
238 registry.insert<llzk::constrain::ConstrainDialect>();
239 registry.insert<llzk::felt::FeltDialect>();
240 registry.insert<llzk::global::GlobalDialect>();
241 registry.insert<llzk::include::IncludeDialect>();
242 registry.insert<llzk::function::FunctionDialect>();
243 registry.insert<llzk::string::StringDialect>();
244 registry.insert<llzk::polymorphic::PolymorphicDialect>();
245 registry.insert<llzk::undef::UndefDialect>();
246 registry.insert<mlir::arith::ArithDialect>();
247 registry.insert<mlir::scf::SCFDialect>();
248 }
249
253 MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(EmptyParamListRemovalPassBase<DerivedT>)
254
255protected:
256};
257
258template <typename DerivedT>
259class FlatteningPassBase : public ::mlir::OperationPass<::mlir::ModuleOp> {
260public:
261 using Base = FlatteningPassBase;
262
263 FlatteningPassBase() : ::mlir::OperationPass<::mlir::ModuleOp>(::mlir::TypeID::get<DerivedT>()) {}
264 FlatteningPassBase(const FlatteningPassBase &other) : ::mlir::OperationPass<::mlir::ModuleOp>(other) {}
265
267 static constexpr ::llvm::StringLiteral getArgumentName() {
268 return ::llvm::StringLiteral("llzk-flatten");
269 }
270 ::llvm::StringRef getArgument() const override { return "llzk-flatten"; }
271
272 ::llvm::StringRef getDescription() const override { return "Flatten structs and unroll loops"; }
273
275 static constexpr ::llvm::StringLiteral getPassName() {
276 return ::llvm::StringLiteral("FlatteningPass");
277 }
278 ::llvm::StringRef getName() const override { return "FlatteningPass"; }
279
281 static bool classof(const ::mlir::Pass *pass) {
282 return pass->getTypeID() == ::mlir::TypeID::get<DerivedT>();
283 }
284
286 std::unique_ptr<::mlir::Pass> clonePass() const override {
287 return std::make_unique<DerivedT>(*static_cast<const DerivedT *>(this));
288 }
289
291 void getDependentDialects(::mlir::DialectRegistry &registry) const override {
292 registry.insert<llzk::LLZKDialect>();
293 registry.insert<llzk::boolean::BoolDialect>();
294 registry.insert<llzk::array::ArrayDialect>();
295 registry.insert<llzk::component::StructDialect>();
296 registry.insert<llzk::constrain::ConstrainDialect>();
297 registry.insert<llzk::felt::FeltDialect>();
298 registry.insert<llzk::global::GlobalDialect>();
299 registry.insert<llzk::include::IncludeDialect>();
300 registry.insert<llzk::function::FunctionDialect>();
301 registry.insert<llzk::string::StringDialect>();
302 registry.insert<llzk::polymorphic::PolymorphicDialect>();
303 registry.insert<llzk::undef::UndefDialect>();
304 registry.insert<mlir::arith::ArithDialect>();
305 registry.insert<mlir::scf::SCFDialect>();
306 }
307
311 MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(FlatteningPassBase<DerivedT>)
312
313protected:
314};
315#undef GEN_PASS_CLASSES
316#endif // GEN_PASS_CLASSES
void registerTransformationPasses()
void registerEmptyParamListRemovalPassPass()
std::unique_ptr< mlir::Pass > createFlatteningPass()
std::unique_ptr< mlir::Pass > createEmptyParamListRemoval()