CIRCT
18.0.0git
|
A combination of SymbolCache and SymbolUserMap that also allows to add users and remove symbols on-demand. More...
Public Member Functions | |
ArrayRef< Operation * > | getUsers (Operation *symbol) const |
Return the users of the provided symbol operation. More... | |
bool | useEmpty (Operation *symbol) |
Return true if the given symbol has no uses. More... | |
void | addUser (Operation *def, Operation *user) |
void | removeUser (Operation *def, Operation *user) |
void | removeDefinitionAndAllUsers (Operation *def) |
void | collectAllSymbolUses (Operation *symbolTableOp, SymbolTableCollection &symbolTable) |
![]() | |
void | addDefinition (mlir::Attribute key, mlir::Operation *op) override |
In the building phase, add symbols. More... | |
mlir::Operation * | getDefinition (mlir::Attribute attr) const override |
Lookup a definition for 'symbol' in the cache. More... | |
SymbolCacheBase::Iterator | begin () override |
SymbolCacheBase::Iterator | end () override |
virtual mlir::Operation * | getDefinition (mlir::Attribute symbol) const=0 |
Lookup a definition for 'symbol' in the cache. More... | |
mlir::Operation * | getDefinition (mlir::FlatSymbolRefAttr symbol) const |
Lookup a definition for 'symbol' in the cache. More... | |
![]() | |
virtual | ~SymbolCacheBase () |
Virtual method anchor. More... | |
void | addSymbol (mlir::SymbolOpInterface op) |
Adds the symbol-defining 'op' to the cache. More... | |
void | addDefinitions (mlir::Operation *top) |
Populate the symbol cache with all symbol-defining operations within the 'top' operation. More... | |
mlir::Operation * | getDefinition (mlir::FlatSymbolRefAttr symbol) const |
Lookup a definition for 'symbol' in the cache. More... | |
Private Attributes | |
DenseMap< Operation *, SetVector< Operation * > > | userMap |
Additional Inherited Members | |
![]() | |
using | CacheItem = std::pair< mlir::Attribute, mlir::Operation * > |
Iterator support through a pointer to some abstract cache. More... | |
![]() | |
llvm::DenseMap< mlir::Attribute, mlir::Operation * > | symbolCache |
This stores a lookup table from symbol attribute to the operation that defines it. More... | |
A combination of SymbolCache and SymbolUserMap that also allows to add users and remove symbols on-demand.
Definition at line 43 of file ArcCanonicalizer.cpp.
|
inline |
Definition at line 56 of file ArcCanonicalizer.cpp.
References assert().
|
inline |
Definition at line 78 of file ArcCanonicalizer.cpp.
References assert().
|
inline |
Return the users of the provided symbol operation.
Definition at line 46 of file ArcCanonicalizer.cpp.
|
inline |
Definition at line 72 of file ArcCanonicalizer.cpp.
References assert().
|
inline |
Definition at line 64 of file ArcCanonicalizer.cpp.
References assert(), and empty.
Referenced by canonicalizePassthoughCall().
|
inline |
Return true if the given symbol has no uses.
Definition at line 52 of file ArcCanonicalizer.cpp.
|
private |
Definition at line 105 of file ArcCanonicalizer.cpp.