18#include <mlir/Pass/PassManager.h>
19#include <mlir/Pass/PassRegistry.h>
20#include <mlir/Transforms/Passes.h>
28 *
this,
"max-degree", llvm::cl::desc(
"Maximum polynomial degree (must be ≥ 2)"),
40 PassPipelineRegistration<>(
41 "llzk-remove-unnecessary-ops",
42 "Remove unnecessary operations, such as redundant reads or repeated constraints",
43 [](OpPassManager &pm) {
49 PassPipelineRegistration<>(
50 "llzk-remove-unnecessary-ops-and-defs",
51 "Remove unnecessary operations, field definitions, and struct definitions",
55 PassPipelineRegistration<FullPolyLoweringOptions>(
56 "llzk-full-poly-lowering",
57 "Lower all polynomial constraints to a given max degree, then remove unnecessary operations "
68 PassPipelineRegistration<>(
69 "llzk-full-r1cs-lowering",
"Lower all polynomial constraints to r1cs",
70 [](OpPassManager &pm) {
81 pm.addPass(mlir::createCSEPass());
std::unique_ptr< mlir::Pass > createRedundantOperationEliminationPass()
void registerTransformationPassPipelines()
std::unique_ptr< mlir::Pass > createRedundantReadAndWriteEliminationPass()
std::unique_ptr< mlir::Pass > createUnusedDeclarationEliminationPass()
std::unique_ptr< mlir::Pass > createPolyLoweringPass()
void addRemoveUnnecessaryOpsAndDefsPipeline(OpPassManager &pm)
std::unique_ptr< mlir::Pass > createR1CSLoweringPass()
Option< unsigned > maxDegree