|
LLZK 2.1.1
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/IR/Builders.h>#include <mlir/IR/Dominance.h>#include <mlir/Interfaces/MemorySlotInterfaces.h>#include <mlir/Pass/Pass.h>#include <mlir/Transforms/Mem2Reg.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... | |
Namespaces | |
| namespace | llzk |
Functions | |
| template<typename AllocOpTy> | |
| std::unique_ptr< SpecializedSROA< AllocOpTy > > | llzk::createSpecializedSROAPass () |
| template<typename AllocOpTy> | |
| std::unique_ptr< SpecializedMem2Reg< AllocOpTy > > | llzk::createSpecializedMem2RegPass () |
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.