Movatterモバイル変換


[0]ホーム

URL:


LLVM 20.0.0git
Classes |Public Types |Public Member Functions |Static Public Member Functions |Static Public Attributes |Protected Types |Protected Member Functions |Protected Attributes |Friends |List of all members
llvm::Value Class Reference

LLVMValue Representation.More...

#include "llvm/IR/Value.h"

Inheritance diagram for llvm::Value:
Inheritance graph
[legend]

Public Types

enum  ValueTy
 Concrete subclass of this.More...
 
using use_iterator = use_iterator_impl<Use >
 
using const_use_iterator = use_iterator_impl<constUse >
 
using user_iterator = user_iterator_impl<User >
 
using const_user_iterator = user_iterator_impl<constUser >
 

Public Member Functions

 Value (constValue &)=delete
 
Valueoperator= (constValue &)=delete
 
void deleteValue ()
 Delete a pointer to a genericValue.
 
void dump ()const
 Support for debugging, callable in GDB: V->dump()
 
TypegetType ()const
 All values are typed, get the type of this value.
 
LLVMContextgetContext ()const
 All values hold a context through their type.
 
bool hasName ()const
 
ValueNamegetValueName ()const
 
void setValueName (ValueName *VN)
 
StringRef getName ()const
 Return a constant reference to the value's name.
 
void setName (constTwine &Name)
 Change the name of the value.
 
void takeName (Value *V)
 Transfer the name from V to this value.
 
std::string getNameOrAsOperand ()const
 
void replaceAllUsesWith (Value *V)
 Change all uses of this to point to a newValue.
 
void replaceNonMetadataUsesWith (Value *V)
 Change non-metadata uses of this to point to a newValue.
 
void replaceUsesWithIf (Value *New,llvm::function_ref<bool(Use &U)> ShouldReplace)
 Go through the uses list for this definition and make each use point to "V" if the callback ShouldReplace returns true for the givenUse.
 
void replaceUsesOutsideBlock (Value *V,BasicBlock *BB)
 replaceUsesOutsideBlock - Go through the uses list for this definition and make each use point to "V" instead of "this" when the use is outside the block.
 
void assertModuleIsMaterializedImpl ()const
 
void assertModuleIsMaterialized ()const
 
bool use_empty ()const
 
bool materialized_use_empty ()const
 
use_iterator materialized_use_begin ()
 
const_use_iterator materialized_use_begin ()const
 
use_iterator use_begin ()
 
const_use_iterator use_begin ()const
 
use_iterator use_end ()
 
const_use_iterator use_end ()const
 
iterator_range<use_iteratormaterialized_uses ()
 
iterator_range<const_use_iteratormaterialized_uses ()const
 
iterator_range<use_iteratoruses ()
 
iterator_range<const_use_iteratoruses ()const
 
bool user_empty ()const
 
user_iterator materialized_user_begin ()
 
const_user_iterator materialized_user_begin ()const
 
user_iterator user_begin ()
 
const_user_iterator user_begin ()const
 
user_iterator user_end ()
 
const_user_iterator user_end ()const
 
Useruser_back ()
 
constUseruser_back ()const
 
iterator_range<user_iteratormaterialized_users ()
 
iterator_range<const_user_iteratormaterialized_users ()const
 
iterator_range<user_iteratorusers ()
 
iterator_range<const_user_iteratorusers ()const
 
bool hasOneUse ()const
 Return true if there is exactly one use of this value.
 
bool hasNUses (unsignedN)const
 Return true if thisValue has exactly N uses.
 
bool hasNUsesOrMore (unsignedN)const
 Return true if this value has N uses or more.
 
bool hasOneUser ()const
 Return true if there is exactly one user of this value.
 
UsegetSingleUndroppableUse ()
 Return true if there is exactly one use of this value that cannot be dropped.
 
constUsegetSingleUndroppableUse ()const
 
UsergetUniqueUndroppableUser ()
 Return true if there is exactly one unique user of this value that cannot be dropped (that user can have multiple uses of this value).
 
constUsergetUniqueUndroppableUser ()const
 
bool hasNUndroppableUses (unsignedN)const
 Return true if there this value.
 
bool hasNUndroppableUsesOrMore (unsignedN)const
 Return true if this value has N uses or more.
 
void dropDroppableUses (llvm::function_ref<bool(constUse *)> ShouldDrop=[](constUse *) { returntrue;})
 Remove every uses that can safely be removed.
 
void dropDroppableUsesIn (User &Usr)
 Remove every use of this value inUser that can safely be removed.
 
bool isUsedInBasicBlock (constBasicBlock *BB)const
 Check if this value is used in the specified basic block.
 
unsigned getNumUses ()const
 This method computes the number of uses of thisValue.
 
void addUse (Use &U)
 This method should only be used by theUse class.
 
unsigned getValueID ()const
 Return an ID for the concrete type of this object.
 
unsigned getRawSubclassOptionalData ()const
 Return the raw optional flags value contained in this value.
 
void clearSubclassOptionalData ()
 Clear the optional flags contained in this value.
 
bool hasSameSubclassOptionalData (constValue *V)const
 Check the optional flags for equality.
 
bool hasValueHandle ()const
 Return true if there is a value handle associated with this value.
 
bool isUsedByMetadata ()const
 Return true if there is metadata referencing this value.
 
bool isSwiftError ()const
 Return true if this value is a swifterror value.
 
constValuestripPointerCasts ()const
 Strip off pointer casts, all-zero GEPs and address space casts.
 
ValuestripPointerCasts ()
 
constValuestripPointerCastsAndAliases ()const
 Strip off pointer casts, all-zero GEPs, address space casts, and aliases.
 
ValuestripPointerCastsAndAliases ()
 
constValuestripPointerCastsSameRepresentation ()const
 Strip off pointer casts, all-zero GEPs and address space casts but ensures the representation of the result stays the same.
 
ValuestripPointerCastsSameRepresentation ()
 
constValuestripPointerCastsForAliasAnalysis ()const
 Strip off pointer casts, all-zero GEPs, single-argument phi nodes and invariant group info.
 
ValuestripPointerCastsForAliasAnalysis ()
 
constValuestripInBoundsConstantOffsets ()const
 Strip off pointer casts and all-constant inbounds GEPs.
 
ValuestripInBoundsConstantOffsets ()
 
constValuestripAndAccumulateConstantOffsets (constDataLayout &DL,APInt &Offset,bool AllowNonInbounds,bool AllowInvariantGroup=false,function_ref<bool(Value &Value,APInt &Offset)> ExternalAnalysis=nullptr)const
 Accumulate the constant offset this value has compared to a base pointer.
 
ValuestripAndAccumulateConstantOffsets (constDataLayout &DL,APInt &Offset,bool AllowNonInbounds,bool AllowInvariantGroup=false,function_ref<bool(Value &Value,APInt &Offset)> ExternalAnalysis=nullptr)
 
constValuestripAndAccumulateInBoundsConstantOffsets (constDataLayout &DL,APInt &Offset)const
 This is a wrapper around stripAndAccumulateConstantOffsets with the in-bounds requirement set to false.
 
ValuestripAndAccumulateInBoundsConstantOffsets (constDataLayout &DL,APInt &Offset)
 
constValuestripInBoundsOffsets (function_ref< void(constValue *)> Func=[](constValue *) {})const
 Strip off pointer casts and inbounds GEPs.
 
ValuestripInBoundsOffsets (function_ref< void(constValue *)> Func=[](constValue *) {})
 
std::optional< int64_t > getPointerOffsetFrom (constValue *Other,constDataLayout &DL)const
 If this ptr is provably equal toOther plus a constant offset, return that offset in bytes.
 
bool canBeFreed ()const
 Return true if the memory object referred to by V can by freed in the scope for which the SSA value defining the allocation is statically defined.
 
uint64_t getPointerDereferenceableBytes (constDataLayout &DL,bool &CanBeNull,bool &CanBeFreed)const
 Returns the number of bytes known to be dereferenceable for the pointer value.
 
Align getPointerAlignment (constDataLayout &DL)const
 Returns an alignment of the pointer value.
 
constValueDoPHITranslation (constBasicBlock *CurBB,constBasicBlock *PredBB)const
 Translate PHI node to its predecessor from the given basic block.
 
ValueDoPHITranslation (constBasicBlock *CurBB,constBasicBlock *PredBB)
 
void mutateType (Type *Ty)
 Mutate the type of thisValue to be of the specified type.
 
template<class Compare >
void sortUseList (Compare Cmp)
 Sort the use-list.
 
void reverseUseList ()
 Reverse the use-list.
 
void print (raw_ostream &O,bool IsForDebug=false)const
 Implement operator<< onValue.
 
void print (raw_ostream &O,ModuleSlotTracker &MST,bool IsForDebug=false)const
 
void printAsOperand (raw_ostream &O,bool PrintType=true,constModule *M=nullptr)const
 Print the name of thisValue out to the specifiedraw_ostream.
 
void printAsOperand (raw_ostream &O,bool PrintType,ModuleSlotTracker &MST)const
 

Static Public Member Functions

static void dropDroppableUse (Use &U)
 Remove the droppable useU.
 

Static Public Attributes

static constexprunsigned MaxAlignmentExponent = 32
 The maximum alignment for instructions.
 
static constexpruint64_t MaximumAlignment = 1ULL <<MaxAlignmentExponent
 

Protected Types

enum  : unsigned {NumUserOperandsBits = 27 }
 The number of operands in the subclass.More...
 

Protected Member Functions

 Value (Type *Ty,unsigned scid)
 
 ~Value ()
 Value's destructor should be virtual by design, but that would require thatValue and all of its subclasses have a vtable that effectively duplicates the information in the value ID.
 
void getAllMetadata (SmallVectorImpl< std::pair<unsigned,MDNode * > > &MDs)const
 Appends all metadata attached to this value toMDs, sorting by KindID.
 
bool hasMetadata ()const
 Return true if this value has any metadata attached to it.
 
bool eraseMetadata (unsigned KindID)
 Erase all metadata attachments with the given kind.
 
void eraseMetadataIf (function_ref<bool(unsigned,MDNode *)> Pred)
 Erase all metadata attachments matching the given predicate.
 
void clearMetadata ()
 Erase all metadata attached to thisValue.
 
MDNodegetMetadataImpl (unsigned KindID)const
 Get metadata for the given kind, if any.
 
unsigned short getSubclassDataFromValue ()const
 
void setValueSubclassData (unsigned shortD)
 
MDNodegetMetadata (unsigned KindID)const
 Get the current metadata attachments for the given kind, if any.
 
MDNodegetMetadata (StringRef Kind)const
 
void getMetadata (unsigned KindID,SmallVectorImpl<MDNode * > &MDs)const
 Appends all attachments with the given ID toMDs in insertion order.
 
void getMetadata (StringRef Kind,SmallVectorImpl<MDNode * > &MDs)const
 
bool hasMetadata (unsigned KindID)const
 Return true if this value has the given type of metadata attached.
 
bool hasMetadata (StringRef Kind)const
 
void setMetadata (unsigned KindID,MDNode *Node)
 Set a particular kind of metadata attachment.
 
void setMetadata (StringRef Kind,MDNode *Node)
 
void addMetadata (unsigned KindID,MDNode &MD)
 Add a metadata attachment.
 
void addMetadata (StringRef Kind,MDNode &MD)
 

Protected Attributes

unsignedchar SubclassOptionalData: 7
 Hold subclass data that can be dropped.
 
unsigned NumUserOperands:NumUserOperandsBits
 
unsigned IsUsedByMD: 1
 
unsigned HasName: 1
 
unsigned HasMetadata: 1
 
unsigned HasHungOffUses: 1
 
unsigned HasDescriptor: 1
 

Friends

class ValueAsMetadata
 
class ValueHandleBase
 

Detailed Description

LLVMValue Representation.

This is a very important LLVM class. It is the base class of all values computed by a program that may be used as operands to other values.Value is the super class of other important classes such asInstruction andFunction. All Values have aType.Type is not a subclass ofValue. Some values can have a name and they belong to someModule. Setting the name on theValue automatically updates the module's symbol table.

Every value has a "use list" that keeps track of which other Values are using thisValue. AValue can also have an arbitrary number of ValueHandle objects that watch it and listen to RAUW and Destroy events. Seellvm/IR/ValueHandle.h for details.

Definition at line74 of fileValue.h.

Member Typedef Documentation

◆ const_use_iterator

usingllvm::Value::const_use_iterator = use_iterator_impl<constUse>

Definition at line354 of fileValue.h.

◆ const_user_iterator

usingllvm::Value::const_user_iterator = user_iterator_impl<constUser>

Definition at line391 of fileValue.h.

◆ use_iterator

usingllvm::Value::use_iterator = use_iterator_impl<Use>

Definition at line353 of fileValue.h.

◆ user_iterator

usingllvm::Value::user_iterator = user_iterator_impl<User>

Definition at line390 of fileValue.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum :unsigned
protected

The number of operands in the subclass.

This member is defined by this class, but not used for anything. Subclasses can use it to store their number of operands, if they have any.

This is stored here to save space inUser on 64-bit hosts. Since most instances ofValue have operands, 32-bit hosts aren't significantly affected.

Note, this shouldNOT be used directly by any class other thanUser.User uses this value to find theUse list.

Enumerator
NumUserOperandsBits 

Definition at line107 of fileValue.h.

◆ ValueTy

enumllvm::Value::ValueTy

Concrete subclass of this.

An enumeration for keeping track of the concrete subclass ofValue that is actually instantiated. Values of this enumeration are kept in theValue classes SubclassID field. They are used for concrete type identification.

Definition at line513 of fileValue.h.

Constructor & Destructor Documentation

◆ Value()[1/2]

Value::Value(TypeTy,
unsigned scid 
)
protected

Definition at line53 of fileValue.cpp.

Referencesllvm::sandboxir::Value::Ctx,llvm::sandboxir::Tracker::emplaceIfTracking(),llvm::sandboxir::Context::getTracker(),llvm::Use::getUser(), andllvm::sandboxir::Context::getValue().

Referenced byllvm::cl::ValuesClass::apply(),llvm::generateBuiltinVar(),llvm::generateGetQueryInst(),llvm::generateWaveInst(),llvm::pdb::PDBSymbolCompilandEnv::getValue(),llvm::yaml::ScalarTraits< UnsignedValue >::input(),llvm::yaml::MappingTraits< MachineConstantPoolValue >::mapping(),llvm::operator<<(),llvm::pdb::operator<<(),llvm::operator==(),llvm::yaml::ScalarTraits< UnsignedValue >::output(),valuesOverlap(), andllvm::logicalview::LVSymbolVisitor::visitKnownRecord().

◆ ~Value()

Value::~Value()
protected

Value's destructor should be virtual by design, but that would require thatValue and all of its subclasses have a vtable that effectively duplicates the information in the value ID.

As a size optimization, the destructor has been protected, and the caller should manually call deleteValue.

Definition at line76 of fileValue.cpp.

◆ Value()[2/2]

llvm::Value::Value(constValue)
delete

Member Function Documentation

◆ addMetadata()[1/2]

void Value::addMetadata(StringRef Kind,
MDNodeMD 
)
protected

Definition at line1572 of fileMetadata.cpp.

ReferencesaddMetadata(), andgetContext().

◆ addMetadata()[2/2]

void Value::addMetadata(unsigned KindID,
MDNodeMD 
)
protected

Add a metadata attachment.

Definition at line1565 of fileMetadata.cpp.

Referencesassert(),getContext(),HasMetadata,llvm::LLVMContext::pImpl, andllvm::LLVMContextImpl::ValueMetadata.

Referenced byaddMetadata().

◆ addUse()

void llvm::Value::addUse(UseU)
inline

This method should only be used by theUse class.

Definition at line505 of fileValue.h.

◆ assertModuleIsMaterialized()

void llvm::Value::assertModuleIsMaterialized() const
inline

Definition at line338 of fileValue.h.

ReferencesassertModuleIsMaterializedImpl().

Referenced byuse_begin(),use_empty(),user_back(),user_begin(),user_empty(),users(), anduses().

◆ assertModuleIsMaterializedImpl()

void Value::assertModuleIsMaterializedImpl() const

Definition at line456 of fileValue.cpp.

Referenced byassertModuleIsMaterialized().

◆ canBeFreed()

bool Value::canBeFreed() const

Return true if the memory object referred to by V can by freed in the scope for which the SSA value defining the allocation is statically defined.

E.g. deallocation after the static scope of a value does not count, but a deallocation before that does.

Definition at line790 of fileValue.cpp.

◆ clearMetadata()

void Value::clearMetadata()
protected

Erase all metadata attached to thisValue.

Definition at line1603 of fileMetadata.cpp.

Referencesassert(),getContext(),HasMetadata,llvm::LLVMContext::pImpl, andllvm::LLVMContextImpl::ValueMetadata.

Referenced byeraseMetadata(), anderaseMetadataIf().

◆ clearSubclassOptionalData()

void llvm::Value::clearSubclassOptionalData()
inline

Clear the optional flags contained in this value.

Definition at line544 of fileValue.h.

ReferencesSubclassOptionalData.

◆ deleteValue()

void Value::deleteValue()

Delete a pointer to a genericValue.

Definition at line110 of fileValue.cpp.

Referenced byllvm::BitcodeReaderValueList::assignValue(), andllvm::ilist_alloc_traits< MemoryAccess >::deleteNode().

◆ DoPHITranslation()[1/2]

Value * llvm::Value::DoPHITranslation(constBasicBlockCurBB,
constBasicBlockPredBB 
)
inline

Definition at line801 of fileValue.h.

ReferencesDoPHITranslation().

◆ DoPHITranslation()[2/2]

constValue * Value::DoPHITranslation(constBasicBlockCurBB,
constBasicBlockPredBB 
) const

Translate PHI node to its predecessor from the given basic block.

If this value is a PHI node with CurBB as its parent, return the value in the PHI node corresponding to PredBB. If not, return ourself. This is useful if you want to know the value something has in a predecessor block.

Definition at line1067 of fileValue.cpp.

Referenced byllvm::JumpThreadingPass::computeValueKnownInPredecessorsImpl(),DoPHITranslation(),llvm::InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse(), andllvm::JumpThreadingPass::simplifyPartiallyRedundantLoad().

◆ dropDroppableUse()

void Value::dropDroppableUse(UseU)
static

Remove the droppable useU.

Definition at line217 of fileValue.cpp.

Referenced byremoveIntrinsicUsers(), andllvm::InstCombinerImpl::visitCallInst().

◆ dropDroppableUses()

void Value::dropDroppableUses(llvm::function_ref<bool(constUse *)> ShouldDrop =[](const Use *) { return true; })

Remove every uses that can safely be removed.

This will remove for example uses in llvm.assume. This should be used when performing want to perform a tranformation but some Droppable uses pervent it. This function optionally takes a filter to only remove some droppable uses.

Definition at line199 of fileValue.cpp.

◆ dropDroppableUsesIn()

void Value::dropDroppableUsesIn(UserUsr)

Remove every use of this value inUser that can safely be removed.

Definition at line209 of fileValue.cpp.

◆ dump()

LLVM_DUMP_METHOD void Value::dump() const

Support for debugging, callable in GDB: V->dump()

Definition at line5304 of fileAsmWriter.cpp.

Referencesllvm::dbgs(), andprint().

