LLVM: llvm::Value Class Reference (original) (raw)

LLVM Value Representation. More...

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

Public Types
enum ValueTy
Concrete subclass of this. More...
using use_iterator = use_iterator_impl<Use>
using const_use_iterator = use_iterator_impl<const Use>
using user_iterator = user_iterator_impl<User>
using const_user_iterator = user_iterator_impl<const User>
Public Member Functions
Value (const Value &)=delete
Value & operator= (const Value &)=delete
LLVM_ABI void deleteValue ()
Delete a pointer to a generic Value.
LLVM_ABI void dump () const
Support for debugging, callable in GDB: V->dump()
Type * getType () const
All values are typed, get the type of this value.
LLVM_ABI LLVMContext & getContext () const
All values hold a context through their type.
bool hasName () const
LLVM_ABI ValueName * getValueName () const
LLVM_ABI void setValueName (ValueName *VN)
LLVM_ABI StringRef getName () const
Return a constant reference to the value's name.
LLVM_ABI void setName (const Twine &Name)
Change the name of the value.
LLVM_ABI void takeName (Value *V)
Transfer the name from V to this value.
LLVM_ABI std::string getNameOrAsOperand () const
LLVM_ABI void replaceAllUsesWith (Value *V)
Change all uses of this to point to a new Value.
LLVM_ABI void replaceNonMetadataUsesWith (Value *V)
Change non-metadata uses of this to point to a new Value.
LLVM_ABI 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 given Use.
LLVM_ABI 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.
LLVM_ABI void assertModuleIsMaterializedImpl () const
void assertModuleIsMaterialized () const
bool hasUseList () const
Check if this Value has a use-list.
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_iterator > materialized_uses ()
iterator_range< const_use_iterator > materialized_uses () const
iterator_range< use_iterator > uses ()
iterator_range< const_use_iterator > uses () 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
User * user_back ()
const User * user_back () const
iterator_range< user_iterator > materialized_users ()
iterator_range< const_user_iterator > materialized_users () const
iterator_range< user_iterator > users ()
iterator_range< const_user_iterator > users () const
bool hasOneUse () const
Return true if there is exactly one use of this value.
LLVM_ABI bool hasNUses (unsigned N) const
Return true if this Value has exactly N uses.
LLVM_ABI bool hasNUsesOrMore (unsigned N) const
Return true if this value has N uses or more.
LLVM_ABI bool hasOneUser () const
Return true if there is exactly one user of this value.
LLVM_ABI Use * getSingleUndroppableUse ()
Return true if there is exactly one use of this value that cannot be dropped.
const Use * getSingleUndroppableUse () const
LLVM_ABI User * 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).
const User * getUniqueUndroppableUser () const
LLVM_ABI bool hasNUndroppableUses (unsigned N) const
Return true if there this value.
LLVM_ABI bool hasNUndroppableUsesOrMore (unsigned N) const
Return true if this value has N uses or more.
LLVM_ABI void dropDroppableUses (llvm::function_ref< bool(const Use *)> ShouldDrop=[](const Use *) { return true;})
Remove every uses that can safely be removed.
LLVM_ABI void dropDroppableUsesIn (User &Usr)
Remove every use of this value in User that can safely be removed.
LLVM_ABI bool isUsedInBasicBlock (const BasicBlock *BB) const
Check if this value is used in the specified basic block.
LLVM_ABI unsigned getNumUses () const
This method computes the number of uses of this Value.
void addUse (Use &U)
This method should only be used by the Use 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 (const Value *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.
LLVM_ABI bool isSwiftError () const
Return true if this value is a swifterror value.
LLVM_ABI const Value * stripPointerCasts () const
Strip off pointer casts, all-zero GEPs and address space casts.
Value * stripPointerCasts ()
LLVM_ABI const Value * stripPointerCastsAndAliases () const
Strip off pointer casts, all-zero GEPs, address space casts, and aliases.
Value * stripPointerCastsAndAliases ()
LLVM_ABI const Value * stripPointerCastsSameRepresentation () const
Strip off pointer casts, all-zero GEPs and address space casts but ensures the representation of the result stays the same.
Value * stripPointerCastsSameRepresentation ()
LLVM_ABI const Value * stripPointerCastsForAliasAnalysis () const
Strip off pointer casts, all-zero GEPs, single-argument phi nodes and invariant group info.
Value * stripPointerCastsForAliasAnalysis ()
LLVM_ABI const Value * stripInBoundsConstantOffsets () const
Strip off pointer casts and all-constant inbounds GEPs.
Value * stripInBoundsConstantOffsets ()
LLVM_ABI const Value * stripAndAccumulateConstantOffsets (const DataLayout &DL, APInt &Offset, bool AllowNonInbounds, bool AllowInvariantGroup=false, function_ref< bool(Value &Value, APInt &Offset)> ExternalAnalysis=nullptr, bool LookThroughIntToPtr=false) const
Accumulate the constant offset this value has compared to a base pointer.
Value * stripAndAccumulateConstantOffsets (const DataLayout &DL, APInt &Offset, bool AllowNonInbounds, bool AllowInvariantGroup=false, function_ref< bool(Value &Value, APInt &Offset)> ExternalAnalysis=nullptr, bool LookThroughIntToPtr=false)
const Value * stripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset) const
This is a wrapper around stripAndAccumulateConstantOffsets with the in-bounds requirement set to false.
Value * stripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset)
LLVM_ABI const Value * stripInBoundsOffsets (function_ref< void(const Value *)> Func=[](const Value *) {}) const
Strip off pointer casts and inbounds GEPs.
Value * stripInBoundsOffsets (function_ref< void(const Value *)> Func=[](const Value *) {})
LLVM_ABI std::optional< int64_t > getPointerOffsetFrom (const Value *Other, const DataLayout &DL) const
If this ptr is provably equal to Other plus a constant offset, return that offset in bytes.
LLVM_ABI 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.
LLVM_ABI uint64_t getPointerDereferenceableBytes (const DataLayout &DL, bool &CanBeNull, bool &CanBeFreed) const
Returns the number of bytes known to be dereferenceable for the pointer value.
LLVM_ABI Align getPointerAlignment (const DataLayout &DL) const
Returns an alignment of the pointer value.
LLVM_ABI const Value * DoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB) const
Translate PHI node to its predecessor from the given basic block.
Value * DoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB)
void mutateType (Type *Ty)
Mutate the type of this Value to be of the specified type.
template
void sortUseList (Compare Cmp)
Sort the use-list.
LLVM_ABI void reverseUseList ()
Reverse the use-list.
LLVM_ABI void print (raw_ostream &O, bool IsForDebug=false) const
Implement operator<< on Value.
LLVM_ABI void print (raw_ostream &O, ModuleSlotTracker &MST, bool IsForDebug=false) const
LLVM_ABI void printAsOperand (raw_ostream &O, bool PrintType=true, const Module *M=nullptr) const
Print the name of this Value out to the specified raw_ostream.
LLVM_ABI void printAsOperand (raw_ostream &O, bool PrintType, ModuleSlotTracker &MST) const
Static Public Member Functions
static LLVM_ABI void dropDroppableUse (Use &U)
Remove the droppable use U.
Static Public Attributes
static constexpr unsigned MaxAlignmentExponent = 32
The maximum alignment for instructions.
static constexpr uint64_t MaximumAlignment = 1ULL << MaxAlignmentExponent
Protected Types
enum : unsigned { NumUserOperandsBits = 27 }
The number of operands in the subclass. More...
Protected Member Functions
LLVM_ABI Value (Type *Ty, unsigned scid)
LLVM_ABI ~Value ()
Value's destructor should be virtual by design, but that would require that Value and all of its subclasses have a vtable that effectively duplicates the information in the value ID.
LLVM_ABI void getAllMetadata (SmallVectorImpl< std::pair< unsigned, MDNode * > > &MDs) const
Appends all metadata attached to this value to MDs, sorting by KindID.
bool hasMetadata () const
Return true if this value has any metadata attached to it.
LLVM_ABI bool eraseMetadata (unsigned KindID)
Erase all metadata attachments with the given kind.
LLVM_ABI void eraseMetadataIf (function_ref< bool(unsigned, MDNode *)> Pred)
Erase all metadata attachments matching the given predicate.
LLVM_ABI void clearMetadata ()
Erase all metadata attached to this Value.
LLVM_ABI MDNode * getMetadataImpl (unsigned KindID) const
Get metadata for the given kind, if any.
unsigned short getSubclassDataFromValue () const
void setValueSubclassData (unsigned short D)
MDNode * getMetadata (unsigned KindID) const
Get the current metadata attachments for the given kind, if any.
LLVM_ABI MDNode * getMetadata (StringRef Kind) const
LLVM_ABI void getMetadata (unsigned KindID, SmallVectorImpl< MDNode * > &MDs) const
Appends all attachments with the given ID to MDs in insertion order.
LLVM_ABI 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
LLVM_ABI void setMetadata (unsigned KindID, MDNode *Node)
Set a particular kind of metadata attachment.
LLVM_ABI void setMetadata (StringRef Kind, MDNode *Node)
LLVM_ABI void addMetadata (unsigned KindID, MDNode &MD)
Add a metadata attachment.
LLVM_ABI void addMetadata (StringRef Kind, MDNode &MD)
Protected Attributes
unsigned char 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

LLVM Value 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 as Instruction and Function. All Values have a Type. Type is not a subclass of Value. Some values can have a name and they belong to some Module. Setting the name on the Value automatically updates the module's symbol table.

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

Definition at line 75 of file Value.h.

const_use_iterator

const_user_iterator

use_iterator

using llvm::Value::use_iterator = use_iterator_impl<Use>

user_iterator

using llvm::Value::user_iterator = user_iterator_impl<User>

anonymous enum

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 in User on 64-bit hosts. Since most instances of Value have operands, 32-bit hosts aren't significantly affected.

Note, this should NOT be used directly by any class other than User. User uses this value to find the Use list.

Enumerator
NumUserOperandsBits

Definition at line 108 of file Value.h.

ValueTy

Concrete subclass of this.

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

Definition at line 524 of file Value.h.

Value() [1/2]

Definition at line 53 of file Value.cpp.

References llvm::cast_or_null(), and llvm::Use::getUser().

Referenced by llvm:🆑:ValuesClass::apply(), llvm::Argument::classof(), llvm::BasicBlock::classof(), llvm::InlineAsm::classof(), llvm::MetadataAsValue::classof(), llvm::User::classof(), DoPHITranslation(), llvm::generateBuiltinVar(), llvm::generateGetQueryInst(), llvm::generateWaveInst(), llvm::User::getOperand(), getSingleUndroppableUse(), getUniqueUndroppableUser(), llvm::pdb::PDBSymbolCompilandEnv::getValue(), hasSameSubclassOptionalData(), llvm::yaml::ScalarTraits< UnsignedValue >::input(), llvm::yaml::MappingTraits< MachineConstantPoolValue >::mapping(), matchExpandedRem(), llvm::User::const_value_op_iterator::operator*(), llvm::User::value_op_iterator::operator*(), llvm::User::const_value_op_iterator::operator->(), llvm::User::value_op_iterator::operator->(), llvm::operator<<(), llvm::pdb::operator<<(), operator=(), llvm::yaml::ScalarTraits< UnsignedValue >::output(), llvm::User::setOperand(), stripAndAccumulateConstantOffsets(), stripAndAccumulateConstantOffsets(), stripAndAccumulateInBoundsConstantOffsets(), stripAndAccumulateInBoundsConstantOffsets(), stripInBoundsConstantOffsets(), stripInBoundsOffsets(), stripPointerCasts(), stripPointerCastsAndAliases(), stripPointerCastsForAliasAnalysis(), stripPointerCastsSameRepresentation(), llvm::User::User(), Value(), ValueHandleBase, valuesOverlap(), and llvm::logicalview::LVSymbolVisitor::visitKnownRecord().

Value::~Value ( ) protected

Value's destructor should be virtual by design, but that would require that Value 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 line 76 of file Value.cpp.

References llvm::Other.

Value() [2/2]

addMetadata() [1/2]

addMetadata() [2/2]

addUse()

void llvm::Value::addUse ( Use & U) inline

assertModuleIsMaterialized()

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

Definition at line 337 of file Value.h.

References assertModuleIsMaterializedImpl().

Referenced by use_begin(), use_begin(), use_empty(), user_back(), user_back(), user_begin(), user_begin(), users(), users(), uses(), and uses().

assertModuleIsMaterializedImpl()

void Value::assertModuleIsMaterializedImpl ( ) const

canBeFreed()

bool Value::canBeFreed ( ) const

clearMetadata()

void Value::clearMetadata ( ) protected

clearSubclassOptionalData()

void llvm::Value::clearSubclassOptionalData ( ) inline

deleteValue()

void Value::deleteValue ( )

DoPHITranslation() [1/2]

DoPHITranslation() [2/2]

dropDroppableUse()

void Value::dropDroppableUse ( Use & U) static

dropDroppableUses()

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 transformation but some Droppable uses prevent it. This function optionally takes a filter to only remove some droppable uses.

Definition at line 208 of file Value.cpp.

dropDroppableUsesIn()

void Value::dropDroppableUsesIn ( User & Usr )

Remove every use of this value in [User](classllvm%5F1%5F1User.html) that can safely be removed.

Definition at line 218 of file Value.cpp.

dump()

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

Definition at line 5441 of file AsmWriter.cpp.

References llvm::dbgs(), dump(), and print().

Referenced by CanWidenIV(), checkPHIs(), DoFlattenLoopPair(), dump(), llvm::CodeExtractor::extractCodeRegion(), findLoopComponents(), llvm::AArch64TargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::GlobalMergeFunc::merge(), setLoopComponents(), and sinkAndCmp0Expression().

eraseMetadata()

eraseMetadataIf()

getAllMetadata()

getContext()

