MLIR
20.0.0git
|
This is an attribute/type replacer that is naively cached. More...
#include "mlir/IR/AttrTypeSubElements.h"
Public Member Functions | |
Attribute | replace (Attribute attr) |
Type | replace (Type type) |
Public Member Functions inherited from mlir::detail::AttrTypeReplacerBase< AttrTypeReplacer > | |
void | replaceElementsIn (Operation *op, bool replaceAttrs=true, bool replaceLocs=false, bool replaceTypes=false) |
Replace the elements within the given operation. More... | |
void | recursivelyReplaceElementsIn (Operation *op, bool replaceAttrs=true, bool replaceLocs=false, bool replaceTypes=false) |
Replace the elements within the given operation, and all nested operations. More... | |
void | addReplacement (ReplaceFn< Attribute > fn) |
Register a replacement function for mapping a given attribute or type. More... | |
void | addReplacement (ReplaceFn< Type > fn) |
std::enable_if_t<!std::is_same_v< T, BaseT >||!std::is_convertible_v< ResultT, ReplaceFnResult< BaseT > > > | addReplacement (FnT &&callback) |
Register a replacement function that doesn't match the default signature, either because it uses a derived parameter type, or it uses a simplified result type. More... | |
Additional Inherited Members | |
Public Types inherited from mlir::detail::AttrTypeReplacerBase< AttrTypeReplacer > | |
using | ReplaceFnResult = std::optional< std::pair< T, WalkResult > > |
A replacement mapping function, which returns either std::nullopt (to signal the element wasn't handled), or a pair of the replacement element and a WalkResult. More... | |
using | ReplaceFn = std::function< ReplaceFnResult< T >(T)> |
Protected Member Functions inherited from mlir::detail::AttrTypeReplacerBase< AttrTypeReplacer > | |
Attribute | replaceBase (Attribute attr) |
Invokes the registered replacement functions from most recently registered to least recently registered until a successful replacement is returned. More... | |
Type | replaceBase (Type type) |
This is an attribute/type replacer that is naively cached.
It is best used when the replacer logic is guaranteed to not contain cycles. Otherwise, any re-occurrence of an in-progress element will be skipped.
Definition at line 235 of file AttrTypeSubElements.h.
Definition at line 251 of file AttrTypeSubElements.cpp.
Referenced by mlir::Attribute::replace(), and mlir::Type::replace().
Definition at line 255 of file AttrTypeSubElements.cpp.