MLIR  16.0.0git
Public Types | Public Member Functions | Protected Member Functions | List of all members
mlir::IRObjectWithUseList< OperandType > Class Template Reference

This class represents a single IR object that contains a use list. More...

#include "mlir/IR/UseDefLists.h"

+ Inheritance diagram for mlir::IRObjectWithUseList< OperandType >:

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...
 
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...
 

Detailed Description

template<typename OperandType>
class mlir::IRObjectWithUseList< OperandType >

This class represents a single IR object that contains a use list.

Definition at line 172 of file UseDefLists.h.

Member Typedef Documentation

◆ use_iterator

template<typename OperandType>
using mlir::IRObjectWithUseList< OperandType >::use_iterator = ValueUseIterator<OperandType>

Definition at line 199 of file UseDefLists.h.

◆ use_range

template<typename OperandType>
using mlir::IRObjectWithUseList< OperandType >::use_range = iterator_range<use_iterator>

Definition at line 200 of file UseDefLists.h.

◆ user_iterator

template<typename OperandType>
using mlir::IRObjectWithUseList< OperandType >::user_iterator = ValueUserIterator<use_iterator, OperandType>

Definition at line 220 of file UseDefLists.h.

◆ user_range

template<typename OperandType>
using mlir::IRObjectWithUseList< OperandType >::user_range = iterator_range<user_iterator>

Definition at line 221 of file UseDefLists.h.

Constructor & Destructor Documentation

◆ ~IRObjectWithUseList()

template<typename OperandType>
mlir::IRObjectWithUseList< OperandType >::~IRObjectWithUseList ( )
inline

Definition at line 174 of file UseDefLists.h.

◆ IRObjectWithUseList()

template<typename OperandType>
mlir::IRObjectWithUseList< OperandType >::IRObjectWithUseList ( )
protecteddefault

Member Function Documentation

◆ dropAllUses()

template<typename OperandType>
void mlir::IRObjectWithUseList< OperandType >::dropAllUses ( )
inline

Drop all uses of this object from their respective owners.

Definition at line 179 of file UseDefLists.h.

Referenced by mlir::detail::ConversionPatternRewriterImpl::applyRewrites(), buildUnresolvedTargetMaterialization(), and mlir::RewriterBase::mergeBlocks().

◆ getFirstUse()

template<typename OperandType>
OperandType* mlir::IRObjectWithUseList< OperandType >::getFirstUse ( ) const
inlineprotected

Return the first operand that is using this value, for use by custom use/def iterators.

Definition at line 234 of file UseDefLists.h.

◆ getUsers()

template<typename OperandType>
user_range mlir::IRObjectWithUseList< OperandType >::getUsers ( ) const
inline

Returns a range of all users.

Definition at line 227 of file UseDefLists.h.

◆ getUses()

template<typename OperandType>
use_range mlir::IRObjectWithUseList< OperandType >::getUses ( ) const
inline

Returns a range of all uses, which is useful for iterating over all uses.

Definition at line 206 of file UseDefLists.h.

◆ hasOneUse()

template<typename OperandType>
bool mlir::IRObjectWithUseList< OperandType >::hasOneUse ( ) const
inline

Returns true if this value has exactly one use.

Definition at line 209 of file UseDefLists.h.

◆ replaceAllUsesWith()

template<typename OperandType>
template<typename ValueT >
void mlir::IRObjectWithUseList< OperandType >::replaceAllUsesWith ( ValueT &&  newValue)
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 188 of file UseDefLists.h.

Referenced by ableToUpdatePredOperands(), and buildUnresolvedTargetMaterialization().

◆ use_begin()

template<typename OperandType>
use_iterator mlir::IRObjectWithUseList< OperandType >::use_begin ( ) const
inline

Definition at line 202 of file UseDefLists.h.

◆ use_empty()

template<typename OperandType>
bool mlir::IRObjectWithUseList< OperandType >::use_empty ( ) const
inline

Returns true if this value has no uses.

Definition at line 214 of file UseDefLists.h.

◆ use_end()

template<typename OperandType>
use_iterator mlir::IRObjectWithUseList< OperandType >::use_end ( ) const
inline

Definition at line 203 of file UseDefLists.h.

◆ user_begin()

template<typename OperandType>
user_iterator mlir::IRObjectWithUseList< OperandType >::user_begin ( ) const
inline

Definition at line 223 of file UseDefLists.h.

◆ user_end()

template<typename OperandType>
user_iterator mlir::IRObjectWithUseList< OperandType >::user_end ( ) const
inline

Definition at line 224 of file UseDefLists.h.


The documentation for this class was generated from the following file: