MLIR
20.0.0git
|
This class represents a single IR object that contains a use list. More...
#include "mlir/IR/UseDefLists.h"
Public Types | |
using | use_iterator = ValueUseIterator< OperandType > |
using | use_range = iterator_range< use_iterator > |
using | user_iterator = ValueUserIterator< use_iterator, OperandType > |
using | user_range = iterator_range< user_iterator > |
Public Member Functions | |
~IRObjectWithUseList () | |
void | dropAllUses () |
Drop all uses of this object from their respective owners. More... | |
template<typename ValueT > | |
void | replaceAllUsesWith (ValueT &&newValue) |
Replace all uses of 'this' value with the new value, updating anything in the IR that uses 'this' to use the other value instead. More... | |
void | shuffleUseList (ArrayRef< unsigned > indices) |
Shuffle the use-list chain according to the provided indices vector, which need to represent a valid shuffle. More... | |
use_iterator | use_begin () const |
use_iterator | use_end () const |
use_range | getUses () const |
Returns a range of all uses, which is useful for iterating over all uses. More... | |
bool | hasOneUse () const |
Returns true if this value has exactly one use. More... | |
bool | use_empty () const |
Returns true if this value has no uses. More... | |
user_iterator | user_begin () const |
user_iterator | user_end () const |
user_range | getUsers () const |
Returns a range of all users. More... | |
Protected Member Functions | |
IRObjectWithUseList ()=default | |
OperandType * | getFirstUse () const |
Return the first operand that is using this value, for use by custom use/def iterators. More... | |
This class represents a single IR object that contains a use list.
Definition at line 195 of file UseDefLists.h.
using mlir::IRObjectWithUseList< OperandType >::use_iterator = ValueUseIterator<OperandType> |
Definition at line 246 of file UseDefLists.h.
using mlir::IRObjectWithUseList< OperandType >::use_range = iterator_range<use_iterator> |
Definition at line 247 of file UseDefLists.h.
using mlir::IRObjectWithUseList< OperandType >::user_iterator = ValueUserIterator<use_iterator, OperandType> |
Definition at line 267 of file UseDefLists.h.
using mlir::IRObjectWithUseList< OperandType >::user_range = iterator_range<user_iterator> |
Definition at line 268 of file UseDefLists.h.
|
inline |
Definition at line 197 of file UseDefLists.h.
References mlir::IRObjectWithUseList< OperandType >::use_empty().
|
protecteddefault |
|
inline |
Drop all uses of this object from their respective owners.
Definition at line 202 of file UseDefLists.h.
References mlir::IRObjectWithUseList< OperandType >::use_begin(), and mlir::IRObjectWithUseList< OperandType >::use_empty().
|
inlineprotected |
Return the first operand that is using this value, for use by custom use/def iterators.
Definition at line 281 of file UseDefLists.h.
|
inline |
Returns a range of all users.
Definition at line 274 of file UseDefLists.h.
References mlir::IRObjectWithUseList< OperandType >::user_begin(), and mlir::IRObjectWithUseList< OperandType >::user_end().
Referenced by mlir::bufferization::detail::getCallerOpOperands(), and transformToStructuredCFBranches().
|
inline |
Returns a range of all uses, which is useful for iterating over all uses.
Definition at line 253 of file UseDefLists.h.
References mlir::IRObjectWithUseList< OperandType >::use_begin(), and mlir::IRObjectWithUseList< OperandType >::use_end().
Referenced by mlir::RewriterBase::replaceAllUsesWith(), and mlir::IRObjectWithUseList< OperandType >::shuffleUseList().
|
inline |
Returns true if this value has exactly one use.
Definition at line 256 of file UseDefLists.h.
References mlir::detail::IROperandBase::getNextOperandUsingThisValue().
|
inline |
Replace all uses of 'this' value with the new value, updating anything in the IR that uses 'this' to use the other value instead.
When this returns there are zero uses of 'this'.
Definition at line 211 of file UseDefLists.h.
References mlir::IRObjectWithUseList< OperandType >::use_begin(), and mlir::IRObjectWithUseList< OperandType >::use_empty().
Referenced by mlir::detail::ConversionPatternRewriterImpl::applySignatureConversion(), inlineIfCase(), transformCyclesToSCFLoops(), and transformToStructuredCFBranches().
|
inline |
Shuffle the use-list chain according to the provided indices vector, which need to represent a valid shuffle.
That is, a vector of unique integers in range [0, numUses - 1]. Users of this function need to guarantee the validity of the indices vector.
Definition at line 222 of file UseDefLists.h.
References mlir::detail::IROperandBase::getNextOperandUsingThisValue(), mlir::IRObjectWithUseList< OperandType >::getUses(), and mlir::detail::IROperandBase::linkTo().
|
inline |
|
inline |
Returns true if this value has no uses.
Definition at line 261 of file UseDefLists.h.
Referenced by mlir::IRObjectWithUseList< OperandType >::dropAllUses(), mlir::RewriterBase::eraseBlock(), mlir::IRObjectWithUseList< OperandType >::replaceAllUsesWith(), and mlir::IRObjectWithUseList< OperandType >::~IRObjectWithUseList().
|
inline |
Definition at line 250 of file UseDefLists.h.
Referenced by mlir::IRObjectWithUseList< OperandType >::getUses(), and mlir::IRObjectWithUseList< OperandType >::user_end().
|
inline |
Definition at line 270 of file UseDefLists.h.
References mlir::IRObjectWithUseList< OperandType >::use_begin().
Referenced by mlir::IRObjectWithUseList< OperandType >::getUsers().
|
inline |
Definition at line 271 of file UseDefLists.h.
References mlir::IRObjectWithUseList< OperandType >::use_end().
Referenced by mlir::IRObjectWithUseList< OperandType >::getUsers().