LLZK 2.1.1
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
SpecializedMemoryPasses.h File Reference

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>
Include dependency graph for SpecializedMemoryPasses.h:
This graph shows which files directly or indirectly include this file:

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 ()

Detailed Description

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.