Referenced byCanWidenIV(),checkPHIs(),DoFlattenLoopPair(),llvm::DbgValueLocEntry::dump(),llvm::CodeExtractor::extractCodeRegion(),findLoopComponents(),llvm::AArch64TargetLowering::lowerDeinterleaveIntrinsicToLoad(),llvm::GlobalMergeFunc::merge(),setLoopComponents(), andsinkAndCmp0Expression().

◆ eraseMetadata()

bool Value::eraseMetadata(unsigned KindID)
protected

Erase all metadata attachments with the given kind.

Returns
true if any metadata was removed.

Definition at line1576 of fileMetadata.cpp.

ReferencesclearMetadata(),getContext(),HasMetadata,llvm::LLVMContext::pImpl, andllvm::LLVMContextImpl::ValueMetadata.

◆ eraseMetadataIf()

void Value::eraseMetadataIf(function_ref<bool(unsigned,MDNode *)> Pred)
protected

Erase all metadata attachments matching the given predicate.

Definition at line1588 of fileMetadata.cpp.

Referencesassert(),clearMetadata(),getContext(),HasMetadata,I,Info,llvm::LLVMContext::pImpl, andllvm::LLVMContextImpl::ValueMetadata.

Referenced byllvm::Instruction::dropUnknownNonDebugMetadata(), andllvm::Instruction::eraseMetadataIf().

◆ getAllMetadata()

void Value::getAllMetadata(SmallVectorImpl< std::pair<unsigned,MDNode * > > & MDs) const
protected

Appends all metadata attached to this value toMDs, sorting by KindID.

The first element of each pair returned is the KindID, the second element is the metadata value. Attachments with the same ID appear in insertion order.

Definition at line1521 of fileMetadata.cpp.

Referencesassert(),getContext(),hasMetadata(),Info,llvm::LLVMContext::pImpl, andllvm::LLVMContextImpl::ValueMetadata.

◆ getContext()

LLVMContext & Value::getContext() const

All values hold a context through their type.

Definition at line1075 of fileValue.cpp.

Referenced byllvm::Instruction::addAnnotationMetadata(),llvm::GlobalVariable::addAttribute(),llvm::CallBase::addAttributeAtIndex(),llvm::CallBase::addDereferenceableParamAttr(),llvm::CallBase::addDereferenceableRetAttr(),llvm::addDiffRuntimeChecks(),llvm::CallBase::addFnAttr(),addMetadata(),AddParamAndFnBasicAttributes(),llvm::CallBase::addParamAttr(),llvm::CallBase::addRangeRetAttr(),llvm::CallBase::addRetAttr(),llvm::addRuntimeChecks(),llvm::memprof::CallStackTrie::addSingleAllocTypeAttribute(),llvm::GlobalObject::addTypeMetadata(),llvm::DbgVariableIntrinsic::addVariableLocationOps(),adjustInliningThresholdUsingCallee(),annotateDereferenceableBytes(),llvm::SelectInst::areInvalidOperands(),llvm::memprof::CallStackTrie::buildAndAttachMIBMetadata(),buildIntrinsicArgTypes(),canonicalizeForInvariantConditionInjection(),clearMetadata(),llvm::CoroIdInst::clearPromise(),llvm::FenceInst::cloneImpl(),llvm::UnreachableInst::cloneImpl(),llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(),computePointerDifference(),llvm::ConstantFoldBinaryInstruction(),llvm::ConstantFoldCompareInstOperands(),llvm::ConstantFoldCompareInstruction(),llvm::ConstantFoldInsertElementInstruction(),llvm::ConstantFoldShuffleVectorInstruction(),convertMetadataToAssumes(),llvm::GlobalObject::copyMetadata(),copyMetadataForAtomic(),llvm::copyMetadataForLoad(),llvm::copyNonnullMetadata(),llvm::copyRangeMetadata(),llvm::ARMConstantPoolConstant::Create(),llvm::createCallMatchingInvoke(),llvm::IRBuilderBase::CreateElementUnorderedAtomicMemMove(),llvm::IRBuilderBase::CreateMaskedCompressStore(),llvm::IRBuilderBase::CreateMaskedExpandLoad(),llvm::InstCombinerImpl::CreateNonTerminatorUnreachable(),llvm::createPGONameMetadata(),llvm::IRBuilderBase::CreatePreserveArrayAccessIndex(),llvm::IRBuilderBase::CreatePreserveStructAccessIndex(),CreatePrologue(),llvm::IRBuilderBase::CreateThreadLocalAddress(),despeculateCountZeros(),diagnoseInvalidFormatString(),llvm::Instruction::dropLocation(),emitAtomicRMWLegalRemark(),emitDbgAssign(),emitGlobalConstantVector(),llvm::GVNExpression::CallExpression::equals(),eraseMetadata(),eraseMetadataIf(),llvm::VPWidenLoadEVLRecipe::execute(),llvm::VPWidenStoreEVLRecipe::execute(),expandBounds(),expandToSwitch(),llvm::SCEVExpander::expandUnionPredicate(),llvm::SCEVExpander::expandWrapPredicate(),llvm::VPIRInstruction::extractLastLaneOfOperand(),extractMDNode(),foldInsSequenceIntoSplat(),foldLoadsRecursive(),foldURemOfLoopIncrement(),llvm::hlsl::FrontendResource::FrontendResource(),llvm::SCEVExpander::generateOverflowCheck(),llvm::DSOLocalEquivalent::get(),llvm::NoCFIValue::get(),llvm::ConstantExpr::get(),llvm::Instruction::getAAMetadata(),getAccessType(),llvm::Constant::getAggregateElement(),getAllMetadata(),llvm::GlobalVariable::getAttributesAsList(),llvm::Attributor::getAttrsFromAssumes(),llvm::getDebugValueLoc(),llvm::ConstantDataSequential::getElementAsConstant(),llvm::ScalarEvolution::getElementSize(),llvm::ConstantExpr::getExtractElement(),llvm::ConstantExpr::getInsertElement(),getKnownValueOnEdge(),getMemCmpLoad(),getMetadata(),getMetadataImpl(),llvm::GlobalValue::getPartition(),getPointerOperandAndType(),getPreferredVectorIndex(),llvm::GlobalValue::getSanitizerMetadata(),llvm::Constant::getSplatValue(),llvm::SITargetLowering::getTgtMemIntrinsic(),llvm::ConstantStruct::getTypeForElements(),getVTableAddrForProfData(),handleBrSelExpect(),llvm::ValueAsMetadata::handleRAUW(),llvm::Attributor::hasAttr(),IdentifyValidPoisonGeneratingAttributes(),IdentifyValidUBGeneratingAttributes(),llvm::InlineFunction(),inlineRetainOrClaimRVCalls(),llvm::DIBuilder::insertDbgAssign(),insertNewDbgInst(),insertSpills(),llvm::intersectAccessGroups(),llvm::AAWillReturn::isImpliedByIR(),llvm::AANoUndef::isImpliedByIR(),isLoadCombineCandidateImpl(),isPointerAlwaysReplaceable(),lowerAwaitSuspend(),llvm::AMDGPUAsmPrinter::lowerConstant(),llvm::RISCVTargetLowering::lowerDeinterleaveIntrinsicToLoad(),llvm::RISCVTargetLowering::lowerInterleavedLoad(),llvm::RISCVTargetLowering::lowerInterleavedStore(),llvm::IntrinsicLowering::LowerIntrinsicCall(),lowerSubFn(),llvm::makeGuardControlFlowExplicit(),makeStatepointExplicitImpl(),llvm::Attributor::manifestAttrs(),matchFPExtFromF16(),maySpeculateLanes(),mergeAttributesAndFlags(),llvm::MergeBasicBlockIntoOnlyPred(),mergeCompatibleInvokesImpl(),migrateDebugInfo(),llvm::Negator::Negate(),OptimizeGlobalAddressOfAllocation(),optimizeMemCmpConstantSize(),OptimizeNoopCopyExpression(),llvm::CallBase::populateBundleOperandInfos(),populateOperands(),processCallSite(),processUGT_ADDCST_ADD(),promoteAllocaUserToVector(),llvm::pgo::promoteIndirectCall(),llvm::propagateMetadata(),llvm::ReadByteArrayFromGlobal(),llvm::CallBase::removeAttributeAtIndex(),llvm::CallBase::removeFnAttr(),llvm::CallBase::removeFnAttrs(),llvm::CallBase::removeParamAttr(),llvm::CallBase::removeParamAttrs(),llvm::CallBase::removeRetAttr(),llvm::CallBase::removeRetAttrs(),llvm::GlobalValue::removeSanitizerMetadata(),llvm::coro::replaceCoroFree(),ReplaceFPIntrinsicWithCall(),llvm::DbgVariableIntrinsic::replaceVariableLocationOp(),scalarizeMaskedCompressStore(),scalarizeMaskedExpandLoad(),scalarizeMaskedGather(),scalarizeMaskedLoad(),scalarizeMaskedScatter(),scalarizeMaskedStore(),scalarizeMaskedVectorHistogram(),selectExplicitSectionGlobal(),llvm::DbgAssignIntrinsic::setAddress(),llvm::DbgAssignIntrinsic::setAssignId(),llvm::MemIntrinsicBase< Derived >::setDestAlignment(),llvm::AtomicMemIntrinsic::setElementSizeInBytes(),llvm::InstrProfCntrInstBase::setIndex(),llvm::setInlineRemark(),llvm::DbgLabelInst::setLabel(),llvm::setLoopEstimatedTripCount(),llvm::CallBase::setMemoryEffects(),llvm::Instruction::setMetadata(),setMetadata(),llvm::Instruction::setNoSanitizeMetadata(),llvm::GlobalValue::setPartition(),llvm::DbgVariableIntrinsic::setRawLocation(),llvm::GlobalValue::setSanitizerMetadata(),llvm::NoAliasScopeDeclInst::setScopeList(),llvm::GlobalObject::setSection(),llvm::DbgAssignIntrinsic::setValue(),llvm::GlobalObject::setVCallVisibilityMetadata(),shortenAssignment(),llvm::SITargetLowering::shouldExpandAtomicRMWInIR(),shrinkFPConstant(),simplifyUsingControlFlow(),simplifyX86MaskedStore(),splitGlobal(),llvm::SplitKnownCriticalEdge(),llvm::coro::suppressCoroAllocs(),llvm::CallBase::tryIntersectAttributes(),tryToMoveFreeBeforeNullTest(),TryToShrinkGlobalToBoolean(),turnGuardIntoBranch(),unswitchNontrivialInvariants(),unswitchTrivialBranch(),llvm::UpgradeGlobalVariable(),llvm::UpgradeIntrinsicCall(),verifyTripCount(),llvm::InstCombinerImpl::visitBitCast(),llvm::InstCombinerImpl::visitCallInst(),llvm::InstCombinerImpl::visitExtractElementInst(),llvm::InstCombinerImpl::visitIntToPtr(),llvm::InstCombinerImpl::visitPtrToInt(),llvm::InstCombinerImpl::visitReturnInst(),llvm::dxil::UAVResource::write(), andllvm::dxil::ConstantBuffer::write().

◆ getMetadata()[1/4]

MDNode * Value::getMetadata(StringRef Kind) const
protected

Definition at line1498 of fileMetadata.cpp.

ReferencesgetContext(),llvm::LLVMContext::getMDKindID(),getMetadataImpl(), andhasMetadata().

◆ getMetadata()[2/4]

void Value::getMetadata(StringRef Kind,
SmallVectorImpl<MDNode * > & MDs 
) const
protected

Definition at line1516 of fileMetadata.cpp.

ReferencesgetContext(),getMetadata(), andhasMetadata().

◆ getMetadata()[3/4]

MDNode * llvm::Value::getMetadata(unsigned KindID) const
inlineprotected

Get the current metadata attachments for the given kind, if any.

These functions require that the value have at most a single attachment of the given kind, and returnnullptr if such an attachment is missing.

Definition at line565 of fileValue.h.

ReferencesgetMetadataImpl(), andHasMetadata.

Referenced bygetMetadata(), andhasMetadata().

◆ getMetadata()[4/4]

void Value::getMetadata(unsigned KindID,
SmallVectorImpl<MDNode * > & MDs 
) const
protected

Appends all attachments with the given ID toMDs in insertion order.

If theValue has no attachments with the given ID, or if ID is invalid, leaves MDs unchanged.

Definition at line1511 of fileMetadata.cpp.

ReferencesgetContext(),hasMetadata(),llvm::LLVMContext::pImpl, andllvm::LLVMContextImpl::ValueMetadata.

◆ getMetadataImpl()

MDNode * Value::getMetadataImpl(unsigned KindID) const
protected

Get metadata for the given kind, if any.

This is an internal function that must only be called after checking thathasMetadata() returns true.

Definition at line1505 of fileMetadata.cpp.

ReferencesgetContext(),llvm::MDAttachments::lookup(),llvm::LLVMContext::pImpl, andllvm::LLVMContextImpl::ValueMetadata.

Referenced bygetMetadata().

◆ getName()

StringRef Value::getName() const

Return a constant reference to the value's name.

This guaranteed to return the same reference as long as the value is not modified. If the value has a name, this does a hashtable lookup, so it's not free.

Definition at line309 of fileValue.cpp.

