My Project
Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
mlir::IRObjectWithUseList< OperandType > Class Template Reference

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

#include <UseDefLists.h>

Inheritance diagram for mlir::IRObjectWithUseList< OperandType >:
Inheritance graph
[legend]

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...
 
void replaceAllUsesWith (typename OperandType::ValueType newValue)
 
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 ()
 
OperandType * getFirstUse () const
 

Friends

template<typename DerivedT , typename IRValueTy >
class IROperand
 

Detailed Description

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

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

Member Typedef Documentation

◆ use_iterator

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

◆ use_range

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

◆ user_iterator

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

◆ user_range

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

Constructor & Destructor Documentation

◆ ~IRObjectWithUseList()

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

◆ IRObjectWithUseList()

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

Member Function Documentation

◆ dropAllUses()

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

Drop all uses of this object from their respective owners.

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

◆ getUsers()

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

Returns a range of all users.

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

◆ hasOneUse()

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

Returns true if this value has exactly one use.

◆ replaceAllUsesWith()

template<typename OperandType>
void mlir::IRObjectWithUseList< OperandType >::replaceAllUsesWith ( typename OperandType::ValueType  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'.

◆ use_begin()

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

◆ use_empty()

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

Returns true if this value has no uses.

◆ use_end()

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

◆ user_begin()

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

◆ user_end()

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

Friends And Related Function Documentation

◆ IROperand

template<typename OperandType>
template<typename DerivedT , typename IRValueTy >
friend class IROperand
friend

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