LLVMValue Representation.More...
#include "llvm/IR/Value.h"
Public Types | |
enum | ValueTy |
Concrete subclass of this.More... | |
using | use_iterator = use_iterator_impl<Use > |
using | const_use_iterator = use_iterator_impl<constUse > |
using | user_iterator = user_iterator_impl<User > |
using | const_user_iterator = user_iterator_impl<constUser > |
Public Member Functions | |
Value (constValue &)=delete | |
Value & | operator= (constValue &)=delete |
void | deleteValue () |
Delete a pointer to a genericValue. | |
void | dump ()const |
Support for debugging, callable in GDB: V->dump() | |
Type * | getType ()const |
All values are typed, get the type of this value. | |
LLVMContext & | getContext ()const |
All values hold a context through their type. | |
bool | hasName ()const |
ValueName * | getValueName ()const |
void | setValueName (ValueName *VN) |
StringRef | getName ()const |
Return a constant reference to the value's name. | |
void | setName (constTwine &Name) |
Change the name of the value. | |
void | takeName (Value *V) |
Transfer the name from V to this value. | |
std::string | getNameOrAsOperand ()const |
void | replaceAllUsesWith (Value *V) |
Change all uses of this to point to a newValue. | |
void | replaceNonMetadataUsesWith (Value *V) |
Change non-metadata uses of this to point to a newValue. | |
void | replaceUsesWithIf (Value *New,llvm::function_ref<bool(Use &U)> ShouldReplace) |
Go through the uses list for this definition and make each use point to "V" if the callback ShouldReplace returns true for the givenUse. | |
void | replaceUsesOutsideBlock (Value *V,BasicBlock *BB) |
replaceUsesOutsideBlock - Go through the uses list for this definition and make each use point to "V" instead of "this" when the use is outside the block. | |
void | assertModuleIsMaterializedImpl ()const |
void | assertModuleIsMaterialized ()const |
bool | use_empty ()const |
bool | materialized_use_empty ()const |
use_iterator | materialized_use_begin () |
const_use_iterator | materialized_use_begin ()const |
use_iterator | use_begin () |
const_use_iterator | use_begin ()const |
use_iterator | use_end () |
const_use_iterator | use_end ()const |
iterator_range<use_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 () |
constUser * | 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. | |
bool | hasNUses (unsignedN)const |
Return true if thisValue has exactly N uses. | |
bool | hasNUsesOrMore (unsignedN)const |
Return true if this value has N uses or more. | |
bool | hasOneUser ()const |
Return true if there is exactly one user of this value. | |
Use * | getSingleUndroppableUse () |
Return true if there is exactly one use of this value that cannot be dropped. | |
constUse * | getSingleUndroppableUse ()const |
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). | |
constUser * | getUniqueUndroppableUser ()const |
bool | hasNUndroppableUses (unsignedN)const |
Return true if there this value. | |
bool | hasNUndroppableUsesOrMore (unsignedN)const |
Return true if this value has N uses or more. | |
void | dropDroppableUses (llvm::function_ref<bool(constUse *)> ShouldDrop=[](constUse *) { returntrue;}) |
Remove every uses that can safely be removed. | |
void | dropDroppableUsesIn (User &Usr) |
Remove every use of this value inUser that can safely be removed. | |
bool | isUsedInBasicBlock (constBasicBlock *BB)const |
Check if this value is used in the specified basic block. | |
unsigned | getNumUses ()const |
This method computes the number of uses of thisValue. | |
void | addUse (Use &U) |
This method should only be used by theUse class. | |
unsigned | getValueID ()const |
Return an ID for the concrete type of this object. | |
unsigned | getRawSubclassOptionalData ()const |
Return the raw optional flags value contained in this value. | |
void | clearSubclassOptionalData () |
Clear the optional flags contained in this value. | |
bool | hasSameSubclassOptionalData (constValue *V)const |
Check the optional flags for equality. | |
bool | hasValueHandle ()const |
Return true if there is a value handle associated with this value. | |
bool | isUsedByMetadata ()const |
Return true if there is metadata referencing this value. | |
bool | isSwiftError ()const |
Return true if this value is a swifterror value. | |
constValue * | stripPointerCasts ()const |
Strip off pointer casts, all-zero GEPs and address space casts. | |
Value * | stripPointerCasts () |
constValue * | stripPointerCastsAndAliases ()const |
Strip off pointer casts, all-zero GEPs, address space casts, and aliases. | |
Value * | stripPointerCastsAndAliases () |
constValue * | 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 () |
constValue * | stripPointerCastsForAliasAnalysis ()const |
Strip off pointer casts, all-zero GEPs, single-argument phi nodes and invariant group info. | |
Value * | stripPointerCastsForAliasAnalysis () |
constValue * | stripInBoundsConstantOffsets ()const |
Strip off pointer casts and all-constant inbounds GEPs. | |
Value * | stripInBoundsConstantOffsets () |
constValue * | stripAndAccumulateConstantOffsets (constDataLayout &DL,APInt &Offset,bool AllowNonInbounds,bool AllowInvariantGroup=false,function_ref<bool(Value &Value,APInt &Offset)> ExternalAnalysis=nullptr)const |
Accumulate the constant offset this value has compared to a base pointer. | |
Value * | stripAndAccumulateConstantOffsets (constDataLayout &DL,APInt &Offset,bool AllowNonInbounds,bool AllowInvariantGroup=false,function_ref<bool(Value &Value,APInt &Offset)> ExternalAnalysis=nullptr) |
constValue * | stripAndAccumulateInBoundsConstantOffsets (constDataLayout &DL,APInt &Offset)const |
This is a wrapper around stripAndAccumulateConstantOffsets with the in-bounds requirement set to false. | |
Value * | stripAndAccumulateInBoundsConstantOffsets (constDataLayout &DL,APInt &Offset) |
constValue * | stripInBoundsOffsets (function_ref< void(constValue *)> Func=[](constValue *) {})const |
Strip off pointer casts and inbounds GEPs. | |
Value * | stripInBoundsOffsets (function_ref< void(constValue *)> Func=[](constValue *) {}) |
std::optional< int64_t > | getPointerOffsetFrom (constValue *Other,constDataLayout &DL)const |
If this ptr is provably equal toOther plus a constant offset, return that offset in bytes. | |
bool | canBeFreed ()const |
Return true if the memory object referred to by V can by freed in the scope for which the SSA value defining the allocation is statically defined. | |
uint64_t | getPointerDereferenceableBytes (constDataLayout &DL,bool &CanBeNull,bool &CanBeFreed)const |
Returns the number of bytes known to be dereferenceable for the pointer value. | |
Align | getPointerAlignment (constDataLayout &DL)const |
Returns an alignment of the pointer value. | |
constValue * | DoPHITranslation (constBasicBlock *CurBB,constBasicBlock *PredBB)const |
Translate PHI node to its predecessor from the given basic block. | |
Value * | DoPHITranslation (constBasicBlock *CurBB,constBasicBlock *PredBB) |
void | mutateType (Type *Ty) |
Mutate the type of thisValue to be of the specified type. | |
template<class Compare > | |
void | sortUseList (Compare Cmp) |
Sort the use-list. | |
void | reverseUseList () |
Reverse the use-list. | |
void | print (raw_ostream &O,bool IsForDebug=false)const |
Implement operator<< onValue. | |
void | print (raw_ostream &O,ModuleSlotTracker &MST,bool IsForDebug=false)const |
void | printAsOperand (raw_ostream &O,bool PrintType=true,constModule *M=nullptr)const |
Print the name of thisValue out to the specifiedraw_ostream. | |
void | printAsOperand (raw_ostream &O,bool PrintType,ModuleSlotTracker &MST)const |
Static Public Member Functions | |
static void | dropDroppableUse (Use &U) |
Remove the droppable useU . | |
Static Public Attributes | |
static constexprunsigned | MaxAlignmentExponent = 32 |
The maximum alignment for instructions. | |
static constexpruint64_t | MaximumAlignment = 1ULL <<MaxAlignmentExponent |
Protected Types | |
enum | : unsigned {NumUserOperandsBits = 27 } |
The number of operands in the subclass.More... | |
Protected Member Functions | |
Value (Type *Ty,unsigned scid) | |
~Value () | |
Value's destructor should be virtual by design, but that would require thatValue and all of its subclasses have a vtable that effectively duplicates the information in the value ID. | |
void | getAllMetadata (SmallVectorImpl< std::pair<unsigned,MDNode * > > &MDs)const |
Appends all metadata attached to this value toMDs , sorting by KindID. | |
bool | hasMetadata ()const |
Return true if this value has any metadata attached to it. | |
bool | eraseMetadata (unsigned KindID) |
Erase all metadata attachments with the given kind. | |
void | eraseMetadataIf (function_ref<bool(unsigned,MDNode *)> Pred) |
Erase all metadata attachments matching the given predicate. | |
void | clearMetadata () |
Erase all metadata attached to thisValue. | |
MDNode * | getMetadataImpl (unsigned KindID)const |
Get metadata for the given kind, if any. | |
unsigned short | getSubclassDataFromValue ()const |
void | setValueSubclassData (unsigned shortD) |
MDNode * | getMetadata (unsigned KindID)const |
Get the current metadata attachments for the given kind, if any. | |
MDNode * | getMetadata (StringRef Kind)const |
void | getMetadata (unsigned KindID,SmallVectorImpl<MDNode * > &MDs)const |
Appends all attachments with the given ID toMDs in insertion order. | |
void | getMetadata (StringRef Kind,SmallVectorImpl<MDNode * > &MDs)const |
bool | hasMetadata (unsigned KindID)const |
Return true if this value has the given type of metadata attached. | |
bool | hasMetadata (StringRef Kind)const |
void | setMetadata (unsigned KindID,MDNode *Node) |
Set a particular kind of metadata attachment. | |
void | setMetadata (StringRef Kind,MDNode *Node) |
void | addMetadata (unsigned KindID,MDNode &MD) |
Add a metadata attachment. | |
void | addMetadata (StringRef Kind,MDNode &MD) |
Protected Attributes | |
unsignedchar | SubclassOptionalData: 7 |
Hold subclass data that can be dropped. | |
unsigned | NumUserOperands:NumUserOperandsBits |
unsigned | IsUsedByMD: 1 |
unsigned | HasName: 1 |
unsigned | HasMetadata: 1 |
unsigned | HasHungOffUses: 1 |
unsigned | HasDescriptor: 1 |
Friends | |
class | ValueAsMetadata |
class | ValueHandleBase |
LLVMValue Representation.
This is a very important LLVM class. It is the base class of all values computed by a program that may be used as operands to other values.Value is the super class of other important classes such asInstruction andFunction. All Values have aType.Type is not a subclass ofValue. Some values can have a name and they belong to someModule. Setting the name on theValue automatically updates the module's symbol table.
Every value has a "use list" that keeps track of which other Values are using thisValue. AValue can also have an arbitrary number of ValueHandle objects that watch it and listen to RAUW and Destroy events. Seellvm/IR/ValueHandle.h for details.
usingllvm::Value::const_use_iterator = use_iterator_impl<constUse> |
usingllvm::Value::const_user_iterator = user_iterator_impl<constUser> |
usingllvm::Value::use_iterator = use_iterator_impl<Use> |
usingllvm::Value::user_iterator = user_iterator_impl<User> |
| protected |
The number of operands in the subclass.
This member is defined by this class, but not used for anything. Subclasses can use it to store their number of operands, if they have any.
This is stored here to save space inUser on 64-bit hosts. Since most instances ofValue have operands, 32-bit hosts aren't significantly affected.
Note, this shouldNOT be used directly by any class other thanUser.User uses this value to find theUse list.
Enumerator | |
---|---|
NumUserOperandsBits |
Definition at line53 of fileValue.cpp.
Referencesllvm::sandboxir::Value::Ctx,llvm::sandboxir::Tracker::emplaceIfTracking(),llvm::sandboxir::Context::getTracker(),llvm::Use::getUser(), andllvm::sandboxir::Context::getValue().
Referenced byllvm::cl::ValuesClass::apply(),llvm::generateBuiltinVar(),llvm::generateGetQueryInst(),llvm::generateWaveInst(),llvm::pdb::PDBSymbolCompilandEnv::getValue(),llvm::yaml::ScalarTraits< UnsignedValue >::input(),llvm::yaml::MappingTraits< MachineConstantPoolValue >::mapping(),llvm::operator<<(),llvm::pdb::operator<<(),llvm::operator==(),llvm::yaml::ScalarTraits< UnsignedValue >::output(),valuesOverlap(), andllvm::logicalview::LVSymbolVisitor::visitKnownRecord().
| protected |
Definition at line1572 of fileMetadata.cpp.
ReferencesaddMetadata(), andgetContext().
Add a metadata attachment.
Definition at line1565 of fileMetadata.cpp.
Referencesassert(),getContext(),HasMetadata,llvm::LLVMContext::pImpl, andllvm::LLVMContextImpl::ValueMetadata.
Referenced byaddMetadata().
| inline |
| inline |
Definition at line338 of fileValue.h.
ReferencesassertModuleIsMaterializedImpl().
Referenced byuse_begin(),use_empty(),user_back(),user_begin(),user_empty(),users(), anduses().
void Value::assertModuleIsMaterializedImpl | ( | ) | const |
Definition at line456 of fileValue.cpp.
Referenced byassertModuleIsMaterialized().
bool Value::canBeFreed | ( | ) | const |
| protected |
Erase all metadata attached to thisValue.
Definition at line1603 of fileMetadata.cpp.
Referencesassert(),getContext(),HasMetadata,llvm::LLVMContext::pImpl, andllvm::LLVMContextImpl::ValueMetadata.
Referenced byeraseMetadata(), anderaseMetadataIf().
| inline |
Clear the optional flags contained in this value.
Definition at line544 of fileValue.h.
ReferencesSubclassOptionalData.
void Value::deleteValue | ( | ) |
Delete a pointer to a genericValue.
Definition at line110 of fileValue.cpp.
Referenced byllvm::BitcodeReaderValueList::assignValue(), andllvm::ilist_alloc_traits< MemoryAccess >::deleteNode().
| inline |
Definition at line801 of fileValue.h.
ReferencesDoPHITranslation().
constValue * Value::DoPHITranslation | ( | constBasicBlock * | CurBB, |
constBasicBlock * | PredBB | ||
) | const |
Translate PHI node to its predecessor from the given basic block.
If this value is a PHI node with CurBB as its parent, return the value in the PHI node corresponding to PredBB. If not, return ourself. This is useful if you want to know the value something has in a predecessor block.
Definition at line1067 of fileValue.cpp.
Referenced byllvm::JumpThreadingPass::computeValueKnownInPredecessorsImpl(),DoPHITranslation(),llvm::InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse(), andllvm::JumpThreadingPass::simplifyPartiallyRedundantLoad().
| static |
Remove the droppable useU
.
Definition at line217 of fileValue.cpp.
Referenced byremoveIntrinsicUsers(), andllvm::InstCombinerImpl::visitCallInst().
void Value::dropDroppableUses | ( | llvm::function_ref<bool(constUse *)> | ShouldDrop =[](const Use *) { return true; } | ) |
Remove every uses that can safely be removed.
This will remove for example uses in llvm.assume. This should be used when performing want to perform a tranformation but some Droppable uses pervent it. This function optionally takes a filter to only remove some droppable uses.
void Value::dropDroppableUsesIn | ( | User & | Usr | ) |
LLVM_DUMP_METHOD void Value::dump | ( | ) | const |
Support for debugging, callable in GDB: V->dump()
Definition at line5304 of fileAsmWriter.cpp.
Referencesllvm::dbgs(), andprint().
Referenced byCanWidenIV(),checkPHIs(),DoFlattenLoopPair(),llvm::DbgValueLocEntry::dump(),llvm::CodeExtractor::extractCodeRegion(),findLoopComponents(),llvm::AArch64TargetLowering::lowerDeinterleaveIntrinsicToLoad(),llvm::GlobalMergeFunc::merge(),setLoopComponents(), andsinkAndCmp0Expression().
Erase all metadata attachments with the given kind.
Definition at line1576 of fileMetadata.cpp.
ReferencesclearMetadata(),getContext(),HasMetadata,llvm::LLVMContext::pImpl, andllvm::LLVMContextImpl::ValueMetadata.
| protected |
Erase all metadata attachments matching the given predicate.
Definition at line1588 of fileMetadata.cpp.
Referencesassert(),clearMetadata(),getContext(),HasMetadata,I,Info,llvm::LLVMContext::pImpl, andllvm::LLVMContextImpl::ValueMetadata.
Referenced byllvm::Instruction::dropUnknownNonDebugMetadata(), andllvm::Instruction::eraseMetadataIf().
| protected |
Appends all metadata attached to this value toMDs
, sorting by KindID.
The first element of each pair returned is the KindID, the second element is the metadata value. Attachments with the same ID appear in insertion order.
Definition at line1521 of fileMetadata.cpp.
Referencesassert(),getContext(),hasMetadata(),Info,llvm::LLVMContext::pImpl, andllvm::LLVMContextImpl::ValueMetadata.
LLVMContext & Value::getContext | ( | ) | const |
All values hold a context through their type.
Definition at line1075 of fileValue.cpp.
Referenced byllvm::Instruction::addAnnotationMetadata(),llvm::GlobalVariable::addAttribute(),llvm::CallBase::addAttributeAtIndex(),llvm::CallBase::addDereferenceableParamAttr(),llvm::CallBase::addDereferenceableRetAttr(),llvm::addDiffRuntimeChecks(),llvm::CallBase::addFnAttr(),addMetadata(),AddParamAndFnBasicAttributes(),llvm::CallBase::addParamAttr(),llvm::CallBase::addRangeRetAttr(),llvm::CallBase::addRetAttr(),llvm::addRuntimeChecks(),llvm::memprof::CallStackTrie::addSingleAllocTypeAttribute(),llvm::GlobalObject::addTypeMetadata(),llvm::DbgVariableIntrinsic::addVariableLocationOps(),adjustInliningThresholdUsingCallee(),annotateDereferenceableBytes(),llvm::SelectInst::areInvalidOperands(),llvm::memprof::CallStackTrie::buildAndAttachMIBMetadata(),buildIntrinsicArgTypes(),canonicalizeForInvariantConditionInjection(),clearMetadata(),llvm::CoroIdInst::clearPromise(),llvm::FenceInst::cloneImpl(),llvm::UnreachableInst::cloneImpl(),llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(),computePointerDifference(),llvm::ConstantFoldBinaryInstruction(),llvm::ConstantFoldCompareInstOperands(),llvm::ConstantFoldCompareInstruction(),llvm::ConstantFoldInsertElementInstruction(),llvm::ConstantFoldShuffleVectorInstruction(),convertMetadataToAssumes(),llvm::GlobalObject::copyMetadata(),copyMetadataForAtomic(),llvm::copyMetadataForLoad(),llvm::copyNonnullMetadata(),llvm::copyRangeMetadata(),llvm::ARMConstantPoolConstant::Create(),llvm::createCallMatchingInvoke(),llvm::IRBuilderBase::CreateElementUnorderedAtomicMemMove(),llvm::IRBuilderBase::CreateMaskedCompressStore(),llvm::IRBuilderBase::CreateMaskedExpandLoad(),llvm::InstCombinerImpl::CreateNonTerminatorUnreachable(),llvm::createPGONameMetadata(),llvm::IRBuilderBase::CreatePreserveArrayAccessIndex(),llvm::IRBuilderBase::CreatePreserveStructAccessIndex(),CreatePrologue(),llvm::IRBuilderBase::CreateThreadLocalAddress(),despeculateCountZeros(),diagnoseInvalidFormatString(),llvm::Instruction::dropLocation(),emitAtomicRMWLegalRemark(),emitDbgAssign(),emitGlobalConstantVector(),llvm::GVNExpression::CallExpression::equals(),eraseMetadata(),eraseMetadataIf(),llvm::VPWidenLoadEVLRecipe::execute(),llvm::VPWidenStoreEVLRecipe::execute(),expandBounds(),expandToSwitch(),llvm::SCEVExpander::expandUnionPredicate(),llvm::SCEVExpander::expandWrapPredicate(),llvm::VPIRInstruction::extractLastLaneOfOperand(),extractMDNode(),foldInsSequenceIntoSplat(),foldLoadsRecursive(),foldURemOfLoopIncrement(),llvm::hlsl::FrontendResource::FrontendResource(),llvm::SCEVExpander::generateOverflowCheck(),llvm::DSOLocalEquivalent::get(),llvm::NoCFIValue::get(),llvm::ConstantExpr::get(),llvm::Instruction::getAAMetadata(),getAccessType(),llvm::Constant::getAggregateElement(),getAllMetadata(),llvm::GlobalVariable::getAttributesAsList(),llvm::Attributor::getAttrsFromAssumes(),llvm::getDebugValueLoc(),llvm::ConstantDataSequential::getElementAsConstant(),llvm::ScalarEvolution::getElementSize(),llvm::ConstantExpr::getExtractElement(),llvm::ConstantExpr::getInsertElement(),getKnownValueOnEdge(),getMemCmpLoad(),getMetadata(),getMetadataImpl(),llvm::GlobalValue::getPartition(),getPointerOperandAndType(),getPreferredVectorIndex(),llvm::GlobalValue::getSanitizerMetadata(),llvm::Constant::getSplatValue(),llvm::SITargetLowering::getTgtMemIntrinsic(),llvm::ConstantStruct::getTypeForElements(),getVTableAddrForProfData(),handleBrSelExpect(),llvm::ValueAsMetadata::handleRAUW(),llvm::Attributor::hasAttr(),IdentifyValidPoisonGeneratingAttributes(),IdentifyValidUBGeneratingAttributes(),llvm::InlineFunction(),inlineRetainOrClaimRVCalls(),llvm::DIBuilder::insertDbgAssign(),insertNewDbgInst(),insertSpills(),llvm::intersectAccessGroups(),llvm::AAWillReturn::isImpliedByIR(),llvm::AANoUndef::isImpliedByIR(),isLoadCombineCandidateImpl(),isPointerAlwaysReplaceable(),lowerAwaitSuspend(),llvm::AMDGPUAsmPrinter::lowerConstant(),llvm::RISCVTargetLowering::lowerDeinterleaveIntrinsicToLoad(),llvm::RISCVTargetLowering::lowerInterleavedLoad(),llvm::RISCVTargetLowering::lowerInterleavedStore(),llvm::IntrinsicLowering::LowerIntrinsicCall(),lowerSubFn(),llvm::makeGuardControlFlowExplicit(),makeStatepointExplicitImpl(),llvm::Attributor::manifestAttrs(),matchFPExtFromF16(),maySpeculateLanes(),mergeAttributesAndFlags(),llvm::MergeBasicBlockIntoOnlyPred(),mergeCompatibleInvokesImpl(),migrateDebugInfo(),llvm::Negator::Negate(),OptimizeGlobalAddressOfAllocation(),optimizeMemCmpConstantSize(),OptimizeNoopCopyExpression(),llvm::CallBase::populateBundleOperandInfos(),populateOperands(),processCallSite(),processUGT_ADDCST_ADD(),promoteAllocaUserToVector(),llvm::pgo::promoteIndirectCall(),llvm::propagateMetadata(),llvm::ReadByteArrayFromGlobal(),llvm::CallBase::removeAttributeAtIndex(),llvm::CallBase::removeFnAttr(),llvm::CallBase::removeFnAttrs(),llvm::CallBase::removeParamAttr(),llvm::CallBase::removeParamAttrs(),llvm::CallBase::removeRetAttr(),llvm::CallBase::removeRetAttrs(),llvm::GlobalValue::removeSanitizerMetadata(),llvm::coro::replaceCoroFree(),ReplaceFPIntrinsicWithCall(),llvm::DbgVariableIntrinsic::replaceVariableLocationOp(),scalarizeMaskedCompressStore(),scalarizeMaskedExpandLoad(),scalarizeMaskedGather(),scalarizeMaskedLoad(),scalarizeMaskedScatter(),scalarizeMaskedStore(),scalarizeMaskedVectorHistogram(),selectExplicitSectionGlobal(),llvm::DbgAssignIntrinsic::setAddress(),llvm::DbgAssignIntrinsic::setAssignId(),llvm::MemIntrinsicBase< Derived >::setDestAlignment(),llvm::AtomicMemIntrinsic::setElementSizeInBytes(),llvm::InstrProfCntrInstBase::setIndex(),llvm::setInlineRemark(),llvm::DbgLabelInst::setLabel(),llvm::setLoopEstimatedTripCount(),llvm::CallBase::setMemoryEffects(),llvm::Instruction::setMetadata(),setMetadata(),llvm::Instruction::setNoSanitizeMetadata(),llvm::GlobalValue::setPartition(),llvm::DbgVariableIntrinsic::setRawLocation(),llvm::GlobalValue::setSanitizerMetadata(),llvm::NoAliasScopeDeclInst::setScopeList(),llvm::GlobalObject::setSection(),llvm::DbgAssignIntrinsic::setValue(),llvm::GlobalObject::setVCallVisibilityMetadata(),shortenAssignment(),llvm::SITargetLowering::shouldExpandAtomicRMWInIR(),shrinkFPConstant(),simplifyUsingControlFlow(),simplifyX86MaskedStore(),splitGlobal(),llvm::SplitKnownCriticalEdge(),llvm::coro::suppressCoroAllocs(),llvm::CallBase::tryIntersectAttributes(),tryToMoveFreeBeforeNullTest(),TryToShrinkGlobalToBoolean(),turnGuardIntoBranch(),unswitchNontrivialInvariants(),unswitchTrivialBranch(),llvm::UpgradeGlobalVariable(),llvm::UpgradeIntrinsicCall(),verifyTripCount(),llvm::InstCombinerImpl::visitBitCast(),llvm::InstCombinerImpl::visitCallInst(),llvm::InstCombinerImpl::visitExtractElementInst(),llvm::InstCombinerImpl::visitIntToPtr(),llvm::InstCombinerImpl::visitPtrToInt(),llvm::InstCombinerImpl::visitReturnInst(),llvm::dxil::UAVResource::write(), andllvm::dxil::ConstantBuffer::write().
Definition at line1498 of fileMetadata.cpp.
ReferencesgetContext(),llvm::LLVMContext::getMDKindID(),getMetadataImpl(), andhasMetadata().
| protected |
Definition at line1516 of fileMetadata.cpp.
ReferencesgetContext(),getMetadata(), andhasMetadata().
Get the current metadata attachments for the given kind, if any.
These functions require that the value have at most a single attachment of the given kind, and returnnullptr
if such an attachment is missing.
Definition at line565 of fileValue.h.
ReferencesgetMetadataImpl(), andHasMetadata.
Referenced bygetMetadata(), andhasMetadata().
| protected |
Appends all attachments with the given ID toMDs
in insertion order.
If theValue has no attachments with the given ID, or if ID is invalid, leaves MDs unchanged.
Definition at line1511 of fileMetadata.cpp.
ReferencesgetContext(),hasMetadata(),llvm::LLVMContext::pImpl, andllvm::LLVMContextImpl::ValueMetadata.
Get metadata for the given kind, if any.
This is an internal function that must only be called after checking thathasMetadata()
returns true.
Definition at line1505 of fileMetadata.cpp.
ReferencesgetContext(),llvm::MDAttachments::lookup(),llvm::LLVMContext::pImpl, andllvm::LLVMContextImpl::ValueMetadata.
Referenced bygetMetadata().
StringRef Value::getName | ( | ) | const |
Return a constant reference to the value's name.
This guaranteed to return the same reference as long as the value is not modified. If the value has a name, this does a hashtable lookup, so it's not free.
Definition at line309 of fileValue.cpp.
Referenced byAddAliasScopeMetadata(),llvm::SSAUpdaterBulk::AddAvailableValue(),llvm::addDiffRuntimeChecks(),addEmuTlsVar(),addMappingsFromTLI(),addReplicateRegions(),aspaceWrapValue(),llvm::WinException::beginFunction(),buildDebugInfoForNoopResumeDestroyFunc(),llvm::SPIRVGlobalRegistry::buildGlobalVariable(),calcPredicateUsingBooleans(),calcPredicateUsingInteger(),llvm::BranchProbabilityInfo::calculate(),calculateCXXStateNumbers(),calculateSEHStateNumbers(),llvm::InstCombinerImpl::canonicalizeCondSignextOfHighBitExtractToSignextHighBitExtract(),CanPropagatePredecessorsForPHIs(),llvm::LoopVectorizationLegality::canVectorize(),llvm::changeToInvokeAndSplitBasicBlock(),llvm::Attributor::checkForAllCallSites(),llvm::CloneBasicBlock(),llvm::orc::cloneGlobalAliasDecl(),llvm::orc::cloneGlobalVariableDecl(),llvm::JumpThreadingPass::cloneInstructions(),cloneInstructionsIntoPredecessorBlockAndUpdateSSAUses(),CloneLoopBlocks(),llvm::colorEHFunclets(),llvm::InstCombinerImpl::combineLoadToNewType(),llvm::logicalview::compareName(),compareNames(),llvm::VPBasicBlock::connectToPredecessors(),constructEntryMetadata(),llvm::convertToDeclaration(),copyLinkageVisibility(),llvm::CallBrInst::Create(),llvm::CallInst::Create(),createCloneDeclaration(),createInvariantCond(),createMemprofDefaultOptionsVar(),createMergedFunction(),llvm::createPGONameMetadata(),llvm::OpenMPIRBuilder::createReductionsGPU(),llvm::OpenMPIRBuilder::createTargetDeinit(),llvm::OpenMPIRBuilder::createTargetInit(),createUnreachableSwitchDefault(),llvm::SPIRV::ConvergenceRegion::dump(),llvm::dumpBasicBlockLabel(),llvm::CFGMST< Edge, BBInfo >::dumpEdges(),llvm::sandboxir::BasicBlock::dumpOS(),llvm::JumpThreadingPass::duplicateCondBranchOnPHIIntoPred(),llvm::DuplicateInstructionsInSplitBetween(),llvm::OpenMPIRBuilder::emitCancelationCheckImpl(),llvm::SystemZAsmPrinter::emitFunctionEntryLabel(),llvm::ExecutionEngine::emitGlobals(),llvm::AMDGPUAsmPrinter::emitGlobalVariable(),llvm::LoopVectorizationPlanner::emitInvalidCostRemarks(),llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitKernelArg(),llvm::emitLinkerFlagsForGlobalCOFF(),llvm::emitLinkerFlagsForUsedCOFF(),llvm::AsmPrinter::emitSpecialLLVMGlobal(),emitTransformedIndex(),llvm::BranchProbabilityInfo::eraseBlock(),llvm::logicalview::LVCompare::execute(),llvm::VPBasicBlock::executeRecipes(),expandCrossIntrinsic(),expandToSwitch(),llvm::CodeExtractor::extractCodeRegion(),llvm::ExtractTypeInfo(),llvm::MustBeExecutedContextExplorer::findBackwardJoinPoint(),findBasePointer(),llvm::MustBeExecutedContextExplorer::findForwardJoinPoint(),fixIrreducible(),fixupDebugInfoPostExtraction(),foldCondBranchOnValueKnownInPredecessorImpl(),llvm::InstCombinerImpl::foldFreezeIntoRecurrence(),llvm::InstCombinerImpl::foldICmpAndConstConst(),llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(),llvm::InstCombinerImpl::foldICmpShlConstant(),llvm::InstCombinerImpl::foldICmpShrConstant(),llvm::InstCombinerImpl::foldIntegerTypedPHI(),foldMulShl1(),llvm::InstCombinerImpl::foldPHIArgBinOpIntoPHI(),llvm::InstCombinerImpl::foldPHIArgExtractValueInstructionIntoPHI(),llvm::InstCombinerImpl::foldPHIArgGEPIntoPHI(),llvm::InstCombinerImpl::foldPHIArgInsertValueInstructionIntoPHI(),llvm::InstCombinerImpl::foldPHIArgLoadIntoPHI(),llvm::InstCombinerImpl::foldPHIArgOpIntoPHI(),foldReductionIdiom(),foldSelectICmpLshrAshr(),foldSignedTruncationCheck(),foldTwoEntryPHINode(),llvm::InstCombinerImpl::foldVectorBinop(),forceRenaming(),llvm::JITSymbolFlags::fromGlobalValue(),generateUnsignedDivisionCode(),llvm::ReplayInlineAdvisor::getAdviceImpl(),llvm::dxil::ResourceBindingInfo::getAsMetadata(),llvm::bfi_detail::getBlockName(),getBranchHint(),llvm::DeadArgumentEliminationPass::RetOrArg::getDescription(),llvm::TargetLoweringObjectFileMachO::getExplicitSectionGlobal(),llvm::HexagonTargetObjectFile::getExplicitSectionGlobal(),llvm::MachineBasicBlock::getFullName(),getFuncAddrForProfData(),llvm::GlobalValue::getGlobalIdentifier(),llvm::DOTGraphTraits< DOTFuncInfo * >::getGraphName(),llvm::DOTGraphTraits< DOTFuncMSSAInfo * >::getGraphName(),llvm::getIRPGONameForGlobalObject(),llvm::TargetLibraryInfoImpl::getLibFunc(),llvm::ExecutionEngine::getMangledName(),llvm::MachineFunction::getName(),llvm::sandboxir::Value::getName(),llvm::Mangler::getNameWithPrefix(),llvm::DOTGraphTraits< AttributorCallGraph * >::getNodeLabel(),llvm::OpenMPIRBuilder::getOrCreateRuntimeFunction(),llvm::AArch64Subtarget::getPtrAuthBlockAddressDiscriminatorIfEnabled(),llvm::TargetLoweringObjectFileXCOFF::getSectionForExternalReference(),llvm::LazyValueInfoImpl::getValueAt(),llvm::LazyValueInfoImpl::getValueInBlock(),llvm::LazyValueInfoImpl::getValueOnEdge(),getVarName(),HandleByValArgument(),HandleInlinedEHPad(),llvm::SuspendCrossingInfo::hasPathCrossingSuspendPoint(),llvm::SuspendCrossingInfo::hasPathOrLoopCrossingSuspendPoint(),hoistBOAssociation(),hoistMinMax(),llvm::FunctionImporter::importFunctions(),llvm::logicalview::LVBinaryReader::includeInlineeLines(),INITIALIZE_PASS(),llvm::SelectionDAGISel::initializeAnalysisResults(),injectPendingInvariantConditions(),llvm::InlineFunction(),llvm::InsertPreheaderForLoop(),insertSpills(),insertUniqueBackedgeBlock(),llvm::Attributor::internalizeFunctions(),llvm::InternalizePass::internalizeModule(),llvm::InvertBranch(),llvm::invertCondition(),llvm::isControlFlowEquivalent(),llvm::HexagonTargetObjectFile::isGlobalInSmallSection(),isInPartition(),isPotentiallyReachable(),isReportingError(),isSpecialLLVMGlobalArrayForStaticInit(),isSpecialLLVMGlobalArrayToSkip(),llvm::isTLIScalarize(),llvm::AMDGPULegalizerInfo::legalizeGlobalValue(),LLVMGetBasicBlockName(),LLVMGetValueName(),llvm::LoadAndStorePromoter::LoadAndStorePromoter(),llvm::XtensaTargetLowering::LowerCall(),llvm::AMDGPUTargetLowering::LowerGlobalAddress(),llvm::lowerGlobalIFuncUsersAsGlobalCtor(),lowerKernelArguments(),llvm::TargetLoweringObjectFileCOFF::lowerRelativeReference(),llvm::IntrinsicLowering::LowerToByteSwap(),llvm::TargetLowering::LowerToTLSEmulatedModel(),markAliveBlocks(),llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::MarkBlockExecutable(),llvm::SCCPInstVisitor::markBlockExecutable(),maybePrintComdat(),llvm::JumpThreadingPass::maybethreadThroughTwoBasicBlocks(),llvm::GlobalMergeFunc::merge(),llvm::MergeBlockIntoPredecessor(),mergeCompatibleInvokesImpl(),movePHIValuesToInsertedBlock(),nearest_common_dominator(),llvm::operator<<(),optimizeDoubleFP(),OptimizeGlobalAddressOfAllocation(),optimizeLoopExitWithUnknownExitCount(),optimizeSQRT(),llvm::OptLevelChanger::OptLevelChanger(),llvm::peelLoop(),performBlockTailMerging(),llvm::DiagnosticInfoUnsupported::print(),llvm::ARMConstantPoolConstant::print(),llvm::CSKYConstantPoolConstant::print(),llvm::RISCVConstantPoolValue::print(),llvm::XtensaConstantPoolConstant::print(),llvm::VPWidenCallRecipe::print(),llvm::DemandedBits::print(),llvm::CallGraphNode::print(),llvm::MemoryPhi::print(),llvm::BasicAAResult::DecomposedGEP::print(),llvm::UniformityInfoWrapperPass::print(),llvm::SDNode::print_details(),printBBName(),PrintDebugDomInfo(),printIRBlockReference(),PrintLoopInfo(),llvm::JumpThreadingPass::processBlock(),processGlobal(),processInternalGlobal(),processOverflowIntrinsic(),processSDiv(),processSRem(),llvm::JumpThreadingPass::processThreadableEdges(),llvm::promoteLoopAccessesToScalars(),llvm::InstCombinerImpl::pushFreezeToPreventPoisonFromPropagating(),recoverFramePointer(),llvm::Attributor::registerFunctionSignatureRewrite(),llvm::CallGraphUpdater::removeFunction(),llvm::RemoveRedundantDbgInstrs(),removeRedundantDbgLocs(),rename(),replace(),ReplaceCallWith(),replaceWithCallToVeclib(),rewriteMemOpOfSelect(),rewritePHIs(),rewritePHIsForCleanupPad(),RewriteUsesOfClonedInstructions(),llvm::FunctionSpecializer::run(),llvm::InlineCostAnnotationPrinterPass::run(),llvm::ArgumentPromotionPass::run(),runAttributorLightOnFunctions(),runAttributorOnFunctions(),llvm::JumpThreadingPass::runImpl(),runImpl(),runIPSCCP(),llvm::LPPassManager::runOnFunction(),llvm::DetectRoundChange::runOnMachineFunction(),runSanitizeRealtimeBlocking(),salvageDebugInfoImpl(),scalarizeMaskedLoad(),selectExplicitSectionGlobal(),llvm::TargetLoweringObjectFileCOFF::SelectSectionForGlobal(),llvm::HexagonTargetObjectFile::SelectSectionForGlobal(),llvm::RISCVELFTargetObjectFile::SelectSectionForGlobal(),llvm::IRSimilarity::IRInstructionData::setCalleeName(),shouldCheckArgs(),simplifyAllocaArraySize(),SimplifyCondBranchToCondBranch(),llvm::InstCombinerImpl::SimplifyDemandedVectorElts(),llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(),sinkInstruction(),llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(),SortAuthStubPair(),llvm::logicalview::sortByKind(),llvm::logicalview::sortByLine(),llvm::logicalview::sortByName(),SortSymbolPair(),speculatePHINodeLoads(),speculateSelectInstLoads(),llvm::splitBB(),llvm::splitBBWithSuffix(),llvm::splitBlockBefore(),SplitBlockImpl(),SplitBlockPredecessorsImpl(),splitCallSite(),llvm::OutlinableRegion::splitCandidate(),splitGlobal(),llvm::SplitKnownCriticalEdge(),SplitLandingPadPredecessorsImpl(),SRAGlobal(),llvm::stableHashValue(),switchToLookupTable(),llvm::thinLTOFinalizeInModule(),llvm::JumpThreadingPass::threadEdge(),llvm::JumpThreadingPass::threadGuard(),llvm::JumpThreadingPass::threadThroughTwoBasicBlocks(),trackInlinedStores(),translateMetadata(),tryFactorization(),llvm::JumpThreadingPass::tryThreadEdge(),TryToShrinkGlobalToBoolean(),llvm::TryToSimplifyUncondBranchFromEmptyBlock(),unifyLoopExits(),unpackLoadToAggregate(),llvm::UnrollRuntimeLoopRemainder(),llvm::logicalview::LVSymbolTable::update(),UpdatePHINodes(),llvm::CallInst::updateProfWeight(),llvm::InvokeInst::updateProfWeight(),upgradeAArch64IntrinsicCall(),upgradeARMIntrinsicCall(),llvm::UpgradeGlobalVariable(),llvm::UpgradeIntrinsicCall(),llvm::ScalarEvolution::verify(),llvm::LoopVersioning::versionLoop(),llvm::Function::viewCFG(),llvm::InstCombinerImpl::visitAnd(),llvm::InstCombinerImpl::visitAShr(),llvm::InstCombinerImpl::visitCallInst(),DataScalarizerVisitor::visitGetElementPtrInst(),DataScalarizerVisitor::visitLoadInst(),llvm::InstCombinerImpl::visitLoadInst(),llvm::InstCombinerImpl::visitSExt(),llvm::InstCombinerImpl::visitShl(),llvm::InstCombinerImpl::visitShuffleVectorInst(),llvm::InstCombinerImpl::visitURem(),llvm::InstCombinerImpl::visitZExt(),widenGlobalVariable(), andllvm::OptLevelChanger::~OptLevelChanger().
std::string Value::getNameOrAsOperand | ( | ) | const |
Definition at line445 of fileValue.cpp.
Referenced byhoist(),llvm::FunctionSpecializer::run(), andllvm::SCCPInstVisitor::setLatticeValueForSpecializationArguments().
unsigned Value::getNumUses | ( | ) | const |
This method computes the number of uses of thisValue.
This is a linear time operation.Use hasOneUse, hasNUses, or hasNUsesOrMore to check for specific values.
Definition at line255 of fileValue.cpp.
Referenced byllvm::OpenMPIRBuilder::createTeams(),llvm::OpenMPIRBuilder::emitTargetTask(),llvm::OpenMPIRBuilder::finalize(),llvm::slpvectorizer::BoUpSLP::getReorderingData(), andrematerializeLiveValuesAtUses().
Align Value::getPointerAlignment | ( | constDataLayout & | DL | ) | const |
Returns an alignment of the pointer value.
Returns an alignment which is either specified explicitly, e.g. via align attribute of a function argument, or guaranteed byDataLayout.
Definition at line927 of fileValue.cpp.
Referenced byllvm::ConstantFoldBinaryInstruction(),llvm::OpenMPIRBuilder::createTask(),llvm::OpenMPIRBuilder::emitTargetTask(),emitTargetTaskProxyFunction(),llvm::AMDGPU::getAlign(),llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(),instCombineSVELD1(),instCombineSVEST1(), andllvm::SystemZSubtarget::isPC32DBLSymbol().
uint64_t Value::getPointerDereferenceableBytes | ( | constDataLayout & | DL, |
bool & | CanBeNull, | ||
bool & | CanBeFreed | ||
) | const |
Returns the number of bytes known to be dereferenceable for the pointer value.
If CanBeNull is set by this function the pointer can either be null or be dereferenceable up to the returned number of bytes.
IF CanBeFreed is true, the pointer is known to be dereferenceable at point of definition only. Caller must prove that allocation is not deallocated between point of definition and use.
Definition at line852 of fileValue.cpp.
Referenced byllvm::InstCombinerImpl::visitGetElementPtrInst().
std::optional< int64_t > Value::getPointerOffsetFrom | ( | constValue * | Other, |
constDataLayout & | DL | ||
) | const |
If this ptr is provably equal toOther
plus a constant offset, return that offset in bytes.
Essentiallyptr this
subtractptr Other
.
Definition at line1028 of fileValue.cpp.
Referenced byllvm::DIExpression::calculateFragmentIntersect().
| inline |
Return the raw optional flags value contained in this value.
This should only be used when testing two Values for equivalence.
Definition at line539 of fileValue.h.
ReferencesSubclassOptionalData.
Use * Value::getSingleUndroppableUse | ( | ) |
Return true if there is exactly one use of this value that cannot be dropped.
Definition at line167 of fileValue.cpp.
Referenced bygetSingleUndroppableUse().
Definition at line457 of fileValue.h.
ReferencesgetSingleUndroppableUse().
| inlineprotected |
| inline |
All values are typed, get the type of this value.
Definition at line255 of fileValue.h.
Referenced byllvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::add(),llvm::AliasSetTracker::add(),addAssumeNonNull(),addConditions(),llvm::detail::PtrUseVisitorBase::adjustOffsetForGEP(),llvm::AMDGPUAAResult::alias(),llvm::VNCoercion::analyzeLoadFromClobberingLoad(),llvm::VNCoercion::analyzeLoadFromClobberingStore(),annotateDereferenceableBytes(),annotateNonNullNoUndefBasedOnAccess(),appendToGlobalArray(),applyX86MaskOn1BitsVec(),areBothVectorOrScalar(),areExtractShuffleVectors(),llvm::SelectInst::areInvalidOperands(),areInverseVectorBitmasks(),areNonOverlapSameBaseLoadAndStore(),argVectorFlatten(),aspaceWrapOperand(),llvm::CanonicalLoopInfo::assertOK(),llvm::BitcodeReaderValueList::assignValue(),atomicIgnoresDenormalModeOrFPModeIsFTZ(),atomicSupportedIfLegalIntType(),BreakUpSubtract(),llvm::buildAtomicRMWValue(),llvm::buildCmpXchgValue(),BuildConstantFromSCEV(),buildMultiplyTree(),callBufferedPrintfStart(),llvm::VNCoercion::canCoerceMustAliasedValueToLoad(),canContractSqrtToRsq(),canEvaluateShiftedShift(),canonicalizeBitCastExtElt(),canonicalizeForInvariantConditionInjection(),canonicalizeLowbitMask(),canonicalizeSaturatedAdd(),llvm::canReplacePointersIfEqual(),llvm::canReplacePointersInUseIfEqual(),canSafelyConvertTo16Bit(),canTryToConstantAddTwoShiftAmounts(),llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(),llvm::CastInst::castIsValid(),llvm::Attributor::checkForAllCallSites(),checkOffsetSize(),checkOrAndOpImpliedByOther(),CleanupConstantGlobalUsers(),llvm::CloneAndPruneIntoFromInst(),llvm::LoadInst::cloneImpl(),llvm::VAArgInst::cloneImpl(),llvm::TruncInst::cloneImpl(),llvm::ZExtInst::cloneImpl(),llvm::SExtInst::cloneImpl(),llvm::FPTruncInst::cloneImpl(),llvm::FPExtInst::cloneImpl(),llvm::UIToFPInst::cloneImpl(),llvm::SIToFPInst::cloneImpl(),llvm::FPToUIInst::cloneImpl(),llvm::FPToSIInst::cloneImpl(),llvm::IntToPtrInst::cloneImpl(),llvm::PtrToIntInst::cloneImpl(),llvm::BitCastInst::cloneImpl(),llvm::AddrSpaceCastInst::cloneImpl(),llvm::JumpThreadingPass::cloneInstructions(),CloneLoopBlocks(),llvm::FunctionComparator::cmpBasicBlocks(),cmpExcludesZero(),llvm::VNCoercion::coerceAvailableValueToLoadType(),collectMemAccessInfo(),collectShuffleElements(),collectSingleShuffleElements(),collectUnswitchCandidatesWithInjections(),combineConstantPoolLoads(),llvm::InstCombinerImpl::commonCastTransforms(),llvm::InstCombinerImpl::commonShiftTransforms(),compareCmp(),CompareValueComplexity(),llvm::SelectionDAG::computeKnownBits(),computeKnownBitsFromCmp(),computeKnownBitsFromICmpCond(),computeKnownBitsFromOperator(),computeKnownFPClass(),llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(),llvm::computeOverflowForSignedMul(),llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(),computePointerDifference(),computePointerICmp(),concatenateTwoVectors(),llvm::concatenateVectors(),ConnectProlog(),llvm::ConstantAggregate::ConstantAggregate(),llvm::ConstantFoldBinaryInstruction(),llvm::ConstantFoldCastOperand(),llvm::ConstantFoldCompareInstOperands(),llvm::ConstantFoldCompareInstruction(),llvm::ConstantFoldExtractElementInstruction(),llvm::ConstantFoldInsertElementInstruction(),llvm::ConstantFoldInsertValueInstruction(),llvm::ConstantFoldLoadThroughBitcast(),llvm::ConstantFoldSelectInstruction(),llvm::ConstantFoldShuffleVectorInstruction(),llvm::Constant::containsConstantExpression(),llvm::ConvertDebugDeclareToDebugValue(),llvm::InstCombinerImpl::convertOrOfShiftsToFunnelShift(),ConvertShiftToMul(),convertStrToInt(),copyFunctionByValArgs(),llvm::copyMetadataForLoad(),llvm::copyNonnullMetadata(),llvm::copyRangeMetadata(),countToEliminateCompares(),llvm::BinaryOperator::Create(),llvm::UnaryOperator::Create(),llvm::IRBuilderBase::CreateAlignedStore(),llvm::IRBuilderBase::CreateAlignmentAssumption(),createAndInstr(),llvm::OpenMPIRBuilder::createAtomicCapture(),llvm::OpenMPIRBuilder::createAtomicCompare(),llvm::OpenMPIRBuilder::createAtomicRead(),llvm::IRBuilderBase::CreateAtomicRMW(),llvm::IRBuilderBase::CreateBinaryIntrinsic(),llvm::CastInst::CreateBitOrPointerCast(),llvm::OpenMPIRBuilder::createCanonicalLoop(),createCmpXchgInstFun(),llvm::MatrixBuilder::CreateColumnMajorLoad(),llvm::MatrixBuilder::CreateColumnMajorStore(),llvm::AArch64TargetLowering::createComplexDeinterleavingIR(),llvm::ARMTargetLowering::createComplexDeinterleavingIR(),llvm::FixedPointBuilder< IRBuilderTy >::CreateDiv(),createExtractVector(),llvm::IRBuilderBase::CreateExtractVector(),createFFSIntrinsic(),llvm::IRBuilderBase::CreateGCGetPointerBase(),llvm::IRBuilderBase::CreateGCGetPointerOffset(),llvm::IRBuilderBase::CreateGlobalString(),llvm::MatrixBuilder::CreateIndex(),llvm::IRBuilderBase::CreateInsertVector(),llvm::IRBuilderBase::createIsFPClass(),llvm::IRBuilderBase::CreateIsNeg(),llvm::IRBuilderBase::CreateIsNotNeg(),llvm::IRBuilderBase::CreateIsNotNull(),llvm::IRBuilderBase::CreateIsNull(),llvm::IRBuilderBase::CreateLogicalAnd(),llvm::IRBuilderBase::CreateLogicalOr(),createLogicFromTable(),llvm::OpenMPIRBuilder::createLoopSkeleton(),llvm::IRBuilderBase::CreateMalloc(),llvm::IRBuilderBase::CreateMaskedCompressStore(),llvm::IRBuilderBase::CreateMaskedGather(),llvm::IRBuilderBase::CreateMaskedScatter(),llvm::IRBuilderBase::CreateMaskedStore(),llvm::MatrixBuilder::CreateMatrixInsert(),llvm::createMemCpyLoopKnownSize(),createMemMoveLoopKnownSize(),createMemMoveLoopUnknownSize(),createMemprofDefaultOptionsVar(),createMemSetLoop(),createMergedFunction(),llvm::FixedPointBuilder< IRBuilderTy >::CreateMul(),llvm::OpenMPIRBuilder::createOffloadMapnames(),llvm::OpenMPIRBuilder::createOffloadMaptypes(),llvm::SPIRVStructurizer::createOpSelectMerge(),llvm::OpenMPIRBuilder::createOrderedDepend(),llvm::createPGOFuncNameVar(),llvm::CastInst::CreatePointerBitCastOrAddrSpaceCast(),llvm::CastInst::CreatePointerCast(),createPopcntIntrinsic(),createPowWithIntegerExponent(),createPrivateConstGlobalForString(),llvm::createPrivateGlobalForString(),createProfileFileNameVar(),llvm::createProfileFileNameVar(),llvm::IRBuilderBase::CreatePtrDiff(),createRawLoad(),llvm::OpenMPIRBuilder::createReductions(),createRetPHINode(),createReverseEVL(),createScalarIVSteps(),llvm::CastInst::CreateSExtOrBitCast(),llvm::Attributor::createShallowWrapper(),createShiftShuffle(),llvm::AMDGPU::createSlowPathCmp(),llvm::OpenMPIRBuilder::createTargetInit(),createTargetLoopWorkshareCall(),createTblForTrunc(),llvm::OpenMPIRBuilder::createTeams(),createTileStore(),CreateTripRemainder(),llvm::CastInst::CreateTruncOrBitCast(),llvm::IRBuilderBase::CreateVectorSplice(),llvm::IRBuilderBase::CreateVScale(),createWrapper(),llvm::CastInst::CreateZExtOrBitCast(),decompose(),despeculateCountZeros(),detectShiftUntilBitTestIdiom(),detectShiftUntilZeroIdiom(),DoLowering(),dropRedundantMaskingOfLeftShiftInput(),eliminateSwiftErrorArgument(),llvm::embedBitcodeInModule(),llvm::embedBufferInModule(),llvm::emitBinaryFloatFnCall(),emitBinaryFloatFnCallHelper(),llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(),llvm::LoongArchTargetLowering::emitExpandAtomicRMW(),llvm::AsmPrinter::emitGlobalConstant(),emitGlobalConstantArray(),emitGlobalConstantDataSequential(),emitGlobalConstantFP(),emitGlobalConstantImpl(),emitGlobalConstantLargeInt(),emitGlobalConstantVector(),llvm::emitHotColdNew(),llvm::emitHotColdNewAligned(),llvm::emitHotColdNewAlignedNoThrow(),llvm::emitHotColdNewNoThrow(),llvm::emitHotColdSizeReturningNew(),llvm::emitHotColdSizeReturningNewAligned(),emitImplicitCast(),llvm::InnerLoopVectorizer::emitIterationCountCheck(),llvm::EpilogueVectorizerMainLoop::emitIterationCountCheck(),llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitKernelArg(),emitLoadFromConstantPool(),llvm::LoongArchTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(),llvm::PPCTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(),llvm::RISCVTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(),llvm::LoongArchTargetLowering::emitMaskedAtomicRMWIntrinsic(),llvm::PPCTargetLowering::emitMaskedAtomicRMWIntrinsic(),llvm::RISCVTargetLowering::emitMaskedAtomicRMWIntrinsic(),llvm::EpilogueVectorizerEpilogueLoop::emitMinimumVectorEpilogueIterCountCheck(),llvm::OpenMPIRBuilder::emitNonContiguousDescriptor(),llvm::OpenMPIRBuilder::emitOffloadingArrays(),llvm::AArch64TargetLowering::emitStoreConditional(),llvm::ARMTargetLowering::emitStoreConditional(),llvm::HexagonTargetLowering::emitStoreConditional(),llvm::PPCTargetLowering::emitTrailingFence(),emitTransformedIndex(),llvm::OpenMPIRBuilder::emitUserDefinedMapper(),llvm::emitVSNPrintf(),llvm::emitVSPrintf(),emitX86Select(),llvm::ARMAsmPrinter::emitXXStructor(),llvm::Evaluator::EvaluateFunction(),evaluateICmpRelation(),llvm::VPInstruction::execute(),llvm::VPWidenRecipe::execute(),llvm::VPWidenIntrinsicRecipe::execute(),llvm::VPReverseVectorPointerRecipe::execute(),llvm::VPWidenIntOrFpInductionRecipe::execute(),llvm::VPWidenPointerInductionRecipe::execute(),llvm::VPWidenPHIRecipe::execute(),llvm::VPReductionPHIRecipe::execute(),llvm::VPPartialReductionRecipe::execute(),llvm::VPInterleaveRecipe::execute(),llvm::VPReductionRecipe::execute(),llvm::VPReplicateRecipe::execute(),llvm::VPPredInstPHIRecipe::execute(),llvm::VPActiveLaneMaskPHIRecipe::execute(),llvm::VPWidenCanonicalIVRecipe::execute(),llvm::VPScalarIVStepsRecipe::execute(),llvm::expandAtomicRMWToCmpXchg(),expandCrossIntrinsic(),llvm::expandDivision(),llvm::expandDivisionUpTo32Bits(),llvm::expandDivisionUpTo64Bits(),expandFPToI(),llvm::ARMTargetLowering::ExpandInlineAsm(),llvm::X86TargetLowering::ExpandInlineAsm(),expandIToFP(),llvm::expandMemMoveAsLoop(),expandNormalizeIntrinsic(),llvm::expandRemainder(),llvm::expandRemainderUpTo32Bits(),llvm::expandRemainderUpTo64Bits(),expandSignIntrinsic(),expandToSwitch(),llvm::AAMDNodes::extendToTBAA(),extractMaskedValue(),llvm::AArch64TargetLowering::fallBackToDAGISel(),llvm::RISCVTargetLowering::fallBackToDAGISel(),llvm::fcmpImpliesClass(),findBasePointer(),findCommonType(),findDemandedEltsBySingleUser(),findExtractedInputToOverallInputMapping(),findFuncPointers(),FindLoopCounter(),llvm::RandomIRBuilder::findPointer(),llvm::findScalarElement(),fitArgInto64Bits(),fixupFPReturnAndCall(),flushDenormalConstantFP(),llvm::FlushFPConstant(),llvm::AMDGPULibCalls::fold(),llvm::BinOpInit::Fold(),llvm::InstCombinerImpl::foldAddLikeCommutative(),llvm::InstCombinerImpl::foldAddWithConstant(),llvm::InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse(),foldAndOrOfICmpEqConstantAndICmp(),llvm::InstCombinerImpl::foldBinopWithPhiOperands(),foldBitCastBitwiseLogic(),foldBitCastSelect(),llvm::foldBranchToCommonDest(),foldCastShuffle(),llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(),foldConsecutiveLoads(),foldCopySignIdioms(),foldCttzCtlz(),foldDependentIVs(),foldFCmpFNegCommonOp(),foldFCmpFSubIntoFCmp(),llvm::InstCombinerImpl::foldFCmpIntToFPConst(),foldFCmpWithFloorAndCeil(),foldFPtoI(),llvm::InstCombinerImpl::foldGEPICmp(),llvm::InstCombinerImpl::foldICmpAddConstant(),llvm::InstCombinerImpl::foldICmpAndConstant(),llvm::InstCombinerImpl::foldICmpBinOp(),llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(),llvm::InstCombinerImpl::foldICmpCommutative(),llvm::InstCombinerImpl::foldICmpDivConstant(),llvm::InstCombinerImpl::foldICmpEquality(),llvm::InstCombinerImpl::foldICmpInstWithConstantNotInt(),foldICmpIntrinsicWithIntrinsic(),llvm::InstCombinerImpl::foldICmpOrConstant(),llvm::InstCombinerImpl::foldICmpShlConstant(),foldICmpShlLHSC(),llvm::InstCombinerImpl::foldICmpShrConstant(),llvm::InstCombinerImpl::foldICmpSRemConstant(),llvm::InstCombinerImpl::foldICmpSubConstant(),llvm::InstCombinerImpl::foldICmpTruncConstant(),llvm::InstCombinerImpl::foldICmpUDivConstant(),llvm::InstCombinerImpl::foldICmpUsingKnownBits(),foldICmpUSubSatOrUAddSatWithConstant(),llvm::InstCombinerImpl::foldICmpWithCastOp(),foldICmpWithHighBitMask(),llvm::InstCombinerImpl::foldICmpWithTrunc(),foldIdentityShuffles(),llvm::InstCombinerImpl::foldIntegerTypedPHI(),llvm::InstCombinerImpl::foldItoFPtoI(),foldLoadsRecursive(),foldLogicCastConstant(),foldLogOpOfMaskedICmps(),foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed(),foldMinimumOverTrailingOrLeadingZeroCount(),llvm::InstCombinerImpl::foldPHIArgBinOpIntoPHI(),llvm::InstCombinerImpl::foldPHIArgGEPIntoPHI(),llvm::InstCombinerImpl::foldPHIArgLoadIntoPHI(),llvm::InstCombinerImpl::foldPHIArgOpIntoPHI(),llvm::InstCombinerImpl::foldPowiReassoc(),foldReductionIdiom(),foldSelectBinOpIdentity(),foldSelectICmpAnd(),foldSelectICmpAndBinOp(),foldSelectICmpLshrAshr(),llvm::InstCombinerImpl::foldSelectOpOp(),foldSetClearBits(),foldShiftedShift(),foldShiftIntoShiftInAnotherHandOfAndInICmp(),llvm::InstSimplifyFolder::FoldShuffleVector(),foldShuffleWithInsert(),foldSignedTruncationCheck(),foldTwoEntryPHINode(),foldURemOfLoopIncrement(),llvm::InstCombinerImpl::foldVariableSignZeroExtensionOfVariableHighBitExtract(),foldVecExtTruncToExtElt(),llvm::InstCombinerImpl::foldVectorBinop(),foldVectorCmp(),foldVecTruncToExtElt(),forwardStoredOnceStore(),llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::gather(),gatherPossiblyVectorizableLoads(),generateAssignInstrs(),generateSignedDivisionCode(),generateSignedRemainderCode(),generateUnsignedDivisionCode(),genLoopLimit(),llvm::MemoryLocation::get(),llvm::ConstantExpr::get(),getAccessType(),getAddressForMemoryInput(),llvm::IntToPtrInst::getAddressSpace(),llvm::Constant::getAggregateElement(),getAISize(),llvm::getAllocSize(),getAlternateBinop(),getAnyNonZeroConstInt(),getArgSPIRVType(),getArgumentTypeAlign(),llvm::ConstantExpr::getAsInstruction(),getAssignmentInfoImpl(),llvm::IRPosition::getAssociatedType(),llvm::AAValueConstantRange::getAssumedConstant(),llvm::AAPotentialConstantValues::getAssumedConstant(),getAtomicOpSize(),getAvailableLoadStore(),getBoolVecFromMask(),getBoundsCheckCond(),getBranchCondString(),llvm::ScalarEvolution::getComparePredicate(),llvm::SelectionDAG::getConstant(),llvm::SelectionDAG::getConstantFP(),getConstantInt(),llvm::ExecutionEngine::getConstantValue(),llvm::VNCoercion::getConstantValueForLoad(),llvm::PredicateBase::getConstraint(),llvm::AddrSpaceCastInst::getDestAddressSpace(),llvm::MemIntrinsicBase< Derived >::getDestAddressSpace(),llvm::CastInst::getDestTy(),llvm::ConstantAggregateZero::getElementCount(),llvm::ConstantDataSequential::getElementType(),llvm::ConstantAggregateZero::getElementValue(),llvm::UndefValue::getElementValue(),llvm::PoisonValue::getElementValue(),getExactSDiv(),llvm::ConstantExpr::getExtractElement(),getFCmpValue(),llvm::MemoryLocation::getForDest(),getFromRangeMetadata(),getFunctionPointerElemType(),llvm::GVNExpression::VariableExpression::getHashValue(),llvm::GVNExpression::ConstantExpression::getHashValue(),llvm::CanonicalLoopInfo::getIndVarType(),llvm::ConstantExpr::getInsertElement(),llvm::TargetTransformInfoImplCRTPBase< T >::getInstructionCost(),llvm::LoopVectorizationCostModel::getInstructionCost(),llvm::ConstantInt::getIntegerType(),getInvertibleOperands(),llvm::BinOpInit::getListConcat(),llvm::TargetLoweringBase::getLoadMemOperandFlags(),getMaskedTypeForICmpPair(),getMatchingValue(),llvm::VNCoercion::getMemInstValueForLoad(),llvm::ScalarEvolution::getMinusSCEV(),llvm::AAResults::getModRefInfo(),llvm::AMDGPUAAResult::getModRefInfoMask(),getNewICmpValue(),llvm::MemoryDependenceResults::getNonLocalPointerDependency(),getNoopInput(),llvm::ConstantDataSequential::getNumElements(),llvm::UndefValue::getNumElements(),llvm::offloading::getOffloadingEntryInitializer(),llvm::AArch64TTIImpl::getOrCreateResultFromMemIntrinsic(),llvm::InnerLoopVectorizer::getOrCreateVectorTripCount(),llvm::VPIntrinsic::getOrInsertDeclarationForParams(),llvm::AtomicCmpXchgInst::getPointerAddressSpace(),llvm::AtomicRMWInst::getPointerAddressSpace(),llvm::PtrToIntInst::getPointerAddressSpace(),llvm::ConstantExpr::getPointerBitCastOrAddrSpaceCast(),llvm::ConstantExpr::getPointerCast(),llvm::LoadInst::getPointerOperandType(),llvm::StoreInst::getPointerOperandType(),llvm::GetElementPtrInst::getPointerOperandType(),llvm::GEPOperator::getPointerOperandType(),llvm::PtrToIntOperator::getPointerOperandType(),llvm::getPointersDiff(),llvm::LazyValueInfo::getPredicateAt(),llvm::LoopVectorizationCostModel::getReductionPatternCost(),getSameOpcode(),llvm::VPWidenIntOrFpInductionRecipe::getScalarType(),llvm::VPCanonicalIVPHIRecipe::getScalarType(),llvm::VPDerivedIVRecipe::getScalarType(),llvm::RecurrenceDescriptor::getSentinelValue(),llvm::ConstantAggregateZero::getSequentialElement(),llvm::UndefValue::getSequentialElement(),llvm::PoisonValue::getSequentialElement(),llvm::slpvectorizer::BoUpSLP::LookAheadHeuristics::getShallowScore(),getShuffleDemandedElts(),llvm::ConstantExpr::getShuffleVector(),llvm::TargetLowering::getSingleConstraintMatchWeight(),llvm::ARMTargetLowering::getSingleConstraintMatchWeight(),llvm::PPCTargetLowering::getSingleConstraintMatchWeight(),llvm::SystemZTargetLowering::getSingleConstraintMatchWeight(),llvm::X86TargetLowering::getSingleConstraintMatchWeight(),llvm::XtensaTargetLowering::getSingleConstraintMatchWeight(),llvm::Constant::getSplatValue(),llvm::AddrSpaceCastInst::getSrcAddressSpace(),llvm::AddrSpaceCastOperator::getSrcAddressSpace(),llvm::CastInst::getSrcTy(),llvm::GCProjectionInst::getStatepoint(),llvm::VPIntrinsic::getStaticVectorLength(),getStepVector(),llvm::VNCoercion::getStoreValueForLoadHelper(),getStrideAndModOffsetOfGEP(),llvm::ConstantAggregateZero::getStructElement(),llvm::UndefValue::getStructElement(),llvm::PoisonValue::getStructElement(),getTargetConstantBitsFromNode(),llvm::SITargetLowering::getTgtMemIntrinsic(),llvm::AArch64TargetLowering::getTgtMemIntrinsic(),llvm::SCEVUnknown::getType(),llvm::ConstantArray::getType(),llvm::ConstantStruct::getType(),llvm::ConstantVector::getType(),llvm::ConstantPointerNull::getType(),llvm::ConstantDataArray::getType(),llvm::ConstantDataVector::getType(),llvm::ConstantTargetNone::getType(),llvm::NoCFIValue::getType(),llvm::GlobalValue::getType(),llvm::InlineAsm::getType(),llvm::AllocaInst::getType(),llvm::InsertElementInst::getType(),llvm::ShuffleVectorInst::getType(),llvm::sandboxir::Value::getType(),llvm::ScalarEvolution::getUDivExpr(),llvm::ScalarEvolution::getUMaxFromMismatchedTypes(),llvm::getUnderlyingObject(),getUniformBase(),llvm::ScalarEvolution::getURemExpr(),llvm::VNCoercion::getValueForLoad(),getValueFromICmpCtpop(),getValueOnEdge(),llvm::LoopVectorizationCostModel::getVectorCallCost(),getVectorDeinterleaveFactor(),llvm::X86TTIImpl::getVectorInstrCost(),llvm::LoopVectorizationCostModel::getVectorIntrinsicCost(),llvm::ExtractElementInst::getVectorOperandType(),llvm::RISCVTTIImpl::getVPLegalizationStrategy(),llvm::ConstantExpr::getWithOperands(),llvm::GlobalVariable::GlobalVariable(),HandleByValArgument(),handleSpaceCheckIntrinsics(),llvm::PHINode::hasConstantValue(),llvm::Constant::hasExactInverseFP(),hasSameArgumentList(),hasSameExtUse(),llvm::haveNoCommonBitsSet(),haveNoCommonBitsSetSpecialCases(),hoistConditionalLoadsStores(),hoistMinMax(),llvm::memtag::incrementThreadLong(),llvm::inferAttribute(),llvm::MIRParserImpl::initializeConstantPool(),injectPendingInvariantConditions(),llvm::InlineFunction(),inlineGetBaseAndOffset(),insertInteger(),insertMaskedValue(),llvm::BPFCoreSharedInfo::insertPassThrough(),insertSinCosCall(),llvm::CallLowering::insertSRetOutgoingArgument(),insertUniqueBackedgeBlock(),insertVector(),instCombineConvertFromSVBool(),llvm::GCNTTIImpl::instCombineIntrinsic(),llvm::ARMTTIImpl::instCombineIntrinsic(),llvm::PPCTTIImpl::instCombineIntrinsic(),llvm::X86TTIImpl::instCombineIntrinsic(),instCombineST1ScatterIndex(),instCombineSVECondLast(),instCombineSVEDupqLane(),instCombineSVELast(),instCombineSVEPTest(),llvm::IntrinsicCostAttributes::IntrinsicCostAttributes(),isAllActivePredicate(),llvm::Constant::isAllOnesValue(),llvm::AA::isAssumedThreadLocalObject(),isAtomicRMWLegalXChgTy(),isCmpSameOrSwapped(),isCompatibleReplacement(),llvm::LanaiTargetObjectFile::isConstantInSmallSection(),llvm::RISCVELFTargetObjectFile::isConstantInSmallSection(),llvm::MipsTargetObjectFile::IsConstantInSmallSection(),llvm::isDereferenceableAndAlignedInLoop(),llvm::Constant::isElementWiseEqual(),llvm::Constant::isFiniteNonZeroFP(),llvm::SystemZTTIImpl::isFoldableLoad(),isFreeConcat(),isHighCostExpansion(),llvm::AANoAlias::isImpliedByIR(),llvm::isImpliedCondition(),llvm::CastInst::isIntegerCast(),isIntegerLoopHeaderPHI(),isIntegerWideningViableForSlice(),llvm::ConstantPtrAuth::isKnownCompatibleWith(),isKnownNonEqual(),llvm::isKnownNonEqual(),isKnownNonZeroFromOperator(),llvm::isLegalToPromote(),isLoadInvariantInLoop(),llvm::isMathLibCallNoop(),llvm::Constant::isMinSignedValue(),llvm::Constant::isNaN(),llvm::Constant::isNegativeZeroValue(),isNeutralValue(),llvm::CastInst::isNoopCast(),isNoopPtrIntCastPair(),llvm::Constant::isNormalFP(),llvm::Constant::isNotMinSignedValue(),llvm::Constant::isNotOneValue(),llvm::Constant::isOneValue(),isOperandOfVmullHighP64(),llvm::isProcessableCondBI(),llvm::AArch64TargetLowering::isProfitableToHoist(),llvm::SITargetLowering::isProfitableToHoist(),llvm::PPCTargetLowering::isProfitableToHoist(),isPromotedInstructionLegal(),isPTruePromoted(),llvm::GCNTTIImpl::isReadRegisterSourceOfDivergence(),llvm::CallBase::isReturnNonNull(),isSafeLoadOfSelectToSpeculate(),isSafePHIToSpeculate(),isSafeToSpeculateStore(),llvm::isSafeToSpeculativelyExecuteWithOpcode(),isShuffleEquivalentToSelect(),isShuffleExtractingFromLHS(),llvm::ConstantDataSequential::isString(),llvm::DemandedBits::isUseDead(),llvm::Attributor::isValidFunctionSignatureRewrite(),llvm::ShuffleVectorInst::isValidOperands(),llvm::ExtractElementInst::isValidOperands(),llvm::InsertElementInst::isValidOperands(),isVectorPromotionViable(),isVectorPromotionViableForSlice(),llvm::Constant::isZeroValue(),LLVMConstRealGetDouble(),llvm::LoadAndStorePromoter::LoadAndStorePromoter(),lookThroughCastConst(),llvm::lowerAtomicCmpXchgInst(),llvm::lowerAtomicRMWInst(),llvm::FastISel::lowerCall(),llvm::CallLowering::lowerCall(),llvm::SelectionDAGBuilder::LowerCallTo(),llvm::FastISel::lowerCallTo(),llvm::AsmPrinter::lowerConstant(),llvm::lowerGlobalIFuncUsersAsGlobalCtor(),llvm::SITargetLowering::lowerIdempotentRMWIntoFencedLoad(),llvm::RISCVTargetLowering::lowerInterleavedLoad(),llvm::AArch64TargetLowering::lowerInterleavedStore(),llvm::ARMTargetLowering::lowerInterleavedStore(),llvm::RISCVTargetLowering::lowerInterleavedStore(),llvm::IntrinsicLowering::LowerIntrinsicCall(),lowerKernelArguments(),LowerNegateToMultiply(),llvm::lowerObjectSizeCall(),lowerPtrAnnotation(),llvm::TargetLoweringObjectFileELF::lowerRelativeReference(),llvm::TargetLoweringObjectFileCOFF::lowerRelativeReference(),llvm::TargetLoweringObjectFileWasm::lowerRelativeReference(),llvm::AMDGPUCallLowering::lowerReturn(),llvm::MipsCallLowering::lowerReturn(),llvm::X86CallLowering::lowerReturn(),llvm::AArch64CallLowering::lowerReturn(),llvm::M68kCallLowering::lowerReturn(),llvm::PPCCallLowering::lowerReturn(),llvm::RISCVCallLowering::lowerReturn(),llvm::IntrinsicLowering::LowerToByteSwap(),llvm::lowerUnaryVectorIntrinsicAsLoop(),llvm::matchDecomposedSelectPattern(),matchOrConcat(),matchStridedConstant(),llvm::gvn::AvailableValue::MaterializeAdjustedValue(),maybePrintCallAddrSpace(),memChrToCharCompare(),mergeAttributesAndFlags(),llvm::MergeBasicBlockIntoOnlyPred(),mergeConditionalStoreToAddress(),llvm::InstCombinerImpl::mergeStoreIntoSuccessor(),llvm::TargetTransformInfoImplBase::minRequiredElementSize(),modifyIntrinsicCall(),llvm::SinkInstructionStrategy::mutate(),llvm::InstDeleterIRStrategy::mutate(),narrowVectorSelect(),needsFPFromSig(),llvm::RandomIRBuilder::newSource(),operandWithNewAddressSpaceOrCreatePoison(),OptimizeAwayTrappingUsesOfValue(),optimizeBranch(),optimizeCallInst(),optimizeDoubleFP(),OptimizeEmptyGlobalAtExitDtors(),OptimizeExtractBits(),llvm::VPlanTransforms::optimizeInductionExitUsers(),optimizeIntegerToVectorInsertions(),optimizeMemCmpConstantSize(),optimizeMemCmpVarSize(),optimizeNaN(),OptimizeNoopCopyExpression(),optimizeOnceStoredGlobal(),optimizeSection(),optimizeVectorResizeWithIntegerBitCasts(),llvm::TargetLowering::ParseConstraints(),llvm::LoopStructure::parseLoopStructure(),populateOperands(),llvm::BasicTTIImplBase< T >::preferToKeepConstantsAttached(),llvm::VPlan::prepareToExecute(),llvm::VPReplicateRecipe::print(),processArg(),processAShr(),processBlockAddr(),llvm::JumpThreadingPass::processBranchOnXOR(),processCmpIntrinsic(),processInternalGlobal(),processNonStringArg(),processOverflowIntrinsic(),processSDiv(),processSelect(),processSExt(),processSIToFP(),processUGT_ADDCST_ADD(),processUMulZExtIdiom(),processUse(),promoteAllocaUserToVector(),llvm::promoteCall(),promoteSingleBlockAlloca(),propagateNaN(),llvm::InstCombinerImpl::reassociateShiftAmtsOfTwoSameDirectionShifts(),llvm::recognizeBSwapOrBitReverseIdiom(),llvm::removeAllNonTerminatorAndEHPadInstructions(),removeEmptyCleanup(),removeGlobalCtors(),llvm::PHINode::removeIncomingValue(),llvm::PHINode::removeIncomingValueIf(),llvm::MemoryDependenceResults::removeInstruction(),llvm::replaceAllDbgUsesWith(),replaceCalledFunction(),llvm::SCEVExpander::replaceCongruentIVs(),replaceDominatedUsesWith(),replaceFoldableUses(),ReplaceFPIntrinsicWithCall(),replaceFrameSizeAndAlignment(),llvm::GlobalVariable::replaceInitializer(),llvm::replaceNonLocalUsesWith(),llvm::replaceSignedInst(),replaceSwiftErrorOps(),llvm::Constant::replaceUndefsWith(),replaceUndefValuesInPhi(),replaceWithConstant(),llvm::Record::resolveReferences(),llvm::returnTypeIsEligibleForTailCall(),reuseTableCompare(),llvm::GCNTTIImpl::rewriteIntrinsicWithAddressSpace(),llvm::NVPTXTTIImpl::rewriteIntrinsicWithAddressSpace(),llvm::rewriteLoopExitValues(),rewritePHIs(),rewriteSingleStoreAlloca(),RewriteUsesOfClonedInstructions(),rmwOpMayLowerToLibcall(),llvm::LoadAndStorePromoter::run(),llvm::MemDerefPrinterPass::run(),llvm::KCFIPass::run(),runImpl(),llvm::IRTranslator::runOnMachineFunction(),llvm::salvageDebugInfoImpl(),salvageDebugInfoImpl(),llvm::SelectionDAGBuilder::salvageUnresolvedDbgValue(),scalarize(),llvm::InnerLoopVectorizer::scalarizeInstruction(),scalarizeMaskedExpandLoad(),scalarizeMaskedGather(),scalarizeMaskedLoad(),scalarizeMaskedScatter(),scalarizeMaskedVectorHistogram(),llvm::SCEVComparePredicate::SCEVComparePredicate(),llvm::FastISel::selectExtractValue(),llvm::GlobalAlias::setAliasee(),llvm::CallBase::setCalledFunction(),llvm::MemIntrinsicBase< Derived >::setDest(),setInfoSVEStN(),llvm::GlobalVariable::setInitializer(),llvm::DbgAssignIntrinsic::setKillAddress(),llvm::DbgVariableIntrinsic::setKillLocation(),llvm::SCCPInstVisitor::setLatticeValueForSpecializationArguments(),llvm::MemIntrinsicBase< Derived >::setLength(),llvm::MemSetBase< BaseCL >::setValue(),llvm::LoopVectorizationCostModel::setVectorizedCallDecision(),llvm::AAMDNodes::shiftTBAAStruct(),shorter_filter(),llvm::TargetLoweringBase::shouldCastAtomicLoadInIR(),llvm::TargetLoweringBase::shouldCastAtomicRMWIInIR(),shouldConvertImpl(),llvm::AArch64TargetLowering::shouldExpandAtomicCmpXchgInIR(),llvm::SITargetLowering::shouldExpandAtomicCmpXchgInIR(),llvm::ARMTargetLowering::shouldExpandAtomicCmpXchgInIR(),llvm::PPCTargetLowering::shouldExpandAtomicCmpXchgInIR(),llvm::LoongArchTargetLowering::shouldExpandAtomicCmpXchgInIR(),llvm::RISCVTargetLowering::shouldExpandAtomicCmpXchgInIR(),llvm::AArch64TargetLowering::shouldExpandAtomicLoadInIR(),llvm::ARMTargetLowering::shouldExpandAtomicLoadInIR(),llvm::HexagonTargetLowering::shouldExpandAtomicLoadInIR(),llvm::SITargetLowering::shouldExpandAtomicRMWInIR(),llvm::AArch64TargetLowering::shouldExpandAtomicRMWInIR(),llvm::ARMTargetLowering::shouldExpandAtomicRMWInIR(),llvm::LoongArchTargetLowering::shouldExpandAtomicRMWInIR(),llvm::NVPTXTargetLowering::shouldExpandAtomicRMWInIR(),llvm::PPCTargetLowering::shouldExpandAtomicRMWInIR(),llvm::RISCVTargetLowering::shouldExpandAtomicRMWInIR(),llvm::SparcTargetLowering::shouldExpandAtomicRMWInIR(),llvm::SystemZTargetLowering::shouldExpandAtomicRMWInIR(),shrinkFPConstant(),shrinkInsertElt(),shrinkSplatShuffle(),llvm::ShuffleVectorConstantExpr::ShuffleVectorConstantExpr(),llvm::LoongArchTargetLowering::signExtendConstant(),llvm::RISCVTargetLowering::signExtendConstant(),simplifyAddInst(),simplifyAllocaArraySize(),simplifyAMDGCNImageIntrinsic(),simplifyAMDGCNMemoryIntrinsicDemanded(),simplifyAndCommutative(),simplifyAndInst(),simplifyAndOfICmpsWithAdd(),simplifyAndOrOfFCmps(),simplifyAndOrOfICmpsWithConstants(),llvm::InstCombinerImpl::SimplifyAnyMemSet(),llvm::InstCombinerImpl::SimplifyAnyMemTransfer(),simplifyAShrInst(),simplifyAssocCastAssoc(),llvm::simplifyBinaryIntrinsic(),simplifyByDomEq(),llvm::InstCombinerImpl::SimplifyDemandedInstructionBits(),llvm::GCNTTIImpl::simplifyDemandedLaneMaskArg(),llvm::InstCombinerImpl::SimplifyDemandedVectorElts(),llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetShuffle(),simplifyDiv(),simplifyDivRem(),llvm::InstCombinerImpl::simplifyDivRemOfSelectWithZeroOp(),simplifyExtractElementInst(),simplifyFAddInst(),simplifyFDivInst(),simplifyFMAFMul(),simplifyFRemInst(),simplifyFSubInst(),simplifyICmpInst(),simplifyICmpOfBools(),llvm::ScalarEvolution::SimplifyICmpOperands(),simplifyICmpWithBinOp(),llvm::simplifyInsertElementInst(),simplifyInsertValueInst(),simplifyIntrinsic(),simplifyLdexp(),llvm::simplifyLoadInst(),simplifyLogicOfAddSub(),simplifyMulInst(),simplifyOrInst(),simplifyOrOfICmpsWithAdd(),llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(),simplifyPHINode(),simplifyReductionOperand(),simplifyRelocatesOffABase(),simplifyRem(),simplifyRightShift(),simplifySDivInst(),simplifySelectInst(),simplifyShift(),simplifyShlInst(),llvm::InstCombinerImpl::simplifyShrShlDemandedBits(),simplifyShuffleVectorInst(),simplifySRemInst(),simplifySubInst(),simplifySwitchOfPowersOfTwo(),simplifyUnaryIntrinsic(),simplifyUnsignedRangeCheck(),simplifyUsingControlFlow(),simplifyX86addcarry(),simplifyX86immShift(),simplifyX86movmsk(),simplifyX86pack(),simplifyX86pmadd(),simplifyX86pmulh(),simplifyXorInst(),SinkShiftAndTruncate(),llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(),speculatePHINodeLoads(),speculateSelectInstLoads(),llvm::SplitBlockAndInsertForEachLane(),splitCallSite(),llvm::coro::AnyRetconABI::splitCoroutine(),llvm::SplitIndirectBrCriticalEdges(),SplitLandingPadPredecessorsImpl(),splitMergedValStore(),stripGCRelocates(),swapICmpOperandsToExposeCSEOpportunities(),switchToLookupTable(),tagGlobalDefinition(),threadCmpOverSelect(),llvm::OpenMPIRBuilder::tileLoops(),llvm::Constant::toConstantRange(),transformGlobalArray(),llvm::slpvectorizer::BoUpSLP::transformNodes(),transformToIndexedCompare(),trimTrailingZerosInVector(),tryInsertCastToCommonAddrSpace(),llvm::tryPromoteCall(),llvm::VPRecipeBuilder::tryToCreateWidenRecipe(),tryToMergePartialOverlappingStores(),tryToRecognizeTableBasedCttz(),tryToShorten(),TryToShrinkGlobalToBoolean(),tryUnmergingGEPsAcrossIndirectBr(),tryWidenGlobalArrayAndDests(),unpackFromRegLoc(),unpackLoadToAggregate(),llvm::UnrollRuntimeLoopRemainder(),UpdatePHINodes(),updatePredecessorProfileMetadata(),upgradeAArch64IntrinsicCall(),upgradeAbs(),upgradeAMDGCNIntrinsicCall(),llvm::UpgradeARCRuntime(),upgradeARMIntrinsicCall(),upgradeAVX512MaskToSelect(),llvm::UpgradeGlobalVariable(),llvm::UpgradeIntrinsicCall(),upgradeMaskedCompare(),upgradeMaskedLoad(),upgradeMaskToInt(),upgradeNVVMIntrinsicCall(),upgradePMULDQ(),upgradeX86ALIGNIntrinsics(),upgradeX86BinaryIntrinsics(),upgradeX86ConcatShift(),upgradeX86IntrinsicCall(),upgradeX86Rotate(),upgradeX86vpcom(),upgradeX86VPERMT2Intrinsics(),validateAndCostRequiredSelects(),valueEscapes(),llvm::slpvectorizer::BoUpSLP::vectorizeTree(),verifyTripCount(),llvm::versionCallSite(),llvm::InstCombinerImpl::visitAdd(),llvm::InstCombinerImpl::visitAllocaInst(),llvm::ObjectSizeOffsetEvaluator::visitAllocaInst(),llvm::InstCombinerImpl::visitAnd(),llvm::InstCombinerImpl::visitAtomicRMWInst(),llvm::InstCombinerImpl::visitBitCast(),llvm::InstCombinerImpl::visitCallInst(),llvm::InstCombinerImpl::visitExtractElementInst(),llvm::InstCombinerImpl::visitExtractValueInst(),llvm::Interpreter::visitExtractValueInst(),llvm::InstCombinerImpl::visitFCmpInst(),llvm::InstCombinerImpl::visitFPExt(),llvm::InstCombinerImpl::visitFPTrunc(),llvm::InstCombinerImpl::visitFSub(),llvm::InstCombinerImpl::visitGEPOfGEP(),llvm::InstCombinerImpl::visitGetElementPtrInst(),llvm::InstCombinerImpl::visitICmpInst(),llvm::InstCombinerImpl::visitInsertElementInst(),llvm::Interpreter::visitInsertValueInst(),llvm::InstCombinerImpl::visitIntToPtr(),visitIVCast(),llvm::InstCombinerImpl::visitLandingPadInst(),DataScalarizerVisitor::visitLoadInst(),llvm::InstCombinerImpl::visitLoadInst(),llvm::InstCombinerImpl::visitLShr(),llvm::InstCombinerImpl::visitMul(),llvm::InstCombinerImpl::visitOr(),llvm::InstCombinerImpl::visitPHINode(),llvm::InstCombinerImpl::visitPtrToInt(),llvm::InstCombinerImpl::visitReturnInst(),llvm::InstCombinerImpl::visitSDiv(),llvm::InstCombinerImpl::visitSExt(),llvm::InstCombinerImpl::visitShuffleVectorInst(),llvm::InstCombinerImpl::visitSIToFP(),llvm::InstCombinerImpl::visitStoreInst(),llvm::InstCombinerImpl::visitSub(),llvm::SelectionDAGBuilder::visitSwitchCase(),llvm::InstCombinerImpl::visitSwitchInst(),llvm::InstCombinerImpl::visitTrunc(),llvm::InstCombinerImpl::visitXor(),llvm::InstCombinerImpl::visitZExt(),widenGlobalVariable(),llvm::ScalarEvolution::willNotOverflow(),WriteConstantInternal(), andllvm::MetadataAsValue::~MetadataAsValue().
User * Value::getUniqueUndroppableUser | ( | ) |
Return true if there is exactly one unique user of this value that cannot be dropped (that user can have multiple uses of this value).
Definition at line179 of fileValue.cpp.
Referenced bygetUniqueUndroppableUser(),rematerializeLiveValuesAtUses(), andworkshareLoopTargetCallback().
Definition at line464 of fileValue.h.
ReferencesgetUniqueUndroppableUser().
| inline |
Return an ID for the concrete type of this object.
This is used to implement the classof checks. This should not be used for any other purpose, as the values may change as LLVM evolves. Also, note that for instructions, theInstruction's opcode is added to InstructionVal. So this means three things:
the ValueTy enum.
Definition at line532 of fileValue.h.
Referenced byllvm::MemoryUseOrDef::classof(),llvm::MemoryUse::classof(),llvm::MemoryDef::classof(),compareCmp(),CompareValueComplexity(),llvm::Constant::destroyConstant(),llvm::isa_impl< Constant, Value >::doit(),llvm::isa_impl< ConstantData, Value >::doit(),llvm::isa_impl< ConstantAggregate, Value >::doit(),llvm::isa_impl< Argument, Value >::doit(),llvm::isa_impl< InlineAsm, Value >::doit(),llvm::isa_impl< Instruction, Value >::doit(),llvm::isa_impl< BasicBlock, Value >::doit(),llvm::isa_impl< Function, Value >::doit(),llvm::isa_impl< GlobalVariable, Value >::doit(),llvm::isa_impl< GlobalAlias, Value >::doit(),llvm::isa_impl< GlobalIFunc, Value >::doit(),llvm::GlobalValue::eraseFromParent(),llvm::Constant::handleOperandChange(),llvm::GlobalValue::removeFromParent(), andllvm::GlobalValue::setThreadLocalMode().
| inlineprotected |
Return true if this value has any metadata attached to it.
Definition at line589 of fileValue.h.
ReferencesHasMetadata.
Referenced byllvm::Instruction::dropUnknownNonDebugMetadata(),llvm::Instruction::getAAMetadata(),getAllMetadata(), andgetMetadata().
Definition at line596 of fileValue.h.
ReferencesgetMetadata().
Return true if this value has the given type of metadata attached.
Definition at line593 of fileValue.h.
ReferencesgetMetadata().
| inline |
Definition at line261 of fileValue.h.
ReferencesHasName.
Referenced byaddReplicateRegions(),llvm::SPIRVGlobalRegistry::buildGlobalVariable(),llvm::CloneBasicBlock(),llvm::dumpBasicBlockLabel(),llvm::SystemZAsmPrinter::emitFunctionEntryLabel(),llvm::ExecutionEngine::emitGlobals(),llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitKernelArg(),llvm::emitLinkerFlagsForGlobalCOFF(),llvm::emitLinkerFlagsForUsedCOFF(),externalize(),extractSubModule(),llvm::JITSymbolFlags::fromGlobalValue(),llvm::ModuleSummaryIndex::getGlobalValueSummary(),llvm::ExecutionEngine::getMangledName(),llvm::Mangler::getNameWithPrefix(),llvm::TargetLoweringObjectFileXCOFF::getSectionForExternalReference(),initSlots2BasicBlocks(),llvm::MergeBlockIntoPredecessor(),OptimizeGlobalVars(),llvm::VPWidenCallRecipe::print(),llvm::MemoryPhi::print(),printBBName(),printIRBlockReference(),llvm::stableHashValue(),llvm::TryToSimplifyUncondBranchFromEmptyBlock(), andllvm::UpgradeGlobalVariable().
Return true if this value has N uses or more.
This is logically equivalent togetNumUses() >= N.
Return true if thisValue has exactly N uses.
Definition at line149 of fileValue.cpp.
Referenced bycanonicalizeAbs(),llvm::InstCombinerImpl::foldFMulReassoc(),llvm::InstCombinerImpl::foldVectorBinop(),llvm::RecurrenceDescriptor::getReductionOpChain(),getVectorDeinterleaveFactor(), andisSSATMinMaxPattern().
Return true if this value has N uses or more.
This is logically equivalent togetNumUses() >= N.
Definition at line153 of fileValue.cpp.
Referenced byprocessUMulZExtIdiom(),llvm::InstCombinerImpl::visitPHINode(), andllvm::InstCombinerImpl::visitSub().
| inline |
Return true if there is exactly one use of this value.
This is specialized because it is a common request and does not require traversing the whole use list.
Definition at line434 of fileValue.h.
Referencesllvm::hasSingleElement(), anduses().
Referenced byareTwoInsertFromSameBuildVector(),canonicalizeSaturatedSubtract(),checkForNegativeOperand(),combine_CC(),combineBinOpOfExtractToReduceTree(),combineCastedMaskArithmetic(),combineFMulcFCMulc(),combineMaskedStore(),combinePMULDQ(),combineSelect(),combineSetCC(),combineTargetShuffle(),dropRedundantMaskingOfLeftShiftInput(),emitGlobalConstantImpl(),factorizeFAddFSub(),factorizeMinMaxTree(),findBuildAggregate_rec(),llvm::SelectionDAGBuilder::FindMergedConditions(),FindSingleUseIdentifiedObject(),llvm::InstCombinerImpl::foldAddWithConstant(),foldAndOrOfICmpEqConstantAndICmp(),foldAndOrOfICmpsWithConstEq(),foldAndOrOfSETCC(),foldAndToXor(),llvm::foldBranchToCommonDest(),foldClampRangeOfTwo(),foldComplexAndOrPatterns(),foldCtpop(),foldCtpopPow2Test(),llvm::InstCombinerImpl::foldFMulReassoc(),llvm::InstCombinerImpl::foldGEPICmp(),foldGEPOfPhi(),llvm::InstCombinerImpl::foldICmpAndConstConst(),llvm::InstCombinerImpl::foldICmpAndShift(),foldICmpAndXX(),llvm::InstCombinerImpl::foldICmpBinOp(),llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(),llvm::InstCombinerImpl::foldICmpBitCast(),llvm::InstCombinerImpl::foldICmpDivConstant(),llvm::InstCombinerImpl::foldICmpEquality(),llvm::InstCombinerImpl::foldICmpInstWithConstant(),foldICmpOrXX(),llvm::InstCombinerImpl::foldICmpShlConstant(),llvm::InstCombinerImpl::foldICmpShrConstant(),llvm::InstCombinerImpl::foldICmpSRemConstant(),llvm::InstCombinerImpl::foldICmpSubConstant(),llvm::InstCombinerImpl::foldICmpTruncConstant(),llvm::InstCombinerImpl::foldICmpUsingBoolRange(),llvm::InstCombinerImpl::foldICmpWithZextOrSext(),foldIdentityExtractShuffle(),foldIDivShl(),foldInsSequenceIntoSplat(),llvm::InstCombinerImpl::foldIntegerTypedPHI(),foldIntrinsicUsingDistributiveLaws(),foldNoWrapAdd(),llvm::InstCombinerImpl::foldOpIntoPhi(),foldOrToXor(),foldSelectICmpAndBinOp(),llvm::InstCombinerImpl::foldSelectOpOp(),llvm::InstCombinerImpl::foldSelectShuffle(),llvm::InstCombinerImpl::FoldShiftByConstant(),foldShiftIntoShiftInAnotherHandOfAndInICmp(),foldSubOfMinMax(),foldUnsignedUnderflowCheck(),llvm::InstCombinerImpl::foldVectorBinop(),foldVectorCmp(),foldVecTruncToExtElt(),foldXorToXor(),llvm::AArch64TTIImpl::getArithmeticInstrCost(),llvm::GCNTTIImpl::getArithmeticInstrCost(),llvm::ARMTTIImpl::getArithmeticInstrCost(),llvm::ARMTTIImpl::getCmpSelInstrCost(),llvm::HexagonTTIImpl::getInstructionCost(),llvm::ARMTTIImpl::getIntImmCostInst(),llvm::SystemZTTIImpl::getMemoryOpCost(),llvm::AArch64TTIImpl::getShuffleCost(),hasNonFlagsUse(),hasUseOtherThanLLVMUsed(),hoistAddSub(),hoistMulAddAssociation(),llvm::InvertBranch(),llvm::RecurrenceDescriptor::isConditionalRdxPattern(),llvm::AArch64TTIImpl::isExtPartOfAvgExpr(),isF128MovedToParts(),llvm::RecurrenceDescriptor::isFindLastIVPattern(),isFirstInsertElement(),llvm::SystemZTTIImpl::isFoldableLoad(),isFPSatMinMaxPattern(),isI128MovedToParts(),lowerAddSubToHorizontalOp(),llvm::MSP430TargetLowering::LowerSETCC(),llvm::X86::mayFoldIntoStore(),narrowInsElt(),optimizeLoopExitWithUnknownExitCount(),performAddCombineForShiftedOperands(),performAddCSelIntoCSinc(),llvm::ARMTargetLowering::PerformBRCONDCombine(),llvm::ARMTargetLowering::PerformCMOVCombine(),performMSTORECombine(),performOrXorChainCombine(),performSETCCCombine(),performSTORECombine(),PerformVQDMULHCombine(),processUGT_ADDCST_ADD(),rematerializeLiveValuesAtUses(),removeEmptyCleanup(),replaceArgumentUses(),replaceExtractElements(),ShouldBreakUpSubtract(),shouldConvertToRelLookupTable(),shouldExpandCmpArithRMWInIR(),llvm::X86TargetLowering::shouldReduceLoadWidth(),llvm::InstCombinerImpl::SimplifyAddWithRemainder(),llvm::InstCombinerImpl::simplifyBinOpSplats(),llvm::InstCombinerImpl::SimplifyDemandedBits(),llvm::InstCombinerImpl::SimplifyDemandedVectorElts(),llvm::InstCombinerImpl::simplifyDivRemOfSelectWithZeroOp(),llvm::InstCombinerImpl::SimplifySelectsFeedingBinaryOp(),simplifySetCCIntoEq(),llvm::InstCombinerImpl::simplifyShrShlDemandedBits(),sinkAndCmp0Expression(),llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(),translateSetCCForBranch(),tryFactorization(),llvm::FastISel::tryToFoldLoad(),llvm::JumpThreadingPass::tryToUnfoldSelect(),llvm::InstCombinerImpl::visitAdd(),llvm::InstCombinerImpl::visitAnd(),llvm::InstCombinerImpl::visitCallInst(),llvm::InstCombinerImpl::visitExtractElementInst(),llvm::InstCombinerImpl::visitFCmpInst(),llvm::InstCombinerImpl::visitFDiv(),llvm::InstCombinerImpl::visitFree(),llvm::InstCombinerImpl::visitICmpInst(),llvm::InstCombinerImpl::visitInsertElementInst(),llvm::InstCombinerImpl::visitLShr(),llvm::InstCombinerImpl::visitMul(),llvm::InstCombinerImpl::visitOr(),llvm::InstCombinerImpl::visitPHINode(),llvm::InstCombinerImpl::visitSExt(),llvm::InstCombinerImpl::visitShuffleVectorInst(),llvm::InstCombinerImpl::visitSub(),llvm::InstCombinerImpl::visitSwitchInst(),llvm::InstCombinerImpl::visitXor(), andllvm::InstCombinerImpl::visitZExt().
bool Value::hasOneUser | ( | ) | const |
Return true if there is exactly one user of this value.
Note that this is not the same as "has one use". If a value has one use, then there certainly is a single user. But if value has several uses, it is possible that all uses are in a single user, or not.
This check is potentially costly, since it requires traversing, in the worst case, the whole use list of a value.
Definition at line157 of fileValue.cpp.
Referenced byllvm::InstCombinerImpl::foldOpIntoPhi(),llvm::InstCombinerImpl::foldPHIArgLoadIntoPHI(),llvm::LoopVectorizationCostModel::getReductionPatternCost(), andisNotUsedOrFoldableInLoop().
Check the optional flags for equality.
Definition at line549 of fileValue.h.
ReferencesSubclassOptionalData.
| inline |
Return true if there is a value handle associated with this value.
Definition at line554 of fileValue.h.
Referenced byllvm::MemorySSAUpdater::removeMemoryAccess(), andllvm::SSAUpdaterBulk::RewriteAllUses().
bool Value::isSwiftError | ( | ) | const |
Return true if this value is a swifterror value.
swifterror values can be either a function argument or an alloca with a swifterror attribute.
Definition at line1096 of fileValue.cpp.
Referenced bycollectMemAccessInfo(),findExtractedInputToOverallInputMapping(),llvm::InstCombinerImpl::foldPHIArgLoadIntoPHI(), andllvm::SwiftErrorValueTracking::preassignVRegs().
| inline |
Return true if there is metadata referencing this value.
Definition at line557 of fileValue.h.
ReferencesIsUsedByMD.
bool Value::isUsedInBasicBlock | ( | constBasicBlock * | BB | ) | const |
| inline |
Definition at line356 of fileValue.h.
Referenced bymaterialized_uses(), anduse_begin().
| inline |
| inline |
Definition at line393 of fileValue.h.
Referenced bymaterialized_users(),user_back(), anduser_begin().
| inline |
| inline |
Definition at line415 of fileValue.h.
Referencesllvm::make_range(),materialized_user_begin(), anduser_end().
Referenced byforEachUser(), andusers().
| inline |
Definition at line418 of fileValue.h.
Referencesllvm::make_range(),materialized_user_begin(), anduser_end().
| inline |
Definition at line370 of fileValue.h.
Referencesllvm::make_range(),materialized_use_begin(), anduse_end().
Referenced byuses().
| inline |
Definition at line373 of fileValue.h.
Referencesllvm::make_range(),materialized_use_begin(), anduse_end().
| inline |
Mutate the type of thisValue to be of the specified type.
Note that this is an extremely dangerous operation which can create completely invalid IR very easily. It is strongly recommended that you recreate IR objects with the right types instead of mutating them in place.
Definition at line819 of fileValue.h.
Referenced byllvm::CallBase::mutateFunctionType().
void Value::print | ( | raw_ostream & | O, |
bool | IsForDebug =false | ||
) | const |
Implement operator<< onValue.
Definition at line5061 of fileAsmWriter.cpp.
ReferencesgetModuleFromVal(),I,isReferencingMDNode(), andprint().
Referenced byllvm::MIRPrinter::convert(),dump(),llvm::MCTargetStreamer::emitValue(),llvm::operator<<(),print(), andllvm::AccelTableBase::HashData::print().
void Value::print | ( | raw_ostream & | O, |
ModuleSlotTracker & | MST, | ||
bool | IsForDebug =false | ||
) | const |
void Value::printAsOperand | ( | raw_ostream & | O, |
bool | PrintType, | ||
ModuleSlotTracker & | MST | ||
) | const |
Definition at line5159 of fileAsmWriter.cpp.
Referencesllvm::ModuleSlotTracker::getMachine(),llvm::ModuleSlotTracker::getModule(),printAsOperandImpl(), andprintWithoutType().
void Value::printAsOperand | ( | raw_ostream & | O, |
bool | PrintType =true , | ||
constModule * | M =nullptr | ||
) | const |
Print the name of thisValue out to the specifiedraw_ostream.
This is useful when you just want to print 'int reg126', not the instruction that generated it. If you specify aModule for context, then even constants get pretty-printed; for example, the type of a null pointer is printed symbolically.
Definition at line5144 of fileAsmWriter.cpp.
ReferencesgetModuleFromVal(),Machine,printAsOperandImpl(), andprintWithoutType().
Referenced byllvm::MIRPrinter::convert(),dumpUnpackedICmp(),llvm::AsmPrinter::emitGlobalVariable(),print(),llvm::AliasSet::print(),llvm::MemoryPhi::print(),llvm::SCEV::print(),llvm::ScalarEvolution::print(),llvm::PassManagerPrettyStackEntry::print(),llvm::IVUsers::print(),llvm::dxil::ResourceBindingInfo::print(),llvm::MachineOperand::print(),llvm::GVNExpression::StoreExpression::printInternal(), andSinkInstruction().
void Value::replaceAllUsesWith | ( | Value * | V | ) |
Change all uses of this to point to a newValue.
Go through the uses list for this definition and make each use point to "V" instead of "this". After this completes, 'this's use list is guaranteed to be empty.
Definition at line534 of fileValue.cpp.
Referenced byBreakUpSubtract(),llvm::changeToInvokeAndSplitBasicBlock(),llvm::CloneAndPruneIntoFromInst(),combineLoadToOperationType(),ConvertShiftToMul(),llvm::convertToDeclaration(),llvm::coro::BaseCloner::create(),createMergedFunction(),createRawLoad(),createTblForTrunc(),createTypedBufferLoad(),DoLowering(),doPromotion(),dropTypeTests(),EliminateDuplicatePHINodesNaiveImpl(),eliminateSwiftErrorArgument(),llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(),llvm::LoongArchTargetLowering::emitExpandAtomicRMW(),llvm::objcarc::EraseInstruction(),llvm::expandAtomicRMWToCmpXchg(),llvm::expandDivision(),llvm::expandDivisionUpTo32Bits(),llvm::expandDivisionUpTo64Bits(),expandFPToI(),expandIntrinsic(),expandIToFP(),llvm::expandRemainder(),llvm::expandRemainderUpTo32Bits(),llvm::expandRemainderUpTo64Bits(),expandToSwitch(),findPHIToPartitionLoops(),llvm::SanitizerStatReport::finish(),foldTwoEntryPHINode(),llvm::Constant::handleOperandChange(),llvm::InlineFunction(),inlineGetBaseAndOffset(),insertSpills(),insertUniqueBackedgeBlock(),LLVMReplaceAllUsesWith(),llvm::lowerAtomicCmpXchgInst(),llvm::lowerAtomicRMWInst(),lowerAwaitSuspend(),llvm::RISCVTargetLowering::lowerDeinterleaveIntrinsicToLoad(),lowerExpectIntrinsic(),llvm::SITargetLowering::lowerIdempotentRMWIntoFencedLoad(),llvm::IntrinsicLowering::LowerIntrinsicCall(),lowerKernelArguments(),LowerNegateToMultiply(),lowerSubFn(),llvm::IntrinsicLowering::LowerToByteSwap(),llvm::lowerUnaryVectorIntrinsicAsLoop(),llvm::MergeBasicBlockIntoOnlyPred(),llvm::MergeBlockIntoPredecessor(),mergeCleanupPad(),llvm::InstDeleterIRStrategy::mutate(),nullifySetjmp(),optimizeDivRem(),OptimizeEmptyGlobalAtExitDtors(),OptimizeGlobalAddressOfAllocation(),optimizeLoopExitWithUnknownExitCount(),processAnd(),processAShr(),processBlockAddr(),llvm::JumpThreadingPass::processBranchOnXOR(),processCall(),processCmpIntrinsic(),processInternalGlobal(),processMinMaxIntrinsic(),processOverflowIntrinsic(),processSDiv(),processSExt(),processSIToFP(),processSRem(),processUse(),promoteAllocaUserToVector(),promoteSingleBlockAlloca(),llvm::removeAllNonTerminatorAndEHPadInstructions(),removeGlobalCtors(),llvm::PHINode::removeIncomingValue(),llvm::PHINode::removeIncomingValueIf(),removeMarkerCall(),RemovePreallocated(),llvm::removeUnwindEdge(),replace(),replaceAliasWithAliasee(),replaceAllUsesWith(),llvm::sandboxir::Value::replaceAllUsesWith(),replaceArgumentUses(),replaceAsyncResumeFunction(),replaceCalledFunction(),ReplaceCallWith(),replaceFallthroughCoroEnd(),replaceFrameSizeAndAlignment(),replaceLoopPHINodesWithPreheaderValues(),replaceOperation(),replacePrepare(),llvm::coro::BaseCloner::replaceRetconOrAsyncSuspendUses(),llvm::replaceSignedInst(),reuseTableCompare(),llvm::rewriteLoopExitValues(),rewritePHIs(),rewriteSingleStoreAlloca(),llvm::LoadAndStorePromoter::run(),scalarize(),scalarizeMaskedExpandLoad(),scalarizeMaskedGather(),scalarizeMaskedLoad(),simplifyOneLoop(),llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(),simplifyRelocatesOffABase(),simplifySuspendPoint(),sink(),sinkMinMaxInBB(),speculatePHINodeLoads(),speculateSelectInstLoads(),splitCallSite(),llvm::coro::AsyncABI::splitCoroutine(),llvm::coro::AnyRetconABI::splitCoroutine(),splitGlobal(),llvm::SplitIndirectBrCriticalEdges(),SplitLandingPadPredecessorsImpl(),llvm::OpenMPIRBuilder::tileLoops(),tryToRecognizeTableBasedCttz(),tryToReplaceWithGEPBuiltin(),TryToShrinkGlobalToBoolean(),llvm::TryToSimplifyUncondBranchFromEmptyBlock(),tryWidenGlobalArrayAndDests(),llvm::UpgradeARCRuntime(),llvm::UpgradeIntrinsicCall(),upgradeX86IntrinsicCall(),llvm::slpvectorizer::BoUpSLP::vectorizeTree(),llvm::InstCombinerImpl::visitExtractElementInst(),DataScalarizerVisitor::visitGetElementPtrInst(),DataScalarizerVisitor::visitLoadInst(), andllvm::ObjectSizeOffsetEvaluator::visitPHINode().
void Value::replaceNonMetadataUsesWith | ( | Value * | V | ) |
void Value::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.
'This's use list is expected to have at least one element. UnlikereplaceAllUsesWith() this function does not support basic block values.
void Value::replaceUsesWithIf | ( | Value * | New, |
llvm::function_ref<bool(Use &U)> | ShouldReplace | ||
) |
Go through the uses list for this definition and make each use point to "V" if the callback ShouldReplace returns true for the givenUse.
UnlikereplaceAllUsesWith() this function does not support basic block values.
Definition at line542 of fileValue.cpp.
Referenced byllvm::OpenMPIRBuilder::createReductionsGPU(),llvm::OpenMPIRBuilder::createTask(),llvm::MemorySSAUpdater::insertDef(),insertSpills(),replaceConstants(), andllvm::TryToSimplifyUncondBranchFromEmptyBlock().
Definition at line1559 of fileMetadata.cpp.
ReferencesgetContext(),HasMetadata, andsetMetadata().
Set a particular kind of metadata attachment.
Sets the given attachment toMD
, erasing it ifMD
isnullptr
or replacing it if it already exists.
Definition at line1531 of fileMetadata.cpp.
Referencesassert(),getContext(),HasMetadata,Info,llvm::LLVMContext::pImpl, andllvm::LLVMContextImpl::ValueMetadata.
Referenced bysetMetadata(),llvm::Instruction::setMetadata(), andllvm::InstCombinerImpl::visitCallInst().
Change the name of the value.
Choose a new unique name if the provided name is taken.
Name | The new name; or "" if the value's name should be removed. |
Definition at line377 of fileValue.cpp.
Referenced byaddReplicateRegions(),llvm::AllocaInst::AllocaInst(),llvm::BinaryOperator::BinaryOperator(),llvm::CastInst::CastInst(),llvm::CloneBasicBlock(),cloneCandidateFunction(),llvm::CloneFunction(),llvm::CloneModule(),llvm::CmpInst::CmpInst(),llvm::OpenMPIRBuilder::AtomicInfo::CreateAlloca(),llvm::EpilogueVectorizerMainLoop::createEpilogueVectorizedLoopSkeleton(),llvm::EpilogueVectorizerEpilogueLoop::createEpilogueVectorizedLoopSkeleton(),llvm::InnerLoopVectorizer::createInductionAdditionalBypassValues(),createMemMoveLoopKnownSize(),createMemMoveLoopUnknownSize(),llvm::OpenMPIRBuilder::createParallel(),llvm::createSanitizerCtorAndInitFunctions(),llvm::OpenMPIRBuilder::createTeams(),doPromotion(),llvm::DuplicateInstructionsInSplitBetween(),llvm::embedBitcodeInModule(),llvm::EpilogueVectorizerMainLoop::emitIterationCountCheck(),emitTransformedIndex(),llvm::VPDerivedIVRecipe::execute(),externalize(),findBasePointer(),forceRenaming(),llvm::FreezeInst::FreezeInst(),generateUnsignedDivisionCode(),llvm::GlobalValue::GlobalValue(),InsertStackProtectors(),LLVMSetValueName(),LLVMSetValueName2(),llvm::LoadInst::LoadInst(),llvm::IntrinsicLowering::LowerIntrinsicCall(),lowerIntrinsicToFunction(),lowerObjCCall(),makeStatepointExplicitImpl(),optimizeDivRem(),optimizeSQRT(),llvm::LoopStructure::parseLoopStructure(),llvm::peelLoop(),llvm::Intrinsic::remangleIntrinsicFunction(),rematerializeChain(),rename(),ReplaceCallWith(),rewriteMaterializableInstructions(),llvm::LoopConstrainer::run(),runImpl(),llvm::InnerLoopVectorizer::scalarizeInstruction(),scalarizeMaskedCompressStore(),scalarizeMaskedExpandLoad(),scalarizeMaskedGather(),scalarizeMaskedLoad(),scalarizeMaskedScatter(),scalarizeMaskedStore(),scalarizeMaskedVectorHistogram(),llvm::ShuffleVectorInst::ShuffleVectorInst(),sinkInstruction(),SplitLandingPadPredecessorsImpl(),llvm::splitLoopBound(),switchToLookupTable(),turnGuardIntoBranch(),llvm::UnaryOperator::UnaryOperator(),llvm::UnrollRuntimeLoopRemainder(),versionCallSiteWithCond(),llvm::LoopVersioning::versionLoop(), andllvm::logicalview::LVSymbolVisitor::visitKnownRecord().
| inlineprotected |
void llvm::Value::sortUseList | ( | Compare | Cmp | ) |
| inline |
Definition at line727 of fileValue.h.
ReferencesDL,llvm::Offset, andstripAndAccumulateConstantOffsets().
constValue * llvm::Value::stripAndAccumulateConstantOffsets | ( | constDataLayout & | DL, |
APInt & | Offset, | ||
bool | AllowNonInbounds, | ||
bool | AllowInvariantGroup =false , | ||
function_ref<bool(Value &Value,APInt &Offset)> | ExternalAnalysis =nullptr | ||
) | const |
Accumulate the constant offset this value has compared to a base pointer.
Only 'getelementptr' instructions (GEPs) are accumulated but other instructions, e.g., casts, are stripped away as well. The accumulated constant offset is added toOffset
and the base pointer is returned.
TheAPIntOffset
has to have a bit-width equal to the IntPtr type for the address space of 'this' pointer value, e.g., use DataLayout::getIndexTypeSizeInBits(Ty).
IfAllowNonInbounds
is true, offsets in GEPs are stripped and accumulated even if the GEP is not "inbounds".
IfAllowInvariantGroup
is true then this method also looks through strip.invariant.group and launder.invariant.group intrinsics.
IfExternalAnalysis
is provided it will be used to calculate a offset when a operand of GEP is not constant. For example, for a valueExternalAnalysis
might try to calculate a lower bound. IfExternalAnalysis
is successful, it should return true.
If this is called on a non-pointer value, it returns 'this' and theOffset
is not modified.
Note that this function will never return a nullptr. It will also never manipulate theOffset
in a way that would not match the difference between the underlying value and the returned one. Thus, if no constant offset was found, the returned value is the underlying one andOffset
is unchanged.
Referenced byareNonOverlapSameBaseLoadAndStore(),CleanupConstantGlobalUsers(),computePointerICmp(),foldConsecutiveLoads(),foldLoadsRecursive(),getAssignmentInfoImpl(),llvm::getPointersDiff(),llvm::ConstantPtrAuth::isKnownCompatibleWith(),llvm::simplifyLoadInst(),stripAndAccumulateConstantOffsets(),stripAndAccumulateInBoundsConstantOffsets(),stripAndAccumulateOffsets(),transformToIndexedCompare(), andllvm::tryPromoteCall().
| inline |
Definition at line745 of fileValue.h.
ReferencesDL,llvm::Offset, andstripAndAccumulateConstantOffsets().
| inline |
This is a wrapper around stripAndAccumulateConstantOffsets with the in-bounds requirement set to false.
Definition at line740 of fileValue.h.
ReferencesDL,llvm::Offset, andstripAndAccumulateConstantOffsets().
Referenced byllvm::ConstantFoldCompareInstOperands(),isNonEqualPointersWithRecursiveGEP(), andllvm::InstCombinerImpl::visitGetElementPtrInst().
| inline |
Definition at line687 of fileValue.h.
ReferencesstripInBoundsConstantOffsets().
Strip off pointer casts and all-constant inbounds GEPs.
Returns the original pointer value. If this is called on a non-pointer value, it returns 'this'.
Definition at line706 of fileValue.cpp.
Referenced bystripInBoundsConstantOffsets(), andllvm::PGOIndirectCallVisitor::tryGetVTableInstruction().
| inline |
Definition at line644 of fileValue.h.
ReferencesstripPointerCasts().
Strip off pointer casts, all-zero GEPs and address space casts.
Returns the original uncasted value. If this is called on a non-pointer value, it returns 'this'.
Definition at line694 of fileValue.cpp.
Referenced byllvm::MachineFunction::addLandingPad(),canParameterizeCallOperand(),llvm::Attributor::changeAfterManifest(),llvm::classifyEHPersonality(),compareNames(),llvm::diagnoseDontCall(),DoLowering(),llvm::emitCalloc(),llvm::WebAssemblyAsmPrinter::EmitFunctionAttributes(),llvm::emitMemCpyChk(),llvm::emitPutChar(),llvm::emitPutS(),llvm::objcarc::EraseInstruction(),llvm::VPInterleaveRecipe::execute(),llvm::findAvailablePtrLoadStore(),llvm::findDevirtualizableCallsForTypeTest(),findInitTrampolineFromAlloca(),findSafeStoreForStoreStrongContraction(),FindUsedValues(),findUsedValues(),llvm::InstCombinerImpl::foldGEPICmp(),llvm::AnyCoroIdRetconInst::getAllocFunction(),llvm::CoroAsyncContextDeallocInst::getAsyncContext(),llvm::CoroSuspendAsyncInst::getAsyncContextProjectionFunction(),llvm::CoroIdAsyncInst::getAsyncFunctionPointer(),llvm::CoroAsyncContextAllocInst::getAsyncFunctionPointer(),getAvailableLoadStore(),llvm::CoroIdInst::getCoroutine(),llvm::AnyCoroIdRetconInst::getDeallocFunction(),llvm::MemIntrinsicBase< Derived >::getDest(),getInvariantGroupClobberingInstruction(),llvm::MemoryDependenceResults::getInvariantGroupPointerDependency(),KernelInfo::getKernelEnvironementGVFromKernelInitCB(),getKnownConstant(),llvm::getMaybeBitcastedCallee(),llvm::CoroSuspendAsyncInst::getMustTailCallFunction(),llvm::CoroAsyncEndInst::getMustTailCallFunction(),llvm::InstrProfInstBase::getNameValue(),llvm::CoroIdInst::getPromise(),llvm::AnyCoroIdRetconInst::getPrototype(),llvm::CoroIdInst::getRawInfo(),llvm::CoroSuspendAsyncInst::getResumeFunction(),llvm::objcarc::getreturnRVOperand(),llvm::MemTransferBase< BaseCL >::getSource(),isMaskedStoreOverwrite(),llvm::isSafeToLoadUnconditionally(),llvm::CallLowering::lowerCall(),OptimizeEmptyGlobalAtExitDtors(),optimizeOnceStoredGlobal(),llvm::InstCombinerImpl::OptimizePointerDifference(),replacePrepare(),simplifySuspendPoint(),stripPointerCasts(),llvm::Constant::stripPointerCasts(),llvm::tryDelinearizeFixedSizeImpl(),llvm::InstCombinerImpl::visitLandingPadInst(), andllvm::InstCombinerImpl::visitPHINode().
| inline |
Definition at line654 of fileValue.h.
ReferencesstripPointerCastsAndAliases().
Strip off pointer casts, all-zero GEPs, address space casts, and aliases.
Returns the original uncasted value. If this is called on a non-pointer value, it returns 'this'.
Definition at line698 of fileValue.cpp.
Referenced byllvm::GlobalIFunc::getResolverFunction(),llvm::TargetLowering::LowerToTLSEmulatedModel(), andstripPointerCastsAndAliases().
| inline |
Definition at line677 of fileValue.h.
ReferencesstripPointerCastsForAliasAnalysis().
Strip off pointer casts, all-zero GEPs, single-argument phi nodes and invariant group info.
Returns the original uncasted value. If this is called on a non-pointer value, it returns 'this'. This function should be used only in Alias analysis.
Definition at line710 of fileValue.cpp.
Referenced byllvm::GlobalsAAResult::alias(), andstripPointerCastsForAliasAnalysis().
| inline |
Definition at line665 of fileValue.h.
ReferencesstripPointerCastsSameRepresentation().
Strip off pointer casts, all-zero GEPs and address space casts but ensures the representation of the result stays the same.
Returns the original uncasted value with the same representation. If this is called on a non-pointer value, it returns 'this'.
Definition at line702 of fileValue.cpp.
Referenced byllvm::AlignmentFromAssumptionsPass::extractAlignmentInfo(), andstripPointerCastsSameRepresentation().
void Value::takeName | ( | Value * | V | ) |
Transfer the name from V to this value.
After taking V's name, sets V's name to empty.
Definition at line383 of fileValue.cpp.
Referenced byllvm::changeToCall(),cloneInstructionsIntoPredecessorBlockAndUpdateSSAUses(),llvm::convertToDeclaration(),llvm::coro::BaseCloner::create(),DoLowering(),doPromotion(),llvm::embedBitcodeInModule(),llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(),llvm::InstCombinerImpl::EvaluateInDifferentType(),expandUDivOrURem(),foldConsecutiveLoads(),llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(),llvm::InstCombinerImpl::foldOpIntoPhi(),llvm::InstCombinerImpl::foldSelectIntoOp(),llvm::InstCombinerImpl::FoldShiftByConstant(),foldShiftedShift(),foldTwoEntryPHINode(),forceRenaming(),HandleInlinedEHPad(),hoistMinMax(),INITIALIZE_PASS(),llvm::GCNTTIImpl::instCombineIntrinsic(),instCombineLD1GatherIndex(),instCombineRDFFR(),instCombineSVECmpNE(),instCombineSVECntElts(),instCombineSVEPTest(),instCombineSVETBL(),instCombineSVEUnpack(),instCombineSVEUzp1(),llvm::SITargetLowering::lowerIdempotentRMWIntoFencedLoad(),LowerNegateToMultiply(),llvm::MergeBlockIntoPredecessor(),modifyIntrinsicCall(),moveFunctionAdaptingType(),optimizeSection(),PropagateOperandBundles(),reassociateMinMaxWithConstantInOperand(),removeFromUsedList(),removeGlobalCtors(),RemovePreallocated(),llvm::removeUnwindEdge(),replaceAliasWithAliasee(),llvm::replaceSignedInst(),replaceUnaryCall(),rewriteMemOpOfSelect(),rewritePHIs(),scalarizeMaskedLoad(),simplifyAMDGCNMemoryIntrinsicDemanded(),llvm::InstCombinerImpl::SimplifyAssociativeOrCommutative(),llvm::InstCombinerImpl::SimplifyDemandedUseBits(),llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(),simplifyRelocatesOffABase(),tryFactorization(),TryToShrinkGlobalToBoolean(),llvm::TryToSimplifyUncondBranchFromEmptyBlock(),llvm::UpgradeARCRuntime(),llvm::UpgradeIntrinsicCall(),llvm::slpvectorizer::BoUpSLP::vectorizeTree(),llvm::InstCombinerImpl::visitMul(),llvm::InstCombinerImpl::visitOr(),llvm::InstCombinerImpl::visitXor(),widenDestArray(), andwidenGlobalVariable().
| inline |
Definition at line360 of fileValue.h.
ReferencesassertModuleIsMaterialized(), andmaterialized_use_begin().
Referenced byforEachCall(),llvm::LazyValueInfoImpl::getValueAtUse(),hasNonFlagsUse(),OptimizeGlobalAddressOfAllocation(),llvm::MemorySSAUpdater::removeMemoryAccess(),shouldConvertToRelLookupTable(),llvm::sandboxir::Value::use_begin(), andllvm::sandboxir::Value::user_begin().
| inline |
Definition at line364 of fileValue.h.
ReferencesassertModuleIsMaterialized(), andmaterialized_use_begin().
| inline |
Definition at line344 of fileValue.h.
ReferencesassertModuleIsMaterialized().
Referenced byllvm::RecurrenceDescriptor::AddReductionVar(),computeVirtualCallSiteTypeInfoMap(),createRetPHINode(),DCEInstruction(),deleteIfDead(),llvm::Constant::destroyConstant(),llvm::AsmPrinter::doFinalization(),doPromotion(),dropTypeTests(),llvm::OpenMPIRBuilder::emitBlock(),llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(),llvm::objcarc::EraseInstruction(),findArgParts(),foldURemOfLoopIncrement(),forEachCall(),hasAddressTakenAndUsed(),hasSameExtUse(),hasUseOtherThanLLVMUsed(),llvm::InlineFunction(),isIntrinsicOrLFToBeTailCalled(),AliasScopeTracker::isNoAliasScopeDeclDead(),isRemovableWrite(),llvm::IntrinsicLowering::LowerIntrinsicCall(),mustPreserveGV(),OptimizeAwayTrappingUsesOfLoads(),OptimizeExtractBits(),OptimizeGlobalAddressOfAllocation(),optimizeGlobalsInModule(),processInternalGlobal(),processSelect(),llvm::promoteLoopAccessesToScalars(),promoteSingleBlockAlloca(),llvm::RecursivelyDeleteTriviallyDeadInstructions(),llvm::StatepointLoweringState::relocCallVisited(),llvm::removeAllNonTerminatorAndEHPadInstructions(),removeEmptyCleanup(),llvm::MemorySSA::removeFromLookups(),removeGlobalCtors(),llvm::slpvectorizer::BoUpSLP::removeInstructionsAndOperands(),llvm::MemorySSAUpdater::removeMemoryAccess(),ReplaceCallWith(),llvm::LazyCallGraph::RefSCC::replaceNodeFunction(),llvm::rewriteLoopExitValues(),RewriteUsesOfClonedInstructions(),llvm::LoadAndStorePromoter::run(),llvm::StatepointLoweringState::scheduleRelocCall(),llvm::SITargetLowering::shouldExpandAtomicRMWInIR(),simplifyAndDCEInstruction(),SinkCast(),speculatePHINodeLoads(),splitCallSite(),splitGlobal(),splitGlobals(),SplitLandingPadPredecessorsImpl(),stripDebugDeclareImpl(),llvm::stripDebugifyMetadata(),TryToShrinkGlobalToBoolean(),llvm::UpgradeARCRuntime(),llvm::InstCombinerImpl::visitCallInst(), andllvm::PtrUseVisitor< DerivedT >::visitGetElementPtrInst().
| inline |
Definition at line368 of fileValue.h.
Referenced bymaterialized_uses(),llvm::sandboxir::Value::use_begin(), andllvm::sandboxir::Value::user_begin().
| inline |
| inline |
Definition at line407 of fileValue.h.
ReferencesassertModuleIsMaterialized(), andmaterialized_user_begin().
Referenced byllvm::OpenMPIRBuilder::createTeams(),llvm::Constant::destroyConstant(),emitGlobalConstantImpl(),llvm::OpenMPIRBuilder::emitTargetTask(),hostParallelCallback(),OptimizeGlobalAddressOfAllocation(),replaceArgumentUses(),stripDebugDeclareImpl(),targetParallelCallback(), andTryToShrinkGlobalToBoolean().
Definition at line411 of fileValue.h.
ReferencesassertModuleIsMaterialized(), andmaterialized_user_begin().
| inline |
Definition at line397 of fileValue.h.
ReferencesassertModuleIsMaterialized(), andmaterialized_user_begin().
Referenced byaddAllGlobalValueUsers(),llvm::AArch64TTIImpl::getArithmeticInstrCost(),llvm::GCNTTIImpl::getArithmeticInstrCost(),llvm::ARMTTIImpl::getIntImmCostInst(),llvm::SystemZTTIImpl::getMemoryOpCost(),llvm::slpvectorizer::BoUpSLP::getReorderingData(),llvm::AArch64TTIImpl::getShuffleCost(),hasSameExtUse(),llvm::SystemZTTIImpl::isFoldableLoad(),isFPSatMinMaxPattern(),isI128MovedToParts(),isPointerUseReplacable(),isSSATMinMaxPattern(),llvm::X86::mayFoldIntoStore(),OptimizeExtractBits(),rematerializeLiveValuesAtUses(),llvm::Constant::removeDeadConstantUsers(),replaceAllUsesWith(),llvm::X86TargetLowering::shouldReduceLoadWidth(),sinkAndCmp0Expression(),SinkCast(), andllvm::PredicateInfo::~PredicateInfo().
| inline |
Definition at line401 of fileValue.h.
ReferencesassertModuleIsMaterialized(), andmaterialized_user_begin().
| inline |
Definition at line385 of fileValue.h.
ReferencesassertModuleIsMaterialized().
Referenced byrematerializeLiveValuesAtUses().
| inline |
| inline |
| inline |
Definition at line421 of fileValue.h.
ReferencesassertModuleIsMaterialized(), andmaterialized_users().
Referenced byaddFullyUnrolledInstructionsToIgnore(),llvm::RecurrenceDescriptor::AddReductionVar(),llvm::LoopVectorizationLegality::canFoldTailByMasking(),llvm::canTrackGlobalVariableInterprocedurally(),CleanupConstantGlobalUsers(),CleanupPointerRootUsers(),clearAssumptionsOfUsers(),llvm::InstCombinerImpl::convertOrOfShiftsToFunnelShift(),llvm::createAnyOfReduction(),createOutlinedFunction(),createRetBitCast(),createRetPHINode(),detectPopcountIdiom(),llvm::InstCombinerImpl::dominatesAllUses(),dropTypeTests(),findInitTrampolineFromAlloca(),FindPreallocatedCall(),FindSingleUseIdentifiedObject(),llvm::InstCombinerImpl::foldICmpSubConstant(),llvm::InstCombinerImpl::foldIntegerTypedPHI(),llvm::InstCombinerImpl::foldOpIntoPhi(),llvm::InstCombinerImpl::foldPHIArgIntToPtrToPHI(),forwardStoredOnceStore(),getArgSPIRVType(),getCleanupRetUnwindDest(),getFSqrtDivOptPattern(),llvm::GCStatepointInst::getGCRelocates(),getGCResultLocality(),getInvariantGroupClobberingInstruction(),llvm::HexagonTargetObjectFile::getLutUsedFunction(),llvm::getNumOfCalls(),llvm::sandboxir::Value::getNumUses(),llvm::RecurrenceDescriptor::getReductionOpChain(),getUnwindDestToken(),getUnwindDestTokenHelper(),getVectorDeinterleaveFactor(),HasAddressTaken(),hasExceptionPointerOrCodeUser(),hasHardUserWithinLoop(),hasLifetimeMarkers(),llvm::hasOutsideLoopUser(),hasSameExtUse(),hasStoreUsersOnly(),insertSpills(),llvm::invertCondition(),llvm::isAllocaPromotable(),isAllocSiteRemovable(),llvm::isAlmostDeadIV(),isArgUnmodifiedByAllCalls(),llvm::Loop::isAuxiliaryInductionVariable(),llvm::Constant::isConstantUsed(),llvm::RecurrenceDescriptor::isFixedOrderRecurrence(),isGOTEquivalentCandidate(),isHighCostExpansion(),isI32InsnAllUses(),llvm::isOverflowIntrinsicNoWrap(),isPointerValueDeadOnEntryToFunction(),isPTruePromoted(),isSafePHIToSpeculate(),localAllocaNeedsStackSave(),llvm::LowerDbgDeclare(),lowerLocalAllocas(),mapWasmLandingPadIndex(),negateICmpIfUsedByBranchOrSelectOnly(),nullifySetjmp(),OptimizeAwayTrappingUsesOfLoads(),optimizeDoubleFP(),OptimizeEmptyGlobalAtExitDtors(),llvm::AlignmentFromAssumptionsPass::processAssumption(),processUGT_ADDCST_ADD(),processUMulZExtIdiom(),processUse(),promoteSingleBlockAlloca(),relocationViaAlloca(),rematerializeLiveValuesAtUses(),RemovePreallocated(),llvm::InstructionPrecedenceTracking::removeUsersOf(),llvm::coro::replaceCoroFree(),replaceExtractElements(),replaceLoopPHINodesWithPreheaderValues(),llvm::rewriteLoopExitValues(),rewriteNonInstructionUses(),rewriteSingleStoreAlloca(),llvm::BPFASpaceCastSimplifyPass::run(),llvm::ArgumentPromotionPass::run(),runIPSCCP(),llvm::coro::BaseCloner::salvageDebugInfo(),setCannotDuplicate(),shouldCheckArgs(),shouldCombineToPostInc(),shouldSpeculateInstrs(),llvm::InstCombinerImpl::SimplifyDemandedVectorElts(),sinkAndCmp0Expression(),sinkLastInstruction(),sinkLifetimeStartMarkers(),llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(),splitGlobal(),llvm::coro::suppressCoroAllocs(),swapICmpOperandsToExposeCSEOpportunities(),tryToElideArgumentCopy(),TryToShrinkGlobalToBoolean(),tryUnmergingGEPsAcrossIndirectBr(),tryWidenGlobalArrayAndDests(),tryWidenGlobalArraysUsedByMemcpy(),llvm::UpgradeARCRuntime(),usersDominator(),valueEscapes(),llvm::InstCombinerImpl::visitPHINode(), andllvm::InstCombinerImpl::visitShuffleVectorInst().
| inline |
Definition at line425 of fileValue.h.
ReferencesassertModuleIsMaterialized(), andmaterialized_users().
| inline |
Definition at line376 of fileValue.h.
ReferencesassertModuleIsMaterialized(), andmaterialized_uses().
Referenced byaddIntrinsicToSummary(),canRewriteGEPAsOffset(),canSinkInstructions(),llvm::Attributor::checkForAllCallSites(),computeVirtualCallSiteTypeInfoMap(),determinePointerAccessAttrs(),dropTypeTests(),eliminateSwiftErrorAlloca(),findCallsAtConstantOffset(),llvm::findDevirtualizableCallsForTypeCheckedLoad(),llvm::findDevirtualizableCallsForTypeTest(),findLoadCallsAtConstantOffset(),findUser(),llvm::InformationCache::foreachUse(),llvm::MemoryDependenceResults::getInvariantGroupPointerDependency(),hasOneUse(),llvm::hasPartialIVCondition(),insertSpills(),isOnlyCopiedFromConstantMemory(),isPossibleIndirectCallTarget(),llvm::LoopInfo::movementPreservesLCSSAForm(),llvm::AlignmentFromAssumptionsPass::processAssumption(),processSelect(),removeIntrinsicUsers(),replaceAllPrepares(),replaceLoopInvariantUses(),replacePrepare(),RewriteUsesOfClonedInstructions(),runAttributorOnFunctions(),SinkInstruction(),llvm::updatePublicTypeTestCalls(),UpdateSSA(), andllvm::MemorySSA::verifyOrderingDominationAndDefUses().
| inline |
Definition at line380 of fileValue.h.
ReferencesassertModuleIsMaterialized(), andmaterialized_uses().
| friend |
| friend |
| protected |
Definition at line115 of fileValue.h.
Referenced byllvm::CallBase::hasDescriptor(), andllvm::User::User().
| protected |
Definition at line114 of fileValue.h.
Referenced byllvm::User::getOperandList(),llvm::User::setNumHungOffUseOperands(), andllvm::User::User().
| protected |
Definition at line113 of fileValue.h.
Referenced byaddMetadata(),clearMetadata(),eraseMetadata(),eraseMetadataIf(),getMetadata(),hasMetadata(), andsetMetadata().
| protected |
Definition at line111 of fileValue.h.
Referenced byisUsedByMetadata().
| staticconstexpr |
The maximum alignment for instructions.
This is the greatest alignment value supported by load, store, and alloca instructions, and global values.
Definition at line810 of fileValue.h.
Referenced byllvm::getOrEnforceKnownAlignment(),inferAlignment(), andllvm::InstCombinerImpl::visitCallInst().
| staticconstexpr |
Definition at line811 of fileValue.h.
Referenced byllvm::AttrBuilder::addAlignmentAttr(),llvm::GEPOperator::getMaxPreservedAlignment(),llvm::Attribute::getWithAlignment(),isSafeCheapLoadStore(), andllvm::GlobalObject::setAlignment().
| protected |
Hold subclass data that can be dropped.
This member is similar to SubclassData, however it is for holding information which may be used to aid optimization, but which may be cleared to zero without affecting conservative interpretation.
Definition at line84 of fileValue.h.
Referenced byllvm::BinaryConstantExpr::BinaryConstantExpr(),clearSubclassOptionalData(),llvm::CallBrInst::Create(),llvm::CallInst::Create(),llvm::ConstantExpr::getAsInstruction(),llvm::GEPOperator::getNoWrapFlags(),getRawSubclassOptionalData(),llvm::ConstantExpr::getWithOperands(),llvm::TruncInst::hasNoSignedWrap(),llvm::OverflowingBinaryOperator::hasNoSignedWrap(),llvm::TruncInst::hasNoUnsignedWrap(),llvm::OverflowingBinaryOperator::hasNoUnsignedWrap(),hasSameSubclassOptionalData(),llvm::TruncInst::setHasNoSignedWrap(),llvm::TruncInst::setHasNoUnsignedWrap(), andllvm::GetElementPtrInst::setNoWrapFlags().