LLZK 0.1.0
Veridise's ZK Language IR
Loading...
Searching...
No Matches
SharedImpl.h File Reference

Common private implementation for poly dialect passes. More...

#include "llzk/Dialect/Array/IR/Ops.h"
#include "llzk/Dialect/Constrain/IR/Ops.h"
#include "llzk/Dialect/Function/IR/Ops.h"
#include "llzk/Dialect/Global/IR/Ops.h"
#include "llzk/Dialect/LLZK/IR/AttributeHelper.h"
#include "llzk/Dialect/Polymorphic/IR/Ops.h"
#include "llzk/Dialect/Struct/IR/Ops.h"
#include <mlir/Dialect/Arith/IR/Arith.h>
#include <mlir/Dialect/SCF/IR/SCF.h>
#include <mlir/Dialect/SCF/Transforms/Patterns.h>
#include <mlir/IR/Attributes.h>
#include <mlir/IR/BuiltinAttributes.h>
#include <mlir/IR/MLIRContext.h>
#include <mlir/IR/Operation.h>
#include <mlir/IR/PatternMatch.h>
#include <mlir/Transforms/DialectConversion.h>
#include <llvm/ADT/STLExtras.h>
#include <llvm/ADT/SmallVector.h>
#include <tuple>
Include dependency graph for SharedImpl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llzk::polymorphic::detail::GeneralTypeReplacePattern< OpClass >
 
class  llzk::polymorphic::detail::CreateArrayOpClassReplacePattern
 
class  llzk::polymorphic::detail::CallOpClassReplacePattern
 

Namespaces

namespace  llzk
 
namespace  llzk::polymorphic
 
namespace  llzk::polymorphic::detail
 

Functions

template<typename OpClass, typename Rewriter, typename... Args>
OpClass llzk::polymorphic::detail::replaceOpWithNewOp (Rewriter &rewriter, mlir::Operation *op, Args &&...args)
 Wrapper for PatternRewriter.replaceOpWithNewOp() that automatically copies discardable attributes (i.e.
 
template<typename... AdditionalOpClasses>
mlir::RewritePatternSet llzk::polymorphic::detail::newGeneralRewritePatternSet (mlir::TypeConverter &tyConv, mlir::MLIRContext *ctx, mlir::ConversionTarget &target)
 Return a new RewritePatternSet that includes a GeneralTypeReplacePattern for all of OpClassesWithStructTypes.WithGeneralBuilder and AdditionalOpClasses.
 
mlir::ConversionTarget llzk::polymorphic::detail::newBaseTarget (mlir::MLIRContext *ctx)
 Return a new ConversionTarget allowing all LLZK-required dialects.
 
template<typename... AdditionalOpClasses, typename... AdditionalChecks>
mlir::ConversionTarget llzk::polymorphic::detail::newConverterDefinedTarget (mlir::TypeConverter &tyConv, mlir::MLIRContext *ctx, AdditionalChecks &&...checks)
 Return a new ConversionTarget allowing all LLZK-required dialects and defining Op legality based on the given TypeConverter for Ops listed in both fields of OpClassesWithStructTypes and in AdditionalOpClasses.
 

Detailed Description

Common private implementation for poly dialect passes.

Definition in file SharedImpl.h.