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

#include <UseDefLists.h>

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

Public Types

using BaseType = IRObjectWithUseList< OperandType >
 
using ValueType = typename OperandType::ValueType
 
using filtered_use_iterator = FilteredValueUseIterator< OperandType >
 
using filtered_use_range = iterator_range< filtered_use_iterator >
 
using filtered_user_iterator = ValueUserIterator< filtered_use_iterator, OperandType >
 
using filtered_user_range = iterator_range< filtered_user_iterator >
 
- Public Types inherited from mlir::IRObjectWithUseList< OperandType >
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

void dropAllUses (ValueType value)
 Drop all uses of value from their respective owners. More...
 
void replaceAllUsesWith (ValueType oldValue, ValueType newValue)
 
filtered_use_iterator use_begin (ValueType value) const
 
filtered_use_iterator use_end (ValueType) const
 
filtered_use_range getUses (ValueType value) const
 
bool hasOneUse (ValueType value) const
 
bool use_empty (ValueType value) const
 
filtered_user_iterator user_begin (ValueType value) const
 
filtered_user_iterator user_end (ValueType value) const
 
filtered_user_range getUsers (ValueType value) const
 
- Public Member Functions inherited from mlir::IRObjectWithUseList< OperandType >
 ~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...
 

Additional Inherited Members

- Protected Member Functions inherited from mlir::IRObjectWithUseList< OperandType >
 IRObjectWithUseList ()
 
OperandType * getFirstUse () const
 

Detailed Description

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

This class represents multiple IR objects with a single use list. This class provides wrapper functionality for manipulating the uses of a single object.

Member Typedef Documentation

◆ BaseType

template<typename OperandType>
using mlir::IRMultiObjectWithUseList< OperandType >::BaseType = IRObjectWithUseList<OperandType>

◆ filtered_use_iterator

template<typename OperandType>
using mlir::IRMultiObjectWithUseList< OperandType >::filtered_use_iterator = FilteredValueUseIterator<OperandType>

◆ filtered_use_range

template<typename OperandType>
using mlir::IRMultiObjectWithUseList< OperandType >::filtered_use_range = iterator_range<filtered_use_iterator>

◆ filtered_user_iterator

template<typename OperandType>
using mlir::IRMultiObjectWithUseList< OperandType >::filtered_user_iterator = ValueUserIterator<filtered_use_iterator, OperandType>

◆ filtered_user_range

template<typename OperandType>
using mlir::IRMultiObjectWithUseList< OperandType >::filtered_user_range = iterator_range<filtered_user_iterator>

◆ ValueType

template<typename OperandType>
using mlir::IRMultiObjectWithUseList< OperandType >::ValueType = typename OperandType::ValueType

Member Function Documentation

◆ dropAllUses()

template<typename OperandType>
void mlir::IRMultiObjectWithUseList< OperandType >::dropAllUses ( ValueType  value)
inline

Drop all uses of value from their respective owners.

◆ getUsers()

template<typename OperandType>
filtered_user_range mlir::IRMultiObjectWithUseList< OperandType >::getUsers ( ValueType  value) const
inline

◆ getUses()

template<typename OperandType>
filtered_use_range mlir::IRMultiObjectWithUseList< OperandType >::getUses ( ValueType  value) const
inline

◆ hasOneUse()

template<typename OperandType>
bool mlir::IRMultiObjectWithUseList< OperandType >::hasOneUse ( ValueType  value) const
inline

◆ replaceAllUsesWith()

template<typename OperandType>
void mlir::IRMultiObjectWithUseList< OperandType >::replaceAllUsesWith ( ValueType  oldValue,
ValueType  newValue 
)
inline

Replace all uses of oldValue 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>
filtered_use_iterator mlir::IRMultiObjectWithUseList< OperandType >::use_begin ( ValueType  value) const
inline

◆ use_empty()

template<typename OperandType>
bool mlir::IRMultiObjectWithUseList< OperandType >::use_empty ( ValueType  value) const
inline

◆ use_end()

template<typename OperandType>
filtered_use_iterator mlir::IRMultiObjectWithUseList< OperandType >::use_end ( ValueType  ) const
inline

◆ user_begin()

template<typename OperandType>
filtered_user_iterator mlir::IRMultiObjectWithUseList< OperandType >::user_begin ( ValueType  value) const
inline

◆ user_end()

template<typename OperandType>
filtered_user_iterator mlir::IRMultiObjectWithUseList< OperandType >::user_end ( ValueType  value) const
inline

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