All values hold a context through their type.

Definition at line 1099 of file Value.cpp.

Referenced by llvm::memprof::addAmbiguousAttribute(), llvm::Instruction::addAnnotationMetadata(), llvm::Instruction::addAnnotationMetadata(), llvm::GlobalVariable::addAttribute(), llvm::GlobalVariable::addAttribute(), llvm::CallBase::addAttributeAtIndex(), llvm::CallBase::addAttributeAtIndex(), llvm::GlobalVariable::addAttributes(), llvm::CallBase::addDereferenceableParamAttr(), llvm::CallBase::addDereferenceableRetAttr(), llvm::CallBase::addFnAttr(), llvm::CallBase::addFnAttr(), addMetadata(), addMetadata(), AddParamAndFnBasicAttributes(), llvm::CallBase::addParamAttr(), llvm::CallBase::addParamAttr(), llvm::CallBase::addParamAttrs(), llvm::CallBase::addRangeRetAttr(), llvm::CallBase::addRetAttr(), llvm::CallBase::addRetAttr(), llvm::CallBase::addRetAttrs(), llvm::memprof::CallStackTrie::addSingleAllocTypeAttribute(), llvm::GlobalObject::addTypeMetadata(), llvm::DbgVariableIntrinsic::addVariableLocationOps(), adjustInliningThresholdUsingCallee(), llvm::AllocaInst::AllocaInst(), annotateDereferenceableBytes(), llvm::SelectInst::areInvalidOperands(), llvm::AtomicCmpXchgInst::AtomicCmpXchgInst(), llvm::memprof::CallStackTrie::buildAndAttachMIBMetadata(), llvm::SPIRVGlobalRegistry::buildAssignType(), buildIntrinsicArgTypes(), llvm::buildMD(), calculateVectorIndex(), llvm::MachineFunction::CallSiteInfo::CallSiteInfo(), canonicalizeToIntegerIV(), clearMetadata(), llvm::CoroIdInst::clearPromise(), llvm::FenceInst::cloneImpl(), llvm::UnreachableInst::cloneImpl(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), 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::IRBuilderBase::CreateMaskedGather(), llvm::IRBuilderBase::CreateMaskedLoad(), llvm::IRBuilderBase::CreateMaskedScatter(), llvm::IRBuilderBase::CreateMaskedStore(), llvm::InstCombinerImpl::CreateNonTerminatorUnreachable(), createNVVMInternalAddrspaceWrap(), llvm::createPGONameMetadata(), llvm::IRBuilderBase::CreatePreserveArrayAccessIndex(), llvm::IRBuilderBase::CreatePreserveStructAccessIndex(), llvm::IRBuilderBase::CreateThreadLocalAddress(), despeculateCountZeros(), diagnoseInvalidFormatString(), llvm::Instruction::dropLocation(), emitAtomicRMWLegalRemark(), emitDbgAssign(), emitGlobalConstantVector(), llvm::AsmPrinter::emitSpecialLLVMGlobal(), eraseMetadata(), eraseMetadataIf(), llvm::VPWidenLoadEVLRecipe::execute(), llvm::VPWidenStoreEVLRecipe::execute(), expandToSwitch(), llvm::SCEVExpander::expandUnionPredicate(), llvm::SCEVExpander::expandWrapPredicate(), extractMDNode(), foldInsSequenceIntoSplat(), foldLoadsRecursive(), foldURemOfLoopIncrement(), llvm::ConstantExpr::get(), llvm::ConstantPointerNull::get(), llvm::ConstantPtrAuth::get(), llvm::DSOLocalEquivalent::get(), llvm::NoCFIValue::get(), llvm::PoisonValue::get(), llvm::UndefValue::get(), llvm::Instruction::getAAMetadata(), getAccessType(), llvm::Constant::getAggregateElement(), getAllMetadata(), llvm::GlobalVariable::getAttributesAsList(), llvm::Attributor::getAttrsFromAssumes(), getBoundsCheckCond(), getCoopAtomicOperandsInfo(), llvm::ConstantDataSequential::getElementAsConstant(), llvm::ScalarEvolution::getElementSize(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantExpr::getInsertElement(), getKnownValueOnEdge(), getMemCmpLoad(), getMetadata(), getMetadata(), getMetadata(), getMetadataImpl(), llvm::getObjectSize(), llvm::GlobalValue::getPartition(), getPointerOperandAndType(), getPreferredVectorIndex(), llvm::GlobalValue::getSanitizerMetadata(), llvm::Constant::getSplatValue(), llvm::RISCVTTIImpl::getTgtMemIntrinsic(), llvm::SITargetLowering::getTgtMemIntrinsic(), llvm::ConstantStruct::getTypeForElements(), getVTableAddrForProfData(), llvm::GlobalValue::GlobalValue(), handleBrSelExpect(), llvm::ValueAsMetadata::handleRAUW(), llvm::Attributor::hasAttr(), IdentifyValidPoisonGeneratingAttributes(), IdentifyValidUBGeneratingAttributes(), llvm::InlineFunctionImpl(), inlineRetainOrClaimRVCalls(), insertNewDbgInst(), insertSpills(), llvm::intersectAccessGroups(), llvm::AANoUndef::isImpliedByIR(), llvm::AAWillReturn::isImpliedByIR(), isLoadCombineCandidateImpl(), isPointerAlwaysReplaceable(), isValidIndirectionTable(), lowerAwaitSuspend(), llvm::AMDGPUAsmPrinter::lowerConstant(), llvm::IntrinsicLowering::LowerIntrinsicCall(), lowerSubFn(), llvm::makeGuardControlFlowExplicit(), makeStatepointExplicitImpl(), llvm::Attributor::manifestAttrs(), markPointerAsAS(), matchFPExtFromF16(), maySpeculateLanes(), mergeAttributesAndFlags(), llvm::MergeBasicBlockIntoOnlyPred(), mergeCompatibleInvokesImpl(), migrateDebugInfo(), llvm::Negator::Negate(), OptimizeGlobalAddressOfAllocation(), optimizeMemCmpConstantSize(), OptimizeNoopCopyExpression(), llvm::CallBase::populateBundleOperandInfos(), processCallSite(), processUGT_ADDCST_ADD(), promoteAllocaUserToVector(), llvm::pgo::promoteIndirectCall(), llvm::propagateMetadata(), llvm::ReadByteArrayFromGlobal(), llvm::CallBase::removeAttributeAtIndex(), llvm::CallBase::removeAttributeAtIndex(), llvm::CallBase::removeFnAttr(), llvm::CallBase::removeFnAttr(), llvm::CallBase::removeFnAttrs(), llvm::CallBase::removeParamAttr(), llvm::CallBase::removeParamAttr(), llvm::CallBase::removeParamAttrs(), llvm::CallBase::removeRetAttr(), llvm::CallBase::removeRetAttrs(), llvm::GlobalValue::removeSanitizerMetadata(), llvm::coro::replaceCoroFree(), ReplaceFPIntrinsicWithCall(), llvm::DbgVariableIntrinsic::replaceVariableLocationOp(), llvm::DbgVariableIntrinsic::replaceVariableLocationOp(), reportNonStaticGEPChain(), llvm::SPIRVTTIImpl::rewriteIntrinsicWithAddressSpace(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), scalarizeMaskedVectorHistogram(), selectExplicitSectionGlobal(), llvm::DbgAssignIntrinsic::setAddress(), llvm::DbgAssignIntrinsic::setAssignId(), llvm::MemIntrinsicBase< Derived >::setDestAlignment(), llvm::MemIntrinsicBase< Derived >::setDestAlignment(), llvm::InstrProfCntrInstBase::setIndex(), llvm::setInlineRemark(), llvm::DbgLabelInst::setLabel(), llvm::CallBase::setMemoryEffects(), llvm::Instruction::setMetadata(), setMetadata(), setMetadata(), llvm::Instruction::setNoSanitizeMetadata(), llvm::GlobalValue::setPartition(), llvm::DbgVariableIntrinsic::setRawLocation(), llvm::GlobalValue::setSanitizerMetadata(), llvm::NoAliasScopeDeclInst::setScopeList(), llvm::GlobalObject::setSection(), llvm::GlobalObject::setSectionPrefix(), llvm::DbgAssignIntrinsic::setValue(), llvm::GlobalObject::setVCallVisibilityMetadata(), shortenAssignment(), llvm::SITargetLowering::shouldExpandAtomicRMWInIR(), shrinkFPConstant(), simplifyRelativeLoad(), simplifyUsingControlFlow(), simplifyX86MaskedStore(), splitGlobal(), llvm::SplitKnownCriticalEdge(), llvm::StoreInst::StoreInst(), llvm::coro::suppressCoroAllocs(), llvm::CallBase::tryIntersectAttributes(), tryToMoveFreeBeforeNullTest(), TryToShrinkGlobalToBoolean(), turnGuardIntoBranch(), unswitchNontrivialInvariants(), unswitchTrivialBranch(), llvm::UpgradeGlobalVariable(), llvm::UpgradeIntrinsicCall(), upgradeSingleNVVMAnnotation(), verifyTripCount(), llvm::InstCombinerImpl::visitBitCast(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitExtractElementInst(), llvm::InstCombinerImpl::visitIntToPtr(), llvm::InstCombinerImpl::visitPtrToInt(), and llvm::InstCombinerImpl::visitReturnInst().

getMetadata() [1/4]

getMetadata() [2/4]

getMetadata() [3/4]

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

getMetadata() [4/4]

getMetadataImpl()

getName()

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 line 322 of file Value.cpp.

Referenced by AddAliasScopeMetadata(), llvm::SSAUpdaterBulk::AddAvailableValue(), llvm::addDiffRuntimeChecks(), addEmuTlsVar(), addMappingsFromTLI(), addReplicateRegions(), aspaceWrapValue(), llvm::WinException::beginFunction(), llvm::SPIRVGlobalRegistry::buildAssignType(), buildDebugInfoForNoopResumeDestroyFunc(), llvm::SPIRVGlobalRegistry::buildGlobalVariable(), calcPredicateUsingBooleans(), calcPredicateUsingInteger(), llvm::BranchProbabilityInfo::calculate(), calculateCXXStateNumbers(), calculateSEHStateNumbers(), llvm::InstCombinerImpl::canonicalizeCondSignextOfHighBitExtractToSignextHighBitExtract(), canonicalizeToIntegerIV(), CanPropagatePredecessorsForPHIs(), llvm::changeToInvokeAndSplitBasicBlock(), llvm::Attributor::checkForAllCallSites(), llvm::CloneBasicBlock(), llvm::orc::cloneGlobalAliasDecl(), llvm::orc::cloneGlobalVariableDecl(), llvm::JumpThreadingPass::cloneInstructions(), cloneInstructionsIntoPredecessorBlockAndUpdateSSAUses(), CloneLoopBlocks(), llvm::colorEHFunclets(), llvm::InstCombinerImpl::combineLoadToNewType(), compareNames(), llvm::VPBasicBlock::connectToPredecessors(), constructEntryMetadata(), constructPointer(), llvm::convertToDeclaration(), convertToParamAS(), copyLinkageVisibility(), llvm::CallBrInst::Create(), llvm::CallInst::Create(), createCBufferLoad(), createCloneDeclaration(), createInvariantCond(), createMemprofDefaultOptionsVar(), createMergedFunction(), createNVVMInternalAddrspaceWrap(), llvm::createPGONameMetadata(), createUnreachableSwitchDefault(), diagnoseAmbiguousHandle(), diagnoseHandleNotFound(), diagnoseUndominatedLoad(), DoFlattenLoopPair(), llvm::dumpBasicBlockLabel(), llvm::BasicBlock::dumpDbgValues(), llvm::CFGMST< Edge, BBInfo >::dumpEdges(), llvm::JumpThreadingPass::duplicateCondBranchOnPHIIntoPred(), llvm::DuplicateInstructionsInSplitBetween(), 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::VPBasicBlock::executeRecipes(), expandCrossIntrinsic(), expandToSwitch(), llvm::CodeExtractor::extractCodeRegion(), llvm::ExtractTypeInfo(), llvm::MustBeExecutedContextExplorer::findBackwardJoinPoint(), findBasePointer(), llvm::MustBeExecutedContextExplorer::findForwardJoinPoint(), fixupDebugInfoPostExtraction(), FlattenLoopPair(), llvm::InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse(), foldCondBranchOnValueKnownInPredecessorImpl(), llvm::InstCombinerImpl::foldFreezeIntoRecurrence(), llvm::InstCombinerImpl::foldICmpAndConstConst(), llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(), llvm::InstCombinerImpl::foldICmpShlConstant(), llvm::InstCombinerImpl::foldICmpShrConstant(), foldIntegerRepackThroughZExt(), llvm::InstCombinerImpl::foldIntegerTypedPHI(), llvm::InstCombinerImpl::foldPHIArgBinOpIntoPHI(), llvm::InstCombinerImpl::foldPHIArgExtractValueInstructionIntoPHI(), llvm::InstCombinerImpl::foldPHIArgGEPIntoPHI(), llvm::InstCombinerImpl::foldPHIArgInsertValueInstructionIntoPHI(), llvm::InstCombinerImpl::foldPHIArgLoadIntoPHI(), llvm::InstCombinerImpl::foldPHIArgOpIntoPHI(), foldSelectICmpLshrAshr(), foldSignedTruncationCheck(), foldTwoEntryPHINode(), llvm::InstCombinerImpl::foldVectorBinop(), forceRenaming(), llvm::JITSymbolFlags::fromGlobalValue(), generateUnsignedDivisionCode(), llvm::ReplayInlineAdvisor::getAdviceImpl(), getAllocaName(), llvm::memprof::getAnnotationKind(), getArm64ECMangledFunctionName(), llvm::bfi_detail::getBlockName(), getBranchHint(), llvm::HexagonTargetObjectFile::getExplicitSectionGlobal(), llvm::TargetLoweringObjectFileMachO::getExplicitSectionGlobal(), llvm::MachineBasicBlock::getFullName(), getFuncAddrForProfData(), llvm::DOTGraphTraits< DOTFuncInfo * >::getGraphName(), llvm::DOTGraphTraits< DOTFuncMSSAInfo * >::getGraphName(), llvm::getIRPGONameForGlobalObject(), llvm::TargetLibraryInfoImpl::getLibFunc(), llvm::ExecutionEngine::getMangledName(), llvm::MachineFunction::getName(), llvm::Mangler::getNameWithPrefix(), getNewName(), llvm::DOTGraphTraits< AttributorCallGraph * >::getNodeLabel(), getOrCreateRefVariable(), llvm::SPIRV::getOriginalFunctionType(), llvm::AArch64Subtarget::getPtrAuthBlockAddressDiscriminatorIfEnabled(), llvm::TargetLoweringObjectFileXCOFF::getSectionForExternalReference(), llvm::LazyValueInfoImpl::getValueAt(), llvm::LazyValueInfoImpl::getValueInBlock(), llvm::LazyValueInfoImpl::getValueOnEdge(), getVarName(), globalVariableNeedsRedirect(), HandleByValArgument(), handleByValParam(), HandleInlinedEHPad(), HandleUnsupportedAnnotationKinds(), llvm::SuspendCrossingInfo::hasPathCrossingSuspendPoint(), llvm::SuspendCrossingInfo::hasPathOrLoopCrossingSuspendPoint(), hoistBOAssociation(), hoistMinMax(), llvm::FunctionImporter::importFunctions(), INITIALIZE_PASS(), llvm::SelectionDAGISel::initializeAnalysisResults(), llvm::SelectionDAGISel::initializeAnalysisResults(), llvm::InlineFunctionImpl(), llvm::InsertPreheaderForLoop(), insertSpills(), insertUniqueBackedgeBlock(), llvm::InternalizePass::internalizeModule(), llvm::InvertBranch(), llvm::invertCondition(), llvm::isCFGuardFunction(), llvm::isControlFlowEquivalent(), llvm::HexagonTargetObjectFile::isGlobalInSmallSection(), isInPartition(), isPotentiallyReachable(), isReportingError(), isSpecialLLVMGlobalArrayForStaticInit(), isSpecialLLVMGlobalArrayToSkip(), llvm::isTLIScalarize(), llvm::AMDGPULegalizerInfo::legalizeGlobalValue(), llvm::XtensaTargetLowering::LowerCall(), llvm::AMDGPUTargetLowering::LowerGlobalAddress(), llvm::lowerGlobalIFuncUsersAsGlobalCtor(), llvm::IntrinsicLowering::LowerToByteSwap(), llvm::TargetLowering::LowerToTLSEmulatedModel(), markAliveBlocks(), llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::MarkBlockExecutable(), llvm::SCCPInstVisitor::markBlockExecutable(), markPointerAsAS(), maybePrintComdat(), llvm::JumpThreadingPass::maybethreadThroughTwoBasicBlocks(), llvm::GlobalMergeFunc::merge(), llvm::MergeBlockIntoPredecessor(), mergeComparisons(), mergeCompatibleInvokesImpl(), movePHIValuesToInsertedBlock(), nearest_common_dominator(), false::GepNode::operator<<, llvm::operator<<(), optimizeDoubleFP(), OptimizeGlobalAddressOfAllocation(), optimizeLoopExitWithUnknownExitCount(), optimizeSQRT(), llvm::peelLoop(), performBlockTailMerging(), populateReductionFunction(), llvm::DiagnosticInfoUnsupported::print(), llvm::MachineInstr::print(), llvm::MemoryPhi::print(), llvm::SDNode::print_details(), llvm::printBasicBlock(), printBBName(), PrintDebugDomInfo(), printIRBlockReference(), PrintLoopInfo(), llvm::VPWidenCallRecipe::printRecipe(), llvm::JumpThreadingPass::processBlock(), processGlobal(), processInternalGlobal(), processOverflowIntrinsic(), processSDiv(), processSRem(), llvm::JumpThreadingPass::processThreadableEdges(), llvm::promoteLoopAccessesToScalars(), recoverFramePointer(), llvm::Attributor::registerFunctionSignatureRewrite(), llvm::CallGraphUpdater::removeFunction(), llvm::RemoveRedundantDbgInstrs(), removeRedundantDbgLocs(), rename(), replace(), ReplaceCallWith(), replaceUsersOfGlobal(), replaceWithCallToVeclib(), rewriteMemOpOfSelect(), rewritePHIs(), rewritePHIsForCleanupPad(), RewriteUsesOfClonedInstructions(), llvm::ArgumentPromotionPass::run(), llvm::FunctionSpecializer::run(), llvm::InlineCostAnnotationPrinterPass::run(), llvm::SimplifyTypeTestsPass::run(), runAttributorLightOnFunctions(), runAttributorOnFunctions(), llvm::JumpThreadingPass::runImpl(), runImpl(), runImpl(), runIPSCCP(), llvm::DetectRoundChange::runOnMachineFunction(), runSanitizeRealtimeBlocking(), salvageDebugInfoImpl(), scalarizeMaskedLoad(), selectExplicitSectionGlobal(), llvm::HexagonTargetObjectFile::SelectSectionForGlobal(), llvm::RISCVELFTargetObjectFile::SelectSectionForGlobal(), llvm::TargetLoweringObjectFileCOFF::SelectSectionForGlobal(), llvm::IRSimilarity::IRInstructionData::setCalleeName(), shouldCheckArgs(), simplifyAllocaArraySize(), SimplifyCondBranchToCondBranch(), llvm::InstCombinerImpl::SimplifyDemandedVectorElts(), llvm::simplifyInstruction(), llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), simplifyShiftSelectingPackedElement(), simplifySwitchLookup(), sinkInstruction(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), speculatePHINodeLoads(), speculateSelectInstLoads(), llvm::splitBlockBefore(), SplitBlockImpl(), SplitBlockPredecessorsImpl(), llvm::SplitCallBrEdge(), splitGlobal(), llvm::SplitKnownCriticalEdge(), SplitLandingPadPredecessorsImpl(), SRAGlobal(), llvm::stableHashValue(), llvm::thinLTOFinalizeInModule(), llvm::JumpThreadingPass::threadEdge(), llvm::JumpThreadingPass::threadGuard(), llvm::JumpThreadingPass::threadThroughTwoBasicBlocks(), trackInlinedStores(), translateGlobalMetadata(), llvm::JumpThreadingPass::tryThreadEdge(), TryToShrinkGlobalToBoolean(), llvm::TryToSimplifyUncondBranchFromEmptyBlock(), unpackLoadToAggregate(), llvm::UnrollRuntimeLoopRemainder(), UpdatePHINodes(), llvm::CallInst::updateProfWeight(), llvm::InvokeInst::updateProfWeight(), updateSubprogramLinkageName(), upgradeAArch64IntrinsicCall(), upgradeARMIntrinsicCall(), llvm::UpgradeGlobalVariable(), llvm::UpgradeIntrinsicCall(), llvm::ScalarEvolution::verify(), llvm::LoopVersioning::versionLoop(), llvm::Function::viewCFG(), DataScalarizerVisitor::visitAllocaInst(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitAShr(), DataScalarizerVisitor::visitGetElementPtrInst(), DataScalarizerVisitor::visitLoadInst(), llvm::InstCombinerImpl::visitLoadInst(), llvm::InstCombinerImpl::visitSExt(), llvm::InstCombinerImpl::visitShl(), llvm::InstCombinerImpl::visitShuffleVectorInst(), llvm::InstCombinerImpl::visitURem(), and llvm::InstCombinerImpl::visitZExt().

getNameOrAsOperand()

std::string Value::getNameOrAsOperand ( ) const

getNumUses()

getPointerAlignment()

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 by DataLayout.

Definition at line 956 of file Value.cpp.

Referenced by addNoUndefAttrs(), llvm::ConstantFoldBinaryInstruction(), emitTargetTaskProxyFunction(), llvm::AMDGPU::getAlign(), llvm::AMDGPU::getInterestingMemoryOperands(), llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(), llvm::RISCVTTIImpl::getTgtMemIntrinsic(), instCombineSVELD1(), instCombineSVEST1(), isDereferenceableAndAlignedPointerViaAssumption(), and llvm::SystemZSubtarget::isPC32DBLSymbol().

getPointerDereferenceableBytes()

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 line 881 of file Value.cpp.

Referenced by evaluatePtrAddRecAtMaxBTCWillNotWrap(), and llvm::InstCombinerImpl::visitGetElementPtrInst().

getPointerOffsetFrom()

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 line 550 of file Value.h.

References SubclassOptionalData.

getSingleUndroppableUse() [1/2]

Use * Value::getSingleUndroppableUse ( )

getSingleUndroppableUse() [2/2]

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

getSubclassDataFromValue()

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

getType()

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

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

Definition at line 256 of file Value.h.

Referenced by llvm::AliasSetTracker::add(), slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::add(), slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::add(), addAssumeNonNull(), addConditions(), llvm::VPlanTransforms::addMinimumVectorEpilogueIterationCheck(), AddNonNullPointer(), llvm::detail::PtrUseVisitorBase::adjustOffsetForGEP(), llvm::AAResults::alias(), llvm::AMDGPUAAResult::alias(), slpvectorizer::BoUpSLP::analyzeConstantStrideCandidate(), analyzeCostOfVecReduction(), llvm::VNCoercion::analyzeLoadFromClobberingLoad(), llvm::VNCoercion::analyzeLoadFromClobberingStore(), annotateDereferenceableBytes(), annotateNonNullNoUndefBasedOnAccess(), appendToGlobalArray(), applyX86MaskOn1BitsVec(), areBothVectorOrScalar(), areExtractShuffleVectors(), llvm::SelectInst::areInvalidOperands(), areInverseVectorBitmasks(), areNonOverlapSameBaseLoadAndStore(), aspaceWrapOperand(), llvm::BitcodeReaderValueList::assignValue(), llvm::AtomicCmpXchgInst::AtomicCmpXchgInst(), atomicIgnoresDenormalModeOrFPModeIsFTZ(), llvm::AtomicRMWInst::AtomicRMWInst(), atomicSupportedIfLegalIntType(), llvm::BinaryConstantExpr::BinaryConstantExpr(), llvm::SPIRVGlobalRegistry::buildAssignPtr(), llvm::SPIRVGlobalRegistry::buildAssignType(), llvm::buildAtomicRMWValue(), llvm::buildCmpXchgValue(), llvm::MachineIRBuilder::buildConstant(), BuildConstantFromSCEV(), llvm::MachineIRBuilder::buildFConstant(), BuildSubAggregate(), buildTargetLegalPtr(), callBufferedPrintfStart(), llvm::VNCoercion::canCoerceMustAliasedValueToLoad(), canContractSqrtToRsq(), canEvaluateShiftedShift(), CanFlattenLoopPair(), canonicalizeBitCastExtElt(), canonicalizeLowbitMask(), canonicalizeSaturatedAddSigned(), canonicalizeSaturatedAddUnsigned(), canonicalizeToIntegerIV(), llvm::canPeelLastIteration(), llvm::canReplacePointersIfEqual(), llvm::canReplacePointersInUseIfEqual(), canSafelyConvertTo16Bit(), canScalarizeAccess(), canTryToConstantAddTwoShiftAmounts(), slpvectorizer::BoUpSLP::canVectorizeLoads(), CanWidenIV(), llvm::CastInst::castIsValid(), llvm::Attributor::checkForAllCallSites(), checkOffsetSize(), checkOrAndOpImpliedByOther(), CleanupConstantGlobalUsers(), llvm::CloneAndPruneIntoFromInst(), llvm::AddrSpaceCastInst::cloneImpl(), llvm::BitCastInst::cloneImpl(), llvm::FPExtInst::cloneImpl(), llvm::FPToSIInst::cloneImpl(), llvm::FPToUIInst::cloneImpl(), llvm::FPTruncInst::cloneImpl(), llvm::IntToPtrInst::cloneImpl(), llvm::LoadInst::cloneImpl(), llvm::PtrToAddrInst::cloneImpl(), llvm::PtrToIntInst::cloneImpl(), llvm::SExtInst::cloneImpl(), llvm::SIToFPInst::cloneImpl(), llvm::TruncInst::cloneImpl(), llvm::UIToFPInst::cloneImpl(), llvm::VAArgInst::cloneImpl(), llvm::ZExtInst::cloneImpl(), llvm::JumpThreadingPass::cloneInstructions(), CloneLoopBlocks(), cloneLoopBlocks(), llvm::FunctionComparator::cmpBasicBlocks(), llvm::VNCoercion::coerceAvailableValueToLoadType(), collectMemAccessInfo(), collectShuffleElements(), combineConstantPoolLoads(), llvm::InstCombinerImpl::commonCastTransforms(), llvm::InstCombinerImpl::commonShiftTransforms(), compareCmp(), CompareValueComplexity(), llvm::VPWidenMemoryRecipe::computeCost(), llvm::SelectionDAG::computeKnownBits(), computeKnownBitsFromLerpPattern(), computeKnownBitsFromOperator(), computeKnownBitsMul(), computeKnownFPClass(), slpvectorizer::BoUpSLP::computeMinimumValueSizes(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), 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::ConvertDebugDeclareToDebugValue(), llvm::ConvertDebugDeclareToDebugValue(), llvm::InstCombinerImpl::convertOrOfShiftsToFunnelShift(), convertScratchAtomicToFlatAtomic(), ConvertShiftToMul(), convertStrToInt(), copyFunctionByValArgs(), llvm::copyMetadataForLoad(), llvm::copyNonnullMetadata(), llvm::copyRangeMetadata(), countNumMemAccesses(), countToEliminateCompares(), llvm::BinaryOperator::Create(), llvm::UnaryOperator::Create(), llvm::IRBuilderBase::CreateAlignedStore(), llvm::IRBuilderBase::CreateAlignmentAssumption(), llvm::IRBuilderBase::CreateAlignmentAssumption(), createAndInstr(), llvm::IRBuilderBase::CreateAtomicRMW(), llvm::CastInst::CreateBitOrPointerCast(), createByteGEP(), createCBufferLoad(), createCmpXchgInstFun(), llvm::MatrixBuilder::CreateColumnMajorLoad(), llvm::MatrixBuilder::CreateColumnMajorStore(), llvm::AArch64TargetLowering::createComplexDeinterleavingIR(), llvm::ARMTargetLowering::createComplexDeinterleavingIR(), llvm::IRBuilderBase::CreateDereferenceableAssumption(), llvm::FixedPointBuilder< IRBuilderTy >::CreateDiv(), llvm::IRBuilderBase::CreateElementUnorderedAtomicMemSet(), llvm::IRBuilderBase::CreateExtractVector(), createFFSIntrinsic(), llvm::createFindLastIVReduction(), llvm::IRBuilderBase::CreateGCGetPointerBase(), llvm::IRBuilderBase::CreateGCGetPointerOffset(), CreateGCStatepointCallCommon(), CreateGCStatepointInvokeCommon(), llvm::IRBuilderBase::CreateGlobalString(), llvm::MatrixBuilder::CreateIndex(), llvm::MatrixBuilder::CreateIndexAssumption(), llvm::IRBuilderBase::CreateInsertVector(), llvm::IRBuilderBase::CreateInvariantStart(), llvm::IRBuilderBase::createIsFPClass(), llvm::IRBuilderBase::CreateIsNeg(), llvm::IRBuilderBase::CreateIsNotNeg(), llvm::IRBuilderBase::CreateIsNotNull(), llvm::IRBuilderBase::CreateIsNull(), llvm::IRBuilderBase::CreateLaunderInvariantGroup(), llvm::IRBuilderBase::CreateLifetimeEnd(), llvm::IRBuilderBase::CreateLifetimeStart(), llvm::IRBuilderBase::CreateLogicalAnd(), llvm::IRBuilderBase::CreateLogicalOr(), createLogicFromTable(), llvm::FastISel::createMachineMemOperandFor(), llvm::IRBuilderBase::CreateMalloc(), llvm::IRBuilderBase::CreateMaskedCompressStore(), llvm::IRBuilderBase::CreateMaskedGather(), llvm::IRBuilderBase::CreateMaskedLoad(), llvm::IRBuilderBase::CreateMaskedScatter(), llvm::IRBuilderBase::CreateMaskedStore(), createMaskInstrs(), llvm::MatrixBuilder::CreateMatrixInsert(), llvm::createMemCpyLoopKnownSize(), createMemMoveLoopKnownSize(), createMemMoveLoopUnknownSize(), createMemprofDefaultOptionsVar(), llvm::IRBuilderBase::CreateMemSet(), createMemSetLoop(), createMergedFunction(), llvm::FixedPointBuilder< IRBuilderTy >::CreateMul(), createNVVMInternalAddrspaceWrap(), createOutlinedFunction(), llvm::createPGOFuncNameVar(), llvm::CastInst::CreatePointerBitCastOrAddrSpaceCast(), llvm::CastInst::CreatePointerCast(), createPopcntIntrinsic(), createPowWithIntegerExponent(), createPrivateConstGlobalForString(), llvm::createPrivateGlobalForString(), createProfileFileNameVar(), llvm::createProfileFileNameVar(), createRawLoad(), createRetPHINode(), createReverseEVL(), createScalarIVSteps(), llvm::CastInst::CreateSExtOrBitCast(), llvm::Attributor::createShallowWrapper(), createShiftShuffle(), llvm::AMDGPU::createSlowPathCmp(), llvm::IRBuilderBase::CreateStackRestore(), llvm::IRBuilderBase::CreateStripInvariantGroup(), createTargetLoopWorkshareCall(), createTblForTrunc(), llvm::IRBuilderBase::CreateThreadLocalAddress(), createTileStore(), CreateTripRemainder(), llvm::CastInst::CreateTruncOrBitCast(), createTypedBufferLoad(), llvm::IRBuilderBase::CreateVectorSplice(), createWrapper(), llvm::CastInst::CreateZExtOrBitCast(), decompose(), llvm::decomposeLinearExpression(), despeculateCountZeros(), detectShiftUntilBitTestIdiom(), detectShiftUntilZeroIdiom(), DoFlattenLoopPair(), DoLowering(), dropRedundantMaskingOfLeftShiftInput(), eliminateSwiftErrorArgument(), llvm::embedBitcodeInModule(), llvm::embedBufferInModule(), llvm::emitAMDGPUPrintfCall(), 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(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitKernelArg(), emitLoadFromConstantPool(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::LoongArchTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::PPCTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::LoongArchTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::PPCTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicRMWIntrinsic(), emitMemsetExpansion(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), llvm::HexagonTargetLowering::emitStoreConditional(), llvm::PPCTargetLowering::emitStoreConditional(), llvm::PPCTargetLowering::emitTrailingFence(), emitTransformedIndex(), llvm::emitVSNPrintf(), llvm::emitVSPrintf(), llvm::emitWcsLen(), emitX86Select(), llvm::ARMAsmPrinter::emitXXStructor(), llvm::Evaluator::EvaluateFunction(), evaluateICmpRelation(), llvm::VPActiveLaneMaskPHIRecipe::execute(), llvm::VPHistogramRecipe::execute(), llvm::VPInstruction::execute(), llvm::VPInterleaveEVLRecipe::execute(), llvm::VPInterleaveRecipe::execute(), llvm::VPPredInstPHIRecipe::execute(), llvm::VPReductionPHIRecipe::execute(), llvm::VPReductionRecipe::execute(), llvm::VPReplicateRecipe::execute(), llvm::VPScalarIVStepsRecipe::execute(), llvm::VPVectorEndPointerRecipe::execute(), llvm::VPWidenCanonicalIVRecipe::execute(), llvm::VPWidenIntrinsicRecipe::execute(), llvm::VPWidenPHIRecipe::execute(), expand16BitIsFinite(), expand16BitIsInf(), expand16BitIsNaN(), expand16BitIsNormal(), llvm::expandAtomicRMWToCmpXchg(), expandBufferLoadIntrinsic(), expandCrossIntrinsic(), llvm::expandDivision(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), expandFPToI(), expandIToFP(), llvm::expandMemMoveAsLoop(), expandNormalizeIntrinsic(), llvm::expandRemainder(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), expandSignIntrinsic(), expandToSwitch(), llvm::AAMDNodes::extendToTBAA(), llvm::ExtractElementConstantExpr::ExtractElementConstantExpr(), extractMaskedValue(), llvm::AArch64TargetLowering::fallBackToDAGISel(), llvm::RISCVTargetLowering::fallBackToDAGISel(), llvm::FCmpInst::FCmpInst(), llvm::FCmpInst::FCmpInst(), findArgParts(), findArgumentCopyElisionCandidates(), findBasePointer(), findCommonType(), findDemandedEltsBySingleUser(), findFuncPointers(), FindLoopCounter(), llvm::findScalarElement(), fitArgInto64Bits(), fixupFPReturnAndCall(), FlattenLoopPair(), flushDenormalConstantFP(), llvm::FlushFPConstant(), llvm::BinOpInit::Fold(), llvm::AMDGPULibCalls::fold(), llvm::InstCombinerImpl::foldAddWithConstant(), llvm::InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse(), foldAndOrOfICmpEqConstantAndICmp(), llvm::InstCombinerImpl::foldBinopWithPhiOperands(), llvm::InstCombinerImpl::foldBinopWithRecurrence(), foldBitCastBitwiseLogic(), foldBitCastSelect(), foldBitmaskMul(), llvm::foldBranchToCommonDest(), foldCastShuffle(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), foldConsecutiveLoads(), foldCopySignIdioms(), foldCttzCtlz(), foldDependentIVs(), foldFCmpFNegCommonOp(), foldFCmpFpTrunc(), foldFCmpFSubIntoFCmp(), llvm::InstCombinerImpl::foldFCmpIntToFPConst(), 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(), foldICmpEqualityWithOffset(), llvm::InstCombinerImpl::foldICmpInstWithConstantNotInt(), foldICmpIntrinsicWithIntrinsic(), llvm::InstCombinerImpl::foldICmpOrConstant(), llvm::InstCombinerImpl::foldICmpShlConstant(), foldICmpShlLHSC(), llvm::InstCombinerImpl::foldICmpShrConstant(), llvm::InstCombinerImpl::foldICmpSRemConstant(), llvm::InstCombinerImpl::foldICmpTruncConstant(), llvm::InstCombinerImpl::foldICmpUDivConstant(), llvm::InstCombinerImpl::foldICmpUsingKnownBits(), foldICmpUSubSatOrUAddSatWithConstant(), llvm::InstCombinerImpl::foldICmpWithCastOp(), foldICmpWithHighBitMask(), llvm::InstCombinerImpl::foldICmpWithTrunc(), foldICmpXorXX(), foldIdentityShuffles(), foldIntegerPackFromVector(), foldIntegerRepackThroughZExt(), llvm::InstCombinerImpl::foldIntegerTypedPHI(), llvm::InstCombinerImpl::foldIsMultipleOfAPowerOfTwo(), llvm::InstCombinerImpl::foldItoFPtoI(), foldLoadsRecursive(), foldLogicCastConstant(), foldMinimumOverTrailingOrLeadingZeroCount(), llvm::InstCombinerImpl::foldPHIArgBinOpIntoPHI(), llvm::InstCombinerImpl::foldPHIArgGEPIntoPHI(), llvm::InstCombinerImpl::foldPHIArgLoadIntoPHI(), llvm::InstCombinerImpl::foldPHIArgOpIntoPHI(), llvm::InstCombinerImpl::foldPowiReassoc(), llvm::InstCombinerImpl::foldPtrToIntOrAddrOfGEP(), 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::FreezeInst::FreezeInst(), slpvectorizer::BoUpSLP::ShuffleCostEstimator::gather(), gatherPossiblyVectorizableLoads(), generateAssignInstrs(), generateKeySubkey(), generateSignedDivisionCode(), generateSignedRemainderCode(), generateUnsignedDivisionCode(), genLoopLimit(), llvm::ConstantExpr::get(), llvm::ConstantPtrAuth::get(), llvm::MemoryLocation::get(), llvm::MemoryLocation::get(), llvm::MemoryLocation::get(), getAccessType(), getAddressForMemoryInput(), llvm::IntToPtrInst::getAddressSpace(), llvm::Constant::getAggregateElement(), llvm::Constant::getAggregateElement(), getAISize(), llvm::getAllocSize(), getAlternateBinop(), getAnyNonZeroConstInt(), getArgSPIRVType(), getArgumentTypeAlign(), llvm::ConstantExpr::getAsInstruction(), getAssignmentInfoImpl(), llvm::IRPosition::getAssociatedType(), llvm::AAPotentialConstantValues::getAssumedConstant(), llvm::AAValueConstantRange::getAssumedConstant(), getAtomicOpSize(), getAtomicOpSize(), getAvailableLoadStore(), llvm::getBaseObjectSize(), getBoolVecFromMask(), getBoundsCheckCond(), getBranchCondString(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getConstantFP(), getConstantInt(), llvm::ExecutionEngine::getConstantValue(), llvm::VNCoercion::getConstantValueForLoad(), llvm::getDeinterleavedVectorType(), llvm::AddrSpaceCastInst::getDestAddressSpace(), llvm::MemIntrinsicBase< Derived >::getDestAddressSpace(), llvm::CastInst::getDestTy(), llvm::ConstantAggregateZero::getElementCount(), llvm::ConstantDataSequential::getElementType(), llvm::ConstantAggregateZero::getElementValue(), llvm::ConstantAggregateZero::getElementValue(), llvm::PoisonValue::getElementValue(), llvm::PoisonValue::getElementValue(), llvm::UndefValue::getElementValue(), llvm::UndefValue::getElementValue(), llvm::ConstantExpr::getExtractElement(), llvm::MemoryLocation::getForDest(), getFromRangeMetadata(), getFunctionPointerElemType(), llvm::X86TTIImpl::getGatherScatterOpCost(), llvm::TargetTransformInfoImplCRTPBase< T >::getGEPCost(), llvm::GetElementPtrInst::getGEPReturnType(), llvm::DataLayout::getIndexedOffsetInType(), llvm::ConstantExpr::getInsertElement(), llvm::LoopVectorizationCostModel::getInstructionCost(), llvm::TargetTransformInfoImplCRTPBase< T >::getInstructionCost(), llvm::ConstantInt::getIntegerType(), llvm::AMDGPU::getInterestingMemoryOperands(), getInvertibleOperands(), llvm::TargetLoweringBase::getLoadMemOperandFlags(), getMaskedTypeForICmpPair(), getMatchingValue(), llvm::VNCoercion::getMemInstValueForLoad(), getMemOperands(), getMemSetPattern16Value(), getMinimalBaseOfPointer(), llvm::AAResults::getModRefInfo(), llvm::BasicAAResult::getModRefInfo(), getNoopInput(), llvm::ConstantDataSequential::getNumElements(), llvm::UndefValue::getNumElements(), llvm::offloading::getOffloadingEntryInitializer(), llvm::AArch64TTIImpl::getOrCreateResultFromMemIntrinsic(), llvm::AtomicCmpXchgInst::getPointerAddressSpace(), llvm::AtomicRMWInst::getPointerAddressSpace(), llvm::PtrToAddrInst::getPointerAddressSpace(), llvm::PtrToIntInst::getPointerAddressSpace(), llvm::GetPointerBaseWithConstantOffset(), llvm::ConstantExpr::getPointerBitCastOrAddrSpaceCast(), llvm::ConstantExpr::getPointerCast(), llvm::GEPOperator::getPointerOperandType(), llvm::GetElementPtrInst::getPointerOperandType(), llvm::LoadInst::getPointerOperandType(), llvm::PtrToAddrOperator::getPointerOperandType(), llvm::PtrToIntOperator::getPointerOperandType(), llvm::StoreInst::getPointerOperandType(), llvm::getPointersDiff(), llvm::getPtrStride(), llvm::LoopVectorizationCostModel::getReductionPatternCost(), llvm::FastISel::getRegForGEPIndex(), getSameOpcode(), llvm::VPCanonicalIVPHIRecipe::getScalarType(), llvm::VPDerivedIVRecipe::getScalarType(), llvm::VPWidenIntOrFpInductionRecipe::getScalarType(), llvm::ConstantAggregateZero::getSequentialElement(), llvm::PoisonValue::getSequentialElement(), llvm::UndefValue::getSequentialElement(), slpvectorizer::BoUpSLP::LookAheadHeuristics::getShallowScore(), getShuffleDemandedElts(), llvm::ConstantExpr::getShuffleVector(), llvm::ARMTargetLowering::getSingleConstraintMatchWeight(), llvm::PPCTargetLowering::getSingleConstraintMatchWeight(), llvm::SystemZTargetLowering::getSingleConstraintMatchWeight(), llvm::TargetLowering::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(), llvm::VNCoercion::getStoreValueForLoadHelper(), getStrideAndModOffsetOfGEP(), getStrideFromPointer(), llvm::SelectionDAG::getStrlen(), llvm::ConstantAggregateZero::getStructElement(), llvm::PoisonValue::getStructElement(), llvm::UndefValue::getStructElement(), getTargetConstantBitsFromNode(), llvm::AArch64TargetLowering::getTgtMemIntrinsic(), llvm::RISCVTTIImpl::getTgtMemIntrinsic(), llvm::SITargetLowering::getTgtMemIntrinsic(), llvm::AllocaInst::getType(), llvm::ConstantArray::getType(), llvm::ConstantDataArray::getType(), llvm::ConstantDataVector::getType(), llvm::ConstantPointerNull::getType(), llvm::ConstantStruct::getType(), llvm::ConstantTargetNone::getType(), llvm::ConstantVector::getType(), llvm::GlobalValue::getType(), llvm::InlineAsm::getType(), llvm::InsertElementInst::getType(), llvm::NoCFIValue::getType(), llvm::ShuffleVectorInst::getType(), llvm::GetElementPtrInst::getTypeAtIndex(), llvm::getUnderlyingObject(), getUniformBase(), llvm::VNCoercion::getValueForLoad(), getValueOnEdge(), llvm::LoopVectorizationCostModel::getVectorCallCost(), slpvectorizer::BoUpSLP::getVectorElementSize(), llvm::X86TTIImpl::getVectorInstrCost(), llvm::LoopVectorizationCostModel::getVectorIntrinsicCost(), llvm::ExtractElementInst::getVectorOperandType(), llvm::PPCTTIImpl::getVPLegalizationStrategy(), llvm::RISCVTTIImpl::getVPLegalizationStrategy(), llvm::ConstantExpr::getWithOperands(), globalSize(), llvm::GlobalVariable::GlobalVariable(), HandleByValArgument(), llvm::ValueAsMetadata::handleRAUW(), handleSpaceCheckIntrinsics(), llvm::CallBase::hasArgumentWithAdditionalReturnCaptureComponents(), llvm::PHINode::hasConstantValue(), llvm::Constant::hasExactInverseFP(), hasSameArgumentList(), hasSameExtUse(), hoistConditionalLoadsStores(), llvm::ICmpInst::ICmpInst(), llvm::ICmpInst::ICmpInst(), llvm::memtag::incrementThreadLong(), inferAlignment(), llvm::inferAttribute(), llvm::MIRParserImpl::initializeConstantPool(), llvm::InlineFunctionImpl(), inlineGetBaseAndOffset(), llvm::InsertElementConstantExpr::InsertElementConstantExpr(), insertInteger(), insertMaskedValue(), insertSinCosCall(), llvm::CallLowering::insertSRetOutgoingArgument(), insertUniqueBackedgeBlock(), insertVector(), llvm::ARMTTIImpl::instCombineIntrinsic(), llvm::GCNTTIImpl::instCombineIntrinsic(), llvm::PPCTTIImpl::instCombineIntrinsic(), llvm::X86TTIImpl::instCombineIntrinsic(), instCombineST1ScatterIndex(), instCombineSVECondLast(), instCombineSVEDupqLane(), instCombineSVELast(), instCombineSVEPTest(), llvm::AMDGPU::instrumentAddress(), llvm::AMDGPU::instrumentAddressImpl(), llvm::IntrinsicCostAttributes::IntrinsicCostAttributes(), llvm::MemoryDependenceResults::invalidateCachedPointerInfo(), isAllActivePredicate(), llvm::Constant::isAllOnesValue(), isAtomicRMWLegalXChgTy(), isCmpSameOrSwapped(), isCompatibleReplacement(), llvm::MipsTargetObjectFile::IsConstantInSmallSection(), llvm::LanaiTargetObjectFile::isConstantInSmallSection(), llvm::RISCVELFTargetObjectFile::isConstantInSmallSection(), llvm::isDereferenceableAndAlignedInLoop(), llvm::Constant::isElementWiseEqual(), llvm::TargetLoweringBase::isExtLoad(), llvm::Constant::isFiniteNonZeroFP(), llvm::SystemZTTIImpl::isFoldableLoad(), isFreeConcat(), isHighCostExpansion(), llvm::AANoAlias::isImpliedByIR(), llvm::isImpliedCondition(), llvm::CastInst::isIntegerCast(), isIntegerLoopHeaderPHI(), isIntegerWideningViableForSlice(), isInvariantLoad(), llvm::ConstantPtrAuth::isKnownCompatibleWith(), isKnownNonEqual(), llvm::isKnownNonEqual(), isKnownNonZeroFromOperator(), llvm::isLegalToPromote(), isLoadInvariantInLoop(), llvm::isMathLibCallNoop(), llvm::Constant::isMaxSignedValue(), llvm::Constant::isMinSignedValue(), llvm::Constant::isNaN(), llvm::Constant::isNegativeZeroValue(), llvm::CastInst::isNoopCast(), isNoopPtrIntCastPair(), llvm::Constant::isNormalFP(), llvm::Constant::isNotMinSignedValue(), llvm::Constant::isNotOneValue(), llvm::Constant::isOneValue(), isOperandOfVmullHighP64(), isPointerValueDeadOnEntryToFunction(), llvm::AArch64TargetLowering::isProfitableToHoist(), llvm::PPCTargetLowering::isProfitableToHoist(), isPromotedInstructionLegal(), isPTruePromoted(), llvm::GCNTTIImpl::isReadRegisterSourceOfDivergence(), llvm::CallBase::isReturnNonNull(), isSafeLoadOfSelectToSpeculate(), isSafePHIToSpeculate(), isSafeToSpeculateStore(), llvm::isSafeToSpeculativelyExecuteWithOpcode(), isShuffleEquivalentToSelect(), isShuffleExtractingFromLHS(), llvm::ConstantDataSequential::isString(), isSupportedAddrspace(), isUnsupportedAMDGPUAddrspace(), llvm::DemandedBits::isUseDead(), llvm::Attributor::isValidFunctionSignatureRewrite(), llvm::ExtractElementInst::isValidOperands(), llvm::InsertElementInst::isValidOperands(), llvm::ShuffleVectorInst::isValidOperands(), llvm::ShuffleVectorInst::isValidOperands(), isVectorPromotionViable(), isVectorPromotionViableForSlice(), llvm::Constant::isZeroValue(), LLVMConstRealGetDouble(), lookThroughCast(), lookThroughCastConst(), llvm::lowerAtomicCmpXchgInst(), llvm::lowerAtomicRMWInst(), llvm::CallLowering::lowerCall(), llvm::FastISel::lowerCall(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::FastISel::lowerCallTo(), llvm::AsmPrinter::lowerConstant(), llvm::AArch64TargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::RISCVTargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::lowerGlobalIFuncUsersAsGlobalCtor(), llvm::SITargetLowering::lowerIdempotentRMWIntoFencedLoad(), llvm::InlineAsmLowering::lowerInlineAsm(), llvm::RISCVTargetLowering::lowerInterleavedLoad(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), llvm::RISCVTargetLowering::lowerInterleavedStore(), llvm::RISCVTargetLowering::lowerInterleaveIntrinsicToStore(), llvm::IntrinsicLowering::LowerIntrinsicCall(), lowerKernelArguments(), LowerNegateToMultiply(), llvm::lowerObjectSizeCall(), lowerPtrAnnotation(), llvm::AArch64CallLowering::lowerReturn(), llvm::AMDGPUCallLowering::lowerReturn(), llvm::M68kCallLowering::lowerReturn(), llvm::MipsCallLowering::lowerReturn(), llvm::PPCCallLowering::lowerReturn(), llvm::RISCVCallLowering::lowerReturn(), llvm::X86CallLowering::lowerReturn(), llvm::IntrinsicLowering::LowerToByteSwap(), llvm::lowerUnaryVectorIntrinsicAsLoop(), markPointerAsAS(), llvm::matchDecomposedSelectPattern(), matchOrConcat(), matchPartStore(), matchStridedConstant(), matchSubIntegerPackFromVector(), llvm::gvn::AvailableValue::MaterializeAdjustedValue(), maybePrintCallAddrSpace(), memChrToCharCompare(), mergeAttributesAndFlags(), llvm::MergeBasicBlockIntoOnlyPred(), mergeConditionalStoreToAddress(), llvm::InstCombinerImpl::mergeStoreIntoSuccessor(), mergeTwoVectors(), llvm::TargetTransformInfoImplBase::minRequiredElementSize(), modifyIntrinsicCall(), llvm::InstDeleterIRStrategy::mutate(), llvm::SinkInstructionStrategy::mutate(), narrowVectorSelect(), needsFPFromSig(), llvm::RandomIRBuilder::newSource(), operandWithNewAddressSpaceOrCreatePoison(), OptimizeAwayTrappingUsesOfValue(), optimizeBranch(), optimizeCallInst(), OptimizeConstMinMax(), optimizeDoubleFP(), OptimizeEmptyGlobalAtExitDtors(), OptimizeExtractBits(), optimizeIntegerToVectorInsertions(), optimizeMemCmpConstantSize(), optimizeMemCmpVarSize(), optimizeNaN(), OptimizeNoopCopyExpression(), optimizeOnceStoredGlobal(), optimizeSection(), optimizeVectorResizeWithIntegerBitCasts(), llvm::VPTransformState::packScalarIntoVectorizedValue(), llvm::CallBase::paramHasNonNullAttr(), llvm::LoopStructure::parseLoopStructure(), llvm::peelLoop(), peelToTurnInvariantLoadsDereferenceable(), populateReductionFunction(), llvm::BasicTTIImplBase< BasicTTIImpl >::preferToKeepConstantsAttached(), processArg(), processAShr(), processBlockAddr(), llvm::JumpThreadingPass::processBranchOnXOR(), slpvectorizer::BoUpSLP::processBuildVector(), processCmpIntrinsic(), processInternalGlobal(), processNonStringArg(), processOverflowIntrinsic(), processSDiv(), processSelect(), processSExt(), processSIToFP(), processUGT_ADDCST_ADD(), processUMulZExtIdiom(), processUse(), promoteAllocaUserToVector(), llvm::promoteCall(), promoteSingleBlockAlloca(), propagateNaN(), llvm::InstCombinerImpl::reassociateShiftAmtsOfTwoSameDirectionShifts(), llvm::recognizeBSwapOrBitReverseIdiom(), llvm::HashRecognize::recognizeCRC(), remarkFlatAddrspaceAccess(), 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(), llvm::Record::resolveReferences(), llvm::returnTypeIsEligibleForTailCall(), reuseTableCompare(), llvm::GCNTTIImpl::rewriteIntrinsicWithAddressSpace(), llvm::NVPTXTTIImpl::rewriteIntrinsicWithAddressSpace(), llvm::SPIRVTTIImpl::rewriteIntrinsicWithAddressSpace(), llvm::rewriteLoopExitValues(), rewritePHIs(), rewriteSingleStoreAlloca(), RewriteUsesOfClonedInstructions(), rmwOpMayLowerToLibcall(), llvm::KCFIPass::run(), llvm::LoadAndStorePromoter::run(), llvm::MemDerefPrinterPass::run(), runImpl(), runImpl(), runOnDeviceFunction(), runOnKernelFunction(), llvm::IRTranslator::runOnMachineFunction(), llvm::salvageDebugInfoImpl(), salvageDebugInfoImpl(), llvm::SelectionDAGBuilder::salvageUnresolvedDbgValue(), scalarize(), scalarizeInstruction(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedVectorHistogram(), 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::MemIntrinsicBase< Derived >::setLength(), llvm::MemTransferBase< BaseCL >::setSource(), llvm::MemSetBase< BaseCL >::setValue(), llvm::LoopVectorizationCostModel::setVectorizedCallDecision(), llvm::AAMDNodes::shiftTBAAStruct(), llvm::TargetLoweringBase::shouldCastAtomicLoadInIR(), llvm::TargetLoweringBase::shouldCastAtomicRMWIInIR(), shouldConvertImpl(), llvm::AArch64TargetLowering::shouldExpandAtomicCmpXchgInIR(), llvm::ARMTargetLowering::shouldExpandAtomicCmpXchgInIR(), llvm::LoongArchTargetLowering::shouldExpandAtomicCmpXchgInIR(), llvm::PPCTargetLowering::shouldExpandAtomicCmpXchgInIR(), llvm::RISCVTargetLowering::shouldExpandAtomicCmpXchgInIR(), llvm::SITargetLowering::shouldExpandAtomicCmpXchgInIR(), llvm::AArch64TargetLowering::shouldExpandAtomicLoadInIR(), llvm::ARMTargetLowering::shouldExpandAtomicLoadInIR(), llvm::HexagonTargetLowering::shouldExpandAtomicLoadInIR(), llvm::AArch64TargetLowering::shouldExpandAtomicRMWInIR(), llvm::ARMTargetLowering::shouldExpandAtomicRMWInIR(), llvm::LoongArchTargetLowering::shouldExpandAtomicRMWInIR(), llvm::NVPTXTargetLowering::shouldExpandAtomicRMWInIR(), llvm::PPCTargetLowering::shouldExpandAtomicRMWInIR(), llvm::RISCVTargetLowering::shouldExpandAtomicRMWInIR(), llvm::SITargetLowering::shouldExpandAtomicRMWInIR(), llvm::SparcTargetLowering::shouldExpandAtomicRMWInIR(), llvm::SystemZTargetLowering::shouldExpandAtomicRMWInIR(), shouldInstrumentReadWriteFromAddress(), shrinkFPConstant(), shrinkInsertElt(), shrinkSplatShuffle(), llvm::ShuffleVectorConstantExpr::ShuffleVectorConstantExpr(), llvm::LoongArchTargetLowering::signExtendConstant(), llvm::RISCVTargetLowering::signExtendConstant(), simplifyAddInst(), simplifyAllocaArraySize(), simplifyAMDGCNImageIntrinsic(), simplifyAMDGCNMemoryIntrinsicDemanded(), simplifyAndCommutative(), simplifyAndInst(), simplifyAndOfICmpsWithAdd(), simplifyAndOrOfFCmps(), simplifyAndOrOfFCmpsWithConstants(), simplifyAndOrOfICmpsWithConstants(), llvm::InstCombinerImpl::SimplifyAnyMemSet(), simplifyAShrInst(), simplifyAssocCastAssoc(), llvm::simplifyBinaryIntrinsic(), simplifyByDomEq(), simplifyCastInst(), llvm::InstCombinerImpl::SimplifyDemandedInstructionBits(), llvm::GCNTTIImpl::simplifyDemandedLaneMaskArg(), llvm::InstCombinerImpl::SimplifyDemandedVectorElts(), llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetShuffle(), simplifyDiv(), simplifyDivRem(), llvm::InstCombinerImpl::simplifyDivRemOfSelectWithZeroOp(), simplifyExtractElementInst(), simplifyFAddInst(), simplifyFDivInst(), simplifyFMAFMul(), simplifyFRemInst(), simplifyFSubInst(), simplifyGEPInst(), simplifyICmpInst(), llvm::simplifyInsertElementInst(), simplifyInsertValueInst(), llvm::simplifyInstruction(), simplifyIntrinsic(), simplifyLdexp(), llvm::simplifyLoadInst(), simplifyLogicOfAddSub(), simplifyMulInst(), simplifyOrInst(), simplifyOrOfICmpsWithAdd(), llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), simplifyPHINode(), simplifyReductionOperand(), simplifyRelativeLoad(), simplifyRelocatesOffABase(), simplifyRem(), simplifyRightShift(), simplifySDivInst(), simplifySelectInst(), simplifySelectWithICmpCond(), simplifyShift(), simplifyShiftSelectingPackedElement(), simplifyShlInst(), llvm::InstCombinerImpl::simplifyShrShlDemandedBits(), simplifyShuffleVectorInst(), simplifySRemInst(), simplifySubInst(), simplifySwitchLookup(), simplifySwitchOfPowersOfTwo(), simplifyUnaryIntrinsic(), simplifyUnsignedRangeCheck(), simplifyUsingControlFlow(), simplifyX86addcarry(), simplifyX86immShift(), simplifyX86MaskedStore(), simplifyX86movmsk(), simplifyX86pack(), simplifyX86pmadd(), simplifyX86pmulh(), simplifyXorInst(), SinkShiftAndTruncate(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), speculatePHINodeLoads(), speculateSelectInstLoads(), llvm::SplitBlockAndInsertForEachLane(), llvm::SplitBlockAndInsertSimpleForLoop(), splitCallSite(), llvm::SplitIndirectBrCriticalEdges(), SplitLandingPadPredecessorsImpl(), splitMergedValStore(), llvm::StoreInst::StoreInst(), stripGCRelocates(), swapICmpOperandsToExposeCSEOpportunities(), tagGlobalDefinition(), llvm::Constant::toConstantRange(), transformGlobalArray(), transformToIndexedCompare(), trimTrailingZerosInVector(), tryInsertCastToCommonAddrSpace(), llvm::tryPromoteCall(), tryToMergePartialOverlappingStores(), tryToRecognizeTableBasedCttz(), TryToShrinkGlobalToBoolean(), tryUnmergingGEPsAcrossIndirectBr(), unpackFromRegLoc(), unpackFromRegLoc(), unpackLoadToAggregate(), llvm::UnrollRuntimeLoopRemainder(), llvm::SPIRVGlobalRegistry::updateAssignType(), 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(), valueEscapes(), slpvectorizer::BoUpSLP::vectorizeTree(), llvm::versionCallSite(), llvm::InstCombinerImpl::visitAllocaInst(), llvm::ObjectSizeOffsetEvaluator::visitAllocaInst(), llvm::ObjectSizeOffsetVisitor::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(), visitICmp(), llvm::InstCombinerImpl::visitICmpInst(), visitICmpLoadOperand(), 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::visitPtrToAddr(), 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(), widenCImmType(), writeConstantInternal(), and llvm::MetadataAsValue::~MetadataAsValue().

getUniqueUndroppableUser() [1/2]

User * Value::getUniqueUndroppableUser ( )

getUniqueUndroppableUser() [2/2]

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

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, the Instruction'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 line 543 of file Value.h.

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

getValueName()

hasMetadata() [1/3]

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

hasMetadata() [2/3]

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

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 line 606 of file Value.h.

References getMetadata().

hasName()

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

Definition at line 262 of file Value.h.

References HasName.

Referenced by addReplicateRegions(), llvm::SPIRVGlobalRegistry::buildGlobalVariable(), llvm::CloneBasicBlock(), llvm::dumpBasicBlockLabel(), llvm::ExecutionEngine::emitGlobals(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitKernelArg(), llvm::emitLinkerFlagsForGlobalCOFF(), llvm::emitLinkerFlagsForUsedCOFF(), externalize(), extractSubModule(), llvm::JITSymbolFlags::fromGlobalValue(), getArm64ECMangledFunctionName(), llvm::ModuleSummaryIndex::getGlobalValueSummary(), llvm::ExecutionEngine::getMangledName(), llvm::Mangler::getNameWithPrefix(), llvm::TargetLoweringObjectFileXCOFF::getSectionForExternalReference(), initSlots2BasicBlocks(), llvm::MergeBlockIntoPredecessor(), false::GepNode::operator<<, OptimizeGlobalVars(), llvm::MemoryPhi::print(), llvm::printBasicBlock(), printBBName(), printIRBlockReference(), replaceOperation(), llvm::stableHashValue(), llvm::TryToSimplifyUncondBranchFromEmptyBlock(), and llvm::UpgradeGlobalVariable().

hasNUndroppableUses()

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 line 200 of file Value.cpp.

hasNUndroppableUsesOrMore()

Return true if this value has N uses or more.

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

Definition at line 204 of file Value.cpp.

hasNUses()

hasNUsesOrMore()

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 line 439 of file Value.h.

References llvm::hasSingleElement(), and uses().

Referenced by areTwoInsertFromSameBuildVector(), canonicalizeSaturatedSubtract(), canUseShiftCmp(), collectOffsetOp(), combineMaskedStore(), dropRedundantMaskingOfLeftShiftInput(), emitGlobalConstantImpl(), factorizeFAddFSub(), findBuildAggregateRec(), findInsertPos(), llvm::SelectionDAGBuilder::FindMergedConditions(), FindSingleUseIdentifiedObject(), llvm::InstCombinerImpl::foldAddWithConstant(), foldAndOrOfICmpsWithConstEq(), foldAndToXor(), llvm::InstCombinerImpl::foldBinopWithRecurrence(), llvm::foldBranchToCommonDest(), foldClampRangeOfTwo(), foldComplexAndOrPatterns(), foldCtpop(), foldCtpopPow2Test(), foldCttzCtlz(), llvm::InstCombinerImpl::foldFMulReassoc(), foldFrexpOfSelect(), llvm::InstCombinerImpl::foldGEPICmp(), foldGEPOfPhi(), llvm::InstCombinerImpl::foldICmpAndConstConst(), llvm::InstCombinerImpl::foldICmpAndShift(), foldICmpAndXX(), llvm::InstCombinerImpl::foldICmpBinOp(), llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(), llvm::InstCombinerImpl::foldICmpBinOpWithConstantViaTruthTable(), llvm::InstCombinerImpl::foldICmpBitCast(), llvm::InstCombinerImpl::foldICmpDivConstant(), llvm::InstCombinerImpl::foldICmpEquality(), llvm::InstCombinerImpl::foldICmpInstWithConstant(), foldICmpOrXX(), llvm::InstCombinerImpl::foldICmpShlConstant(), llvm::InstCombinerImpl::foldICmpShrConstant(), llvm::InstCombinerImpl::foldICmpSRemConstant(), llvm::InstCombinerImpl::foldICmpTruncConstant(), llvm::InstCombinerImpl::foldICmpUsingBoolRange(), llvm::InstCombinerImpl::foldICmpWithClamp(), llvm::InstCombinerImpl::foldICmpWithZextOrSext(), foldIdentityExtractShuffle(), foldIDivShl(), foldInsSequenceIntoSplat(), llvm::InstCombinerImpl::foldIntegerTypedPHI(), foldIntrinsicUsingDistributiveLaws(), foldMulHigh(), foldNoWrapAdd(), llvm::InstCombinerImpl::foldOpIntoPhi(), foldOrToXor(), foldSelectICmpAnd(), foldSelectICmpAndBinOp(), llvm::InstCombinerImpl::foldSelectOpOp(), llvm::InstCombinerImpl::foldSelectShuffle(), llvm::InstCombinerImpl::FoldShiftByConstant(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), foldSubOfMinMax(), foldUnsignedUnderflowCheck(), foldXorToXor(), llvm::AArch64TTIImpl::getArithmeticInstrCost(), llvm::ARMTTIImpl::getArithmeticInstrCost(), llvm::GCNTTIImpl::getArithmeticInstrCost(), llvm::ARMTTIImpl::getCmpSelInstrCost(), getGEPCosts(), llvm::HexagonTTIImpl::getInstructionCost(), llvm::ARMTTIImpl::getIntImmCostInst(), llvm::SystemZTTIImpl::getMemoryOpCost(), llvm::AArch64TTIImpl::getShuffleCost(), llvm::ARMTTIImpl::getShuffleCost(), hasNonFlagsUse(), hasNonFlagsUse(), hasUseOtherThanLLVMUsed(), hoistMulAddAssociation(), llvm::InvertBranch(), llvm::AArch64TTIImpl::isExtPartOfAvgExpr(), isF128MovedToParts(), llvm::RecurrenceDescriptor::isFindIVPattern(), isFirstInsertElement(), llvm::SystemZTTIImpl::isFoldableLoad(), isFPSatMinMaxPattern(), isI128MovedToParts(), isMinMaxReductionPhiWithUsersOutsideReductionChain(), llvm::X86::mayFoldIntoStore(), narrowInsElt(), optimizeLoopExitWithUnknownExitCount(), processUGT_ADDCST_ADD(), rematerializeLiveValuesAtUses(), removeEmptyCleanup(), replaceArgumentUses(), replaceExtractElements(), shouldConvertToRelLookupTable(), shouldExpandCmpArithRMWInIR(), llvm::InstCombinerImpl::SimplifyAddWithRemainder(), llvm::InstCombinerImpl::simplifyBinOpSplats(), llvm::InstCombinerImpl::SimplifyDemandedBits(), llvm::InstCombinerImpl::SimplifyDemandedVectorElts(), llvm::InstCombinerImpl::simplifyDivRemOfSelectWithZeroOp(), llvm::InstCombinerImpl::simplifyShrShlDemandedBits(), sinkAndCmp0Expression(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), 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(), visitICmp(), llvm::InstCombinerImpl::visitICmpInst(), llvm::InstCombinerImpl::visitInsertElementInst(), llvm::InstCombinerImpl::visitLShr(), llvm::InstCombinerImpl::visitMul(), llvm::InstCombinerImpl::visitOr(), llvm::InstCombinerImpl::visitPHINode(), llvm::InstCombinerImpl::visitSExt(), llvm::InstCombinerImpl::visitStoreInst(), llvm::InstCombinerImpl::visitSub(), llvm::InstCombinerImpl::visitSwitchInst(), llvm::InstCombinerImpl::visitXor(), and llvm::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 line 166 of file Value.cpp.

Referenced by llvm::InstCombinerImpl::foldOpIntoPhi(), llvm::InstCombinerImpl::foldPHIArgLoadIntoPHI(), llvm::LoopVectorizationCostModel::getReductionPatternCost(), llvm::GCNTTIImpl::hoistLaneIntrinsicThroughOperand(), and isNotUsedOrFoldableInLoop().

hasSameSubclassOptionalData()

bool llvm::Value::hasSameSubclassOptionalData ( const Value * V) const inline

hasUseList()

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

hasValueHandle()

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

isSwiftError()

bool Value::isSwiftError ( ) const

isUsedByMetadata()

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

isUsedInBasicBlock()

materialized_use_begin() [1/2]

use_iterator llvm::Value::materialized_use_begin ( ) inline

materialized_use_begin() [2/2]

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

materialized_use_empty()

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

materialized_user_begin() [1/2]

user_iterator llvm::Value::materialized_user_begin ( ) inline

materialized_user_begin() [2/2]

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

materialized_users() [1/2]

materialized_users() [2/2]

materialized_uses() [1/2]

materialized_uses() [2/2]

mutateType()

void llvm::Value::mutateType ( Type * Ty) inline

Mutate the type of this Value 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 line 838 of file Value.h.

Referenced by llvm::CallBase::mutateFunctionType(), and scalarizeInstruction().

operator=()

print() [1/2]

Implement operator<< on Value.

Definition at line 5203 of file AsmWriter.cpp.

References llvm::dyn_cast(), getModuleFromVal(), I, llvm::isa(), isReferencingMDNode(), print(), and print().

Referenced by convertMCP(), ensurePromotedGV(), llvm::AccelTableBase::HashData::print(), llvm::DXILResourceMap::print(), print(), and print().

print() [2/2]

Definition at line 5214 of file AsmWriter.cpp.

References A(), llvm::CallingConv::C, llvm::dyn_cast(), F, llvm::ModuleSlotTracker::getMachine(), getModuleFromVal(), llvm::GlobalValue::getParent(), I, llvm::ModuleSlotTracker::incorporateFunction(), llvm::isa(), llvm_unreachable, print(), printAsOperand(), and writeConstantInternal().

printAsOperand() [1/2]

printAsOperand() [2/2]

Print the name of this Value out to the specified raw_ostream.

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

Definition at line 5281 of file AsmWriter.cpp.

References getModuleFromVal(), llvm::isa(), Machine, printAsOperand(), printAsOperandImpl(), and printWithoutType().

Referenced by convertMCP(), deleteValue(), llvm::AsmPrinter::emitGlobalVariable(), llvm::AliasSet::print(), llvm::MachineOperand::print(), llvm::MemoryPhi::print(), llvm::SCEV::print(), print(), printAsOperand(), printAsOperand(), remarkAlloca(), remarkFlatAddrspaceAccess(), replaceDominatedUsesWith(), llvm::GISelValueTrackingPrinterPass::run(), llvm::MachineUniformityPrinterPass::run(), and SinkInstruction().

replaceAllUsesWith()

void Value::replaceAllUsesWith ( Value * V )

Change all uses of this to point to a new Value.

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 line 546 of file Value.cpp.

Referenced by canonicalizeToIntegerIV(), llvm::changeToInvokeAndSplitBasicBlock(), checkOrAndOpImpliedByOther(), llvm::coro::Shape::cleanCoroutine(), llvm::CloneAndPruneIntoFromInst(), combineLoadToOperationType(), ConvertShiftToMul(), llvm::convertToDeclaration(), llvm::coro::BaseCloner::create(), createCBufferLoad(), createFunctionClones(), createMergedFunction(), createRawLoad(), createTblForTrunc(), createTypedBufferLoad(), DoFlattenLoopPair(), DoLowering(), doPromotion(), downcastI64toI32InsertExtractElements(), 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(), fixI8UseChain(), foldTwoEntryPHINode(), handleByValParam(), llvm::Constant::handleOperandChange(), hoistMulAddAssociation(), llvm::InlineFunctionImpl(), insertSpills(), insertUniqueBackedgeBlock(), llvm::lowerAtomicCmpXchgInst(), llvm::lowerAtomicRMWInst(), lowerAwaitSuspend(), lowerConstrainedFPCmpIntrinsic(), llvm::AArch64TargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::RISCVTargetLowering::lowerDeinterleaveIntrinsicToLoad(), lowerExpectIntrinsic(), llvm::SITargetLowering::lowerIdempotentRMWIntoFencedLoad(), llvm::IntrinsicLowering::LowerIntrinsicCall(), lowerKernelArguments(), LowerNegateToMultiply(), lowerSubFn(), llvm::IntrinsicLowering::LowerToByteSwap(), llvm::lowerUnaryVectorIntrinsicAsLoop(), markPointerAsAS(), 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(), llvm::SPIRVGlobalRegistry::replaceAllUsesWith(), replaceAllUsesWith(), replaceArgumentUses(), replaceCalledFunction(), ReplaceCallWith(), replaceCBufferAccesses(), replaceFrameSizeAndAlignment(), replaceLoopPHINodesWithPreheaderValues(), replaceOperation(), replacePrepare(), llvm::replaceSignedInst(), replaceSwiftErrorOps(), reuseTableCompare(), llvm::rewriteLoopExitValues(), rewritePHIs(), rewriteSingleStoreAlloca(), llvm::ExtractGVPass::run(), llvm::LoadAndStorePromoter::run(), llvm::SimplifyTypeTestsPass::run(), scalarize(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), simplifyOneLoop(), llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), simplifyRelocatesOffABase(), simplifySuspendPoint(), sink(), sinkMinMaxInBB(), speculatePHINodeLoads(), speculateSelectInstLoads(), splitCallSite(), splitGlobal(), llvm::SplitIndirectBrCriticalEdges(), SplitLandingPadPredecessorsImpl(), tryToRecognizeTableBasedCttz(), tryToReplaceWithGEPBuiltin(), TryToShrinkGlobalToBoolean(), llvm::TryToSimplifyUncondBranchFromEmptyBlock(), llvm::UpgradeARCRuntime(), llvm::UpgradeIntrinsicCall(), upgradeX86IntrinsicCall(), DataScalarizerVisitor::visitAllocaInst(), llvm::InstCombinerImpl::visitExtractElementInst(), DataScalarizerVisitor::visitGetElementPtrInst(), DataScalarizerVisitor::visitLoadInst(), and llvm::ObjectSizeOffsetEvaluator::visitPHINode().

replaceNonMetadataUsesWith()

void Value::replaceNonMetadataUsesWith ( Value * V )

Change non-metadata uses of this to point to a new Value.

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 line 550 of file Value.cpp.

replaceUsesOutsideBlock()

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. Unlike replaceAllUsesWith() this function does not support basic block values.

Definition at line 599 of file Value.cpp.

replaceUsesWithIf()

reverseUseList()

void Value::reverseUseList ( )

setMetadata() [1/2]

setMetadata() [2/2]

setName()

Change the name of the value.

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

Parameters

Name The new name; or "" if the value's name should be removed.

Definition at line 390 of file Value.cpp.

Referenced by llvm::AllocaInst::AllocaInst(), llvm::BinaryOperator::BinaryOperator(), llvm::CastInst::CastInst(), llvm::CloneBasicBlock(), cloneCandidateFunction(), llvm::CloneFunction(), llvm::CloneModule(), llvm::CmpInst::CmpInst(), convertToLocalCopy(), createInductionAdditionalBypassValues(), createMemMoveLoopKnownSize(), createMemMoveLoopUnknownSize(), llvm::createSanitizerCtorAndInitFunctions(), llvm::EpilogueVectorizerEpilogueLoop::createVectorizedLoopSkeleton(), doPromotion(), llvm::DuplicateInstructionsInSplitBetween(), llvm::embedBitcodeInModule(), llvm::EpilogueVectorizerMainLoop::emitIterationCountCheck(), emitTargetTaskProxyFunction(), emitTransformedIndex(), llvm::VPDerivedIVRecipe::execute(), externalize(), findBasePointer(), forceRenaming(), llvm::FreezeInst::FreezeInst(), generateUnsignedDivisionCode(), getArm64ECMangledFunctionName(), llvm::GlobalValue::GlobalValue(), InsertStackProtectors(), llvm::LoadInst::LoadInst(), llvm::IntrinsicLowering::LowerIntrinsicCall(), lowerIntrinsicToFunction(), lowerObjCCall(), makeStatepointExplicitImpl(), optimizeDivRem(), optimizeSQRT(), llvm::LoopStructure::parseLoopStructure(), llvm::peelLoop(), rematerializeChain(), rename(), ReplaceCallWith(), rewriteMaterializableInstructions(), llvm::LoopConstrainer::run(), runImpl(), scalarizeInstruction(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), scalarizeMaskedVectorHistogram(), llvm::ShuffleVectorInst::ShuffleVectorInst(), llvm::ShuffleVectorInst::ShuffleVectorInst(), simplifySwitchLookup(), sinkInstruction(), SplitLandingPadPredecessorsImpl(), splitLoopBound(), turnGuardIntoBranch(), llvm::UnaryOperator::UnaryOperator(), llvm::UnrollRuntimeLoopRemainder(), llvm::VAArgInst::VAArgInst(), versionCallSiteWithCond(), and llvm::LoopVersioning::versionLoop().

setValueName()

setValueSubclassData()

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

sortUseList()

template

void llvm::Value::sortUseList ( Compare Cmp )

Sort the use-list.

Sorts the Value's use-list by Cmp using a stable mergesort. Cmp is expected to compare two Use references.

Definition at line 922 of file Value.h.

References assert(), I, and llvm::Next.

stripAndAccumulateConstantOffsets() [1/2]

stripAndAccumulateConstantOffsets() [2/2]

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 to Offset and the base pointer is returned.

The APInt Offset 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).

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

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

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

If LookThroughIntToPtr is true then this method also looks through IntToPtr and PtrToInt constant expressions. The returned pointer may not have the same provenance as this value.

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

Note that this function will never return a nullptr. It will also never manipulate the Offset 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 and Offset is unchanged.

References DL, LLVM_ABI, llvm::Offset, and Value().

Referenced by areNonOverlapSameBaseLoadAndStore(), CleanupConstantGlobalUsers(), llvm::ConstantFoldCompareInstOperands(), findArgParts(), foldConsecutiveLoads(), foldLoadsRecursive(), getAssignmentInfoImpl(), llvm::getConstantDataArrayInfo(), llvm::GetPointerBaseWithConstantOffset(), llvm::getPointersDiff(), inferAlignment(), llvm::ConstantPtrAuth::isKnownCompatibleWith(), matchPartStore(), llvm::simplifyLoadInst(), stripAndAccumulateInBoundsConstantOffsets(), stripAndAccumulateInBoundsConstantOffsets(), stripAndAccumulateOffsets(), transformToIndexedCompare(), and llvm::tryPromoteCall().

stripAndAccumulateInBoundsConstantOffsets() [1/2]

stripAndAccumulateInBoundsConstantOffsets() [2/2]

stripInBoundsConstantOffsets() [1/2]

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

stripInBoundsConstantOffsets() [2/2]

const Value * Value::stripInBoundsConstantOffsets ( ) const

stripInBoundsOffsets() [1/2]

stripInBoundsOffsets() [2/2]

stripPointerCasts() [1/2]

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

stripPointerCasts() [2/2]

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 line 701 of file Value.cpp.

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

stripPointerCastsAndAliases() [1/2]

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

stripPointerCastsAndAliases() [2/2]

const Value * Value::stripPointerCastsAndAliases ( ) const

stripPointerCastsForAliasAnalysis() [1/2]

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

stripPointerCastsForAliasAnalysis() [2/2]

const Value * 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 line 717 of file Value.cpp.

Referenced by llvm::GlobalsAAResult::alias().

stripPointerCastsSameRepresentation() [1/2]

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

stripPointerCastsSameRepresentation() [2/2]

const Value * 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 line 709 of file Value.cpp.

Referenced by llvm::AlignmentFromAssumptionsPass::extractAlignmentInfo().

takeName()

void Value::takeName ( Value * V )

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 line 396 of file Value.cpp.

Referenced by canonicalizeToIntegerIV(), llvm::changeToCall(), cloneInstructionsIntoPredecessorBlockAndUpdateSSAUses(), llvm::convertToDeclaration(), DoLowering(), doPromotion(), llvm::embedBitcodeInModule(), llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(), EvaluateInDifferentTypeImpl(), expandFRem(), expandUDivOrURem(), foldConsecutiveLoads(), llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(), foldIntegerRepackThroughZExt(), foldMulHigh(), llvm::InstCombinerImpl::foldOpIntoPhi(), llvm::InstCombinerImpl::foldSelectIntoOp(), llvm::InstCombinerImpl::FoldShiftByConstant(), foldTwoEntryPHINode(), forceRenaming(), HandleInlinedEHPad(), hoistMinMax(), llvm::GCNTTIImpl::instCombineIntrinsic(), instCombineLD1GatherIndex(), instCombineRDFFR(), instCombineSMECntsd(), instCombineSVECmpNE(), instCombineSVECntElts(), instCombineSVEPTest(), instCombineSVETBL(), instCombineSVEUnpack(), instCombineSVEUzp1(), llvm::SITargetLowering::lowerIdempotentRMWIntoFencedLoad(), LowerNegateToMultiply(), llvm::MergeBlockIntoPredecessor(), modifyIntrinsicCall(), moveFunctionAdaptingType(), optimizeSection(), PropagateOperandBundles(), reassociateMinMaxWithConstantInOperand(), removeFromUsedList(), removeGlobalCtors(), RemovePreallocated(), llvm::removeUnwindEdge(), replaceAliasWithAliasee(), replaceOperation(), llvm::replaceSignedInst(), replaceUnaryCall(), rewriteCall(), rewriteMemOpOfSelect(), rewritePHIs(), scalarizeMaskedLoad(), simplifyAMDGCNImageIntrinsic(), simplifyAMDGCNMemoryIntrinsicDemanded(), llvm::InstCombinerImpl::SimplifyAssociativeOrCommutative(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), simplifyRelocatesOffABase(), llvm::InstCombinerImpl::SimplifySelectsFeedingBinaryOp(), tryFactorization(), TryToShrinkGlobalToBoolean(), llvm::TryToSimplifyUncondBranchFromEmptyBlock(), llvm::UpgradeARCRuntime(), llvm::UpgradeIntrinsicCall(), llvm::InstCombinerImpl::visitMul(), and llvm::InstCombinerImpl::visitOr().

use_begin() [1/2]

use_iterator llvm::Value::use_begin ( ) inline

use_begin() [2/2]

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

use_empty()

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

Definition at line 346 of file Value.h.

References assertModuleIsMaterialized().

Referenced by llvm::RecurrenceDescriptor::AddReductionVar(), checkOrAndOpImpliedByOther(), computeVirtualCallSiteTypeInfoMap(), createRetPHINode(), DCEInstruction(), deleteIfDead(), llvm::Constant::destroyConstant(), llvm::AsmPrinter::doFinalization(), doPromotion(), dropTypeTests(), llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(), llvm::objcarc::EraseInstruction(), findArgParts(), foldURemOfLoopIncrement(), forEachCall(), slpvectorizer::BoUpSLP::getReorderingData(), hasAddressTakenAndUsed(), hasSameExtUse(), hasUseOtherThanLLVMUsed(), llvm::InlineFunctionImpl(), llvm::AANoCapture::isImpliedByIR(), 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(), slpvectorizer::BoUpSLP::removeInstructionsAndOperands(), llvm::MemorySSAUpdater::removeMemoryAccess(), ReplaceCallWith(), replaceCBufferAccesses(), 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(), user_empty(), llvm::InstCombinerImpl::visitCallInst(), and llvm::PtrUseVisitor< ArgUseChecker >::visitGetElementPtrInst().

use_end() [1/2]

use_iterator llvm::Value::use_end ( ) inline

use_end() [2/2]

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

user_back() [1/2]

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

user_back() [2/2]

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

user_begin() [1/2]

user_iterator llvm::Value::user_begin ( ) inline

Definition at line 402 of file Value.h.

References assertModuleIsMaterialized(), and materialized_user_begin().

Referenced by addAllGlobalValueUsers(), canUseShiftCmp(), llvm::AArch64TTIImpl::getArithmeticInstrCost(), llvm::GCNTTIImpl::getArithmeticInstrCost(), llvm::ARMTTIImpl::getIntImmCostInst(), llvm::SystemZTTIImpl::getMemoryOpCost(), slpvectorizer::BoUpSLP::getReorderingData(), llvm::AArch64TTIImpl::getShuffleCost(), llvm::ARMTTIImpl::getShuffleCost(), hasSameExtUse(), llvm::SystemZTTIImpl::isFoldableLoad(), isFPSatMinMaxPattern(), isI128MovedToParts(), isPointerUseReplacable(), isSSATMinMaxPattern(), llvm::X86::mayFoldIntoStore(), OptimizeExtractBits(), rematerializeLiveValuesAtUses(), llvm::Constant::removeDeadConstantUsers(), replaceAllUsesWith(), sinkAndCmp0Expression(), SinkCast(), llvm::Instruction::user_back(), and llvm::Instruction::user_back().

user_begin() [2/2]

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

user_empty()

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

user_end() [1/2]

user_iterator llvm::Value::user_end ( ) inline

user_end() [2/2]

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

users() [1/2]

Definition at line 426 of file Value.h.

References assertModuleIsMaterialized(), and materialized_users().

Referenced by addFullyUnrolledInstructionsToIgnore(), llvm::RecurrenceDescriptor::AddReductionVar(), adjustByValArgAlignment(), affectedValuesAreEphemeral(), AllUsesOfValueWillTrapIfNull(), llvm::RISCVDAGToDAGISel::areOffsetsWithinAlignment(), slpvectorizer::BoUpSLP::buildExternalUses(), calculateCXXStateNumbers(), calculateSEHStateNumbers(), llvm::LoopVectorizationLegality::canFoldTailByMasking(), llvm::canTrackGlobalVariableInterprocedurally(), checkOverflow(), CleanupConstantGlobalUsers(), CleanupPointerRootUsers(), clearAssumptionsOfUsers(), combineSCALAR_TO_VECTOR(), combineTargetShuffle(), llvm::InstCombinerImpl::convertOrOfShiftsToFunnelShift(), countNumMemAccesses(), llvm::createAnyOfReduction(), createRetBitCast(), createRetPHINode(), detectPopcountIdiom(), llvm::InstCombinerImpl::dominatesAllUses(), dropTypeTests(), expandBufferLoadIntrinsic(), expandProtectedFieldPtr(), llvm::CodeExtractor::findAllocas(), findHandleDef(), findInitTrampolineFromAlloca(), findInnerReductionPhi(), findInsertPos(), findMayClobberedPtrAccess(), FindPreallocatedCall(), FindSingleUseIdentifiedObject(), findUses(), llvm::InstCombinerImpl::foldIntegerTypedPHI(), llvm::InstCombinerImpl::foldOpIntoPhi(), llvm::InstCombinerImpl::foldPHIArgIntToPtrToPHI(), forwardHandleAccesses(), forwardStoredOnceStore(), llvm::FunctionPropertiesUpdater::FunctionPropertiesUpdater(), getArgSPIRVType(), getCleanupRetUnwindDest(), getCleanupRetUnwindDest(), getFSqrtDivOptPattern(), llvm::GCStatepointInst::getGCRelocates(), getGCResultLocality(), getInvariantGroupClobberingInstruction(), llvm::HexagonTargetObjectFile::getLutUsedFunction(), getModuleFromVal(), llvm::getNumOfCalls(), llvm::RecurrenceDescriptor::getReductionOpChain(), getUnwindDestToken(), getUnwindDestTokenHelper(), llvm::AMDGPU::getUsesOfLDSByFunction(), HasAddressTaken(), hasExceptionPointerOrCodeUser(), hasHardUserWithinLoop(), hasLifetimeMarkers(), llvm::hasOutsideLoopUser(), hasSameExtUse(), hasStoreUsersOnly(), insertSpills(), llvm::invertCondition(), llvm::isAllocaPromotable(), isAllocSiteRemovable(), llvm::isAlmostDeadIV(), isArgUnmodifiedByAllCalls(), llvm::Loop::isAuxiliaryInductionVariable(), llvm::Constant::isConstantUsed(), llvm::SuspendCrossingInfo::isDefinitionAcrossSuspend(), llvm::RecurrenceDescriptor::isFixedOrderRecurrence(), isGOTEquivalentCandidate(), isHighCostExpansion(), isI32InsnAllUses(), isKnownNonNullFromDominatingCondition(), isLoadInvariantInLoop(), isLocalAlloca(), isOnlyUsedInComparisonWithZero(), isOnlyUsedInEqualityComparison(), llvm::isOverflowIntrinsicNoWrap(), isPointerValueDeadOnEntryToFunction(), isPTruePromoted(), isSafeAndProfitableToSinkLoad(), isSafePHIToSpeculate(), isUsedAsMemCpySource(), isUsedByLifetimeMarker(), isWorthFoldingIntoRegRegScale(), localAllocaNeedsStackSave(), llvm::LowerDbgDeclare(), lowerLocalAllocas(), lowerNonLocalAlloca(), mapWasmLandingPadIndex(), llvm::VPlanTransforms::materializeBroadcasts(), needCarryOrOverflowFlag(), negateICmpIfUsedByBranchOrSelectOnly(), NegateValue(), nullifySetjmp(), OnlyUsedBy(), onlyUsedByLifetimeMarkersOrDroppableInstsHelper(), onlyZeroFlagUsed(), OptimizeAwayTrappingUsesOfLoads(), optimizeDoubleFP(), OptimizeEmptyGlobalAtExitDtors(), OptimizeNonTrivialIFuncs(), llvm::AlignmentFromAssumptionsPass::processAssumption(), processUGT_ADDCST_ADD(), processUMulZExtIdiom(), processUse(), promoteSingleBlockAlloca(), relocationViaAlloca(), rematerializeLiveValuesAtUses(), removePAICalls(), RemovePreallocated(), llvm::InstructionPrecedenceTracking::removeUsersOf(), replaceCBufferAccesses(), llvm::coro::replaceCoroFree(), replaceExtractElements(), replaceLoopPHINodesWithPreheaderValues(), llvm::VPlanTransforms::replaceSymbolicStrides(), reportInvalidDirection(), llvm::rewriteLoopExitValues(), rewriteNonInstructionUses(), rewriteSingleStoreAlloca(), rewriteUses(), llvm::ArgumentPromotionPass::run(), llvm::BPFASpaceCastSimplifyPass::run(), llvm::SimplifyTypeTestsPass::run(), runIPSCCP(), llvm::coro::BaseCloner::salvageDebugInfo(), setCannotDuplicate(), shouldCheckArgs(), shouldCombineToPostInc(), shouldSpeculateInstrs(), llvm::InstCombinerImpl::SimplifyDemandedVectorElts(), sinkAndCmp0Expression(), sinkLastInstruction(), sinkLifetimeStartMarkers(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::Solve(), splitGlobal(), SRAGlobal(), llvm::coro::suppressCoroAllocs(), swapICmpOperandsToExposeCSEOpportunities(), tryToElideArgumentCopy(), TryToShrinkGlobalToBoolean(), tryUnmergingGEPsAcrossIndirectBr(), upcastI8AllocasAndUses(), llvm::UpgradeARCRuntime(), usedInOneFunc(), usersDominator(), valueEscapes(), slpvectorizer::BoUpSLP::vectorizeTree(), llvm::InstCombinerImpl::visitIntToPtr(), llvm::InstCombinerImpl::visitPHINode(), and llvm::InstCombinerImpl::visitShuffleVectorInst().

users() [2/2]

uses() [1/2]

Definition at line 380 of file Value.h.

References assertModuleIsMaterialized(), and materialized_uses().

Referenced by addIntrinsicToSummary(), analyzeGlobalAux(), llvm::InstCombiner::canFreelyInvertAllUsersOf(), canRewriteGEPAsOffset(), canSinkInstructions(), llvm::Attributor::checkForAllCallSites(), collectSRATypes(), computeVirtualCallSiteTypeInfoMap(), determinePointerAccessAttrs(), dropTypeTests(), eliminateSwiftErrorAlloca(), findArgParts(), findCallsAtConstantOffset(), findDemandedEltsByAllUsers(), llvm::findDevirtualizableCallsForTypeCheckedLoad(), llvm::findDevirtualizableCallsForTypeTest(), findLoadCallsAtConstantOffset(), findUser(), llvm::MemoryDependenceResults::getInvariantGroupPointerDependency(), handleByValParam(), hasOneUse(), llvm::hasPartialIVCondition(), insertSpills(), isCommutative(), isOnlyCopiedFromConstantMemory(), isPossibleIndirectCallTarget(), llvm::LoopInfo::movementPreservesLCSSAForm(), llvm::PointerMayBeCaptured(), predictValueUseListOrder(), predictValueUseListOrderImpl(), predictValueUseListOrderImpl(), llvm::ValueEnumerator::print(), llvm::AlignmentFromAssumptionsPass::processAssumption(), processSelect(), llvm::promoteLoopAccessesToScalars(), removeIntrinsicUsers(), removeUnusedBlocksFromParent(), replaceAllPrepares(), replaceDominatedUsesWith(), llvm::replaceNonLocalUsesWith(), replacePrepare(), RewriteUsesOfClonedInstructions(), runAttributorOnFunctions(), llvm::X86TargetLowering::shouldReduceLoadWidth(), SinkInstruction(), llvm::TryToSimplifyUncondBranchFromEmptyBlock(), llvm::JumpThreadingPass::tryToUnfoldSelectInCurrBB(), llvm::updatePublicTypeTestCalls(), UpdateSSA(), valueIsOnlyUsedLocallyOrStoredToOneGlobal(), and llvm::MemorySSA::verifyOrderingDominationAndDefUses().

uses() [2/2]

ValueAsMetadata

ValueHandleBase

HasDescriptor

HasHungOffUses

HasMetadata

HasName

IsUsedByMD

MaxAlignmentExponent

unsigned llvm::Value::MaxAlignmentExponent = 32 staticconstexpr

MaximumAlignment

NumUserOperands

SubclassOptionalData

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 line 85 of file Value.h.

Referenced by llvm::BinaryConstantExpr::BinaryConstantExpr(), clearSubclassOptionalData(), llvm::OverflowingBinaryOperator::ConstantExpr, llvm::PossiblyExactOperator::ConstantExpr, llvm::CallBrInst::Create(), llvm::CallInst::Create(), llvm::ConstantExpr::getAsInstruction(), llvm::FPMathOperator::getFastMathFlags(), llvm::GEPOperator::getNoWrapFlags(), getRawSubclassOptionalData(), llvm::ConstantExpr::getWithOperands(), llvm::BasicBlock::hasAddressTaken(), llvm::FPMathOperator::hasAllowContract(), llvm::FPMathOperator::hasAllowReassoc(), llvm::FPMathOperator::hasAllowReciprocal(), llvm::FPMathOperator::hasApproxFunc(), llvm::FPMathOperator::hasNoInfs(), llvm::FPMathOperator::hasNoNaNs(), llvm::OverflowingBinaryOperator::hasNoSignedWrap(), llvm::TruncInst::hasNoSignedWrap(), llvm::FPMathOperator::hasNoSignedZeros(), llvm::OverflowingBinaryOperator::hasNoUnsignedWrap(), llvm::TruncInst::hasNoUnsignedWrap(), llvm::ICmpInst::hasSameSign(), hasSameSubclassOptionalData(), llvm::BasicBlock::invalidateOrders(), llvm::PossiblyDisjointInst::isDisjoint(), llvm::PossiblyExactOperator::isExact(), llvm::FPMathOperator::isFast(), llvm::BasicBlock::isInstrOrderValid(), llvm::TruncInst::setHasNoSignedWrap(), llvm::TruncInst::setHasNoUnsignedWrap(), llvm::PossiblyDisjointInst::setIsDisjoint(), llvm::GetElementPtrInst::setNoWrapFlags(), and llvm::ICmpInst::setSameSign().


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