MLIR
20.0.0git
|
This class is the base for IROperand, and provides all of the non-templated facilities for operand use management. More...
#include "mlir/IR/UseDefLists.h"
Public Member Functions | |
Operation * | getOwner () const |
Return the owner of this operand. More... | |
IROperandBase * | getNextOperandUsingThisValue () |
Return the next operand on the use-list of the value we are referring to. More... | |
void | initChainWithUse (IROperandBase **self) |
Initialize the use-def chain by setting the back address to self and nextUse to nullptr. More... | |
void | linkTo (IROperandBase *next) |
Link the current node to next. More... | |
Protected Member Functions | |
IROperandBase (Operation *owner) | |
IROperandBase (IROperandBase &&other) | |
IROperandBase & | operator= (IROperandBase &&other) |
IROperandBase (const IROperandBase &use)=delete | |
Operands are not copyable or assignable. More... | |
IROperandBase & | operator= (const IROperandBase &use)=delete |
~IROperandBase () | |
void | drop () |
Remove this use of the operand. More... | |
void | removeFromCurrent () |
Remove this operand from the current use list. More... | |
template<typename UseListT > | |
void | insertInto (UseListT *useList) |
Insert this operand into the given use list. More... | |
Protected Attributes | |
IROperandBase * | nextUse = nullptr |
The next operand in the use-chain. More... | |
IROperandBase ** | back = nullptr |
This points to the previous link in the use-chain. More... | |
This class is the base for IROperand, and provides all of the non-templated facilities for operand use management.
Definition at line 35 of file UseDefLists.h.
|
inlineprotected |
Definition at line 61 of file UseDefLists.h.
|
inlineprotected |
Definition at line 62 of file UseDefLists.h.
|
protecteddelete |
Operands are not copyable or assignable.
|
inlineprotected |
Definition at line 77 of file UseDefLists.h.
References removeFromCurrent().
|
inlineprotected |
Remove this use of the operand.
Definition at line 80 of file UseDefLists.h.
References back, nextUse, and removeFromCurrent().
Referenced by mlir::IROperand< DerivedT, IRValueT >::drop().
|
inline |
Return the next operand on the use-list of the value we are referring to.
This should generally only be used by the internal implementation details of the SSA machinery.
Definition at line 43 of file UseDefLists.h.
References nextUse.
Referenced by mlir::IRObjectWithUseList< OperandType >::hasOneUse(), mlir::ValueUseIterator< OperandType >::operator++(), and mlir::IRObjectWithUseList< OperandType >::shuffleUseList().
|
inline |
Return the owner of this operand.
Definition at line 38 of file UseDefLists.h.
Referenced by annotateConflict(), mlir::linalg::areElementwiseOpsFusable(), mlir::bufferization::AnalysisState::bufferizesToAliasOnly(), mlir::bufferization::AnalysisState::bufferizesToMemoryRead(), mlir::bufferization::AnalysisState::bufferizesToMemoryWrite(), checkAssumptionForFusingConsumer(), checkDoubleConsume(), cloneAndFuseFirstUse(), fuse(), mlir::linalg::fuseElementwiseOps(), mlir::linalg::fuseProducerOfTensor(), generateFusedElementwiseOpRegion(), mlir::bufferization::AnalysisState::getAliasingValues(), getIndexingMapOfProducerOperandsInCoordinatesOfFusedOp(), getSingleTerminatorUse(), mlir::ValueUseIterator< OperandType >::getUser(), handleResultImpl(), mlir::bufferization::AnalysisState::isInPlace(), isUseSpeciallyKnownDead(), isValueUsePotentialConsumer(), matchLinalgReduction(), mlir::mesh::maybeInsertSourceShardingAnnotation(), mlir::mesh::maybeInsertTargetShardingAnnotation(), mlir::affine::numEnclosingInvariantLoops(), numEnclosingInvariantLoops(), mlir::linalg::offsetIndices(), mlir::outlineSingleBlockRegion(), mlir::linalg::packTranspose(), mlir::RewriterBase::replaceAllUsesExcept(), mlir::scf::replaceAndCastForOpIterArg(), mlir::tensor::replaceInsertSliceWithTiledConsumer(), mlir::RewriterBase::replaceOpUsesWithinBlock(), setInPlaceOpOperand(), mlir::scf::tileAndFuseConsumerOfSlice(), transformToReduceLoop(), transposeOneLinalgOperandAndReplace(), mlir::dataflow::LivenessAnalysis::visitBranchOperand(), and mlir::dataflow::LivenessAnalysis::visitCallOperand().
|
inline |
Initialize the use-def chain by setting the back address to self and nextUse to nullptr.
Definition at line 47 of file UseDefLists.h.
|
inlineprotected |
Insert this operand into the given use list.
Definition at line 97 of file UseDefLists.h.
|
inline |
Link the current node to next.
Definition at line 54 of file UseDefLists.h.
Referenced by mlir::IRObjectWithUseList< OperandType >::shuffleUseList().
|
protecteddelete |
|
inlineprotected |
Definition at line 65 of file UseDefLists.h.
References back, nextUse, and removeFromCurrent().
Referenced by mlir::IROperand< DerivedT, IRValueT >::operator=().
|
inlineprotected |
Remove this operand from the current use list.
Definition at line 87 of file UseDefLists.h.
Referenced by drop(), operator=(), mlir::IROperand< DerivedT, IRValueT >::set(), and ~IROperandBase().
|
protected |
This points to the previous link in the use-chain.
Definition at line 109 of file UseDefLists.h.
Referenced by drop(), initChainWithUse(), insertInto(), linkTo(), operator=(), and removeFromCurrent().
|
protected |
The next operand in the use-chain.
Definition at line 106 of file UseDefLists.h.
Referenced by drop(), getNextOperandUsingThisValue(), initChainWithUse(), insertInto(), linkTo(), operator=(), and removeFromCurrent().