9 #ifndef MLIR_REWRITE_FROZENREWRITEPATTERNSET_H
10 #define MLIR_REWRITE_FROZENREWRITEPATTERNSET_H
25 using NativePatternListT = std::vector<std::unique_ptr<RewritePattern>>;
57 return impl->nativeOpSpecificPatternMap;
63 const NativePatternListT &nativeList =
impl->nativeAnyOpPatterns;
64 return llvm::make_pointee_range(nativeList);
70 return impl->pdlByteCode.get();
82 NativePatternListT nativeOpSpecificPatternList;
86 NativePatternListT nativeAnyOpPatterns;
89 std::unique_ptr<detail::PDLByteCode> pdlByteCode;
96 std::shared_ptr<Impl>
impl;
This class represents a frozen set of patterns that can be processed by a pattern applicator.
FrozenRewritePatternSet(FrozenRewritePatternSet &&patterns)=default
FrozenRewritePatternSet & operator=(const FrozenRewritePatternSet &patterns)=default
FrozenRewritePatternSet & operator=(FrozenRewritePatternSet &&patterns)=default
const detail::PDLByteCode * getPDLByteCode() const
Return the compiled PDL bytecode held by this list.
iterator_range< llvm::pointee_iterator< NativePatternListT::const_iterator > > getMatchAnyOpNativePatterns() const
Return the "match any" native patterns held by this list.
const OpSpecificNativePatternListT & getOpSpecificNativePatterns() const
Return the op specific native patterns held by this list.
FrozenRewritePatternSet()
~FrozenRewritePatternSet()
DenseMap< OperationName, std::vector< RewritePattern * > > OpSpecificNativePatternListT
A map of operation specific native patterns.
FrozenRewritePatternSet(const FrozenRewritePatternSet &patterns)=default
Include the generated interface declarations.
const FrozenRewritePatternSet & patterns