LLZK 2.1.1
An open-source IR for Zero Knowledge (ZK) circuits
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_PODTOSCALARPASS
6#undef GEN_PASS_DECL
7#endif // GEN_PASS_DECL
8
9//===----------------------------------------------------------------------===//
10// PodToScalarPass
11//===----------------------------------------------------------------------===//
12#ifdef GEN_PASS_DECL_PODTOSCALARPASS
13std::unique_ptr<::mlir::Pass> createPodToScalarPass();
14#undef GEN_PASS_DECL_PODTOSCALARPASS
15#endif // GEN_PASS_DECL_PODTOSCALARPASS
16#ifdef GEN_PASS_DEF_PODTOSCALARPASS
17
18namespace impl {
19 std::unique_ptr<::mlir::Pass> createPodToScalarPass();
20} // namespace impl
21namespace impl {
22
23template <typename DerivedT>
24class PodToScalarPassBase : public ::mlir::OperationPass<::mlir::ModuleOp> {
25public:
26 using Base = PodToScalarPassBase;
27
28 PodToScalarPassBase() : ::mlir::OperationPass<::mlir::ModuleOp>(::mlir::TypeID::get<DerivedT>()) {}
29 PodToScalarPassBase(const PodToScalarPassBase &other) : ::mlir::OperationPass<::mlir::ModuleOp>(other) {}
30 PodToScalarPassBase& operator=(const PodToScalarPassBase &) = delete;
31 PodToScalarPassBase(PodToScalarPassBase &&) = delete;
32 PodToScalarPassBase& operator=(PodToScalarPassBase &&) = delete;
33 ~PodToScalarPassBase() = default;
34
36 static constexpr ::llvm::StringLiteral getArgumentName() {
37 return ::llvm::StringLiteral("llzk-pod-to-scalar");
38 }
39 ::llvm::StringRef getArgument() const override { return "llzk-pod-to-scalar"; }
40
41 ::llvm::StringRef getDescription() const override { return "Replace PODs with scalar values"; }
42
44 static constexpr ::llvm::StringLiteral getPassName() {
45 return ::llvm::StringLiteral("PodToScalarPass");
46 }
47 ::llvm::StringRef getName() const override { return "PodToScalarPass"; }
48
50 static bool classof(const ::mlir::Pass *pass) {
51 return pass->getTypeID() == ::mlir::TypeID::get<DerivedT>();
52 }
53
55 std::unique_ptr<::mlir::Pass> clonePass() const override {
56 return std::make_unique<DerivedT>(*static_cast<const DerivedT *>(this));
57 }
58
60 void getDependentDialects(::mlir::DialectRegistry &registry) const override {
61 registry.insert<llzk::LLZKDialect>();
62 registry.insert<llzk::boolean::BoolDialect>();
63 registry.insert<llzk::array::ArrayDialect>();
64 registry.insert<llzk::component::StructDialect>();
65 registry.insert<llzk::constrain::ConstrainDialect>();
66 registry.insert<llzk::felt::FeltDialect>();
67 registry.insert<llzk::global::GlobalDialect>();
68 registry.insert<llzk::include::IncludeDialect>();
69 registry.insert<llzk::function::FunctionDialect>();
70 registry.insert<llzk::string::StringDialect>();
71 registry.insert<llzk::polymorphic::PolymorphicDialect>();
72 registry.insert<mlir::arith::ArithDialect>();
73 registry.insert<mlir::scf::SCFDialect>();
74 }
75
79 MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(PodToScalarPassBase<DerivedT>)
80
81protected:
82private:
83
84 friend std::unique_ptr<::mlir::Pass> createPodToScalarPass() {
85 return std::make_unique<DerivedT>();
86 }
87};
88} // namespace impl
89
90std::unique_ptr<::mlir::Pass> createPodToScalarPass() {
91 return impl::createPodToScalarPass();
92}
93#undef GEN_PASS_DEF_PODTOSCALARPASS
94#endif // GEN_PASS_DEF_PODTOSCALARPASS
95#ifdef GEN_PASS_REGISTRATION
96
97//===----------------------------------------------------------------------===//
98// PodToScalarPass Registration
99//===----------------------------------------------------------------------===//
100
101inline void registerPodToScalarPass() {
102 ::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
103 return createPodToScalarPass();
104 });
105}
106
107// Old registration code, kept for temporary backwards compatibility.
108inline void registerPodToScalarPassPass() {
109 ::mlir::registerPass([]() -> std::unique_ptr<::mlir::Pass> {
110 return createPodToScalarPass();
111 });
112}
113
114//===----------------------------------------------------------------------===//
115// Transformation Registration
116//===----------------------------------------------------------------------===//
117
118inline void registerTransformationPasses() {
120}
121#undef GEN_PASS_REGISTRATION
122#endif // GEN_PASS_REGISTRATION
123// Deprecated. Please use the new per-pass macros.
124#ifdef GEN_PASS_CLASSES
125
126template <typename DerivedT>
127class PodToScalarPassBase : public ::mlir::OperationPass<::mlir::ModuleOp> {
128public:
129 using Base = PodToScalarPassBase;
130
131 PodToScalarPassBase() : ::mlir::OperationPass<::mlir::ModuleOp>(::mlir::TypeID::get<DerivedT>()) {}
132 PodToScalarPassBase(const PodToScalarPassBase &other) : ::mlir::OperationPass<::mlir::ModuleOp>(other) {}
133 PodToScalarPassBase& operator=(const PodToScalarPassBase &) = delete;
134 PodToScalarPassBase(PodToScalarPassBase &&) = delete;
135 PodToScalarPassBase& operator=(PodToScalarPassBase &&) = delete;
136 ~PodToScalarPassBase() = default;
137
139 static constexpr ::llvm::StringLiteral getArgumentName() {
140 return ::llvm::StringLiteral("llzk-pod-to-scalar");
141 }
142 ::llvm::StringRef getArgument() const override { return "llzk-pod-to-scalar"; }
143
144 ::llvm::StringRef getDescription() const override { return "Replace PODs with scalar values"; }
145
147 static constexpr ::llvm::StringLiteral getPassName() {
148 return ::llvm::StringLiteral("PodToScalarPass");
149 }
150 ::llvm::StringRef getName() const override { return "PodToScalarPass"; }
151
153 static bool classof(const ::mlir::Pass *pass) {
154 return pass->getTypeID() == ::mlir::TypeID::get<DerivedT>();
155 }
156
158 std::unique_ptr<::mlir::Pass> clonePass() const override {
159 return std::make_unique<DerivedT>(*static_cast<const DerivedT *>(this));
160 }
161
163 void getDependentDialects(::mlir::DialectRegistry &registry) const override {
164 registry.insert<llzk::LLZKDialect>();
165 registry.insert<llzk::boolean::BoolDialect>();
166 registry.insert<llzk::array::ArrayDialect>();
167 registry.insert<llzk::component::StructDialect>();
168 registry.insert<llzk::constrain::ConstrainDialect>();
169 registry.insert<llzk::felt::FeltDialect>();
170 registry.insert<llzk::global::GlobalDialect>();
171 registry.insert<llzk::include::IncludeDialect>();
172 registry.insert<llzk::function::FunctionDialect>();
173 registry.insert<llzk::string::StringDialect>();
174 registry.insert<llzk::polymorphic::PolymorphicDialect>();
175 registry.insert<mlir::arith::ArithDialect>();
176 registry.insert<mlir::scf::SCFDialect>();
177 }
178
182 MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(PodToScalarPassBase<DerivedT>)
183
184protected:
185};
186#undef GEN_PASS_CLASSES
187#endif // GEN_PASS_CLASSES
void registerTransformationPasses()
std::unique_ptr<::mlir::Pass > createPodToScalarPass()
void registerPodToScalarPass()
void registerPodToScalarPassPass()