MLIR: mlir::Value Class Reference (original) (raw)

This class represents an instance of an SSA value in the MLIR system, representing a computable value that has a type and a set of users. More...

#include "[mlir/IR/Value.h](Value%5F8h%5Fsource.html)"

Public Types
using use_iterator = ValueUseIterator< OpOperand >
This class implements an iterator over the uses of a value. More...
using use_range = iterator_range< use_iterator >
using user_iterator = ValueUserIterator< use_iterator, OpOperand >
using user_range = iterator_range< user_iterator >
Public Member Functions
constexpr Value (detail::ValueImpl *impl=nullptr)
operator bool () const
bool operator== (const Value &other) const
bool operator!= (const Value &other) const
Type getType () const
Return the type of this value. More...
MLIRContext * getContext () const
Utility to get the associated MLIRContext that this value is defined in. More...
void setType (Type newType)
Mutate the type of this Value to be of the specified type. More...
Operation * getDefiningOp () const
If this value is the result of an operation, return the operation that defines it. More...
template
OpTy getDefiningOp () const
If this value is the result of an operation of type OpTy, return the operation that defines it. More...
Location getLoc () const
Return the location of this value. More...
void setLoc (Location loc)
Region * getParentRegion ()
Return the Region in which this Value is defined. More...
Block * getParentBlock ()
Return the Block in which this Value is defined. More...
void dropAllUses ()
Drop all uses of this object from their respective owners. More...
void replaceAllUsesWith (Value 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 replaceAllUsesExcept (Value newValue, const SmallPtrSetImpl< Operation * > &exceptions)
Replace all uses of 'this' value with 'newValue', updating anything in the IR that uses 'this' to use the other value instead except if the user is listed in 'exceptions' . More...
void replaceAllUsesExcept (Value newValue, Operation *exceptedUser)
Replace all uses of 'this' value with 'newValue', updating anything in the IR that uses 'this' to use the other value instead except if the user is 'exceptedUser'. More...
void replaceUsesWithIf (Value newValue, function_ref< bool(OpOperand &)> shouldReplace)
Replace all uses of 'this' value with 'newValue' if the given callback returns true. More...
bool isUsedOutsideOfBlock (Block *block) const
Returns true if the value is used outside of the given block. More...
void shuffleUseList (ArrayRef< unsigned > indices)
Shuffle the use list order according to the provided indices. 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...
unsigned getNumUses () const
This method computes the number of uses of this Value. More...
bool hasOneUse () const
Returns true if this value has exactly one use. More...
bool hasNUses (unsigned n) const
Return true if this Value has exactly n uses. More...
bool hasNUsesOrMore (unsigned n) const
Return true if this value has n uses or more. 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
void print (raw_ostream &os) const
void print (raw_ostream &os, const OpPrintingFlags &flags) const
void print (raw_ostream &os, AsmState &state) const
void dump () const
void printAsOperand (raw_ostream &os, AsmState &state) const
Print this value as if it were an operand. More...
void printAsOperand (raw_ostream &os, const OpPrintingFlags &flags) const
void * getAsOpaquePointer () const
Methods for supporting PointerLikeTypeTraits. More...
detail::ValueImpl * getImpl () const

This class represents an instance of an SSA value in the MLIR system, representing a computable value that has a type and a set of users.

An SSA value is either a BlockArgument or the result of an operation. Note: This class has value-type semantics and is just a simple wrapper around a ValueImpl that is either owner by a block(in the case of a BlockArgument) or an Operation(in the case of an OpResult). As most IR constructs, this isn't const-correct, but we keep method consistent and as such method that immediately modify this Value aren't marked const (include modifying the Value use-list).

Definition at line 96 of file Value.h.

use_iterator

This class implements an iterator over the uses of a value.

Definition at line 181 of file Value.h.

use_range

user_iterator

user_range

dropAllUses()

void mlir::Value::dropAllUses ( ) inline

Drop all uses of this object from their respective owners.

Definition at line 144 of file Value.h.

dump()

void Value::dump ( ) const

getAsOpaquePointer()

void* mlir::Value::getAsOpaquePointer ( ) const inline

getContext()

Utility to get the associated MLIRContext that this value is defined in.

Definition at line 108 of file Value.h.

References mlir::Type::getContext(), and getType().

Referenced by mlir::scf::addLoopRangeConstraints(), annotateNonWritableTensor(), areAllIndicesI32(), calculateMemoryRequirements(), mlir::ValueBoundsConstraintSet::computeConstantDelta(), mlir::vector::ScalableValueBoundsConstraintSet::computeScalableBound(), dropRefIfNoUses(), mlir::affine::fullyComposeAndComputeConstantDelta(), getSharding(), inferCastResultType(), isAccessIndexInvariant(), and maybeConstantDimsAttr().

getDefiningOp() [1/2]

If this value is the result of an operation, return the operation that defines it.

If this value is the result of an Operation, return the operation that defines it.

Definition at line 20 of file Value.cpp.

Referenced by mlir::affine::FlatAffineValueConstraints::addInductionVarOrTerminalSymbol(), mlir::affine::affineParallelize(), mlir::transform::TransformState::applyTransform(), mlir::linalg::areElementwiseOpsFusable(), mlir::linalg::bufferizeToAllocation(), canonicalizeAssociativeCommutativeBinaryOp(), checkAssumptionForFusingConsumer(), composeSetAndOperands(), mlir::ValueBoundsConstraintSet::computeIndependentBound(), convertOmpTarget(), convertOmpThreadprivate(), mlir::nvgpu::createAsyncGroups(), createInlinedCompareImplementation(), defaultDeallocBufferCallBack(), mlir::detail::defaultIsEquivalentSubset(), defaultIsSmallAlloc(), mlir::denormalizeInductionVariable(), deriveStaticUpperBound(), diagnoseInvalidOperandDominance(), distinctAllocAndBlockArgument(), mlir::DominanceInfo::dominates(), mlir::bufferization::dropEquivalentBufferResults(), dropRefIfNoUses(), extractConstInteger(), mlir::bufferization::AnalysisState::findValueInReverseUseDefChain(), foldDivMul(), foldExtractAfterInsert(), foldExtractAfterInsertSlice(), mlir::OpTrait::impl::foldIdempotent(), foldInsertAfterExtractSlice(), mlir::OpTrait::impl::foldInvolution(), foldScalarExtractFromFromElements(), mlir::affine::fullyComposeAffineMapAndOperands(), mlir::linalg::fuseProducerOfTensor(), generateFusedElementwiseOpRegion(), get2To4PruneFlag(), mlir::vector::getAsIntegers(), mlir::getBackwardSlice(), getBase(), getCompressedMaskOp(), mlir::vector::getConstantVscaleMultiplier(), getDefiningOp(), getMaskFormat(), mlir::mesh::getMeshSharding(), mlir::mesh::getOperandShardings(), getOperandTreePredicates(), mlir::tensor::getOrCreateDestination(), getOwnerOfValue(), getProducerOfTensor(), getRangeFromOperandShape(), getRefPtrIfDeclareTarget(), getRegisterType(), mlir::shape::getShapeVec(), getSourceSkipUnary(), mlir::LivenessBlockInfo::getStartOperation(), getTreePredicates(), getUnderlyingObjectSet(), getViewBase(), mlir::gpu::WarpDistributionPattern::getWarpResult(), hasAllocateSideEffect(), PadOpVectorizationWithTransferWritePattern::hasSameTensorSize(), haveNoReadsAfterWriteExceptSameIndex(), mlir::linalg::hoistPaddingOnTensors(), mlir::sparse_tensor::LoopEmitter::initializeLoopEmit(), mlir::inlineCall(), mlir::linalg::insertSlicesBack(), is2To4Sparsity(), mlir::sparse_tensor::isAdmissibleBranchExp(), mlir::sparse_tensor::isCertainZero(), isContiguousLoadIdx(), mlir::linalg::detail::isContractionBody(), isDeclareTargetLink(), isDefinedAsZero(), isDefinedByCallTo(), isEscapingMemref(), isLocallyDefined(), isLoopInvariantIdx(), isMaterializing(), isMulChain(), isOpLoopInvariant(), mlir::affine::isTopLevelValue(), mlir::affine::isValidDim(), mlir::affine::isValidSymbol(), mlir::affine::loopUnrollJamByFactor(), mlir::linalg::makeComposedPadHighOp(), mlir::makeRegionIsolatedFromAbove(), CanonicalizeContractAdd< AddOpType >::matchAndRewrite(), FoldAddIntoDest::matchAndRewrite(), SwapTransposeWithBroadcast::matchAndRewrite(), MergeAffineMinMaxOp< T >::matchAndRewrite(), ClampClampOptimization::matchAndRewrite(), ConcatSliceOptimization::matchAndRewrite(), PadSliceOptimization::matchAndRewrite(), mlir::linalg::LinalgCopyVTRForwardingPattern::matchAndRewrite(), mlir::linalg::LinalgCopyVTWForwardingPattern::matchAndRewrite(), mlir::detail::matchOperandOrValueAtIndex(), mlir::matchPattern(), mayAlias(), mlir::mesh::maybeInsertSourceShardingAnnotation(), mlir::dataflow::maybeReplaceWithConstant(), mlir::mesh::MeshSharding::MeshSharding(), movePaddingToFillOrGenericOp(), mlir::moveValueDefinitions(), noAliasingUseInLoop(), mlir::linalg::offsetIndices(), mlir::bufferization::ValueComparator::operator()(), mlir::outlineSingleBlockRegion(), mlir::linalg::padAndHoistLinalgOp(), padThroughLoopIterArg(), CommutativeOperand::popFrontAndPushAdjacentUnvisitedAncestors(), printOperation(), mlir::spirv::Serializer::printValueIDMap(), processParallelLoop(), mlir::ValueBoundsConstraintSet::processWorklist(), mlir::DominanceInfo::properlyDominates(), reifyOrComputeDynamicSizes(), relinkBranch(), remainsLegalAfterInline(), replaceDimOrSym(), mlir::Liveness::resolveLiveness(), mlir::linalg::rewriteInDestinationPassingStyle(), setInsertionPointAfter(), mlir::OpBuilder::setInsertionPointAfterValue(), setInsertionPointToStart(), mlir::linalg::splitReduction(), mlir::linalg::splitReductionByScaling(), tracesBackToExpectedValue(), tryFoldTensors(), tryToEnforceAlignment(), unpackCast(), mlir::spirv::verifyGroupNonUniformArithmeticOp(), and visitUpward().

getDefiningOp() [2/2]

template

OpTy mlir::Value::getDefiningOp ( ) const inline

If this value is the result of an operation of type OpTy, return the operation that defines it.

Definition at line 125 of file Value.h.

References getDefiningOp().

getFromOpaquePointer()

static Value mlir::Value::getFromOpaquePointer ( const void * pointer) inlinestatic

getImpl()

getLoc()

Return the location of this value.

Definition at line 26 of file Value.cpp.

Referenced by addAtomicRMW(), mlir::transform::gpu::alterGpuLaunch(), mlir::transform::TransformState::applyTransform(), buildLoopIterationCount(), buildPredicateList(), mlir::bufferization::castOrReallocMemRefValue(), castToCompatibleMemRefType(), mlir::linalg::copyToGPUPrivateMemory(), mlir::linalg::copyToWorkgroupMemory(), createDecl(), createSwitchOp(), mlir::tosa::createZPsAsConst(), dispatchMappedValues(), dropRefIfNoUses(), mlir::detail::ConversionPatternRewriterImpl::findOrBuildReplacementValue(), genDemap(), genRemap(), mlir::bufferization::DeallocationState::getMemrefWithUniqueOwnership(), mlir::vector::getVectorReductionOp(), handleByValArgument(), mlir::OperationEquivalence::isRegionEquivalentTo(), mlir::OpToFuncCallLowering< SourceOp >::maybeCast(), mlir::mesh::maybeInsertSourceShardingAnnotation(), mlir::mesh::maybeInsertTargetShardingAnnotation(), mlir::dataflow::maybeReplaceWithConstant(), mlirAsmStateCreateForValue(), movePaddingToFillOrGenericOp(), mlir::transform::ErrorCheckingTrackingListener::notifyPayloadReplacementNotFound(), padThroughLoopIterArg(), reifyOrComputeDynamicSizes(), mlir::detail::ConversionPatternRewriterImpl::remapValues(), mlir::bufferization::replaceOpWithBufferizedValues(), mlir::linalg::rewriteInIm2Col(), verifyAllToAllOperandAndResultShape(), verifyGatherOperandAndResultShape(), and verifyScatterOrSliceOperandAndResultShape().

getNumUses()

unsigned Value::getNumUses ( ) const

This method computes the number of uses of this Value.

This is a linear time operation. Use hasOneUse, hasNUses, or hasNUsesOrMore to check for specific values.

Definition at line 54 of file Value.cpp.

getParentBlock()

Block * Value::getParentBlock ( )

Return the Block in which this Value is defined.

Definition at line 48 of file Value.cpp.

Referenced by mlir::LocalAliasAnalysis::aliasImpl(), computeInsertPoint(), destructureSlot(), dropRefIfNoUses(), mlir::bufferization::findCommonDominator(), mlir::linalg::fuseProducerOfTensor(), genExp(), mlir::bufferization::DeallocationState::getMemrefWithUniqueOwnership(), setInsertionPointToStart(), tryToEnforceAlignment(), and mlir::bufferization::DeallocationState::updateOwnership().

getParentRegion()

Region * Value::getParentRegion ( )

getType()

Type mlir::Value::getType ( ) const inline

Return the type of this value.

Definition at line 105 of file Value.h.

Referenced by mlir::ArithBuilder::add(), addBodyWithPayloadOp(), mlir::affine::MemRefDependenceGraph::addEdge(), addExecuteResults(), adjustAccessChainForBitwidth(), mlir::allOperandsHaveSameCoopMatrixType(), appendX1Dim(), applyPad(), mlir::detail::ConversionPatternRewriterImpl::applySignatureConversion(), applyToIntegerAttrs(), mlir::transform::TransformState::applyTransform(), areAllLLVMTypes(), mlir::linalg::areElementwiseOpsFusable(), assertValidValueDim(), bitAndAddrspaceCast(), bitcastSubByteVectorToI8(), broadcast(), broadcastDynamicDimension(), broadcastDynamicDimensions(), broadcastIfNeeded(), mlir::MemRefDescriptor::bufferPtr(), buildAvgPool2dOpWithQuantInfo(), mlir::tosa::buildConvOpResultTypeInfo(), buildDivOp(), mlir::sparse_tensor::Merger::buildExp(), mlir::tosa::buildMatMulOpQuantizationAttr(), buildMatMulOpWithQuantInfo(), MmaSyncBuilder::buildMmaSync(), buildNegateOpWithQuantInfo(), mlir::tosa::buildPadOpQuantizationAttr(), mlir::sparse_tensor::buildRelu(), buildSubAndExpOp(), mlir::tosa::buildUnaryOpQuantizationAttr(), calculateMemoryRequirements(), castBoolToIntN(), castIntNToBool(), castIntValueToSameSizedType(), castMFMAScaleOperand(), mlir::bufferization::castOrReallocMemRefValue(), castSameSizedTypes(), castToCompatibleMemRefType(), castToF32(), castToSameSizedInt(), ceilDivPositive(), checkLayout(), checkSymOperandList(), clampInput(), mlir::detail::TypedValue< Ty >::classof(), collapseInnerDims(), collapseOperandsAndResults(), mlir::linalg::collapseOpIterationDims(), collapseValue(), mlir::LLVM::composeValue(), mlir::ValueBoundsConstraintSet::computeBound(), mlir::linalg::computeSliceParameters(), computeTargetSize(), convertAcoshOp(), convertAsinhOp(), convertAtanhOp(), convertCeilOp(), convertCoshOp(), mlir::complex::convertDivToLLVMUsingRangeReduction(), mlir::complex::convertDivToStandardUsingRangeReduction(), convertExp2fOp(), convertFPowIOp(), convertIntrinsicResult(), convertMFMAVectorOperand(), convertPowfOp(), convertRoundOp(), convertScalarToComplexDtype(), mlir::convertScalarToDtype(), convertScalarToFpDtype(), convertScalarToIntDtype(), convertSinhOp(), convertTanOp(), convertToLaunchFuncOp(), convertUnsignedToI32(), copyIntegerRange(), create4x128BitSuffle(), mlir::linalg::createAdd(), mlir::nvgpu::createAsyncGroups(), createBinarySearchFunc(), mlir::tensor::createCanonicalRankReducingExtractSliceOp(), mlir::tensor::createCanonicalRankReducingInsertSliceOp(), mlir::memref::createCanonicalRankReducingSubViewOp(), createContractArithOp(), createDecl(), mlir::linalg::createDestinationPassingStyleInitOperand(), mlir::tensor::createDynamicDimValues(), mlir::emitc::createExpression(), createExtractAndCast(), mlir::linalg::createFoldedDimOp(), createFullPartialVectorTransferRead(), createGroupReduceOp(), createGroupReduceOpImpl(), createInsertAndCast(), mlir::LLVM::detail::createIntrinsicCall(), createLinalgBodyCalculationForElementwiseOp(), mlir::arm_sme::createLoopOverTileSlices(), createMemcpy(), mlir::vector::createOrFoldDimOp(), mlir::linalg::createOrFoldDimOp(), mlir::sparse_tensor::createOrFoldSliceOffsetOp(), mlir::sparse_tensor::createOrFoldSliceStrideOp(), createPartitionFunc(), createQuickSort(), createQuickSortFunc(), mlir::vector::createReadOrMaskedRead(), createScanLoop(), createSortStableFunc(), createSubViewIntersection(), createTruncatedFPValue(), mlir::tosa::createZPsAsConst(), declareReduction(), mlir::LLVM::decomposeValue(), mlir::bufferization::detail::defaultGetBufferType(), defaultIsSmallAlloc(), definitelyWritesOnlyWithinSlot(), delinearizeInductionVariable(), dispatchMappedValues(), mlir::xegpu::doSCFStructuralTypeConversionWithTensorType(), doubleBuffer(), downcastSelectAndUpcast(), mlir::bufferization::dropEquivalentBufferResults(), mlir::tensor::dropGivenUnitDims(), dropTrailingX1Dim(), dynamicallyExtractSubVector(), dynamicallyInsertSubVector(), emitElementwiseComputation(), ensureToBufferOpIsValid(), mlir::tosa::EqualizeRanks(), expandValue(), extendMaskRank(), extendVectorRank(), extractLastDimSlice(), extractNBitsPerByteAndExtendToI8(), extractNBitsPerByteAndSignExtendToI8(), mlir::xegpu::extractVectorsWithShapeFromValue(), findAssociatedValue(), mlir::detail::ConversionPatternRewriterImpl::findOrBuildReplacementValue(), mlir::bufferization::AnalysisState::findValueInReverseUseDefChain(), flattenVecToBits(), foldExtractFromBroadcast(), foreachIndividualVectorElement(), forwardStoreToLoad(), mlir::affine::fullyComposeAndComputeConstantDelta(), mlir::linalg::fuseProducerOfTensor(), genBuffers(), mlir::sparse_tensor::genCast(), genCompressed(), genConditionalInsert(), genConstantDenseAddressFromLevel(), generatePointWiseCopy(), genExp(), genExpand(), genIf(), mlir::sparse_tensor::genIndexLoad(), genInsertionLoad(), mlir::sparse_tensor::genIsNonzero(), genResult(), genSliceOffset(), genSliceStride(), genSliceToSize(), genStore(), genTensorLoad(), genTensorStore(), mlir::sparse_tensor::genToMemref(), getBroadcastingMap(), mlir::getBufferizationOptionsForSparsification(), getCollapsedOpOperand(), getConstantUint32(), getContext(), getConvOrPoolOutputDim(), getConvZeroPoints(), getDimValue(), getEffectedValues(), mlir::MemRefDescriptor::getElementPtrType(), mlir::getElementTypeOrSelf(), mlir::ValueBoundsConstraintSet::getExpr(), getFlatOffsetAndStrides(), getFlattenMemrefAndOffset(), getFullMemRefAsRegion(), getGenericEffectsImpl(), mlir::mesh::ElementwiseShardingInterface< ElemwiseOp >::getIndexingMaps(), mlir::spirv::getIntegerDotProductCapabilities(), mlir::xegpu::getLayoutAttr(), mlir::mesh::ElementwiseShardingInterface< ElemwiseOp >::getLoopIteratorTypes(), mlir::IntegerValueRange::getMaxRange(), mlir::bufferization::getMemRefType(), mlir::memref::getMixedSize(), mlir::tensor::getMixedSize(), mlir::memref::getMixedSizes(), mlir::tensor::getMixedSizes(), getMultiLevelStrides(), mlir::arith::getNeutralElement(), getNumNonTrivialIdxExpOnSparseLvls(), getOffsetForBitwidth(), mlir::spirv::getOpenCLElementPtr(), getOperandTreePredicates(), mlir::tensor::getOrCreateDestination(), getOrFoldTensorDim(), getProducerOfTensor(), mlir::xegpu::getRankOf(), getRegisterType(), getReturnTypes(), getScalarOrElementWidth(), mlir::ValueShapeRange::getShape(), getSharding(), getSlice(), mlir::sparse_tensor::getSparseTensorType(), getStorageElementTypeOrSelf(), getTreePredicates(), mlir::detail::TypedValue< Ty >::getType(), mlir::OpTrait::detail::MultiResultTraitBase< ConcreteType, TraitType >::getType(), getUnusedOutOperand(), mlir::getValueOrCreateCastToIndexLike(), mlir::nvgpu::getWarpMatrixInfo(), handleArgumentImpl(), handleByValArgumentInit(), mlir::LLVM::detail::handleMultidimensionalVectors(), handleResultImpl(), PadOpVectorizationWithTransferWritePattern::hasSameTensorSize(), inferCastResultType(), inferDynamicDimsForConv(), mlir::sparse_tensor::LoopEmitter::initialize(), mlir::sparse_tensor::LoopEmitter::initializeLoopEmit(), mlir::inlineCall(), inlineOmpRegionCleanup(), insertCopies(), insertCopyLoops(), insertLastDimSlice(), mlir::NVVM::PtxBuilder::insertValue(), mlir::LLVM::detail::intrinsicRewrite(), isAccessIndexInvariant(), isDefinedByCallTo(), mlir::OperationEquivalence::isEquivalentTo(), isGpuAsyncTokenType(), isMemref(), mlir::OperationEquivalence::isRegionEquivalentTo(), mlir::BufferOriginAnalysis::isSameAllocation(), isSparseTensor(), isUniformDefinition(), mlir::affine::isValidDim(), mlir::affine::isValidSymbol(), isValueCompatibleWithFullReplicationSharding(), mlir::bufferization::AnalysisState::isValueRead(), legalizeBlockArguments(), linalgBroadcastAndMaybeExt(), linalgIntBroadcastExtSIAdd(), mlir::sparse_tensor::loadAll(), mlir::loopUnrollByFactor(), mlir::linalg::makeMemRefCopyOp(), mlir::ValueTypeIterator< ValueIteratorT >::mapElement(), mlir::OperandElementTypeIterator::mapElement(), mlir::ResultElementTypeIterator::mapElement(), mlir::detail::constant_float_value_binder::match(), mlir::detail::constant_int_value_binder::match(), matchAndReplaceDepthwiseConv(), CmpFIntToFPConst::matchAndRewrite(), FoldTensorCastProducerOp::matchAndRewrite(), mlir::GPUPrintfOpToHIPLowering::matchAndRewrite(), ConvertSameRankInsertStridedSliceIntoShuffle::matchAndRewrite(), SwapTransposeWithBroadcast::matchAndRewrite(), MulExtendedFold< MulOp, IsSigned >::matchAndRewrite(), mlir::linalg::FoldTensorCastPackOp::matchAndRewrite(), ConvertAccessChain::matchAndRewrite(), IAddCarryFold::matchAndRewrite(), UMulExtendedOpXOne::matchAndRewrite(), ClampClampOptimization::matchAndRewrite(), MaxPool2dIsNoOp::matchAndRewrite(), mlir::linalg::FoldTensorCastUnPackOp::matchAndRewrite(), mlir::linalg::RegionMatcher::matchAsScalarBinaryOp(), mlir::affine::materializeComputedBound(), mlir::linalg::materializeTiledShape(), mlir::OpToFuncCallLowering< SourceOp >::maybeCast(), mlir::mesh::maybeInsertSourceShardingAnnotation(), mlir::dataflow::maybeReplaceWithConstant(), mlir::BufferViewFlowAnalysis::mayBeTerminalBuffer(), mlir::MemRefDescriptor::MemRefDescriptor(), mlir::x86vector::avx2::inline_asm::mm256BlendPsAsm(), movePaddingToFillOrGenericOp(), mlir::ArithBuilder::mul(), needFlatten(), needFlattening(), mlir::affine::normalizeMemRef(), mlir::OperationFolder::notifyRemoval(), SliceCanonicalizer::operator()(), mlir::nvgpu::optimizeSharedMemoryReadsAndWrites(), optionallyTruncateOrExtend(), outlineExecuteOp(), mlir::linalg::pack(), padOperandToSmallestStaticBoundingBox(), mlir::bufferization::populateDynamicDimSizes(), printAccVar(), printAttributions(), mlir::OpAsmPrinter::printFunctionalType(), printFunctionArgs(), printLoopControl(), printOneResultOp(), printOperation(), printScheduleClause(), printVar(), mlir::ValueBoundsConstraintSet::processWorklist(), mlir::scf::promote(), mlir::LLVMTypeConverter::promoteOneMemRefDescriptor(), rankReducingSubviewDroppingUnitDims(), reduce(), reduceIfNeeded(), reifyOrComputeDynamicSizes(), mlir::arith::reifyValueBound(), mlir::detail::ConversionPatternRewriterImpl::remapValues(), mlir::affine::MemRefDependenceGraph::removeEdge(), mlir::affine::replaceAllMemRefUsesWith(), mlir::scf::replaceAndCastForOpIterArg(), mlir::bufferization::replaceOpWithBufferizedValues(), replaceUsesAndPropagateType(), replaceWithConstant(), mlir::linalg::DownscaleSizeOneWindowed2DConvolution< Conv2DOp, Conv1DOp >::returningMatchAndRewrite(), mlir::linalg::DownscaleConv2DOp::returningMatchAndRewrite(), mlir::linalg::DownscaleDepthwiseConv2DNhwcHwcOp::returningMatchAndRewrite(), mlir::linalg::rewriteAsPaddedOp(), rewriteI2ToI8Ext(), rewriteI4ToI8Ext(), rewriteI8ToI4Trunc(), mlir::linalg::rewriteInIm2Col(), setInPlaceOpOperand(), mlir::sparse_tensor::SparseTensorSpecifier::setSpecifierField(), mlir::ArithBuilder::sgt(), shiftValue(), mlir::ArithBuilder::slt(), mlir::sparse_tensor::IterationGraphSorter::sort(), mlir::vector::splitFullAndPartialTransfer(), mlir::linalg::splitReduction(), mlir::linalg::splitReductionByScaling(), staticallyExtractSubvector(), staticallyInsertSubvector(), mlir::sparse_tensor::storeAll(), mlir::ArithBuilder::sub(), mlir::linalg::transposeBatchMatmul(), mlir::linalg::transposeMatmul(), transposeOneLinalgOperandAndReplace(), truncOrExtToLLVMType(), truncToI32(), mlir::sparse_tensor::tryGetSparseTensorType(), unpackOperandVector(), updateCalls(), mlir::ValueBoundsConstraintSet::Variable::Variable(), vectorizeDynamicConvOpPrecondition(), vectorShape(), verifyAllToAllOperandAndResultShape(), mlir::spirv::verifyAtomicUpdateOp(), verifyBlockReadWritePtrAndValTypes(), mlir::detail::verifyBranchSuccessorOperands(), mlir::spirv::verifyCastOp(), mlir::LLVM::detail::verifyDereferenceableOpInterface(), mlir::detail::verifyDestinationStyleOpInterface(), verifyGatherOperandAndResultShape(), verifyInitializationAttribute(), verifyInitLikeSingleArgRegion(), mlir::spirv::verifyIntegerDotProduct(), mlir::spirv::verifyLoadStorePtrAndValTypes(), verifyNumBlockArgs(), mlir::transform::detail::verifyPossibleTopLevelTransformOpTrait(), verifyReductionVarList(), verifyRescaleValueAndZpTypes(), mlir::OpTrait::impl::verifySameOperandsAndResultType(), mlir::OpTrait::impl::verifySameTypeOperands(), verifyScatterOrSliceOperandAndResultShape(), mlir::detail::verifyShapedDimOpInterface(), verifyShiftOp(), mlir::linalg::detail::verifyStructuredOpInterface(), mlir::transform::AtMostOneOpMatcherOpTrait< OpTy >::verifyTrait(), mlir::transform::SingleValueMatcherOpTrait< OpTy >::verifyTrait(), verifyYield(), visitUpward(), wmmaPushInputOperand(), wmmaPushOutputOperand(), and wrapExternalFunction().

getUsers()

Definition at line 218 of file Value.h.

References user_begin(), and user_end().

Referenced by mlir::memref::findDealloc(), mlir::detail::ConversionPatternRewriterImpl::findOrBuildReplacementValue(), mlir::LivenessBlockInfo::getEndOperation(), mlir::getForwardSlice(), mlir::mesh::getMeshSharding(), mlir::mesh::getResultShardings(), isEscapingMemref(), isLoadFromGlobalStoredToShared(), isOpLoopInvariant(), mlir::affine::isOpwiseShiftValid(), isSpMMCusparseLtOp(), TransposeIsReshape::matchAndRewrite(), mlir::matchReduction(), maybeCaptured(), noAliasingUseInLoop(), mlir::affine::normalizeMemRef(), mlir::affine::replaceAllMemRefUsesWith(), replaceForAllWithNewSignature(), shouldBeInlined(), tileAndFuseFirstExtractUseThroughContainingOpBlockArgument(), mlir::dataflow::IntegerRangeAnalysis::visitNonControlFlowArguments(), and mlir::dataflow::IntegerRangeAnalysis::visitOperation().

getUses()

use_range mlir::Value::getUses ( ) const inline

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

Definition at line 188 of file Value.h.

References use_begin(), and use_end().

Referenced by checkAssumptionForFusingConsumer(), checkDoubleConsume(), computeDestructuringInfo(), mlir::xegpu::doSCFStructuralTypeConversionWithTensorType(), dropRefIfNoUses(), getConsumerFromLoopUses(), getSingleTerminatorUse(), getSubViewUseIfUnique(), getUntiledConsumerFromSlice(), mlir::bufferization::AnalysisState::isValueRead(), mlir::bufferization::OneShotAnalysisState::isValueWritten(), mlir::linalg::LinalgCopyVTRForwardingPattern::matchAndRewrite(), mlir::mesh::maybeInsertTargetShardingAnnotation(), processValue(), mlir::replaceAllUsesInRegionWith(), mlir::RewriterBase::replaceAllUsesWith(), mlir::RewriterBase::replaceUsesWithIf(), and mlir::Liveness::resolveLiveness().

hasNUses()

bool Value::hasNUses ( unsigned n ) const

Return true if this Value has exactly n uses.

Definition at line 58 of file Value.cpp.

hasNUsesOrMore()

bool Value::hasNUsesOrMore ( unsigned n ) const

Return true if this value has n uses or more.

This is logically equivalent to getNumUses() >= N.

Definition at line 62 of file Value.cpp.

hasOneUse()

bool mlir::Value::hasOneUse ( ) const inline

isUsedOutsideOfBlock()

bool Value::isUsedOutsideOfBlock ( Block * block ) const

operator bool()

mlir::Value::operator bool ( ) const inlineexplicit

operator!=()

bool mlir::Value::operator!= ( const Value & other) const inline

operator==()

bool mlir::Value::operator== ( const Value & other) const inline

print() [1/3]

void Value::print ( raw_ostream & os ) const

print() [2/3]

void Value::print ( raw_ostream & os,
AsmState & state
) const

print() [3/3]

void Value::print ( raw_ostream & os,
const OpPrintingFlags & flags
) const

printAsOperand() [1/2]

void Value::printAsOperand ( raw_ostream & os,
AsmState & state
) const

Print this value as if it were an operand.

Definition at line 4053 of file AsmPrinter.cpp.

printAsOperand() [2/2]

void Value::printAsOperand ( raw_ostream & os,
const OpPrintingFlags & flags
) const

replaceAllUsesExcept() [1/2]

Replace all uses of 'this' value with 'newValue', updating anything in the IR that uses 'this' to use the other value instead except if the user is listed in 'exceptions' .

Replace all uses of 'this' value with the new value, updating anything in the IR that uses 'this' to use the other value instead except if the user is listed in 'exceptions' .

Definition at line 73 of file Value.cpp.

Referenced by mlirValueReplaceAllUsesExcept(), and mlir::affine::normalizeAffineParallel().

replaceAllUsesExcept() [2/2]

void Value::replaceAllUsesExcept ( Value newValue,
Operation * exceptedUser
)

Replace all uses of 'this' value with 'newValue', updating anything in the IR that uses 'this' to use the other value instead except if the user is 'exceptedUser'.

Definition at line 84 of file Value.cpp.

replaceAllUsesWith()

void mlir::Value::replaceAllUsesWith ( Value newValue) inline

replaceUsesWithIf()

setLoc()

setType()

void mlir::Value::setType ( Type newType) inline

shuffleUseList()

void Value::shuffleUseList ( ArrayRef< unsigned > indices )

Shuffle the use list order according to the provided indices.

Shuffles the use-list order according to the provided indices.

It is responsibility of the caller to make sure that the indices map the current use-list chain to another valid use-list chain.

Definition at line 108 of file Value.cpp.

use_begin()

use_empty()

bool mlir::Value::use_empty ( ) const inline

use_end()

user_begin()

user_end()

hash_value

::llvm::hash_code hash_value ( Value arg) friend

impl


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