|
LLZK 3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
|
Provides SpecializedSROA<AllocOpTy> and SpecializedMem2Reg<AllocOpTy>: pass templates that replicate the bodies of the MLIR sroa and mem2reg passes but restrict the allocation-op walk to a single concrete op type rather than collecting every op that implements the corresponding allocation interface. More...
#include <mlir/Analysis/DataLayoutAnalysis.h>#include <mlir/Dialect/SCF/IR/SCF.h>#include <mlir/IR/Builders.h>#include <mlir/IR/Dominance.h>#include <mlir/Interfaces/MemorySlotInterfaces.h>#include <mlir/Pass/Pass.h>#include <mlir/Pass/PassManager.h>#include <mlir/Transforms/Mem2Reg.h>#include <mlir/Transforms/Passes.h>#include <mlir/Transforms/SROA.h>#include <llvm/ADT/SmallVector.h>Go to the source code of this file.
Classes | |
| struct | llzk::SpecializedSROA< AllocOpTy > |
A variant of the MLIR sroa pass that only destructures memory slots belonging to allocators of type AllocOpTy (which must implement mlir::DestructurableAllocationOpInterface). More... | |
| struct | llzk::SpecializedMem2Reg< AllocOpTy > |
A variant of the MLIR mem2reg pass that only promotes memory slots belonging to allocators of type AllocOpTy (which must implement mlir::PromotableAllocationOpInterface). More... | |
| class | llzk::detail::RemoveDeadValuesWorkaroundPass |
| A workaround wrapper around MLIR's remove-dead-values pass that normalizes empty scf.if else regions before running the upstream implementation and cleans up the trivial regions afterwards. More... | |
Namespaces | |
| namespace | llzk |
| namespace | llzk::detail |
Functions | |
| template<typename AllocOpTy> | |
| std::unique_ptr< SpecializedSROA< AllocOpTy > > | llzk::createSpecializedSROAPass () |
| template<typename AllocOpTy> | |
| std::unique_ptr< SpecializedMem2Reg< AllocOpTy > > | llzk::createSpecializedMem2RegPass () |
| std::unique_ptr< mlir::Pass > | llzk::createRemoveDeadValuesWorkaroundPass () |
Provides SpecializedSROA<AllocOpTy> and SpecializedMem2Reg<AllocOpTy>: pass templates that replicate the bodies of the MLIR sroa and mem2reg passes but restrict the allocation-op walk to a single concrete op type rather than collecting every op that implements the corresponding allocation interface.
Definition in file SpecializedMemoryPasses.h.