Referenced byAddAliasScopeMetadata(),llvm::SSAUpdaterBulk::AddAvailableValue(),llvm::addDiffRuntimeChecks(),addEmuTlsVar(),addMappingsFromTLI(),addReplicateRegions(),aspaceWrapValue(),llvm::WinException::beginFunction(),buildDebugInfoForNoopResumeDestroyFunc(),llvm::SPIRVGlobalRegistry::buildGlobalVariable(),calcPredicateUsingBooleans(),calcPredicateUsingInteger(),llvm::BranchProbabilityInfo::calculate(),calculateCXXStateNumbers(),calculateSEHStateNumbers(),llvm::InstCombinerImpl::canonicalizeCondSignextOfHighBitExtractToSignextHighBitExtract(),CanPropagatePredecessorsForPHIs(),llvm::LoopVectorizationLegality::canVectorize(),llvm::changeToInvokeAndSplitBasicBlock(),llvm::Attributor::checkForAllCallSites(),llvm::CloneBasicBlock(),llvm::orc::cloneGlobalAliasDecl(),llvm::orc::cloneGlobalVariableDecl(),llvm::JumpThreadingPass::cloneInstructions(),cloneInstructionsIntoPredecessorBlockAndUpdateSSAUses(),CloneLoopBlocks(),llvm::colorEHFunclets(),llvm::InstCombinerImpl::combineLoadToNewType(),llvm::logicalview::compareName(),compareNames(),llvm::VPBasicBlock::connectToPredecessors(),constructEntryMetadata(),llvm::convertToDeclaration(),copyLinkageVisibility(),llvm::CallBrInst::Create(),llvm::CallInst::Create(),createCloneDeclaration(),createInvariantCond(),createMemprofDefaultOptionsVar(),createMergedFunction(),llvm::createPGONameMetadata(),llvm::OpenMPIRBuilder::createReductionsGPU(),llvm::OpenMPIRBuilder::createTargetDeinit(),llvm::OpenMPIRBuilder::createTargetInit(),createUnreachableSwitchDefault(),llvm::SPIRV::ConvergenceRegion::dump(),llvm::dumpBasicBlockLabel(),llvm::CFGMST< Edge, BBInfo >::dumpEdges(),llvm::sandboxir::BasicBlock::dumpOS(),llvm::JumpThreadingPass::duplicateCondBranchOnPHIIntoPred(),llvm::DuplicateInstructionsInSplitBetween(),llvm::OpenMPIRBuilder::emitCancelationCheckImpl(),llvm::SystemZAsmPrinter::emitFunctionEntryLabel(),llvm::ExecutionEngine::emitGlobals(),llvm::AMDGPUAsmPrinter::emitGlobalVariable(),llvm::LoopVectorizationPlanner::emitInvalidCostRemarks(),llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitKernelArg(),llvm::emitLinkerFlagsForGlobalCOFF(),llvm::emitLinkerFlagsForUsedCOFF(),llvm::AsmPrinter::emitSpecialLLVMGlobal(),emitTransformedIndex(),llvm::BranchProbabilityInfo::eraseBlock(),llvm::logicalview::LVCompare::execute(),llvm::VPBasicBlock::executeRecipes(),expandCrossIntrinsic(),expandToSwitch(),llvm::CodeExtractor::extractCodeRegion(),llvm::ExtractTypeInfo(),llvm::MustBeExecutedContextExplorer::findBackwardJoinPoint(),findBasePointer(),llvm::MustBeExecutedContextExplorer::findForwardJoinPoint(),fixIrreducible(),fixupDebugInfoPostExtraction(),foldCondBranchOnValueKnownInPredecessorImpl(),llvm::InstCombinerImpl::foldFreezeIntoRecurrence(),llvm::InstCombinerImpl::foldICmpAndConstConst(),llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(),llvm::InstCombinerImpl::foldICmpShlConstant(),llvm::InstCombinerImpl::foldICmpShrConstant(),llvm::InstCombinerImpl::foldIntegerTypedPHI(),foldMulShl1(),llvm::InstCombinerImpl::foldPHIArgBinOpIntoPHI(),llvm::InstCombinerImpl::foldPHIArgExtractValueInstructionIntoPHI(),llvm::InstCombinerImpl::foldPHIArgGEPIntoPHI(),llvm::InstCombinerImpl::foldPHIArgInsertValueInstructionIntoPHI(),llvm::InstCombinerImpl::foldPHIArgLoadIntoPHI(),llvm::InstCombinerImpl::foldPHIArgOpIntoPHI(),foldReductionIdiom(),foldSelectICmpLshrAshr(),foldSignedTruncationCheck(),foldTwoEntryPHINode(),llvm::InstCombinerImpl::foldVectorBinop(),forceRenaming(),llvm::JITSymbolFlags::fromGlobalValue(),generateUnsignedDivisionCode(),llvm::ReplayInlineAdvisor::getAdviceImpl(),llvm::dxil::ResourceBindingInfo::getAsMetadata(),llvm::bfi_detail::getBlockName(),getBranchHint(),llvm::DeadArgumentEliminationPass::RetOrArg::getDescription(),llvm::TargetLoweringObjectFileMachO::getExplicitSectionGlobal(),llvm::HexagonTargetObjectFile::getExplicitSectionGlobal(),llvm::MachineBasicBlock::getFullName(),getFuncAddrForProfData(),llvm::GlobalValue::getGlobalIdentifier(),llvm::DOTGraphTraits< DOTFuncInfo * >::getGraphName(),llvm::DOTGraphTraits< DOTFuncMSSAInfo * >::getGraphName(),llvm::getIRPGONameForGlobalObject(),llvm::TargetLibraryInfoImpl::getLibFunc(),llvm::ExecutionEngine::getMangledName(),llvm::MachineFunction::getName(),llvm::sandboxir::Value::getName(),llvm::Mangler::getNameWithPrefix(),llvm::DOTGraphTraits< AttributorCallGraph * >::getNodeLabel(),llvm::OpenMPIRBuilder::getOrCreateRuntimeFunction(),llvm::AArch64Subtarget::getPtrAuthBlockAddressDiscriminatorIfEnabled(),llvm::TargetLoweringObjectFileXCOFF::getSectionForExternalReference(),llvm::LazyValueInfoImpl::getValueAt(),llvm::LazyValueInfoImpl::getValueInBlock(),llvm::LazyValueInfoImpl::getValueOnEdge(),getVarName(),HandleByValArgument(),HandleInlinedEHPad(),llvm::SuspendCrossingInfo::hasPathCrossingSuspendPoint(),llvm::SuspendCrossingInfo::hasPathOrLoopCrossingSuspendPoint(),hoistBOAssociation(),hoistMinMax(),llvm::FunctionImporter::importFunctions(),llvm::logicalview::LVBinaryReader::includeInlineeLines(),INITIALIZE_PASS(),llvm::SelectionDAGISel::initializeAnalysisResults(),injectPendingInvariantConditions(),llvm::InlineFunction(),llvm::InsertPreheaderForLoop(),insertSpills(),insertUniqueBackedgeBlock(),llvm::Attributor::internalizeFunctions(),llvm::InternalizePass::internalizeModule(),llvm::InvertBranch(),llvm::invertCondition(),llvm::isControlFlowEquivalent(),llvm::HexagonTargetObjectFile::isGlobalInSmallSection(),isInPartition(),isPotentiallyReachable(),isReportingError(),isSpecialLLVMGlobalArrayForStaticInit(),isSpecialLLVMGlobalArrayToSkip(),llvm::isTLIScalarize(),llvm::AMDGPULegalizerInfo::legalizeGlobalValue(),LLVMGetBasicBlockName(),LLVMGetValueName(),llvm::LoadAndStorePromoter::LoadAndStorePromoter(),llvm::XtensaTargetLowering::LowerCall(),llvm::AMDGPUTargetLowering::LowerGlobalAddress(),llvm::lowerGlobalIFuncUsersAsGlobalCtor(),lowerKernelArguments(),llvm::TargetLoweringObjectFileCOFF::lowerRelativeReference(),llvm::IntrinsicLowering::LowerToByteSwap(),llvm::TargetLowering::LowerToTLSEmulatedModel(),markAliveBlocks(),llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::MarkBlockExecutable(),llvm::SCCPInstVisitor::markBlockExecutable(),maybePrintComdat(),llvm::JumpThreadingPass::maybethreadThroughTwoBasicBlocks(),llvm::GlobalMergeFunc::merge(),llvm::MergeBlockIntoPredecessor(),mergeCompatibleInvokesImpl(),movePHIValuesToInsertedBlock(),nearest_common_dominator(),llvm::operator<<(),optimizeDoubleFP(),OptimizeGlobalAddressOfAllocation(),optimizeLoopExitWithUnknownExitCount(),optimizeSQRT(),llvm::OptLevelChanger::OptLevelChanger(),llvm::peelLoop(),performBlockTailMerging(),llvm::DiagnosticInfoUnsupported::print(),llvm::ARMConstantPoolConstant::print(),llvm::CSKYConstantPoolConstant::print(),llvm::RISCVConstantPoolValue::print(),llvm::XtensaConstantPoolConstant::print(),llvm::VPWidenCallRecipe::print(),llvm::DemandedBits::print(),llvm::CallGraphNode::print(),llvm::MemoryPhi::print(),llvm::BasicAAResult::DecomposedGEP::print(),llvm::UniformityInfoWrapperPass::print(),llvm::SDNode::print_details(),printBBName(),PrintDebugDomInfo(),printIRBlockReference(),PrintLoopInfo(),llvm::JumpThreadingPass::processBlock(),processGlobal(),processInternalGlobal(),processOverflowIntrinsic(),processSDiv(),processSRem(),llvm::JumpThreadingPass::processThreadableEdges(),llvm::promoteLoopAccessesToScalars(),llvm::InstCombinerImpl::pushFreezeToPreventPoisonFromPropagating(),recoverFramePointer(),llvm::Attributor::registerFunctionSignatureRewrite(),llvm::CallGraphUpdater::removeFunction(),llvm::RemoveRedundantDbgInstrs(),removeRedundantDbgLocs(),rename(),replace(),ReplaceCallWith(),replaceWithCallToVeclib(),rewriteMemOpOfSelect(),rewritePHIs(),rewritePHIsForCleanupPad(),RewriteUsesOfClonedInstructions(),llvm::FunctionSpecializer::run(),llvm::InlineCostAnnotationPrinterPass::run(),llvm::ArgumentPromotionPass::run(),runAttributorLightOnFunctions(),runAttributorOnFunctions(),llvm::JumpThreadingPass::runImpl(),runImpl(),runIPSCCP(),llvm::LPPassManager::runOnFunction(),llvm::DetectRoundChange::runOnMachineFunction(),runSanitizeRealtimeBlocking(),salvageDebugInfoImpl(),scalarizeMaskedLoad(),selectExplicitSectionGlobal(),llvm::TargetLoweringObjectFileCOFF::SelectSectionForGlobal(),llvm::HexagonTargetObjectFile::SelectSectionForGlobal(),llvm::RISCVELFTargetObjectFile::SelectSectionForGlobal(),llvm::IRSimilarity::IRInstructionData::setCalleeName(),shouldCheckArgs(),simplifyAllocaArraySize(),SimplifyCondBranchToCondBranch(),llvm::InstCombinerImpl::SimplifyDemandedVectorElts(),llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(),sinkInstruction(),llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(),SortAuthStubPair(),llvm::logicalview::sortByKind(),llvm::logicalview::sortByLine(),llvm::logicalview::sortByName(),SortSymbolPair(),speculatePHINodeLoads(),speculateSelectInstLoads(),llvm::splitBB(),llvm::splitBBWithSuffix(),llvm::splitBlockBefore(),SplitBlockImpl(),SplitBlockPredecessorsImpl(),splitCallSite(),llvm::OutlinableRegion::splitCandidate(),splitGlobal(),llvm::SplitKnownCriticalEdge(),SplitLandingPadPredecessorsImpl(),SRAGlobal(),llvm::stableHashValue(),switchToLookupTable(),llvm::thinLTOFinalizeInModule(),llvm::JumpThreadingPass::threadEdge(),llvm::JumpThreadingPass::threadGuard(),llvm::JumpThreadingPass::threadThroughTwoBasicBlocks(),trackInlinedStores(),translateMetadata(),tryFactorization(),llvm::JumpThreadingPass::tryThreadEdge(),TryToShrinkGlobalToBoolean(),llvm::TryToSimplifyUncondBranchFromEmptyBlock(),unifyLoopExits(),unpackLoadToAggregate(),llvm::UnrollRuntimeLoopRemainder(),llvm::logicalview::LVSymbolTable::update(),UpdatePHINodes(),llvm::CallInst::updateProfWeight(),llvm::InvokeInst::updateProfWeight(),upgradeAArch64IntrinsicCall(),upgradeARMIntrinsicCall(),llvm::UpgradeGlobalVariable(),llvm::UpgradeIntrinsicCall(),llvm::ScalarEvolution::verify(),llvm::LoopVersioning::versionLoop(),llvm::Function::viewCFG(),llvm::InstCombinerImpl::visitAnd(),llvm::InstCombinerImpl::visitAShr(),llvm::InstCombinerImpl::visitCallInst(),DataScalarizerVisitor::visitGetElementPtrInst(),DataScalarizerVisitor::visitLoadInst(),llvm::InstCombinerImpl::visitLoadInst(),llvm::InstCombinerImpl::visitSExt(),llvm::InstCombinerImpl::visitShl(),llvm::InstCombinerImpl::visitShuffleVectorInst(),llvm::InstCombinerImpl::visitURem(),llvm::InstCombinerImpl::visitZExt(),widenGlobalVariable(), andllvm::OptLevelChanger::~OptLevelChanger().

◆ getNameOrAsOperand()

std::string Value::getNameOrAsOperand() const

Definition at line445 of fileValue.cpp.

Referenced byhoist(),llvm::FunctionSpecializer::run(), andllvm::SCCPInstVisitor::setLatticeValueForSpecializationArguments().

◆ getNumUses()

unsigned Value::getNumUses() const

This method computes the number of uses of thisValue.

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

Definition at line255 of fileValue.cpp.

Referenced byllvm::OpenMPIRBuilder::createTeams(),llvm::OpenMPIRBuilder::emitTargetTask(),llvm::OpenMPIRBuilder::finalize(),llvm::slpvectorizer::BoUpSLP::getReorderingData(), andrematerializeLiveValuesAtUses().

◆ getPointerAlignment()

Align Value::getPointerAlignment(constDataLayoutDL) const

Returns an alignment of the pointer value.

Returns an alignment which is either specified explicitly, e.g. via align attribute of a function argument, or guaranteed byDataLayout.

Definition at line927 of fileValue.cpp.

Referenced byllvm::ConstantFoldBinaryInstruction(),llvm::OpenMPIRBuilder::createTask(),llvm::OpenMPIRBuilder::emitTargetTask(),emitTargetTaskProxyFunction(),llvm::AMDGPU::getAlign(),llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(),instCombineSVELD1(),instCombineSVEST1(), andllvm::SystemZSubtarget::isPC32DBLSymbol().

◆ getPointerDereferenceableBytes()

uint64_t Value::getPointerDereferenceableBytes(constDataLayoutDL,
boolCanBeNull,
boolCanBeFreed 
) const

Returns the number of bytes known to be dereferenceable for the pointer value.

If CanBeNull is set by this function the pointer can either be null or be dereferenceable up to the returned number of bytes.

IF CanBeFreed is true, the pointer is known to be dereferenceable at point of definition only. Caller must prove that allocation is not deallocated between point of definition and use.

Definition at line852 of fileValue.cpp.

Referenced byllvm::InstCombinerImpl::visitGetElementPtrInst().

◆ getPointerOffsetFrom()

std::optional< int64_t > Value::getPointerOffsetFrom(constValueOther,
constDataLayoutDL 
) const

If this ptr is provably equal toOther plus a constant offset, return that offset in bytes.

Essentiallyptr this subtractptr Other.

Definition at line1028 of fileValue.cpp.

Referenced byllvm::DIExpression::calculateFragmentIntersect().

◆ getRawSubclassOptionalData()

unsigned llvm::Value::getRawSubclassOptionalData() const
inline

Return the raw optional flags value contained in this value.

This should only be used when testing two Values for equivalence.

Definition at line539 of fileValue.h.

ReferencesSubclassOptionalData.

◆ getSingleUndroppableUse()[1/2]

Use * Value::getSingleUndroppableUse()

Return true if there is exactly one use of this value that cannot be dropped.

Definition at line167 of fileValue.cpp.

Referenced bygetSingleUndroppableUse().

◆ getSingleUndroppableUse()[2/2]

constUse * llvm::Value::getSingleUndroppableUse() const
inline

Definition at line457 of fileValue.h.

ReferencesgetSingleUndroppableUse().

◆ getSubclassDataFromValue()

unsigned short llvm::Value::getSubclassDataFromValue() const
inlineprotected

Definition at line870 of fileValue.h.

◆ getType()

Type * llvm::Value::getType() const
inline

All values are typed, get the type of this value.

Definition at line255 of fileValue.h.

Referenced byllvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::add(),llvm::AliasSetTracker::add(),addAssumeNonNull(),addConditions(),llvm::detail::PtrUseVisitorBase::adjustOffsetForGEP(),llvm::AMDGPUAAResult::alias(),llvm::VNCoercion::analyzeLoadFromClobberingLoad(),llvm::VNCoercion::analyzeLoadFromClobberingStore(),annotateDereferenceableBytes(),annotateNonNullNoUndefBasedOnAccess(),appendToGlobalArray(),applyX86MaskOn1BitsVec(),areBothVectorOrScalar(),areExtractShuffleVectors(),llvm::SelectInst::areInvalidOperands(),areInverseVectorBitmasks(),areNonOverlapSameBaseLoadAndStore(),argVectorFlatten(),aspaceWrapOperand(),llvm::CanonicalLoopInfo::assertOK(),llvm::BitcodeReaderValueList::assignValue(),atomicIgnoresDenormalModeOrFPModeIsFTZ(),atomicSupportedIfLegalIntType(),BreakUpSubtract(),llvm::buildAtomicRMWValue(),llvm::buildCmpXchgValue(),BuildConstantFromSCEV(),buildMultiplyTree(),callBufferedPrintfStart(),llvm::VNCoercion::canCoerceMustAliasedValueToLoad(),canContractSqrtToRsq(),canEvaluateShiftedShift(),canonicalizeBitCastExtElt(),canonicalizeForInvariantConditionInjection(),canonicalizeLowbitMask(),canonicalizeSaturatedAdd(),llvm::canReplacePointersIfEqual(),llvm::canReplacePointersInUseIfEqual(),canSafelyConvertTo16Bit(),canTryToConstantAddTwoShiftAmounts(),llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(),llvm::CastInst::castIsValid(),llvm::Attributor::checkForAllCallSites(),checkOffsetSize(),checkOrAndOpImpliedByOther(),CleanupConstantGlobalUsers(),llvm::CloneAndPruneIntoFromInst(),llvm::LoadInst::cloneImpl(),llvm::VAArgInst::cloneImpl(),llvm::TruncInst::cloneImpl(),llvm::ZExtInst::cloneImpl(),llvm::SExtInst::cloneImpl(),llvm::FPTruncInst::cloneImpl(),llvm::FPExtInst::cloneImpl(),llvm::UIToFPInst::cloneImpl(),llvm::SIToFPInst::cloneImpl(),llvm::FPToUIInst::cloneImpl(),llvm::FPToSIInst::cloneImpl(),llvm::IntToPtrInst::cloneImpl(),llvm::PtrToIntInst::cloneImpl(),llvm::BitCastInst::cloneImpl(),llvm::AddrSpaceCastInst::cloneImpl(),llvm::JumpThreadingPass::cloneInstructions(),CloneLoopBlocks(),llvm::FunctionComparator::cmpBasicBlocks(),cmpExcludesZero(),llvm::VNCoercion::coerceAvailableValueToLoadType(),collectMemAccessInfo(),collectShuffleElements(),collectSingleShuffleElements(),collectUnswitchCandidatesWithInjections(),combineConstantPoolLoads(),llvm::InstCombinerImpl::commonCastTransforms(),llvm::InstCombinerImpl::commonShiftTransforms(),compareCmp(),CompareValueComplexity(),llvm::SelectionDAG::computeKnownBits(),computeKnownBitsFromCmp(),computeKnownBitsFromICmpCond(),computeKnownBitsFromOperator(),computeKnownFPClass(),llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(),llvm::computeOverflowForSignedMul(),llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(),computePointerDifference(),computePointerICmp(),concatenateTwoVectors(),llvm::concatenateVectors(),ConnectProlog(),llvm::ConstantAggregate::ConstantAggregate(),llvm::ConstantFoldBinaryInstruction(),llvm::ConstantFoldCastOperand(),llvm::ConstantFoldCompareInstOperands(),llvm::ConstantFoldCompareInstruction(),llvm::ConstantFoldExtractElementInstruction(),llvm::ConstantFoldInsertElementInstruction(),llvm::ConstantFoldInsertValueInstruction(),llvm::ConstantFoldLoadThroughBitcast(),llvm::ConstantFoldSelectInstruction(),llvm::ConstantFoldShuffleVectorInstruction(),llvm::Constant::containsConstantExpression(),llvm::ConvertDebugDeclareToDebugValue(),llvm::InstCombinerImpl::convertOrOfShiftsToFunnelShift(),ConvertShiftToMul(),convertStrToInt(),copyFunctionByValArgs(),llvm::copyMetadataForLoad(),llvm::copyNonnullMetadata(),llvm::copyRangeMetadata(),countToEliminateCompares(),llvm::BinaryOperator::Create(),llvm::UnaryOperator::Create(),llvm::IRBuilderBase::CreateAlignedStore(),llvm::IRBuilderBase::CreateAlignmentAssumption(),createAndInstr(),llvm::OpenMPIRBuilder::createAtomicCapture(),llvm::OpenMPIRBuilder::createAtomicCompare(),llvm::OpenMPIRBuilder::createAtomicRead(),llvm::IRBuilderBase::CreateAtomicRMW(),llvm::IRBuilderBase::CreateBinaryIntrinsic(),llvm::CastInst::CreateBitOrPointerCast(),llvm::OpenMPIRBuilder::createCanonicalLoop(),createCmpXchgInstFun(),llvm::MatrixBuilder::CreateColumnMajorLoad(),llvm::MatrixBuilder::CreateColumnMajorStore(),llvm::AArch64TargetLowering::createComplexDeinterleavingIR(),llvm::ARMTargetLowering::createComplexDeinterleavingIR(),llvm::FixedPointBuilder< IRBuilderTy >::CreateDiv(),createExtractVector(),llvm::IRBuilderBase::CreateExtractVector(),createFFSIntrinsic(),llvm::IRBuilderBase::CreateGCGetPointerBase(),llvm::IRBuilderBase::CreateGCGetPointerOffset(),llvm::IRBuilderBase::CreateGlobalString(),llvm::MatrixBuilder::CreateIndex(),llvm::IRBuilderBase::CreateInsertVector(),llvm::IRBuilderBase::createIsFPClass(),llvm::IRBuilderBase::CreateIsNeg(),llvm::IRBuilderBase::CreateIsNotNeg(),llvm::IRBuilderBase::CreateIsNotNull(),llvm::IRBuilderBase::CreateIsNull(),llvm::IRBuilderBase::CreateLogicalAnd(),llvm::IRBuilderBase::CreateLogicalOr(),createLogicFromTable(),llvm::OpenMPIRBuilder::createLoopSkeleton(),llvm::IRBuilderBase::CreateMalloc(),llvm::IRBuilderBase::CreateMaskedCompressStore(),llvm::IRBuilderBase::CreateMaskedGather(),llvm::IRBuilderBase::CreateMaskedScatter(),llvm::IRBuilderBase::CreateMaskedStore(),llvm::MatrixBuilder::CreateMatrixInsert(),llvm::createMemCpyLoopKnownSize(),createMemMoveLoopKnownSize(),createMemMoveLoopUnknownSize(),createMemprofDefaultOptionsVar(),createMemSetLoop(),createMergedFunction(),llvm::FixedPointBuilder< IRBuilderTy >::CreateMul(),llvm::OpenMPIRBuilder::createOffloadMapnames(),llvm::OpenMPIRBuilder::createOffloadMaptypes(),llvm::SPIRVStructurizer::createOpSelectMerge(),llvm::OpenMPIRBuilder::createOrderedDepend(),llvm::createPGOFuncNameVar(),llvm::CastInst::CreatePointerBitCastOrAddrSpaceCast(),llvm::CastInst::CreatePointerCast(),createPopcntIntrinsic(),createPowWithIntegerExponent(),createPrivateConstGlobalForString(),llvm::createPrivateGlobalForString(),createProfileFileNameVar(),llvm::createProfileFileNameVar(),llvm::IRBuilderBase::CreatePtrDiff(),createRawLoad(),llvm::OpenMPIRBuilder::createReductions(),createRetPHINode(),createReverseEVL(),createScalarIVSteps(),llvm::CastInst::CreateSExtOrBitCast(),llvm::Attributor::createShallowWrapper(),createShiftShuffle(),llvm::AMDGPU::createSlowPathCmp(),llvm::OpenMPIRBuilder::createTargetInit(),createTargetLoopWorkshareCall(),createTblForTrunc(),llvm::OpenMPIRBuilder::createTeams(),createTileStore(),CreateTripRemainder(),llvm::CastInst::CreateTruncOrBitCast(),llvm::IRBuilderBase::CreateVectorSplice(),llvm::IRBuilderBase::CreateVScale(),createWrapper(),llvm::CastInst::CreateZExtOrBitCast(),decompose(),despeculateCountZeros(),detectShiftUntilBitTestIdiom(),detectShiftUntilZeroIdiom(),DoLowering(),dropRedundantMaskingOfLeftShiftInput(),eliminateSwiftErrorArgument(),llvm::embedBitcodeInModule(),llvm::embedBufferInModule(),llvm::emitBinaryFloatFnCall(),emitBinaryFloatFnCallHelper(),llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(),llvm::LoongArchTargetLowering::emitExpandAtomicRMW(),llvm::AsmPrinter::emitGlobalConstant(),emitGlobalConstantArray(),emitGlobalConstantDataSequential(),emitGlobalConstantFP(),emitGlobalConstantImpl(),emitGlobalConstantLargeInt(),emitGlobalConstantVector(),llvm::emitHotColdNew(),llvm::emitHotColdNewAligned(),llvm::emitHotColdNewAlignedNoThrow(),llvm::emitHotColdNewNoThrow(),llvm::emitHotColdSizeReturningNew(),llvm::emitHotColdSizeReturningNewAligned(),emitImplicitCast(),llvm::InnerLoopVectorizer::emitIterationCountCheck(),llvm::EpilogueVectorizerMainLoop::emitIterationCountCheck(),llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitKernelArg(),emitLoadFromConstantPool(),llvm::LoongArchTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(),llvm::PPCTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(),llvm::RISCVTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(),llvm::LoongArchTargetLowering::emitMaskedAtomicRMWIntrinsic(),llvm::PPCTargetLowering::emitMaskedAtomicRMWIntrinsic(),llvm::RISCVTargetLowering::emitMaskedAtomicRMWIntrinsic(),llvm::EpilogueVectorizerEpilogueLoop::emitMinimumVectorEpilogueIterCountCheck(),llvm::OpenMPIRBuilder::emitNonContiguousDescriptor(),llvm::OpenMPIRBuilder::emitOffloadingArrays(),llvm::AArch64TargetLowering::emitStoreConditional(),llvm::ARMTargetLowering::emitStoreConditional(),llvm::HexagonTargetLowering::emitStoreConditional(),llvm::PPCTargetLowering::emitTrailingFence(),emitTransformedIndex(),llvm::OpenMPIRBuilder::emitUserDefinedMapper(),llvm::emitVSNPrintf(),llvm::emitVSPrintf(),emitX86Select(),llvm::ARMAsmPrinter::emitXXStructor(),llvm::Evaluator::EvaluateFunction(),evaluateICmpRelation(),llvm::VPInstruction::execute(),llvm::VPWidenRecipe::execute(),llvm::VPWidenIntrinsicRecipe::execute(),llvm::VPReverseVectorPointerRecipe::execute(),llvm::VPWidenIntOrFpInductionRecipe::execute(),llvm::VPWidenPointerInductionRecipe::execute(),llvm::VPWidenPHIRecipe::execute(),llvm::VPReductionPHIRecipe::execute(),llvm::VPPartialReductionRecipe::execute(),llvm::VPInterleaveRecipe::execute(),llvm::VPReductionRecipe::execute(),llvm::VPReplicateRecipe::execute(),llvm::VPPredInstPHIRecipe::execute(),llvm::VPActiveLaneMaskPHIRecipe::execute(),llvm::VPWidenCanonicalIVRecipe::execute(),llvm::VPScalarIVStepsRecipe::execute(),llvm::expandAtomicRMWToCmpXchg(),expandCrossIntrinsic(),llvm::expandDivision(),llvm::expandDivisionUpTo32Bits(),llvm::expandDivisionUpTo64Bits(),expandFPToI(),llvm::ARMTargetLowering::ExpandInlineAsm(),llvm::X86TargetLowering::ExpandInlineAsm(),expandIToFP(),llvm::expandMemMoveAsLoop(),expandNormalizeIntrinsic(),llvm::expandRemainder(),llvm::expandRemainderUpTo32Bits(),llvm::expandRemainderUpTo64Bits(),expandSignIntrinsic(),expandToSwitch(),llvm::AAMDNodes::extendToTBAA(),extractMaskedValue(),llvm::AArch64TargetLowering::fallBackToDAGISel(),llvm::RISCVTargetLowering::fallBackToDAGISel(),llvm::fcmpImpliesClass(),findBasePointer(),findCommonType(),findDemandedEltsBySingleUser(),findExtractedInputToOverallInputMapping(),findFuncPointers(),FindLoopCounter(),llvm::RandomIRBuilder::findPointer(),llvm::findScalarElement(),fitArgInto64Bits(),fixupFPReturnAndCall(),flushDenormalConstantFP(),llvm::FlushFPConstant(),llvm::AMDGPULibCalls::fold(),llvm::BinOpInit::Fold(),llvm::InstCombinerImpl::foldAddLikeCommutative(),llvm::InstCombinerImpl::foldAddWithConstant(),llvm::InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse(),foldAndOrOfICmpEqConstantAndICmp(),llvm::InstCombinerImpl::foldBinopWithPhiOperands(),foldBitCastBitwiseLogic(),foldBitCastSelect(),llvm::foldBranchToCommonDest(),foldCastShuffle(),llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(),foldConsecutiveLoads(),foldCopySignIdioms(),foldCttzCtlz(),foldDependentIVs(),foldFCmpFNegCommonOp(),foldFCmpFSubIntoFCmp(),llvm::InstCombinerImpl::foldFCmpIntToFPConst(),foldFCmpWithFloorAndCeil(),foldFPtoI(),llvm::InstCombinerImpl::foldGEPICmp(),llvm::InstCombinerImpl::foldICmpAddConstant(),llvm::InstCombinerImpl::foldICmpAndConstant(),llvm::InstCombinerImpl::foldICmpBinOp(),llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(),llvm::InstCombinerImpl::foldICmpCommutative(),llvm::InstCombinerImpl::foldICmpDivConstant(),llvm::InstCombinerImpl::foldICmpEquality(),llvm::InstCombinerImpl::foldICmpInstWithConstantNotInt(),foldICmpIntrinsicWithIntrinsic(),llvm::InstCombinerImpl::foldICmpOrConstant(),llvm::InstCombinerImpl::foldICmpShlConstant(),foldICmpShlLHSC(),llvm::InstCombinerImpl::foldICmpShrConstant(),llvm::InstCombinerImpl::foldICmpSRemConstant(),llvm::InstCombinerImpl::foldICmpSubConstant(),llvm::InstCombinerImpl::foldICmpTruncConstant(),llvm::InstCombinerImpl::foldICmpUDivConstant(),llvm::InstCombinerImpl::foldICmpUsingKnownBits(),foldICmpUSubSatOrUAddSatWithConstant(),llvm::InstCombinerImpl::foldICmpWithCastOp(),foldICmpWithHighBitMask(),llvm::InstCombinerImpl::foldICmpWithTrunc(),foldIdentityShuffles(),llvm::InstCombinerImpl::foldIntegerTypedPHI(),llvm::InstCombinerImpl::foldItoFPtoI(),foldLoadsRecursive(),foldLogicCastConstant(),foldLogOpOfMaskedICmps(),foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed(),foldMinimumOverTrailingOrLeadingZeroCount(),llvm::InstCombinerImpl::foldPHIArgBinOpIntoPHI(),llvm::InstCombinerImpl::foldPHIArgGEPIntoPHI(),llvm::InstCombinerImpl::foldPHIArgLoadIntoPHI(),llvm::InstCombinerImpl::foldPHIArgOpIntoPHI(),llvm::InstCombinerImpl::foldPowiReassoc(),foldReductionIdiom(),foldSelectBinOpIdentity(),foldSelectICmpAnd(),foldSelectICmpAndBinOp(),foldSelectICmpLshrAshr(),llvm::InstCombinerImpl::foldSelectOpOp(),foldSetClearBits(),foldShiftedShift(),foldShiftIntoShiftInAnotherHandOfAndInICmp(),llvm::InstSimplifyFolder::FoldShuffleVector(),foldShuffleWithInsert(),foldSignedTruncationCheck(),foldTwoEntryPHINode(),foldURemOfLoopIncrement(),llvm::InstCombinerImpl::foldVariableSignZeroExtensionOfVariableHighBitExtract(),foldVecExtTruncToExtElt(),llvm::InstCombinerImpl::foldVectorBinop(),foldVectorCmp(),foldVecTruncToExtElt(),forwardStoredOnceStore(),llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::gather(),gatherPossiblyVectorizableLoads(),generateAssignInstrs(),generateSignedDivisionCode(),generateSignedRemainderCode(),generateUnsignedDivisionCode(),genLoopLimit(),llvm::MemoryLocation::get(),llvm::ConstantExpr::get(),getAccessType(),getAddressForMemoryInput(),llvm::IntToPtrInst::getAddressSpace(),llvm::Constant::getAggregateElement(),getAISize(),llvm::getAllocSize(),getAlternateBinop(),getAnyNonZeroConstInt(),getArgSPIRVType(),getArgumentTypeAlign(),llvm::ConstantExpr::getAsInstruction(),getAssignmentInfoImpl(),llvm::IRPosition::getAssociatedType(),llvm::AAValueConstantRange::getAssumedConstant(),llvm::AAPotentialConstantValues::getAssumedConstant(),getAtomicOpSize(),getAvailableLoadStore(),getBoolVecFromMask(),getBoundsCheckCond(),getBranchCondString(),llvm::ScalarEvolution::getComparePredicate(),llvm::SelectionDAG::getConstant(),llvm::SelectionDAG::getConstantFP(),getConstantInt(),llvm::ExecutionEngine::getConstantValue(),llvm::VNCoercion::getConstantValueForLoad(),llvm::PredicateBase::getConstraint(),llvm::AddrSpaceCastInst::getDestAddressSpace(),llvm::MemIntrinsicBase< Derived >::getDestAddressSpace(),llvm::CastInst::getDestTy(),llvm::ConstantAggregateZero::getElementCount(),llvm::ConstantDataSequential::getElementType(),llvm::ConstantAggregateZero::getElementValue(),llvm::UndefValue::getElementValue(),llvm::PoisonValue::getElementValue(),getExactSDiv(),llvm::ConstantExpr::getExtractElement(),getFCmpValue(),llvm::MemoryLocation::getForDest(),getFromRangeMetadata(),getFunctionPointerElemType(),llvm::GVNExpression::VariableExpression::getHashValue(),llvm::GVNExpression::ConstantExpression::getHashValue(),llvm::CanonicalLoopInfo::getIndVarType(),llvm::ConstantExpr::getInsertElement(),llvm::TargetTransformInfoImplCRTPBase< T >::getInstructionCost(),llvm::LoopVectorizationCostModel::getInstructionCost(),llvm::ConstantInt::getIntegerType(),getInvertibleOperands(),llvm::BinOpInit::getListConcat(),llvm::TargetLoweringBase::getLoadMemOperandFlags(),getMaskedTypeForICmpPair(),getMatchingValue(),llvm::VNCoercion::getMemInstValueForLoad(),llvm::ScalarEvolution::getMinusSCEV(),llvm::AAResults::getModRefInfo(),llvm::AMDGPUAAResult::getModRefInfoMask(),getNewICmpValue(),llvm::MemoryDependenceResults::getNonLocalPointerDependency(),getNoopInput(),llvm::ConstantDataSequential::getNumElements(),llvm::UndefValue::getNumElements(),llvm::offloading::getOffloadingEntryInitializer(),llvm::AArch64TTIImpl::getOrCreateResultFromMemIntrinsic(),llvm::InnerLoopVectorizer::getOrCreateVectorTripCount(),llvm::VPIntrinsic::getOrInsertDeclarationForParams(),llvm::AtomicCmpXchgInst::getPointerAddressSpace(),llvm::AtomicRMWInst::getPointerAddressSpace(),llvm::PtrToIntInst::getPointerAddressSpace(),llvm::ConstantExpr::getPointerBitCastOrAddrSpaceCast(),llvm::ConstantExpr::getPointerCast(),llvm::LoadInst::getPointerOperandType(),llvm::StoreInst::getPointerOperandType(),llvm::GetElementPtrInst::getPointerOperandType(),llvm::GEPOperator::getPointerOperandType(),llvm::PtrToIntOperator::getPointerOperandType(),llvm::getPointersDiff(),llvm::LazyValueInfo::getPredicateAt(),llvm::LoopVectorizationCostModel::getReductionPatternCost(),getSameOpcode(),llvm::VPWidenIntOrFpInductionRecipe::getScalarType(),llvm::VPCanonicalIVPHIRecipe::getScalarType(),llvm::VPDerivedIVRecipe::getScalarType(),llvm::RecurrenceDescriptor::getSentinelValue(),llvm::ConstantAggregateZero::getSequentialElement(),llvm::UndefValue::getSequentialElement(),llvm::PoisonValue::getSequentialElement(),llvm::slpvectorizer::BoUpSLP::LookAheadHeuristics::getShallowScore(),getShuffleDemandedElts(),llvm::ConstantExpr::getShuffleVector(),llvm::TargetLowering::getSingleConstraintMatchWeight(),llvm::ARMTargetLowering::getSingleConstraintMatchWeight(),llvm::PPCTargetLowering::getSingleConstraintMatchWeight(),llvm::SystemZTargetLowering::getSingleConstraintMatchWeight(),llvm::X86TargetLowering::getSingleConstraintMatchWeight(),llvm::XtensaTargetLowering::getSingleConstraintMatchWeight(),llvm::Constant::getSplatValue(),llvm::AddrSpaceCastInst::getSrcAddressSpace(),llvm::AddrSpaceCastOperator::getSrcAddressSpace(),llvm::CastInst::getSrcTy(),llvm::GCProjectionInst::getStatepoint(),llvm::VPIntrinsic::getStaticVectorLength(),getStepVector(),llvm::VNCoercion::getStoreValueForLoadHelper(),getStrideAndModOffsetOfGEP(),llvm::ConstantAggregateZero::getStructElement(),llvm::UndefValue::getStructElement(),llvm::PoisonValue::getStructElement(),getTargetConstantBitsFromNode(),llvm::SITargetLowering::getTgtMemIntrinsic(),llvm::AArch64TargetLowering::getTgtMemIntrinsic(),llvm::SCEVUnknown::getType(),llvm::ConstantArray::getType(),llvm::ConstantStruct::getType(),llvm::ConstantVector::getType(),llvm::ConstantPointerNull::getType(),llvm::ConstantDataArray::getType(),llvm::ConstantDataVector::getType(),llvm::ConstantTargetNone::getType(),llvm::NoCFIValue::getType(),llvm::GlobalValue::getType(),llvm::InlineAsm::getType(),llvm::AllocaInst::getType(),llvm::InsertElementInst::getType(),llvm::ShuffleVectorInst::getType(),llvm::sandboxir::Value::getType(),llvm::ScalarEvolution::getUDivExpr(),llvm::ScalarEvolution::getUMaxFromMismatchedTypes(),llvm::getUnderlyingObject(),getUniformBase(),llvm::ScalarEvolution::getURemExpr(),llvm::VNCoercion::getValueForLoad(),getValueFromICmpCtpop(),getValueOnEdge(),llvm::LoopVectorizationCostModel::getVectorCallCost(),getVectorDeinterleaveFactor(),llvm::X86TTIImpl::getVectorInstrCost(),llvm::LoopVectorizationCostModel::getVectorIntrinsicCost(),llvm::ExtractElementInst::getVectorOperandType(),llvm::RISCVTTIImpl::getVPLegalizationStrategy(),llvm::ConstantExpr::getWithOperands(),llvm::GlobalVariable::GlobalVariable(),HandleByValArgument(),handleSpaceCheckIntrinsics(),llvm::PHINode::hasConstantValue(),llvm::Constant::hasExactInverseFP(),hasSameArgumentList(),hasSameExtUse(),llvm::haveNoCommonBitsSet(),haveNoCommonBitsSetSpecialCases(),hoistConditionalLoadsStores(),hoistMinMax(),llvm::memtag::incrementThreadLong(),llvm::inferAttribute(),llvm::MIRParserImpl::initializeConstantPool(),injectPendingInvariantConditions(),llvm::InlineFunction(),inlineGetBaseAndOffset(),insertInteger(),insertMaskedValue(),llvm::BPFCoreSharedInfo::insertPassThrough(),insertSinCosCall(),llvm::CallLowering::insertSRetOutgoingArgument(),insertUniqueBackedgeBlock(),insertVector(),instCombineConvertFromSVBool(),llvm::GCNTTIImpl::instCombineIntrinsic(),llvm::ARMTTIImpl::instCombineIntrinsic(),llvm::PPCTTIImpl::instCombineIntrinsic(),llvm::X86TTIImpl::instCombineIntrinsic(),instCombineST1ScatterIndex(),instCombineSVECondLast(),instCombineSVEDupqLane(),instCombineSVELast(),instCombineSVEPTest(),llvm::IntrinsicCostAttributes::IntrinsicCostAttributes(),isAllActivePredicate(),llvm::Constant::isAllOnesValue(),llvm::AA::isAssumedThreadLocalObject(),isAtomicRMWLegalXChgTy(),isCmpSameOrSwapped(),isCompatibleReplacement(),llvm::LanaiTargetObjectFile::isConstantInSmallSection(),llvm::RISCVELFTargetObjectFile::isConstantInSmallSection(),llvm::MipsTargetObjectFile::IsConstantInSmallSection(),llvm::isDereferenceableAndAlignedInLoop(),llvm::Constant::isElementWiseEqual(),llvm::Constant::isFiniteNonZeroFP(),llvm::SystemZTTIImpl::isFoldableLoad(),isFreeConcat(),isHighCostExpansion(),llvm::AANoAlias::isImpliedByIR(),llvm::isImpliedCondition(),llvm::CastInst::isIntegerCast(),isIntegerLoopHeaderPHI(),isIntegerWideningViableForSlice(),llvm::ConstantPtrAuth::isKnownCompatibleWith(),isKnownNonEqual(),llvm::isKnownNonEqual(),isKnownNonZeroFromOperator(),llvm::isLegalToPromote(),isLoadInvariantInLoop(),llvm::isMathLibCallNoop(),llvm::Constant::isMinSignedValue(),llvm::Constant::isNaN(),llvm::Constant::isNegativeZeroValue(),isNeutralValue(),llvm::CastInst::isNoopCast(),isNoopPtrIntCastPair(),llvm::Constant::isNormalFP(),llvm::Constant::isNotMinSignedValue(),llvm::Constant::isNotOneValue(),llvm::Constant::isOneValue(),isOperandOfVmullHighP64(),llvm::isProcessableCondBI(),llvm::AArch64TargetLowering::isProfitableToHoist(),llvm::SITargetLowering::isProfitableToHoist(),llvm::PPCTargetLowering::isProfitableToHoist(),isPromotedInstructionLegal(),isPTruePromoted(),llvm::GCNTTIImpl::isReadRegisterSourceOfDivergence(),llvm::CallBase::isReturnNonNull(),isSafeLoadOfSelectToSpeculate(),isSafePHIToSpeculate(),isSafeToSpeculateStore(),llvm::isSafeToSpeculativelyExecuteWithOpcode(),isShuffleEquivalentToSelect(),isShuffleExtractingFromLHS(),llvm::ConstantDataSequential::isString(),llvm::DemandedBits::isUseDead(),llvm::Attributor::isValidFunctionSignatureRewrite(),llvm::ShuffleVectorInst::isValidOperands(),llvm::ExtractElementInst::isValidOperands(),llvm::InsertElementInst::isValidOperands(),isVectorPromotionViable(),isVectorPromotionViableForSlice(),llvm::Constant::isZeroValue(),LLVMConstRealGetDouble(),llvm::LoadAndStorePromoter::LoadAndStorePromoter(),lookThroughCastConst(),llvm::lowerAtomicCmpXchgInst(),llvm::lowerAtomicRMWInst(),llvm::FastISel::lowerCall(),llvm::CallLowering::lowerCall(),llvm::SelectionDAGBuilder::LowerCallTo(),llvm::FastISel::lowerCallTo(),llvm::AsmPrinter::lowerConstant(),llvm::lowerGlobalIFuncUsersAsGlobalCtor(),llvm::SITargetLowering::lowerIdempotentRMWIntoFencedLoad(),llvm::RISCVTargetLowering::lowerInterleavedLoad(),llvm::AArch64TargetLowering::lowerInterleavedStore(),llvm::ARMTargetLowering::lowerInterleavedStore(),llvm::RISCVTargetLowering::lowerInterleavedStore(),llvm::IntrinsicLowering::LowerIntrinsicCall(),lowerKernelArguments(),LowerNegateToMultiply(),llvm::lowerObjectSizeCall(),lowerPtrAnnotation(),llvm::TargetLoweringObjectFileELF::lowerRelativeReference(),llvm::TargetLoweringObjectFileCOFF::lowerRelativeReference(),llvm::TargetLoweringObjectFileWasm::lowerRelativeReference(),llvm::AMDGPUCallLowering::lowerReturn(),llvm::MipsCallLowering::lowerReturn(),llvm::X86CallLowering::lowerReturn(),llvm::AArch64CallLowering::lowerReturn(),llvm::M68kCallLowering::lowerReturn(),llvm::PPCCallLowering::lowerReturn(),llvm::RISCVCallLowering::lowerReturn(),llvm::IntrinsicLowering::LowerToByteSwap(),llvm::lowerUnaryVectorIntrinsicAsLoop(),llvm::matchDecomposedSelectPattern(),matchOrConcat(),matchStridedConstant(),llvm::gvn::AvailableValue::MaterializeAdjustedValue(),maybePrintCallAddrSpace(),memChrToCharCompare(),mergeAttributesAndFlags(),llvm::MergeBasicBlockIntoOnlyPred(),mergeConditionalStoreToAddress(),llvm::InstCombinerImpl::mergeStoreIntoSuccessor(),llvm::TargetTransformInfoImplBase::minRequiredElementSize(),modifyIntrinsicCall(),llvm::SinkInstructionStrategy::mutate(),llvm::InstDeleterIRStrategy::mutate(),narrowVectorSelect(),needsFPFromSig(),llvm::RandomIRBuilder::newSource(),operandWithNewAddressSpaceOrCreatePoison(),OptimizeAwayTrappingUsesOfValue(),optimizeBranch(),optimizeCallInst(),optimizeDoubleFP(),OptimizeEmptyGlobalAtExitDtors(),OptimizeExtractBits(),llvm::VPlanTransforms::optimizeInductionExitUsers(),optimizeIntegerToVectorInsertions(),optimizeMemCmpConstantSize(),optimizeMemCmpVarSize(),optimizeNaN(),OptimizeNoopCopyExpression(),optimizeOnceStoredGlobal(),optimizeSection(),optimizeVectorResizeWithIntegerBitCasts(),llvm::TargetLowering::ParseConstraints(),llvm::LoopStructure::parseLoopStructure(),populateOperands(),llvm::BasicTTIImplBase< T >::preferToKeepConstantsAttached(),llvm::VPlan::prepareToExecute(),llvm::VPReplicateRecipe::print(),processArg(),processAShr(),processBlockAddr(),llvm::JumpThreadingPass::processBranchOnXOR(),processCmpIntrinsic(),processInternalGlobal(),processNonStringArg(),processOverflowIntrinsic(),processSDiv(),processSelect(),processSExt(),processSIToFP(),processUGT_ADDCST_ADD(),processUMulZExtIdiom(),processUse(),promoteAllocaUserToVector(),llvm::promoteCall(),promoteSingleBlockAlloca(),propagateNaN(),llvm::InstCombinerImpl::reassociateShiftAmtsOfTwoSameDirectionShifts(),llvm::recognizeBSwapOrBitReverseIdiom(),llvm::removeAllNonTerminatorAndEHPadInstructions(),removeEmptyCleanup(),removeGlobalCtors(),llvm::PHINode::removeIncomingValue(),llvm::PHINode::removeIncomingValueIf(),llvm::MemoryDependenceResults::removeInstruction(),llvm::replaceAllDbgUsesWith(),replaceCalledFunction(),llvm::SCEVExpander::replaceCongruentIVs(),replaceDominatedUsesWith(),replaceFoldableUses(),ReplaceFPIntrinsicWithCall(),replaceFrameSizeAndAlignment(),llvm::GlobalVariable::replaceInitializer(),llvm::replaceNonLocalUsesWith(),llvm::replaceSignedInst(),replaceSwiftErrorOps(),llvm::Constant::replaceUndefsWith(),replaceUndefValuesInPhi(),replaceWithConstant(),llvm::Record::resolveReferences(),llvm::returnTypeIsEligibleForTailCall(),reuseTableCompare(),llvm::GCNTTIImpl::rewriteIntrinsicWithAddressSpace(),llvm::NVPTXTTIImpl::rewriteIntrinsicWithAddressSpace(),llvm::rewriteLoopExitValues(),rewritePHIs(),rewriteSingleStoreAlloca(),RewriteUsesOfClonedInstructions(),rmwOpMayLowerToLibcall(),llvm::LoadAndStorePromoter::run(),llvm::MemDerefPrinterPass::run(),llvm::KCFIPass::run(),runImpl(),llvm::IRTranslator::runOnMachineFunction(),llvm::salvageDebugInfoImpl(),salvageDebugInfoImpl(),llvm::SelectionDAGBuilder::salvageUnresolvedDbgValue(),scalarize(),llvm::InnerLoopVectorizer::scalarizeInstruction(),scalarizeMaskedExpandLoad(),scalarizeMaskedGather(),scalarizeMaskedLoad(),scalarizeMaskedScatter(),scalarizeMaskedVectorHistogram(),llvm::SCEVComparePredicate::SCEVComparePredicate(),llvm::FastISel::selectExtractValue(),llvm::GlobalAlias::setAliasee(),llvm::CallBase::setCalledFunction(),llvm::MemIntrinsicBase< Derived >::setDest(),setInfoSVEStN(),llvm::GlobalVariable::setInitializer(),llvm::DbgAssignIntrinsic::setKillAddress(),llvm::DbgVariableIntrinsic::setKillLocation(),llvm::SCCPInstVisitor::setLatticeValueForSpecializationArguments(),llvm::MemIntrinsicBase< Derived >::setLength(),llvm::MemSetBase< BaseCL >::setValue(),llvm::LoopVectorizationCostModel::setVectorizedCallDecision(),llvm::AAMDNodes::shiftTBAAStruct(),shorter_filter(),llvm::TargetLoweringBase::shouldCastAtomicLoadInIR(),llvm::TargetLoweringBase::shouldCastAtomicRMWIInIR(),shouldConvertImpl(),llvm::AArch64TargetLowering::shouldExpandAtomicCmpXchgInIR(),llvm::SITargetLowering::shouldExpandAtomicCmpXchgInIR(),llvm::ARMTargetLowering::shouldExpandAtomicCmpXchgInIR(),llvm::PPCTargetLowering::shouldExpandAtomicCmpXchgInIR(),llvm::LoongArchTargetLowering::shouldExpandAtomicCmpXchgInIR(),llvm::RISCVTargetLowering::shouldExpandAtomicCmpXchgInIR(),llvm::AArch64TargetLowering::shouldExpandAtomicLoadInIR(),llvm::ARMTargetLowering::shouldExpandAtomicLoadInIR(),llvm::HexagonTargetLowering::shouldExpandAtomicLoadInIR(),llvm::SITargetLowering::shouldExpandAtomicRMWInIR(),llvm::AArch64TargetLowering::shouldExpandAtomicRMWInIR(),llvm::ARMTargetLowering::shouldExpandAtomicRMWInIR(),llvm::LoongArchTargetLowering::shouldExpandAtomicRMWInIR(),llvm::NVPTXTargetLowering::shouldExpandAtomicRMWInIR(),llvm::PPCTargetLowering::shouldExpandAtomicRMWInIR(),llvm::RISCVTargetLowering::shouldExpandAtomicRMWInIR(),llvm::SparcTargetLowering::shouldExpandAtomicRMWInIR(),llvm::SystemZTargetLowering::shouldExpandAtomicRMWInIR(),shrinkFPConstant(),shrinkInsertElt(),shrinkSplatShuffle(),llvm::ShuffleVectorConstantExpr::ShuffleVectorConstantExpr(),llvm::LoongArchTargetLowering::signExtendConstant(),llvm::RISCVTargetLowering::signExtendConstant(),simplifyAddInst(),simplifyAllocaArraySize(),simplifyAMDGCNImageIntrinsic(),simplifyAMDGCNMemoryIntrinsicDemanded(),simplifyAndCommutative(),simplifyAndInst(),simplifyAndOfICmpsWithAdd(),simplifyAndOrOfFCmps(),simplifyAndOrOfICmpsWithConstants(),llvm::InstCombinerImpl::SimplifyAnyMemSet(),llvm::InstCombinerImpl::SimplifyAnyMemTransfer(),simplifyAShrInst(),simplifyAssocCastAssoc(),llvm::simplifyBinaryIntrinsic(),simplifyByDomEq(),llvm::InstCombinerImpl::SimplifyDemandedInstructionBits(),llvm::GCNTTIImpl::simplifyDemandedLaneMaskArg(),llvm::InstCombinerImpl::SimplifyDemandedVectorElts(),llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetShuffle(),simplifyDiv(),simplifyDivRem(),llvm::InstCombinerImpl::simplifyDivRemOfSelectWithZeroOp(),simplifyExtractElementInst(),simplifyFAddInst(),simplifyFDivInst(),simplifyFMAFMul(),simplifyFRemInst(),simplifyFSubInst(),simplifyICmpInst(),simplifyICmpOfBools(),llvm::ScalarEvolution::SimplifyICmpOperands(),simplifyICmpWithBinOp(),llvm::simplifyInsertElementInst(),simplifyInsertValueInst(),simplifyIntrinsic(),simplifyLdexp(),llvm::simplifyLoadInst(),simplifyLogicOfAddSub(),simplifyMulInst(),simplifyOrInst(),simplifyOrOfICmpsWithAdd(),llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(),simplifyPHINode(),simplifyReductionOperand(),simplifyRelocatesOffABase(),simplifyRem(),simplifyRightShift(),simplifySDivInst(),simplifySelectInst(),simplifyShift(),simplifyShlInst(),llvm::InstCombinerImpl::simplifyShrShlDemandedBits(),simplifyShuffleVectorInst(),simplifySRemInst(),simplifySubInst(),simplifySwitchOfPowersOfTwo(),simplifyUnaryIntrinsic(),simplifyUnsignedRangeCheck(),simplifyUsingControlFlow(),simplifyX86addcarry(),simplifyX86immShift(),simplifyX86movmsk(),simplifyX86pack(),simplifyX86pmadd(),simplifyX86pmulh(),simplifyXorInst(),SinkShiftAndTruncate(),llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(),speculatePHINodeLoads(),speculateSelectInstLoads(),llvm::SplitBlockAndInsertForEachLane(),splitCallSite(),llvm::coro::AnyRetconABI::splitCoroutine(),llvm::SplitIndirectBrCriticalEdges(),SplitLandingPadPredecessorsImpl(),splitMergedValStore(),stripGCRelocates(),swapICmpOperandsToExposeCSEOpportunities(),switchToLookupTable(),tagGlobalDefinition(),threadCmpOverSelect(),llvm::OpenMPIRBuilder::tileLoops(),llvm::Constant::toConstantRange(),transformGlobalArray(),llvm::slpvectorizer::BoUpSLP::transformNodes(),transformToIndexedCompare(),trimTrailingZerosInVector(),tryInsertCastToCommonAddrSpace(),llvm::tryPromoteCall(),llvm::VPRecipeBuilder::tryToCreateWidenRecipe(),tryToMergePartialOverlappingStores(),tryToRecognizeTableBasedCttz(),tryToShorten(),TryToShrinkGlobalToBoolean(),tryUnmergingGEPsAcrossIndirectBr(),tryWidenGlobalArrayAndDests(),unpackFromRegLoc(),unpackLoadToAggregate(),llvm::UnrollRuntimeLoopRemainder(),UpdatePHINodes(),updatePredecessorProfileMetadata(),upgradeAArch64IntrinsicCall(),upgradeAbs(),upgradeAMDGCNIntrinsicCall(),llvm::UpgradeARCRuntime(),upgradeARMIntrinsicCall(),upgradeAVX512MaskToSelect(),llvm::UpgradeGlobalVariable(),llvm::UpgradeIntrinsicCall(),upgradeMaskedCompare(),upgradeMaskedLoad(),upgradeMaskToInt(),upgradeNVVMIntrinsicCall(),upgradePMULDQ(),upgradeX86ALIGNIntrinsics(),upgradeX86BinaryIntrinsics(),upgradeX86ConcatShift(),upgradeX86IntrinsicCall(),upgradeX86Rotate(),upgradeX86vpcom(),upgradeX86VPERMT2Intrinsics(),validateAndCostRequiredSelects(),valueEscapes(),llvm::slpvectorizer::BoUpSLP::vectorizeTree(),verifyTripCount(),llvm::versionCallSite(),llvm::InstCombinerImpl::visitAdd(),llvm::InstCombinerImpl::visitAllocaInst(),llvm::ObjectSizeOffsetEvaluator::visitAllocaInst(),llvm::InstCombinerImpl::visitAnd(),llvm::InstCombinerImpl::visitAtomicRMWInst(),llvm::InstCombinerImpl::visitBitCast(),llvm::InstCombinerImpl::visitCallInst(),llvm::InstCombinerImpl::visitExtractElementInst(),llvm::InstCombinerImpl::visitExtractValueInst(),llvm::Interpreter::visitExtractValueInst(),llvm::InstCombinerImpl::visitFCmpInst(),llvm::InstCombinerImpl::visitFPExt(),llvm::InstCombinerImpl::visitFPTrunc(),llvm::InstCombinerImpl::visitFSub(),llvm::InstCombinerImpl::visitGEPOfGEP(),llvm::InstCombinerImpl::visitGetElementPtrInst(),llvm::InstCombinerImpl::visitICmpInst(),llvm::InstCombinerImpl::visitInsertElementInst(),llvm::Interpreter::visitInsertValueInst(),llvm::InstCombinerImpl::visitIntToPtr(),visitIVCast(),llvm::InstCombinerImpl::visitLandingPadInst(),DataScalarizerVisitor::visitLoadInst(),llvm::InstCombinerImpl::visitLoadInst(),llvm::InstCombinerImpl::visitLShr(),llvm::InstCombinerImpl::visitMul(),llvm::InstCombinerImpl::visitOr(),llvm::InstCombinerImpl::visitPHINode(),llvm::InstCombinerImpl::visitPtrToInt(),llvm::InstCombinerImpl::visitReturnInst(),llvm::InstCombinerImpl::visitSDiv(),llvm::InstCombinerImpl::visitSExt(),llvm::InstCombinerImpl::visitShuffleVectorInst(),llvm::InstCombinerImpl::visitSIToFP(),llvm::InstCombinerImpl::visitStoreInst(),llvm::InstCombinerImpl::visitSub(),llvm::SelectionDAGBuilder::visitSwitchCase(),llvm::InstCombinerImpl::visitSwitchInst(),llvm::InstCombinerImpl::visitTrunc(),llvm::InstCombinerImpl::visitXor(),llvm::InstCombinerImpl::visitZExt(),widenGlobalVariable(),llvm::ScalarEvolution::willNotOverflow(),WriteConstantInternal(), andllvm::MetadataAsValue::~MetadataAsValue().

◆ getUniqueUndroppableUser()[1/2]

User * Value::getUniqueUndroppableUser()

Return true if there is exactly one unique user of this value that cannot be dropped (that user can have multiple uses of this value).

Definition at line179 of fileValue.cpp.

Referenced bygetUniqueUndroppableUser(),rematerializeLiveValuesAtUses(), andworkshareLoopTargetCallback().

◆ getUniqueUndroppableUser()[2/2]

constUser * llvm::Value::getUniqueUndroppableUser() const
inline

Definition at line464 of fileValue.h.

ReferencesgetUniqueUndroppableUser().

◆ getValueID()

unsigned llvm::Value::getValueID() const
inline

Return an ID for the concrete type of this object.

This is used to implement the classof checks. This should not be used for any other purpose, as the values may change as LLVM evolves. Also, note that for instructions, theInstruction's opcode is added to InstructionVal. So this means three things:

there is no value with code InstructionVal (no opcode==0).

there are more possible values for the value type than in ValueTy enum.

the InstructionVal enumerator must be the highest valued enumerator in

the ValueTy enum.

Definition at line532 of fileValue.h.

Referenced byllvm::MemoryUseOrDef::classof(),llvm::MemoryUse::classof(),llvm::MemoryDef::classof(),compareCmp(),CompareValueComplexity(),llvm::Constant::destroyConstant(),llvm::isa_impl< Constant, Value >::doit(),llvm::isa_impl< ConstantData, Value >::doit(),llvm::isa_impl< ConstantAggregate, Value >::doit(),llvm::isa_impl< Argument, Value >::doit(),llvm::isa_impl< InlineAsm, Value >::doit(),llvm::isa_impl< Instruction, Value >::doit(),llvm::isa_impl< BasicBlock, Value >::doit(),llvm::isa_impl< Function, Value >::doit(),llvm::isa_impl< GlobalVariable, Value >::doit(),llvm::isa_impl< GlobalAlias, Value >::doit(),llvm::isa_impl< GlobalIFunc, Value >::doit(),llvm::GlobalValue::eraseFromParent(),llvm::Constant::handleOperandChange(),llvm::GlobalValue::removeFromParent(), andllvm::GlobalValue::setThreadLocalMode().

◆ getValueName()

ValueName * Value::getValueName() const

Definition at line281 of fileValue.cpp.

◆ hasMetadata()[1/3]

bool llvm::Value::hasMetadata() const
inlineprotected

Return true if this value has any metadata attached to it.

Definition at line589 of fileValue.h.

ReferencesHasMetadata.

Referenced byllvm::Instruction::dropUnknownNonDebugMetadata(),llvm::Instruction::getAAMetadata(),getAllMetadata(), andgetMetadata().

◆ hasMetadata()[2/3]

bool llvm::Value::hasMetadata(StringRef Kind) const
inlineprotected

Definition at line596 of fileValue.h.

ReferencesgetMetadata().

◆ hasMetadata()[3/3]

bool llvm::Value::hasMetadata(unsigned KindID) const
inlineprotected

Return true if this value has the given type of metadata attached.

Definition at line593 of fileValue.h.

ReferencesgetMetadata().

◆ hasName()

bool llvm::Value::hasName() const
inline

Definition at line261 of fileValue.h.

ReferencesHasName.

Referenced byaddReplicateRegions(),llvm::SPIRVGlobalRegistry::buildGlobalVariable(),llvm::CloneBasicBlock(),llvm::dumpBasicBlockLabel(),llvm::SystemZAsmPrinter::emitFunctionEntryLabel(),llvm::ExecutionEngine::emitGlobals(),llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitKernelArg(),llvm::emitLinkerFlagsForGlobalCOFF(),llvm::emitLinkerFlagsForUsedCOFF(),externalize(),extractSubModule(),llvm::JITSymbolFlags::fromGlobalValue(),llvm::ModuleSummaryIndex::getGlobalValueSummary(),llvm::ExecutionEngine::getMangledName(),llvm::Mangler::getNameWithPrefix(),llvm::TargetLoweringObjectFileXCOFF::getSectionForExternalReference(),initSlots2BasicBlocks(),llvm::MergeBlockIntoPredecessor(),OptimizeGlobalVars(),llvm::VPWidenCallRecipe::print(),llvm::MemoryPhi::print(),printBBName(),printIRBlockReference(),llvm::stableHashValue(),llvm::TryToSimplifyUncondBranchFromEmptyBlock(), andllvm::UpgradeGlobalVariable().

◆ hasNUndroppableUses()

bool Value::hasNUndroppableUses(unsigned N) const

Return true if there this value.

This is specialized because it is a common request and does not require traversing the whole use list.

Definition at line191 of fileValue.cpp.

◆ hasNUndroppableUsesOrMore()

bool Value::hasNUndroppableUsesOrMore(unsigned N) const

Return true if this value has N uses or more.

This is logically equivalent togetNumUses() >= N.

Definition at line195 of fileValue.cpp.

◆ hasNUses()

bool Value::hasNUses(unsigned N) const

Return true if thisValue has exactly N uses.

Definition at line149 of fileValue.cpp.

Referenced bycanonicalizeAbs(),llvm::InstCombinerImpl::foldFMulReassoc(),llvm::InstCombinerImpl::foldVectorBinop(),llvm::RecurrenceDescriptor::getReductionOpChain(),getVectorDeinterleaveFactor(), andisSSATMinMaxPattern().

◆ hasNUsesOrMore()

bool Value::hasNUsesOrMore(unsigned N) const

Return true if this value has N uses or more.

This is logically equivalent togetNumUses() >= N.

Definition at line153 of fileValue.cpp.

Referenced byprocessUMulZExtIdiom(),llvm::InstCombinerImpl::visitPHINode(), andllvm::InstCombinerImpl::visitSub().

◆ hasOneUse()

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

Return true if there is exactly one use of this value.

This is specialized because it is a common request and does not require traversing the whole use list.

Definition at line434 of fileValue.h.

Referencesllvm::hasSingleElement(), anduses().

Referenced byareTwoInsertFromSameBuildVector(),canonicalizeSaturatedSubtract(),checkForNegativeOperand(),combine_CC(),combineBinOpOfExtractToReduceTree(),combineCastedMaskArithmetic(),combineFMulcFCMulc(),combineMaskedStore(),combinePMULDQ(),combineSelect(),combineSetCC(),combineTargetShuffle(),dropRedundantMaskingOfLeftShiftInput(),emitGlobalConstantImpl(),factorizeFAddFSub(),factorizeMinMaxTree(),findBuildAggregate_rec(),llvm::SelectionDAGBuilder::FindMergedConditions(),FindSingleUseIdentifiedObject(),llvm::InstCombinerImpl::foldAddWithConstant(),foldAndOrOfICmpEqConstantAndICmp(),foldAndOrOfICmpsWithConstEq(),foldAndOrOfSETCC(),foldAndToXor(),llvm::foldBranchToCommonDest(),foldClampRangeOfTwo(),foldComplexAndOrPatterns(),foldCtpop(),foldCtpopPow2Test(),llvm::InstCombinerImpl::foldFMulReassoc(),llvm::InstCombinerImpl::foldGEPICmp(),foldGEPOfPhi(),llvm::InstCombinerImpl::foldICmpAndConstConst(),llvm::InstCombinerImpl::foldICmpAndShift(),foldICmpAndXX(),llvm::InstCombinerImpl::foldICmpBinOp(),llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(),llvm::InstCombinerImpl::foldICmpBitCast(),llvm::InstCombinerImpl::foldICmpDivConstant(),llvm::InstCombinerImpl::foldICmpEquality(),llvm::InstCombinerImpl::foldICmpInstWithConstant(),foldICmpOrXX(),llvm::InstCombinerImpl::foldICmpShlConstant(),llvm::InstCombinerImpl::foldICmpShrConstant(),llvm::InstCombinerImpl::foldICmpSRemConstant(),llvm::InstCombinerImpl::foldICmpSubConstant(),llvm::InstCombinerImpl::foldICmpTruncConstant(),llvm::InstCombinerImpl::foldICmpUsingBoolRange(),llvm::InstCombinerImpl::foldICmpWithZextOrSext(),foldIdentityExtractShuffle(),foldIDivShl(),foldInsSequenceIntoSplat(),llvm::InstCombinerImpl::foldIntegerTypedPHI(),foldIntrinsicUsingDistributiveLaws(),foldNoWrapAdd(),llvm::InstCombinerImpl::foldOpIntoPhi(),foldOrToXor(),foldSelectICmpAndBinOp(),llvm::InstCombinerImpl::foldSelectOpOp(),llvm::InstCombinerImpl::foldSelectShuffle(),llvm::InstCombinerImpl::FoldShiftByConstant(),foldShiftIntoShiftInAnotherHandOfAndInICmp(),foldSubOfMinMax(),foldUnsignedUnderflowCheck(),llvm::InstCombinerImpl::foldVectorBinop(),foldVectorCmp(),foldVecTruncToExtElt(),foldXorToXor(),llvm::AArch64TTIImpl::getArithmeticInstrCost(),llvm::GCNTTIImpl::getArithmeticInstrCost(),llvm::ARMTTIImpl::getArithmeticInstrCost(),llvm::ARMTTIImpl::getCmpSelInstrCost(),llvm::HexagonTTIImpl::getInstructionCost(),llvm::ARMTTIImpl::getIntImmCostInst(),llvm::SystemZTTIImpl::getMemoryOpCost(),llvm::AArch64TTIImpl::getShuffleCost(),hasNonFlagsUse(),hasUseOtherThanLLVMUsed(),hoistAddSub(),hoistMulAddAssociation(),llvm::InvertBranch(),llvm::RecurrenceDescriptor::isConditionalRdxPattern(),llvm::AArch64TTIImpl::isExtPartOfAvgExpr(),isF128MovedToParts(),llvm::RecurrenceDescriptor::isFindLastIVPattern(),isFirstInsertElement(),llvm::SystemZTTIImpl::isFoldableLoad(),isFPSatMinMaxPattern(),isI128MovedToParts(),lowerAddSubToHorizontalOp(),llvm::MSP430TargetLowering::LowerSETCC(),llvm::X86::mayFoldIntoStore(),narrowInsElt(),optimizeLoopExitWithUnknownExitCount(),performAddCombineForShiftedOperands(),performAddCSelIntoCSinc(),llvm::ARMTargetLowering::PerformBRCONDCombine(),llvm::ARMTargetLowering::PerformCMOVCombine(),performMSTORECombine(),performOrXorChainCombine(),performSETCCCombine(),performSTORECombine(),PerformVQDMULHCombine(),processUGT_ADDCST_ADD(),rematerializeLiveValuesAtUses(),removeEmptyCleanup(),replaceArgumentUses(),replaceExtractElements(),ShouldBreakUpSubtract(),shouldConvertToRelLookupTable(),shouldExpandCmpArithRMWInIR(),llvm::X86TargetLowering::shouldReduceLoadWidth(),llvm::InstCombinerImpl::SimplifyAddWithRemainder(),llvm::InstCombinerImpl::simplifyBinOpSplats(),llvm::InstCombinerImpl::SimplifyDemandedBits(),llvm::InstCombinerImpl::SimplifyDemandedVectorElts(),llvm::InstCombinerImpl::simplifyDivRemOfSelectWithZeroOp(),llvm::InstCombinerImpl::SimplifySelectsFeedingBinaryOp(),simplifySetCCIntoEq(),llvm::InstCombinerImpl::simplifyShrShlDemandedBits(),sinkAndCmp0Expression(),llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(),translateSetCCForBranch(),tryFactorization(),llvm::FastISel::tryToFoldLoad(),llvm::JumpThreadingPass::tryToUnfoldSelect(),llvm::InstCombinerImpl::visitAdd(),llvm::InstCombinerImpl::visitAnd(),llvm::InstCombinerImpl::visitCallInst(),llvm::InstCombinerImpl::visitExtractElementInst(),llvm::InstCombinerImpl::visitFCmpInst(),llvm::InstCombinerImpl::visitFDiv(),llvm::InstCombinerImpl::visitFree(),llvm::InstCombinerImpl::visitICmpInst(),llvm::InstCombinerImpl::visitInsertElementInst(),llvm::InstCombinerImpl::visitLShr(),llvm::InstCombinerImpl::visitMul(),llvm::InstCombinerImpl::visitOr(),llvm::InstCombinerImpl::visitPHINode(),llvm::InstCombinerImpl::visitSExt(),llvm::InstCombinerImpl::visitShuffleVectorInst(),llvm::InstCombinerImpl::visitSub(),llvm::InstCombinerImpl::visitSwitchInst(),llvm::InstCombinerImpl::visitXor(), andllvm::InstCombinerImpl::visitZExt().

◆ hasOneUser()

bool Value::hasOneUser() const

Return true if there is exactly one user of this value.

Note that this is not the same as "has one use". If a value has one use, then there certainly is a single user. But if value has several uses, it is possible that all uses are in a single user, or not.

This check is potentially costly, since it requires traversing, in the worst case, the whole use list of a value.

Definition at line157 of fileValue.cpp.

Referenced byllvm::InstCombinerImpl::foldOpIntoPhi(),llvm::InstCombinerImpl::foldPHIArgLoadIntoPHI(),llvm::LoopVectorizationCostModel::getReductionPatternCost(), andisNotUsedOrFoldableInLoop().

◆ hasSameSubclassOptionalData()

bool llvm::Value::hasSameSubclassOptionalData(constValueV) const
inline

Check the optional flags for equality.

Definition at line549 of fileValue.h.

ReferencesSubclassOptionalData.

◆ hasValueHandle()

bool llvm::Value::hasValueHandle() const
inline

Return true if there is a value handle associated with this value.

Definition at line554 of fileValue.h.

Referenced byllvm::MemorySSAUpdater::removeMemoryAccess(), andllvm::SSAUpdaterBulk::RewriteAllUses().

◆ isSwiftError()

bool Value::isSwiftError() const

Return true if this value is a swifterror value.

swifterror values can be either a function argument or an alloca with a swifterror attribute.

Definition at line1096 of fileValue.cpp.

Referenced bycollectMemAccessInfo(),findExtractedInputToOverallInputMapping(),llvm::InstCombinerImpl::foldPHIArgLoadIntoPHI(), andllvm::SwiftErrorValueTracking::preassignVRegs().

◆ isUsedByMetadata()

bool llvm::Value::isUsedByMetadata() const
inline

Return true if there is metadata referencing this value.

Definition at line557 of fileValue.h.

ReferencesIsUsedByMD.

◆ isUsedInBasicBlock()

bool Value::isUsedInBasicBlock(constBasicBlockBB) const

Check if this value is used in the specified basic block.

Definition at line234 of fileValue.cpp.

◆ materialized_use_begin()[1/2]

use_iterator llvm::Value::materialized_use_begin()
inline

Definition at line356 of fileValue.h.

Referenced bymaterialized_uses(), anduse_begin().

◆ materialized_use_begin()[2/2]

const_use_iterator llvm::Value::materialized_use_begin() const
inline

Definition at line357 of fileValue.h.

◆ materialized_use_empty()

bool llvm::Value::materialized_use_empty() const
inline

Definition at line349 of fileValue.h.

◆ materialized_user_begin()[1/2]

user_iterator llvm::Value::materialized_user_begin()
inline

Definition at line393 of fileValue.h.

Referenced bymaterialized_users(),user_back(), anduser_begin().

◆ materialized_user_begin()[2/2]

const_user_iterator llvm::Value::materialized_user_begin() const
inline

Definition at line394 of fileValue.h.

◆ materialized_users()[1/2]

iterator_range<user_iterator > llvm::Value::materialized_users()
inline

Definition at line415 of fileValue.h.

Referencesllvm::make_range(),materialized_user_begin(), anduser_end().

Referenced byforEachUser(), andusers().

◆ materialized_users()[2/2]

iterator_range<const_user_iterator > llvm::Value::materialized_users() const
inline

Definition at line418 of fileValue.h.

Referencesllvm::make_range(),materialized_user_begin(), anduser_end().

◆ materialized_uses()[1/2]

iterator_range<use_iterator > llvm::Value::materialized_uses()
inline

Definition at line370 of fileValue.h.

Referencesllvm::make_range(),materialized_use_begin(), anduse_end().

Referenced byuses().

◆ materialized_uses()[2/2]

iterator_range<const_use_iterator > llvm::Value::materialized_uses() const
inline

Definition at line373 of fileValue.h.

Referencesllvm::make_range(),materialized_use_begin(), anduse_end().

◆ mutateType()

void llvm::Value::mutateType(TypeTy)
inline

Mutate the type of thisValue to be of the specified type.

Note that this is an extremely dangerous operation which can create completely invalid IR very easily. It is strongly recommended that you recreate IR objects with the right types instead of mutating them in place.

Definition at line819 of fileValue.h.

Referenced byllvm::CallBase::mutateFunctionType().

◆ operator=()

Value & llvm::Value::operator=(constValue)
delete

◆ print()[1/2]

void Value::print(raw_ostreamO,
bool IsForDebug =false 
) const

Implement operator<< onValue.

Definition at line5061 of fileAsmWriter.cpp.

ReferencesgetModuleFromVal(),I,isReferencingMDNode(), andprint().

Referenced byllvm::MIRPrinter::convert(),dump(),llvm::MCTargetStreamer::emitValue(),llvm::operator<<(),print(), andllvm::AccelTableBase::HashData::print().

◆ print()[2/2]

void Value::print(raw_ostreamO,
ModuleSlotTrackerMST,
bool IsForDebug =false 
) const

Definition at line5072 of fileAsmWriter.cpp.

ReferencesA,llvm::CallingConv::C,F,llvm::ModuleSlotTracker::getMachine(),getModuleFromVal(),llvm::GlobalValue::getParent(),I,llvm::ModuleSlotTracker::incorporateFunction(),llvm_unreachable,OS,printAsOperand(), andWriteConstantInternal().

◆ printAsOperand()[1/2]

void Value::printAsOperand(raw_ostreamO,
bool PrintType,
ModuleSlotTrackerMST 
) const

Definition at line5159 of fileAsmWriter.cpp.

Referencesllvm::ModuleSlotTracker::getMachine(),llvm::ModuleSlotTracker::getModule(),printAsOperandImpl(), andprintWithoutType().

◆ printAsOperand()[2/2]

void Value::printAsOperand(raw_ostreamO,
bool PrintType =true,
constModuleM =nullptr 
) const

Print the name of thisValue out to the specifiedraw_ostream.

This is useful when you just want to print 'int reg126', not the instruction that generated it. If you specify aModule for context, then even constants get pretty-printed; for example, the type of a null pointer is printed symbolically.

Definition at line5144 of fileAsmWriter.cpp.

ReferencesgetModuleFromVal(),Machine,printAsOperandImpl(), andprintWithoutType().

Referenced byllvm::MIRPrinter::convert(),dumpUnpackedICmp(),llvm::AsmPrinter::emitGlobalVariable(),print(),llvm::AliasSet::print(),llvm::MemoryPhi::print(),llvm::SCEV::print(),llvm::ScalarEvolution::print(),llvm::PassManagerPrettyStackEntry::print(),llvm::IVUsers::print(),llvm::dxil::ResourceBindingInfo::print(),llvm::MachineOperand::print(),llvm::GVNExpression::StoreExpression::printInternal(), andSinkInstruction().

◆ replaceAllUsesWith()

void Value::replaceAllUsesWith(ValueV)

Change all uses of this to point to a newValue.

Go through the uses list for this definition and make each use point to "V" instead of "this". After this completes, 'this's use list is guaranteed to be empty.

Definition at line534 of fileValue.cpp.

Referenced byBreakUpSubtract(),llvm::changeToInvokeAndSplitBasicBlock(),llvm::CloneAndPruneIntoFromInst(),combineLoadToOperationType(),ConvertShiftToMul(),llvm::convertToDeclaration(),llvm::coro::BaseCloner::create(),createMergedFunction(),createRawLoad(),createTblForTrunc(),createTypedBufferLoad(),DoLowering(),doPromotion(),dropTypeTests(),EliminateDuplicatePHINodesNaiveImpl(),eliminateSwiftErrorArgument(),llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(),llvm::LoongArchTargetLowering::emitExpandAtomicRMW(),llvm::objcarc::EraseInstruction(),llvm::expandAtomicRMWToCmpXchg(),llvm::expandDivision(),llvm::expandDivisionUpTo32Bits(),llvm::expandDivisionUpTo64Bits(),expandFPToI(),expandIntrinsic(),expandIToFP(),llvm::expandRemainder(),llvm::expandRemainderUpTo32Bits(),llvm::expandRemainderUpTo64Bits(),expandToSwitch(),findPHIToPartitionLoops(),llvm::SanitizerStatReport::finish(),foldTwoEntryPHINode(),llvm::Constant::handleOperandChange(),llvm::InlineFunction(),inlineGetBaseAndOffset(),insertSpills(),insertUniqueBackedgeBlock(),LLVMReplaceAllUsesWith(),llvm::lowerAtomicCmpXchgInst(),llvm::lowerAtomicRMWInst(),lowerAwaitSuspend(),llvm::RISCVTargetLowering::lowerDeinterleaveIntrinsicToLoad(),lowerExpectIntrinsic(),llvm::SITargetLowering::lowerIdempotentRMWIntoFencedLoad(),llvm::IntrinsicLowering::LowerIntrinsicCall(),lowerKernelArguments(),LowerNegateToMultiply(),lowerSubFn(),llvm::IntrinsicLowering::LowerToByteSwap(),llvm::lowerUnaryVectorIntrinsicAsLoop(),llvm::MergeBasicBlockIntoOnlyPred(),llvm::MergeBlockIntoPredecessor(),mergeCleanupPad(),llvm::InstDeleterIRStrategy::mutate(),nullifySetjmp(),optimizeDivRem(),OptimizeEmptyGlobalAtExitDtors(),OptimizeGlobalAddressOfAllocation(),optimizeLoopExitWithUnknownExitCount(),processAnd(),processAShr(),processBlockAddr(),llvm::JumpThreadingPass::processBranchOnXOR(),processCall(),processCmpIntrinsic(),processInternalGlobal(),processMinMaxIntrinsic(),processOverflowIntrinsic(),processSDiv(),processSExt(),processSIToFP(),processSRem(),processUse(),promoteAllocaUserToVector(),promoteSingleBlockAlloca(),llvm::removeAllNonTerminatorAndEHPadInstructions(),removeGlobalCtors(),llvm::PHINode::removeIncomingValue(),llvm::PHINode::removeIncomingValueIf(),removeMarkerCall(),RemovePreallocated(),llvm::removeUnwindEdge(),replace(),replaceAliasWithAliasee(),replaceAllUsesWith(),llvm::sandboxir::Value::replaceAllUsesWith(),replaceArgumentUses(),replaceAsyncResumeFunction(),replaceCalledFunction(),ReplaceCallWith(),replaceFallthroughCoroEnd(),replaceFrameSizeAndAlignment(),replaceLoopPHINodesWithPreheaderValues(),replaceOperation(),replacePrepare(),llvm::coro::BaseCloner::replaceRetconOrAsyncSuspendUses(),llvm::replaceSignedInst(),reuseTableCompare(),llvm::rewriteLoopExitValues(),rewritePHIs(),rewriteSingleStoreAlloca(),llvm::LoadAndStorePromoter::run(),scalarize(),scalarizeMaskedExpandLoad(),scalarizeMaskedGather(),scalarizeMaskedLoad(),simplifyOneLoop(),llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(),simplifyRelocatesOffABase(),simplifySuspendPoint(),sink(),sinkMinMaxInBB(),speculatePHINodeLoads(),speculateSelectInstLoads(),splitCallSite(),llvm::coro::AsyncABI::splitCoroutine(),llvm::coro::AnyRetconABI::splitCoroutine(),splitGlobal(),llvm::SplitIndirectBrCriticalEdges(),SplitLandingPadPredecessorsImpl(),llvm::OpenMPIRBuilder::tileLoops(),tryToRecognizeTableBasedCttz(),tryToReplaceWithGEPBuiltin(),TryToShrinkGlobalToBoolean(),llvm::TryToSimplifyUncondBranchFromEmptyBlock(),tryWidenGlobalArrayAndDests(),llvm::UpgradeARCRuntime(),llvm::UpgradeIntrinsicCall(),upgradeX86IntrinsicCall(),llvm::slpvectorizer::BoUpSLP::vectorizeTree(),llvm::InstCombinerImpl::visitExtractElementInst(),DataScalarizerVisitor::visitGetElementPtrInst(),DataScalarizerVisitor::visitLoadInst(), andllvm::ObjectSizeOffsetEvaluator::visitPHINode().

◆ replaceNonMetadataUsesWith()

void Value::replaceNonMetadataUsesWith(ValueV)

Change non-metadata uses of this to point to a newValue.

Go through the uses list for this definition and make each use point to "V" instead of "this". This function skips metadata entries in the list.

Definition at line538 of fileValue.cpp.

◆ replaceUsesOutsideBlock()

void Value::replaceUsesOutsideBlock(ValueV,
BasicBlockBB 
)

replaceUsesOutsideBlock - Go through the uses list for this definition and make each use point to "V" instead of "this" when the use is outside the block.

'This's use list is expected to have at least one element. UnlikereplaceAllUsesWith() this function does not support basic block values.

Definition at line592 of fileValue.cpp.

◆ replaceUsesWithIf()

void Value::replaceUsesWithIf(ValueNew,
llvm::function_ref<bool(Use &U)> ShouldReplace 
)

Go through the uses list for this definition and make each use point to "V" if the callback ShouldReplace returns true for the givenUse.

UnlikereplaceAllUsesWith() this function does not support basic block values.

Definition at line542 of fileValue.cpp.

Referenced byllvm::OpenMPIRBuilder::createReductionsGPU(),llvm::OpenMPIRBuilder::createTask(),llvm::MemorySSAUpdater::insertDef(),insertSpills(),replaceConstants(), andllvm::TryToSimplifyUncondBranchFromEmptyBlock().

◆ reverseUseList()

void Value::reverseUseList()

Reverse the use-list.

Definition at line1077 of fileValue.cpp.

◆ setMetadata()[1/2]

void Value::setMetadata(StringRef Kind,
MDNodeNode 
)
protected

Definition at line1559 of fileMetadata.cpp.

ReferencesgetContext(),HasMetadata, andsetMetadata().

◆ setMetadata()[2/2]

void Value::setMetadata(unsigned KindID,
MDNodeNode 
)
protected

Set a particular kind of metadata attachment.

Sets the given attachment toMD, erasing it ifMD isnullptr or replacing it if it already exists.

Definition at line1531 of fileMetadata.cpp.

Referencesassert(),getContext(),HasMetadata,Info,llvm::LLVMContext::pImpl, andllvm::LLVMContextImpl::ValueMetadata.

Referenced bysetMetadata(),llvm::Instruction::setMetadata(), andllvm::InstCombinerImpl::visitCallInst().

◆ setName()

void Value::setName(constTwineName)

Change the name of the value.

Choose a new unique name if the provided name is taken.

Parameters
NameThe new name; or "" if the value's name should be removed.

Definition at line377 of fileValue.cpp.

Referenced byaddReplicateRegions(),llvm::AllocaInst::AllocaInst(),llvm::BinaryOperator::BinaryOperator(),llvm::CastInst::CastInst(),llvm::CloneBasicBlock(),cloneCandidateFunction(),llvm::CloneFunction(),llvm::CloneModule(),llvm::CmpInst::CmpInst(),llvm::OpenMPIRBuilder::AtomicInfo::CreateAlloca(),llvm::EpilogueVectorizerMainLoop::createEpilogueVectorizedLoopSkeleton(),llvm::EpilogueVectorizerEpilogueLoop::createEpilogueVectorizedLoopSkeleton(),llvm::InnerLoopVectorizer::createInductionAdditionalBypassValues(),createMemMoveLoopKnownSize(),createMemMoveLoopUnknownSize(),llvm::OpenMPIRBuilder::createParallel(),llvm::createSanitizerCtorAndInitFunctions(),llvm::OpenMPIRBuilder::createTeams(),doPromotion(),llvm::DuplicateInstructionsInSplitBetween(),llvm::embedBitcodeInModule(),llvm::EpilogueVectorizerMainLoop::emitIterationCountCheck(),emitTransformedIndex(),llvm::VPDerivedIVRecipe::execute(),externalize(),findBasePointer(),forceRenaming(),llvm::FreezeInst::FreezeInst(),generateUnsignedDivisionCode(),llvm::GlobalValue::GlobalValue(),InsertStackProtectors(),LLVMSetValueName(),LLVMSetValueName2(),llvm::LoadInst::LoadInst(),llvm::IntrinsicLowering::LowerIntrinsicCall(),lowerIntrinsicToFunction(),lowerObjCCall(),makeStatepointExplicitImpl(),optimizeDivRem(),optimizeSQRT(),llvm::LoopStructure::parseLoopStructure(),llvm::peelLoop(),llvm::Intrinsic::remangleIntrinsicFunction(),rematerializeChain(),rename(),ReplaceCallWith(),rewriteMaterializableInstructions(),llvm::LoopConstrainer::run(),runImpl(),llvm::InnerLoopVectorizer::scalarizeInstruction(),scalarizeMaskedCompressStore(),scalarizeMaskedExpandLoad(),scalarizeMaskedGather(),scalarizeMaskedLoad(),scalarizeMaskedScatter(),scalarizeMaskedStore(),scalarizeMaskedVectorHistogram(),llvm::ShuffleVectorInst::ShuffleVectorInst(),sinkInstruction(),SplitLandingPadPredecessorsImpl(),llvm::splitLoopBound(),switchToLookupTable(),turnGuardIntoBranch(),llvm::UnaryOperator::UnaryOperator(),llvm::UnrollRuntimeLoopRemainder(),versionCallSiteWithCond(),llvm::LoopVersioning::versionLoop(), andllvm::logicalview::LVSymbolVisitor::visitKnownRecord().

◆ setValueName()

void Value::setValueName(ValueNameVN)

Definition at line292 of fileValue.cpp.

◆ setValueSubclassData()

void llvm::Value::setValueSubclassData(unsigned short D)
inlineprotected

Definition at line871 of fileValue.h.

ReferencesD.

◆ sortUseList()

template<class Compare >
void llvm::Value::sortUseList(Compare Cmp)

Sort the use-list.

Sorts theValue's use-list by Cmp using a stable mergesort. Cmp is expected to compare twoUse references.

Definition at line902 of fileValue.h.

Referencesassert(), andI.

◆ stripAndAccumulateConstantOffsets()[1/2]

Value * llvm::Value::stripAndAccumulateConstantOffsets(constDataLayoutDL,
APIntOffset,
bool AllowNonInbounds,
bool AllowInvariantGroup =false,
function_ref<bool(Value &Value,APInt &Offset)> ExternalAnalysis =nullptr 
)
inline

Definition at line727 of fileValue.h.

ReferencesDL,llvm::Offset, andstripAndAccumulateConstantOffsets().

◆ stripAndAccumulateConstantOffsets()[2/2]

constValue * llvm::Value::stripAndAccumulateConstantOffsets(constDataLayoutDL,
APIntOffset,
bool AllowNonInbounds,
bool AllowInvariantGroup =false,
function_ref<bool(Value &Value,APInt &Offset)> ExternalAnalysis =nullptr 
) const

Accumulate the constant offset this value has compared to a base pointer.

Only 'getelementptr' instructions (GEPs) are accumulated but other instructions, e.g., casts, are stripped away as well. The accumulated constant offset is added toOffset and the base pointer is returned.

TheAPIntOffset has to have a bit-width equal to the IntPtr type for the address space of 'this' pointer value, e.g., use DataLayout::getIndexTypeSizeInBits(Ty).

IfAllowNonInbounds is true, offsets in GEPs are stripped and accumulated even if the GEP is not "inbounds".

IfAllowInvariantGroup is true then this method also looks through strip.invariant.group and launder.invariant.group intrinsics.

IfExternalAnalysis is provided it will be used to calculate a offset when a operand of GEP is not constant. For example, for a valueExternalAnalysis might try to calculate a lower bound. IfExternalAnalysis is successful, it should return true.

If this is called on a non-pointer value, it returns 'this' and theOffset is not modified.

Note that this function will never return a nullptr. It will also never manipulate theOffset in a way that would not match the difference between the underlying value and the returned one. Thus, if no constant offset was found, the returned value is the underlying one andOffset is unchanged.

Referenced byareNonOverlapSameBaseLoadAndStore(),CleanupConstantGlobalUsers(),computePointerICmp(),foldConsecutiveLoads(),foldLoadsRecursive(),getAssignmentInfoImpl(),llvm::getPointersDiff(),llvm::ConstantPtrAuth::isKnownCompatibleWith(),llvm::simplifyLoadInst(),stripAndAccumulateConstantOffsets(),stripAndAccumulateInBoundsConstantOffsets(),stripAndAccumulateOffsets(),transformToIndexedCompare(), andllvm::tryPromoteCall().

◆ stripAndAccumulateInBoundsConstantOffsets()[1/2]

Value * llvm::Value::stripAndAccumulateInBoundsConstantOffsets(constDataLayoutDL,
APIntOffset 
)
inline

Definition at line745 of fileValue.h.

ReferencesDL,llvm::Offset, andstripAndAccumulateConstantOffsets().

◆ stripAndAccumulateInBoundsConstantOffsets()[2/2]

constValue * llvm::Value::stripAndAccumulateInBoundsConstantOffsets(constDataLayoutDL,
APIntOffset 
) const
inline

This is a wrapper around stripAndAccumulateConstantOffsets with the in-bounds requirement set to false.

Definition at line740 of fileValue.h.

ReferencesDL,llvm::Offset, andstripAndAccumulateConstantOffsets().

Referenced byllvm::ConstantFoldCompareInstOperands(),isNonEqualPointersWithRecursiveGEP(), andllvm::InstCombinerImpl::visitGetElementPtrInst().

◆ stripInBoundsConstantOffsets()[1/2]

Value * llvm::Value::stripInBoundsConstantOffsets()
inline

Definition at line687 of fileValue.h.

ReferencesstripInBoundsConstantOffsets().

◆ stripInBoundsConstantOffsets()[2/2]

constValue * Value::stripInBoundsConstantOffsets() const

Strip off pointer casts and all-constant inbounds GEPs.

Returns the original pointer value. If this is called on a non-pointer value, it returns 'this'.

Definition at line706 of fileValue.cpp.

Referenced bystripInBoundsConstantOffsets(), andllvm::PGOIndirectCallVisitor::tryGetVTableInstruction().

◆ stripInBoundsOffsets()[1/2]

Value * llvm::Value::stripInBoundsOffsets(function_ref< void(constValue *)> Func =[](const Value *) {})
inline

Definition at line757 of fileValue.h.

◆ stripInBoundsOffsets()[2/2]

constValue * Value::stripInBoundsOffsets(function_ref< void(constValue *)> Func =[](const Value *) {}) const

Strip off pointer casts and inbounds GEPs.

Returns the original pointer value. If this is called on a non-pointer value, it returns 'this'.

Definition at line786 of fileValue.cpp.

◆ stripPointerCasts()[1/2]

Value * llvm::Value::stripPointerCasts()
inline

Definition at line644 of fileValue.h.

ReferencesstripPointerCasts().

◆ stripPointerCasts()[2/2]

constValue * Value::stripPointerCasts() const

Strip off pointer casts, all-zero GEPs and address space casts.

Returns the original uncasted value. If this is called on a non-pointer value, it returns 'this'.

Definition at line694 of fileValue.cpp.

Referenced byllvm::MachineFunction::addLandingPad(),canParameterizeCallOperand(),llvm::Attributor::changeAfterManifest(),llvm::classifyEHPersonality(),compareNames(),llvm::diagnoseDontCall(),DoLowering(),llvm::emitCalloc(),llvm::WebAssemblyAsmPrinter::EmitFunctionAttributes(),llvm::emitMemCpyChk(),llvm::emitPutChar(),llvm::emitPutS(),llvm::objcarc::EraseInstruction(),llvm::VPInterleaveRecipe::execute(),llvm::findAvailablePtrLoadStore(),llvm::findDevirtualizableCallsForTypeTest(),findInitTrampolineFromAlloca(),findSafeStoreForStoreStrongContraction(),FindUsedValues(),findUsedValues(),llvm::InstCombinerImpl::foldGEPICmp(),llvm::AnyCoroIdRetconInst::getAllocFunction(),llvm::CoroAsyncContextDeallocInst::getAsyncContext(),llvm::CoroSuspendAsyncInst::getAsyncContextProjectionFunction(),llvm::CoroIdAsyncInst::getAsyncFunctionPointer(),llvm::CoroAsyncContextAllocInst::getAsyncFunctionPointer(),getAvailableLoadStore(),llvm::CoroIdInst::getCoroutine(),llvm::AnyCoroIdRetconInst::getDeallocFunction(),llvm::MemIntrinsicBase< Derived >::getDest(),getInvariantGroupClobberingInstruction(),llvm::MemoryDependenceResults::getInvariantGroupPointerDependency(),KernelInfo::getKernelEnvironementGVFromKernelInitCB(),getKnownConstant(),llvm::getMaybeBitcastedCallee(),llvm::CoroSuspendAsyncInst::getMustTailCallFunction(),llvm::CoroAsyncEndInst::getMustTailCallFunction(),llvm::InstrProfInstBase::getNameValue(),llvm::CoroIdInst::getPromise(),llvm::AnyCoroIdRetconInst::getPrototype(),llvm::CoroIdInst::getRawInfo(),llvm::CoroSuspendAsyncInst::getResumeFunction(),llvm::objcarc::getreturnRVOperand(),llvm::MemTransferBase< BaseCL >::getSource(),isMaskedStoreOverwrite(),llvm::isSafeToLoadUnconditionally(),llvm::CallLowering::lowerCall(),OptimizeEmptyGlobalAtExitDtors(),optimizeOnceStoredGlobal(),llvm::InstCombinerImpl::OptimizePointerDifference(),replacePrepare(),simplifySuspendPoint(),stripPointerCasts(),llvm::Constant::stripPointerCasts(),llvm::tryDelinearizeFixedSizeImpl(),llvm::InstCombinerImpl::visitLandingPadInst(), andllvm::InstCombinerImpl::visitPHINode().

◆ stripPointerCastsAndAliases()[1/2]

Value * llvm::Value::stripPointerCastsAndAliases()
inline

Definition at line654 of fileValue.h.

ReferencesstripPointerCastsAndAliases().

◆ stripPointerCastsAndAliases()[2/2]

constValue * Value::stripPointerCastsAndAliases() const

Strip off pointer casts, all-zero GEPs, address space casts, and aliases.

Returns the original uncasted value. If this is called on a non-pointer value, it returns 'this'.

Definition at line698 of fileValue.cpp.

Referenced byllvm::GlobalIFunc::getResolverFunction(),llvm::TargetLowering::LowerToTLSEmulatedModel(), andstripPointerCastsAndAliases().

◆ stripPointerCastsForAliasAnalysis()[1/2]

Value * llvm::Value::stripPointerCastsForAliasAnalysis()
inline

Definition at line677 of fileValue.h.

ReferencesstripPointerCastsForAliasAnalysis().

◆ stripPointerCastsForAliasAnalysis()[2/2]

constValue * Value::stripPointerCastsForAliasAnalysis() const

Strip off pointer casts, all-zero GEPs, single-argument phi nodes and invariant group info.

Returns the original uncasted value. If this is called on a non-pointer value, it returns 'this'. This function should be used only in Alias analysis.

Definition at line710 of fileValue.cpp.

Referenced byllvm::GlobalsAAResult::alias(), andstripPointerCastsForAliasAnalysis().

◆ stripPointerCastsSameRepresentation()[1/2]

Value * llvm::Value::stripPointerCastsSameRepresentation()
inline

Definition at line665 of fileValue.h.

ReferencesstripPointerCastsSameRepresentation().

◆ stripPointerCastsSameRepresentation()[2/2]

constValue * Value::stripPointerCastsSameRepresentation() const

Strip off pointer casts, all-zero GEPs and address space casts but ensures the representation of the result stays the same.

Returns the original uncasted value with the same representation. If this is called on a non-pointer value, it returns 'this'.

Definition at line702 of fileValue.cpp.

Referenced byllvm::AlignmentFromAssumptionsPass::extractAlignmentInfo(), andstripPointerCastsSameRepresentation().

◆ takeName()

void Value::takeName(ValueV)

Transfer the name from V to this value.

After taking V's name, sets V's name to empty.

Note
It is an error to call V->takeName(V).

Definition at line383 of fileValue.cpp.

Referenced byllvm::changeToCall(),cloneInstructionsIntoPredecessorBlockAndUpdateSSAUses(),llvm::convertToDeclaration(),llvm::coro::BaseCloner::create(),DoLowering(),doPromotion(),llvm::embedBitcodeInModule(),llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(),llvm::InstCombinerImpl::EvaluateInDifferentType(),expandUDivOrURem(),foldConsecutiveLoads(),llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(),llvm::InstCombinerImpl::foldOpIntoPhi(),llvm::InstCombinerImpl::foldSelectIntoOp(),llvm::InstCombinerImpl::FoldShiftByConstant(),foldShiftedShift(),foldTwoEntryPHINode(),forceRenaming(),HandleInlinedEHPad(),hoistMinMax(),INITIALIZE_PASS(),llvm::GCNTTIImpl::instCombineIntrinsic(),instCombineLD1GatherIndex(),instCombineRDFFR(),instCombineSVECmpNE(),instCombineSVECntElts(),instCombineSVEPTest(),instCombineSVETBL(),instCombineSVEUnpack(),instCombineSVEUzp1(),llvm::SITargetLowering::lowerIdempotentRMWIntoFencedLoad(),LowerNegateToMultiply(),llvm::MergeBlockIntoPredecessor(),modifyIntrinsicCall(),moveFunctionAdaptingType(),optimizeSection(),PropagateOperandBundles(),reassociateMinMaxWithConstantInOperand(),removeFromUsedList(),removeGlobalCtors(),RemovePreallocated(),llvm::removeUnwindEdge(),replaceAliasWithAliasee(),llvm::replaceSignedInst(),replaceUnaryCall(),rewriteMemOpOfSelect(),rewritePHIs(),scalarizeMaskedLoad(),simplifyAMDGCNMemoryIntrinsicDemanded(),llvm::InstCombinerImpl::SimplifyAssociativeOrCommutative(),llvm::InstCombinerImpl::SimplifyDemandedUseBits(),llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(),simplifyRelocatesOffABase(),tryFactorization(),TryToShrinkGlobalToBoolean(),llvm::TryToSimplifyUncondBranchFromEmptyBlock(),llvm::UpgradeARCRuntime(),llvm::UpgradeIntrinsicCall(),llvm::slpvectorizer::BoUpSLP::vectorizeTree(),llvm::InstCombinerImpl::visitMul(),llvm::InstCombinerImpl::visitOr(),llvm::InstCombinerImpl::visitXor(),widenDestArray(), andwidenGlobalVariable().

◆ use_begin()[1/2]

use_iterator llvm::Value::use_begin()
inline

Definition at line360 of fileValue.h.

ReferencesassertModuleIsMaterialized(), andmaterialized_use_begin().

Referenced byforEachCall(),llvm::LazyValueInfoImpl::getValueAtUse(),hasNonFlagsUse(),OptimizeGlobalAddressOfAllocation(),llvm::MemorySSAUpdater::removeMemoryAccess(),shouldConvertToRelLookupTable(),llvm::sandboxir::Value::use_begin(), andllvm::sandboxir::Value::user_begin().

◆ use_begin()[2/2]

const_use_iterator llvm::Value::use_begin() const
inline

Definition at line364 of fileValue.h.

ReferencesassertModuleIsMaterialized(), andmaterialized_use_begin().

◆ use_empty()

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

Definition at line344 of fileValue.h.

ReferencesassertModuleIsMaterialized().

Referenced byllvm::RecurrenceDescriptor::AddReductionVar(),computeVirtualCallSiteTypeInfoMap(),createRetPHINode(),DCEInstruction(),deleteIfDead(),llvm::Constant::destroyConstant(),llvm::AsmPrinter::doFinalization(),doPromotion(),dropTypeTests(),llvm::OpenMPIRBuilder::emitBlock(),llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(),llvm::objcarc::EraseInstruction(),findArgParts(),foldURemOfLoopIncrement(),forEachCall(),hasAddressTakenAndUsed(),hasSameExtUse(),hasUseOtherThanLLVMUsed(),llvm::InlineFunction(),isIntrinsicOrLFToBeTailCalled(),AliasScopeTracker::isNoAliasScopeDeclDead(),isRemovableWrite(),llvm::IntrinsicLowering::LowerIntrinsicCall(),mustPreserveGV(),OptimizeAwayTrappingUsesOfLoads(),OptimizeExtractBits(),OptimizeGlobalAddressOfAllocation(),optimizeGlobalsInModule(),processInternalGlobal(),processSelect(),llvm::promoteLoopAccessesToScalars(),promoteSingleBlockAlloca(),llvm::RecursivelyDeleteTriviallyDeadInstructions(),llvm::StatepointLoweringState::relocCallVisited(),llvm::removeAllNonTerminatorAndEHPadInstructions(),removeEmptyCleanup(),llvm::MemorySSA::removeFromLookups(),removeGlobalCtors(),llvm::slpvectorizer::BoUpSLP::removeInstructionsAndOperands(),llvm::MemorySSAUpdater::removeMemoryAccess(),ReplaceCallWith(),llvm::LazyCallGraph::RefSCC::replaceNodeFunction(),llvm::rewriteLoopExitValues(),RewriteUsesOfClonedInstructions(),llvm::LoadAndStorePromoter::run(),llvm::StatepointLoweringState::scheduleRelocCall(),llvm::SITargetLowering::shouldExpandAtomicRMWInIR(),simplifyAndDCEInstruction(),SinkCast(),speculatePHINodeLoads(),splitCallSite(),splitGlobal(),splitGlobals(),SplitLandingPadPredecessorsImpl(),stripDebugDeclareImpl(),llvm::stripDebugifyMetadata(),TryToShrinkGlobalToBoolean(),llvm::UpgradeARCRuntime(),llvm::InstCombinerImpl::visitCallInst(), andllvm::PtrUseVisitor< DerivedT >::visitGetElementPtrInst().

◆ use_end()[1/2]

use_iterator llvm::Value::use_end()
inline

Definition at line368 of fileValue.h.

Referenced bymaterialized_uses(),llvm::sandboxir::Value::use_begin(), andllvm::sandboxir::Value::user_begin().

◆ use_end()[2/2]

const_use_iterator llvm::Value::use_end() const
inline

Definition at line369 of fileValue.h.

◆ user_back()[1/2]

User * llvm::Value::user_back()
inline

Definition at line407 of fileValue.h.

ReferencesassertModuleIsMaterialized(), andmaterialized_user_begin().

Referenced byllvm::OpenMPIRBuilder::createTeams(),llvm::Constant::destroyConstant(),emitGlobalConstantImpl(),llvm::OpenMPIRBuilder::emitTargetTask(),hostParallelCallback(),OptimizeGlobalAddressOfAllocation(),replaceArgumentUses(),stripDebugDeclareImpl(),targetParallelCallback(), andTryToShrinkGlobalToBoolean().

◆ user_back()[2/2]

constUser * llvm::Value::user_back() const
inline

Definition at line411 of fileValue.h.

ReferencesassertModuleIsMaterialized(), andmaterialized_user_begin().

◆ user_begin()[1/2]

user_iterator llvm::Value::user_begin()
inline

Definition at line397 of fileValue.h.

ReferencesassertModuleIsMaterialized(), andmaterialized_user_begin().

Referenced byaddAllGlobalValueUsers(),llvm::AArch64TTIImpl::getArithmeticInstrCost(),llvm::GCNTTIImpl::getArithmeticInstrCost(),llvm::ARMTTIImpl::getIntImmCostInst(),llvm::SystemZTTIImpl::getMemoryOpCost(),llvm::slpvectorizer::BoUpSLP::getReorderingData(),llvm::AArch64TTIImpl::getShuffleCost(),hasSameExtUse(),llvm::SystemZTTIImpl::isFoldableLoad(),isFPSatMinMaxPattern(),isI128MovedToParts(),isPointerUseReplacable(),isSSATMinMaxPattern(),llvm::X86::mayFoldIntoStore(),OptimizeExtractBits(),rematerializeLiveValuesAtUses(),llvm::Constant::removeDeadConstantUsers(),replaceAllUsesWith(),llvm::X86TargetLowering::shouldReduceLoadWidth(),sinkAndCmp0Expression(),SinkCast(), andllvm::PredicateInfo::~PredicateInfo().

◆ user_begin()[2/2]

const_user_iterator llvm::Value::user_begin() const
inline

Definition at line401 of fileValue.h.

ReferencesassertModuleIsMaterialized(), andmaterialized_user_begin().

◆ user_empty()

bool llvm::Value::user_empty() const
inline

Definition at line385 of fileValue.h.

ReferencesassertModuleIsMaterialized().

Referenced byrematerializeLiveValuesAtUses().

◆ user_end()[1/2]

user_iterator llvm::Value::user_end()
inline

Definition at line405 of fileValue.h.

Referenced byaddAllGlobalValueUsers(),isPointerUseReplacable(),materialized_users(),OptimizeExtractBits(),llvm::Constant::removeDeadConstantUsers(),sinkAndCmp0Expression(),SinkCast(), andllvm::PredicateInfo::~PredicateInfo().

◆ user_end()[2/2]

const_user_iterator llvm::Value::user_end() const
inline

Definition at line406 of fileValue.h.

◆ users()[1/2]

iterator_range<user_iterator > llvm::Value::users()
inline

Definition at line421 of fileValue.h.

ReferencesassertModuleIsMaterialized(), andmaterialized_users().

Referenced byaddFullyUnrolledInstructionsToIgnore(),llvm::RecurrenceDescriptor::AddReductionVar(),llvm::LoopVectorizationLegality::canFoldTailByMasking(),llvm::canTrackGlobalVariableInterprocedurally(),CleanupConstantGlobalUsers(),CleanupPointerRootUsers(),clearAssumptionsOfUsers(),llvm::InstCombinerImpl::convertOrOfShiftsToFunnelShift(),llvm::createAnyOfReduction(),createOutlinedFunction(),createRetBitCast(),createRetPHINode(),detectPopcountIdiom(),llvm::InstCombinerImpl::dominatesAllUses(),dropTypeTests(),findInitTrampolineFromAlloca(),FindPreallocatedCall(),FindSingleUseIdentifiedObject(),llvm::InstCombinerImpl::foldICmpSubConstant(),llvm::InstCombinerImpl::foldIntegerTypedPHI(),llvm::InstCombinerImpl::foldOpIntoPhi(),llvm::InstCombinerImpl::foldPHIArgIntToPtrToPHI(),forwardStoredOnceStore(),getArgSPIRVType(),getCleanupRetUnwindDest(),getFSqrtDivOptPattern(),llvm::GCStatepointInst::getGCRelocates(),getGCResultLocality(),getInvariantGroupClobberingInstruction(),llvm::HexagonTargetObjectFile::getLutUsedFunction(),llvm::getNumOfCalls(),llvm::sandboxir::Value::getNumUses(),llvm::RecurrenceDescriptor::getReductionOpChain(),getUnwindDestToken(),getUnwindDestTokenHelper(),getVectorDeinterleaveFactor(),HasAddressTaken(),hasExceptionPointerOrCodeUser(),hasHardUserWithinLoop(),hasLifetimeMarkers(),llvm::hasOutsideLoopUser(),hasSameExtUse(),hasStoreUsersOnly(),insertSpills(),llvm::invertCondition(),llvm::isAllocaPromotable(),isAllocSiteRemovable(),llvm::isAlmostDeadIV(),isArgUnmodifiedByAllCalls(),llvm::Loop::isAuxiliaryInductionVariable(),llvm::Constant::isConstantUsed(),llvm::RecurrenceDescriptor::isFixedOrderRecurrence(),isGOTEquivalentCandidate(),isHighCostExpansion(),isI32InsnAllUses(),llvm::isOverflowIntrinsicNoWrap(),isPointerValueDeadOnEntryToFunction(),isPTruePromoted(),isSafePHIToSpeculate(),localAllocaNeedsStackSave(),llvm::LowerDbgDeclare(),lowerLocalAllocas(),mapWasmLandingPadIndex(),negateICmpIfUsedByBranchOrSelectOnly(),nullifySetjmp(),OptimizeAwayTrappingUsesOfLoads(),optimizeDoubleFP(),OptimizeEmptyGlobalAtExitDtors(),llvm::AlignmentFromAssumptionsPass::processAssumption(),processUGT_ADDCST_ADD(),processUMulZExtIdiom(),processUse(),promoteSingleBlockAlloca(),relocationViaAlloca(),rematerializeLiveValuesAtUses(),RemovePreallocated(),llvm::InstructionPrecedenceTracking::removeUsersOf(),llvm::coro::replaceCoroFree(),replaceExtractElements(),replaceLoopPHINodesWithPreheaderValues(),llvm::rewriteLoopExitValues(),rewriteNonInstructionUses(),rewriteSingleStoreAlloca(),llvm::BPFASpaceCastSimplifyPass::run(),llvm::ArgumentPromotionPass::run(),runIPSCCP(),llvm::coro::BaseCloner::salvageDebugInfo(),setCannotDuplicate(),shouldCheckArgs(),shouldCombineToPostInc(),shouldSpeculateInstrs(),llvm::InstCombinerImpl::SimplifyDemandedVectorElts(),sinkAndCmp0Expression(),sinkLastInstruction(),sinkLifetimeStartMarkers(),llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(),splitGlobal(),llvm::coro::suppressCoroAllocs(),swapICmpOperandsToExposeCSEOpportunities(),tryToElideArgumentCopy(),TryToShrinkGlobalToBoolean(),tryUnmergingGEPsAcrossIndirectBr(),tryWidenGlobalArrayAndDests(),tryWidenGlobalArraysUsedByMemcpy(),llvm::UpgradeARCRuntime(),usersDominator(),valueEscapes(),llvm::InstCombinerImpl::visitPHINode(), andllvm::InstCombinerImpl::visitShuffleVectorInst().

◆ users()[2/2]

iterator_range<const_user_iterator > llvm::Value::users() const
inline

Definition at line425 of fileValue.h.

ReferencesassertModuleIsMaterialized(), andmaterialized_users().

◆ uses()[1/2]

iterator_range<use_iterator > llvm::Value::uses()
inline

Definition at line376 of fileValue.h.

ReferencesassertModuleIsMaterialized(), andmaterialized_uses().

Referenced byaddIntrinsicToSummary(),canRewriteGEPAsOffset(),canSinkInstructions(),llvm::Attributor::checkForAllCallSites(),computeVirtualCallSiteTypeInfoMap(),determinePointerAccessAttrs(),dropTypeTests(),eliminateSwiftErrorAlloca(),findCallsAtConstantOffset(),llvm::findDevirtualizableCallsForTypeCheckedLoad(),llvm::findDevirtualizableCallsForTypeTest(),findLoadCallsAtConstantOffset(),findUser(),llvm::InformationCache::foreachUse(),llvm::MemoryDependenceResults::getInvariantGroupPointerDependency(),hasOneUse(),llvm::hasPartialIVCondition(),insertSpills(),isOnlyCopiedFromConstantMemory(),isPossibleIndirectCallTarget(),llvm::LoopInfo::movementPreservesLCSSAForm(),llvm::AlignmentFromAssumptionsPass::processAssumption(),processSelect(),removeIntrinsicUsers(),replaceAllPrepares(),replaceLoopInvariantUses(),replacePrepare(),RewriteUsesOfClonedInstructions(),runAttributorOnFunctions(),SinkInstruction(),llvm::updatePublicTypeTestCalls(),UpdateSSA(), andllvm::MemorySSA::verifyOrderingDominationAndDefUses().

◆ uses()[2/2]

iterator_range<const_use_iterator > llvm::Value::uses() const
inline

Definition at line380 of fileValue.h.

ReferencesassertModuleIsMaterialized(), andmaterialized_uses().

Friends And Related Function Documentation

◆ ValueAsMetadata

friend classValueAsMetadata
friend

Definition at line121 of fileValue.h.

◆ ValueHandleBase

friend classValueHandleBase
friend

Definition at line122 of fileValue.h.

Member Data Documentation

◆ HasDescriptor

unsigned llvm::Value::HasDescriptor
protected

Definition at line115 of fileValue.h.

Referenced byllvm::CallBase::hasDescriptor(), andllvm::User::User().

◆ HasHungOffUses

unsigned llvm::Value::HasHungOffUses
protected

Definition at line114 of fileValue.h.

Referenced byllvm::User::getOperandList(),llvm::User::setNumHungOffUseOperands(), andllvm::User::User().

◆ HasMetadata

unsigned llvm::Value::HasMetadata
protected

Definition at line113 of fileValue.h.

Referenced byaddMetadata(),clearMetadata(),eraseMetadata(),eraseMetadataIf(),getMetadata(),hasMetadata(), andsetMetadata().

◆ HasName

unsigned llvm::Value::HasName
protected

Definition at line112 of fileValue.h.

Referenced byhasName().

◆ IsUsedByMD

unsigned llvm::Value::IsUsedByMD
protected

Definition at line111 of fileValue.h.

Referenced byisUsedByMetadata().

◆ MaxAlignmentExponent

constexprunsigned llvm::Value::MaxAlignmentExponent = 32
staticconstexpr

The maximum alignment for instructions.

This is the greatest alignment value supported by load, store, and alloca instructions, and global values.

Definition at line810 of fileValue.h.

Referenced byllvm::getOrEnforceKnownAlignment(),inferAlignment(), andllvm::InstCombinerImpl::visitCallInst().

◆ MaximumAlignment

constexpruint64_t llvm::Value::MaximumAlignment = 1ULL <<MaxAlignmentExponent
staticconstexpr

Definition at line811 of fileValue.h.

Referenced byllvm::AttrBuilder::addAlignmentAttr(),llvm::GEPOperator::getMaxPreservedAlignment(),llvm::Attribute::getWithAlignment(),isSafeCheapLoadStore(), andllvm::GlobalObject::setAlignment().

◆ NumUserOperands

unsigned llvm::Value::NumUserOperands
protected

Definition at line108 of fileValue.h.

Referenced byllvm::User::getNumOperands(),llvm::User::getOperand(),llvm::User::getOperandUse(),llvm::User::op_end(),llvm::GlobalVariable::operator=(),llvm::User::setNumHungOffUseOperands(),llvm::User::setOperand(), andllvm::User::User().

◆ SubclassOptionalData

unsignedchar llvm::Value::SubclassOptionalData
protected

Hold subclass data that can be dropped.

This member is similar to SubclassData, however it is for holding information which may be used to aid optimization, but which may be cleared to zero without affecting conservative interpretation.

Definition at line84 of fileValue.h.

Referenced byllvm::BinaryConstantExpr::BinaryConstantExpr(),clearSubclassOptionalData(),llvm::CallBrInst::Create(),llvm::CallInst::Create(),llvm::ConstantExpr::getAsInstruction(),llvm::GEPOperator::getNoWrapFlags(),getRawSubclassOptionalData(),llvm::ConstantExpr::getWithOperands(),llvm::TruncInst::hasNoSignedWrap(),llvm::OverflowingBinaryOperator::hasNoSignedWrap(),llvm::TruncInst::hasNoUnsignedWrap(),llvm::OverflowingBinaryOperator::hasNoUnsignedWrap(),hasSameSubclassOptionalData(),llvm::TruncInst::setHasNoSignedWrap(),llvm::TruncInst::setHasNoUnsignedWrap(), andllvm::GetElementPtrInst::setNoWrapFlags().


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

Generated on Sun Jul 20 2025 20:17:17 for LLVM by doxygen 1.9.6
[8]ページ先頭

©2009-2025 Movatter.jp