llvm::ConstantVector

Constant Vector Declarations

Synopsis

Declared in <llvm/IR/Constants.h>

class ConstantVector final
    : public ConstantAggregate

Base Classes

NameDescription
ConstantAggregateConstant composed of other constants (for example arrays, structs, and vectors).

Types

NameDescription
const_value_op_iterator Const iterator for directly iterating over the operand Values.
value_op_iterator Iterator for directly iterating over the operand Values.

Type Aliases

NameDescription
const_op_iterator Const iterator over this user's operand Use objects.
const_op_range Range of const operand Use iterators.
const_use_iterator Const iterator over this value's uses.
const_user_iterator Const iterator over this value's users.
op_iterator Iterator over this user's operand Use objects.
op_range Range of mutable operand Use iterators.
use_iterator Iterator over this value's uses.
user_iterator Iterator over this value's users.

Enums

NameDescription
ValueTy Concrete subclass of this.

Member Functions

NameDescription
operator= Assignment operators
DoPHITranslation DoPHITranslation overloads
addUse This method should only be used by the Use class.
assertModuleIsMaterialized Assert in debug builds that modules containing this value are materialized.
assertModuleIsMaterializedImpl Assert that every module containing this value is fully materialized.
canBeFreed Return true if this pointer's memory may be freed in its defining scope.
containsConstantExpression Return true if this is a fixed width vector constant that includes any constant expressions.
containsMatchingVectorElement Return true if this is a vector constant where at least one element satisfies the given predicate. Scalable vectors are not checked.
containsPoisonElement Return true if this is a vector constant that includes any poison elements.
containsUndefElement Return true if this is a vector constant that includes any strictly undef (not poison) elements.
containsUndefOrPoisonElement Return true if this vector constant includes undef or poison elements.
deleteValue Delete a pointer to a generic Value.
destroyConstant Destroy this constant and any constant users that depend on it.
dropAllReferences Drop all references to operands.
dropDroppableUses Remove every uses that can safely be removed.
dropDroppableUsesIn Remove every use of this value in User that can safely be removed.
dump Support for debugging, callable in GDB: V->dump()
getAggregateElement getAggregateElement overloads
getContext All values hold a context through their type.
getDescriptor Returns the descriptor co-allocated with this User instance.
getName Return a constant reference to the value's name.
getNameOrAsOperand Return this value's name, or a printed operand string if it is unnamed.
getNumOperands Return the number of operands.
getNumUses This method computes the number of uses of this Value.
getOperand getOperand overloads
getOperandList getOperandList overloads
getOperandUse getOperandUse overloads
getPointerAlignment Returns an alignment of the pointer value.
getPointerDereferenceableBytes Returns the number of bytes known to be dereferenceable for the pointer value.
getPointerOffsetFrom If this ptr is provably equal to Other plus a constant offset, return that offset in bytes. Essentially ptr this subtract ptr Other.
getRawSubclassOptionalData Return the raw optional flags value contained in this value.
getSingleUndroppableUse getSingleUndroppableUse overloads
getSplatValue If all elements of the vector constant have the same value, return that value. Otherwise, return nullptr. Ignore poison elements by setting AllowPoison to true.
getType Specialize the getType() method to always return a FixedVectorType, which reduces the amount of casting needed in parts of the compiler.
getUniqueInteger If C is a constant integer then return its value, otherwise C must be a vector of constant integers, all equal, and the common value is returned.
getUniqueUndroppableUser getUniqueUndroppableUser overloads
getValueID Return an ID for the concrete type of this object.
getValueName Return the symbol-table name entry for this value, if any.
handleOperandChange Replace all uses of From with To within this constant.
hasExactInverseFP Return true if this scalar has an exact multiplicative inverse or this vector has an exact multiplicative inverse for each element in the vector.
hasNUndroppableUses Return true if this value has exactly N undroppable uses.
hasNUndroppableUsesOrMore Return true if this value has N undroppable uses or more.
hasNUses Return true if this Value has exactly N uses.
hasNUsesOrMore Return true if this value has N uses or more.
hasName Return true if this value has a name in the symbol table.
hasOneLiveUse Return true if the constant has exactly one live use.
hasOneUse Return true if there is exactly one use of this value.
hasOneUser Return true if there is exactly one user of this value.
hasUseList Check if this Value has a use-list.
hasValueHandle Return true if there is a value handle associated with this value.
hasZeroLiveUses Return true if the constant has no live uses.
isAllOnesValue Return true if this is the value that would be returned by getAllOnesValue.
isConstantUsed Return true if the constant has users other than constant expressions and other dangling things.
isDLLImportDependent Return true if the value is dependent on a dllimport variable.
isDroppable Return whether this user's uses may be dropped without affecting correctness.
isElementWiseEqual Return true if this constant and Y are element-wise equal.
isFiniteNonZeroFP Return true if this is a finite and non-zero floating-point scalar constant or a fixed width vector constant with all finite and non-zero elements.
isManifestConstant Return true if a constant is ConstantData or a ConstantAggregate or ConstantExpr that contain only ConstantData.
isMaxSignedValue Return true if the value is the largest signed value.
isMinSignedValue Return true if the value is the smallest signed value.
isNaN Return true if this is a floating-point NaN constant or a vector floating-point constant with all NaN elements.
isNegativeZeroValue Return true if the value is what would be returned by getZeroValueForNegation.
isNormalFP Return true if this is a normal floating-point constant.
isNotMinSignedValue Return true if the value is not the smallest signed value, or, for vectors, does not contain smallest signed value elements.
isNotOneValue Return true if the value is not the one value, or, for vectors, does not contain one value elements.
isNullValue Return true if this is the value that would be returned by getNullValue.
isOneValue Returns true if the value is one.
isSwiftError Return true if this value is a swifterror value.
isThreadDependent Return true if the value can vary between threads.
isUsedByMetadata Return true if there is metadata referencing this value.
isUsedInBasicBlock Check if this value is used in the specified basic block.
materialized_use_begin materialized_use_begin overloads
materialized_use_empty Return true if there are no currently materialized uses.
materialized_user_begin materialized_user_begin overloads
materialized_users materialized_users overloads
materialized_uses materialized_uses overloads
mutateType Mutate the type of this Value to be of the specified type.
needsDynamicRelocation Return true if this constant may generate a dynamic relocation entry.
needsRelocation Return true if this constant may generate a relocation entry.
op_begin op_begin overloads
op_end op_end overloads
operand_values operand_values overloads
operands operands overloads
operator delete Delete operators
print print overloads
printAsOperand printAsOperand overloads
removeDeadConstantUsers Remove any dead constant users dangling off of this constant.
replaceAllUsesWith Change all uses of this to point to a new Value.
replaceNonMetadataUsesWith Change non-metadata uses of this to point to a new Value.
replaceUsesOfWith Replace uses of one Value with another.
replaceUsesOutsideBlock Replace uses of this value that occur outside BB with V.
replaceUsesWithIf Replace selected uses of this value with New.
reverseUseList Reverse the use-list.
setName Change the name of the value.
setNumHungOffUseOperands Set the operand count for a User with hung-off uses.
setOperand setOperand overloads
setValueName Set the symbol-table name entry for this value.
sortUseList Sort the use-list.
stripAndAccumulateConstantOffsets stripAndAccumulateConstantOffsets overloads
stripAndAccumulateInBoundsConstantOffsets stripAndAccumulateInBoundsConstantOffsets overloads
stripInBoundsConstantOffsets stripInBoundsConstantOffsets overloads
stripInBoundsOffsets stripInBoundsOffsets overloads
stripPointerCasts stripPointerCasts overloads
stripPointerCastsAndAliases stripPointerCastsAndAliases overloads
stripPointerCastsForAliasAnalysis stripPointerCastsForAliasAnalysis overloads
stripPointerCastsSameRepresentation stripPointerCastsSameRepresentation overloads
takeName Transfer the name from V to this value.
toConstantRange Convert constant to an approximate constant range. For vectors, the range is the union over the element ranges. Poison elements are ignored.
use_begin use_begin overloads
use_empty Return true if this value has no uses.
use_end use_end overloads
user_back Return the sole user when this value has exactly one user.
user_begin Return an iterator to the first user of this value.
user_empty Return true if this value has no users.
user_end user_end overloads
users users overloads
uses uses overloads
value_op_begin value_op_begin overloads
value_op_end value_op_end overloads

Static Member Functions

NameDescription
classof Methods for support type inquiry through isa, cast, and dyn_cast.
dropDroppableUse Remove the droppable use U.
get Return a constant vector with elements V.
getAllOnesValue Return the all-ones constant of type Ty.
getIntegerValue Return the value for an integer or pointer constant, or a vector thereof, with the given scalar value.
getNullValue Return the null constant of type Ty (zero for integers, null for pointers, and so on).
getSplat Return a ConstantVector with the specified constant in each element.
mergeUndefsWith Merge undef elements from Other into constant C.
replaceUndefsWith Try to replace undefined constant C or undefined elements in C with Replacement. If no changes are made, the constant C is returned.

Static Data Members

NameDescription
MaxAlignmentExponent The maximum alignment for instructions.
MaximumAlignment Maximum absolute alignment in bytes (1 << MaxAlignmentExponent).

Protected Types

NameDescription
AllocInfo Information about how a User object was allocated, to be passed into the User constructor.
HungOffOperandsAllocMarker Indicates this User has operands "hung off" in another allocation.
IntrusiveOperandsAllocMarker Indicates this User has operands co-allocated.
IntrusiveOperandsAndDescriptorAllocMarker Indicates this User has operands and a descriptor co-allocated .

Protected Enums

NameDescription
Unnamed enum SubclassOptionalData bits. Low bits are used by ConstantExpr.

Protected Member Functions

NameDescription
Op Op overloads
addMetadata addMetadata overloads
allocHungoffUses Allocate the array of Uses, followed by a pointer (with bottom bit set) to the User.
clearMetadata Erase all metadata attached to this Value.
eraseMetadata Erase all metadata attachments with the given kind.
eraseMetadataIf Erase all metadata attachments matching the given predicate.
getAllMetadata Append all metadata attached to this value into MDs.
getMetadata Get the current metadata attachments for the given kind, if any.
getMetadataImpl Get metadata for the given kind, if any.
getSubclassDataFromValue Return the opaque subclass data bits stored in this value.
growHungoffUses Grow the number of hung off uses. Note that allocHungoffUses should be called if there are no uses.
operator new New operators
setMetadata setMetadata overloads
setValueSubclassData Set the opaque subclass data bits stored in this value.

Protected Static Member Functions

NameDescription
OpFrom Return the operand Use at compile-time index Idx from that.

Protected Data Members

NameDescription
HasDescriptor True if this value has a descriptor.
HasHungOffUses Whether operands are stored in a separately allocated array.
HasName True if this value has a name in the symbol table.
IsUsedByMD True if metadata references this value.
NumUserOperands Number of operands in this user.
SubclassOptionalData Hold arbitary subclass data.

Protected Static Data Members

NameDescription
ConstantSubclassBits Bits reserved in SubclassOptionalData, not to be used for ConstantExpr flags.

Friends

NameDescription
llvm::ConstantLLVM Constant Representation
llvm::ConstantAggrKeyTypeKey type used to unique aggregate constants in the constant pool.

Non-Member Functions

NameDescription
ComputeMaxSignificantBitsGet the upper bound on bit size for this Value Op as a signed integer.
ComputeNumSignBitsReturn the number of times the sign bit of the register is replicated into the other bits.
ConstantFoldConstantFold a constant using the specified DataLayout.
ConstantFoldExtractElementInstructionAttempt to constant fold an extractelement instruction with the specified operands and indices.
ConstantFoldExtractValueInstructionAttempt to constant fold an extractvalue instruction with the specified operands and indices.
ConstantFoldInsertElementInstructionAttempt to constant fold an insertelement instruction with the specified operands and indices.
ConstantFoldInsertValueInstructionAttempt to constant fold an insertvalue instruction with the specified operands and indices.
ConstantFoldIntegerCastConstant fold a zext, sext or trunc, depending on IsSigned and whether the DestTy is wider or narrower than C. Returns nullptr on failure.
ConstantFoldLoadFromConstExtract value of C at the given Offset reinterpreted as Ty. If bits past the end of C are accessed, they are assumed to be poison.
ConstantFoldLoadFromConstExtract value of C reinterpreted as Ty. Same as previous API with zero offset.
ConstantFoldLoadFromConstPtrReturn the value that a load from C with offset Offset would produce if it is constant and determinable. If this is not determinable, return null.
ConstantFoldLoadFromConstPtrReturn the value that a load from C would produce if it is constant and determinable. If this is not determinable, return null.
ConstantFoldLoadFromUniformValueReturn a uniform bit-pattern constant reinterpreted as Ty, or null.
ConstantFoldLoadThroughBitcastTry to cast a constant to a destination type through a bitcast-like load.
ConstantFoldSelectInstructionAttempt to constant fold a select instruction with the specified operands. The constant result is returned if successful; if not, null is returned.
ConstantFoldShuffleVectorInstructionAttempt to constant fold a shufflevector instruction with the specified operands and mask.
ExtractTypeInfoExtractTypeInfo - Returns the type info, possibly bitcast, encoded in V.
FindEarliestCaptureFind the earliest instruction that captures V in F.
FindInsertedValueGiven an aggregate and a sequence of indices, see if the scalar value indexed is already around as a register.
FlushFPConstantFlush a floating-point constant according to the parent function's denormal mode.
GetPointerBaseWithConstantOffsetAnalyze the specified pointer to see if it can be expressed as a base pointer plus a constant offset. Return the base and offset to the caller.
GetPointerBaseWithConstantOffsetConst overload of GetPointerBaseWithConstantOffset.
GetStringLengthIf we can compute the length of the string pointed to by the specified pointer, return 'len+1'. If we can't, return 0.
IsConstantOffsetFromGlobalReturn true if C is a constant offset from a global.
MapValueLook up or compute a value in the value map.
MapValueVersion of MapValue with type safety for Constant.
MaskedValueIsZeroReturn true if 'V & Mask' is known to be zero. We use this predicate to simplify operations downstream. Mask is known to be zero for bits that V cannot have.
PointerMayBeCapturedVisit a pointer and derived values to find capturing uses.
PointerMayBeCapturedReturn which components of the pointer may be captured.
PointerMayBeCapturedReturn true if this pointer may be captured by the enclosing function.
PointerMayBeCapturedBeforeReturn true if this pointer may be captured before a given instruction.
PointerMayBeCapturedBeforeReturn which components of the pointer may be captured on the path to I.
RecursivelyDeleteTriviallyDeadInstructionsRecursively delete a trivially dead instruction and its dead operands.
SplitBlockAndInsertForEachLaneInvoke a callback once for each lane up to an effective vector length.
SplitBlockAndInsertIfElseSplit a block and insert an else-branch at an instruction.
SplitBlockAndInsertIfElseSplit a block and insert a conditional else-branch around the split point.
SplitBlockAndInsertIfThenSplit a block and insert a then-branch at an instruction.
SplitBlockAndInsertIfThenSplit a block and insert a conditional then-branch around the split point.
SplitBlockAndInsertIfThenElseSplit a block and insert optional then/else blocks around the split point.
SplitBlockAndInsertIfThenElseSplit a block and insert optional then/else blocks at an instruction.
SplitBlockAndInsertIfThenElseSplit a block and insert both then and else branches around the split point.
SplitBlockAndInsertIfThenElseSplit a block and insert then/else branches at an instruction.
SplitBlockAndInsertSimpleForLoopInsert a simple counted for-loop at a split point.
applyProfMetadataIfEnabledApply a metadata callback if V is an instruction and profiling is enabled.
assumeBundleImpliesNonNullReturn true if the given assume operand bundle implies that Val is non-null.
canReplacePointersIfEqualReturns true if pointer From can be replaced with equal pointer To.
cannotBeNegativeZeroReturn true if we can prove that the specified FP value is never equal to -0.0. Users should use caution when considering PreserveSign denormal-fp-math.
cannotBeOrderedLessThanZeroReturn true if we can prove that the specified FP value is either NaN or never less than -0.0.
classifyEHPersonalitySee if the given exception handling personality function is one that we understand. If so, return a description of it; otherwise return Unknown.
collectPossibleValuesEnumerate immediate constant values of V into Constants.
computeConstantRangeDetermine the possible constant range of an integer or vector of integer value. This is intended as a cheap, non-recursive check.
computeKnownBitsReturns the known bits rather than passing by reference.
computeKnownBitsDetermine which bits of V are known to be either zero or one and return them in the KnownZero/KnownOne bit sets.
computeKnownBitsReturns the known bits rather than passing by reference.
computeKnownBitsCompute known bits for the demanded elements of V using Q.
computeKnownBitsCompute known bits for V into Known using the simplify query Q.
computeKnownBitsCompute known bits for V using the simplify query Q.
computeKnownBitsFromContextMerge bits known from context-dependent facts into Known.
computeKnownFPClassWrapper to account for known fast math flags at the use instruction.
computeKnownFPClassDetermine known floating-point classes for V.
computeKnownFPClassWrapper to account for known fast math flags at the use instruction.
computeKnownFPClassDetermine which floating-point classes are valid for V, and return them in KnownFPClass bit sets.
computeKnownFPClassDetermine known floating-point classes for V using explicit analysis context.
computeKnownFPSignBitReturn the known sign bit of a floating-point value, if provable.
computeOverflowForSignedMulCompute whether a signed multiply of LHS and RHS can overflow.
computeOverflowForSignedSubCompute whether a signed subtract of LHS and RHS can overflow.
computeOverflowForUnsignedMulCompute whether an unsigned multiply of LHS and RHS can overflow.
computeOverflowForUnsignedSubCompute whether an unsigned subtract of LHS and RHS can overflow.
decomposeBitTestDecompose an icmp into the form ((X & Mask) pred C) if possible.
decomposeBitTestICmpDecompose an icmp into the form ((X & Mask) pred C) if possible.
emitBCmpEmit a call to the bcmp function.
emitBinaryFloatFnCallEmit a call to the binary floating-point libcall named Name.
emitBinaryFloatFnCallEmit a call to the binary DoubleFn, FloatFn, or LongDoubleFn for Op1's type.
emitCallocEmit a call to the calloc function.
emitFPutCEmit a call to fputc with an int Char and a FILE pointer.
emitFPutSEmit a call to fputs with a string pointer and a FILE pointer.
emitFWriteEmit a call to fwrite with a pointer, size_t Size, and FILE pointer.
emitHotColdNewEmit a call to the hot/cold operator new function.
emitHotColdNewAlignedEmit a call to the hot/cold aligned operator new function.
emitHotColdNewAlignedNoThrowEmit a call to the hot/cold aligned nothrow operator new function.
emitHotColdNewNoThrowEmit a call to the hot/cold nothrow operator new function.
emitHotColdSizeReturningNewEmit a call to the hot/cold size-returning operator new function.
emitHotColdSizeReturningNewAlignedEmit a call to the hot/cold size-returning aligned operator new function.
emitMallocEmit a call to the malloc function.
emitMemCCpyEmit a call to the memccpy function.
emitMemChrEmit a call to memchr with a pointer, int Val, and size_t Len.
emitMemCmpEmit a call to the memcmp function.
emitMemCpyChkEmit a call to __memcpy_chk with size_t Len/ObjSize and pointer Dst/Src.
emitMemPCpyEmit a call to the mempcpy function.
emitMemRChrEmit a call to the memrchr function, analogously to emitMemChr.
emitPutCharEmit a call to putchar, assuming Char is an int.
emitPutSEmit a call to puts, assuming Str is some pointer.
emitSNPrintfEmit a call to the snprintf function.
emitSPrintfEmit a call to the sprintf function.
emitStpCpyEmit a call to stpcpy for the specified pointer arguments.
emitStpNCpyEmit a call to stpncpy for the specified pointer arguments and length.
emitStrCatEmit a call to the strcat function.
emitStrChrEmit a call to strchr for the specified pointer and character.
emitStrCpyEmit a call to strcpy for the specified pointer arguments.
emitStrDupEmit a call to strdup for the specified pointer.
emitStrLCatEmit a call to the strlcat function.
emitStrLCpyEmit a call to the strlcpy function.
emitStrLenEmit a call to strlen for the specified pointer.
emitStrNCatEmit a call to the strncat function.
emitStrNCmpEmit a call to the strncmp function to the builder.
emitStrNCpyEmit a call to strncpy for the specified pointer arguments and length.
emitUnaryFloatFnCallEmit a call to the unary DoubleFn, FloatFn, or LongDoubleFn for Op's type.
emitUnaryFloatFnCallEmit a call to the unary floating-point libcall named Name.
emitVSNPrintfEmit a call to the vsnprintf function.
emitVSPrintfEmit a call to the vsprintf function.
emitWcsLenEmit a call to wcslen for the specified pointer.
extractWidenableConditionReturns the widenable condition in U's expression tree, if uniquely used.
findAllocaForValueConst overload of findAllocaForValue.
findAllocaForValueReturns unique alloca where the value comes from, or nullptr. If OffsetZero is true check that V points to the begining of the alloca.
findDVRDeclareValuesAs above, for DVRDeclareValues.
findDVRDeclaresFinds dbg.declare records declaring local variables as living in the memory that 'V' points to.
findDVRValuesAs above, for DVRValues.
findDbgUsersFinds the debug info records describing a value.
findDbgValuesFinds the dbg.values describing a value.
findScalarElementGiven a vector and an element number, see if the scalar value is already around as a register, for example if it were inserted then extracted from the vector.
findValuesAffectedByConditionCall InsertAffected on all Values whose known bits / value may be affected by the condition Cond. Used by AssumptionCache and DomConditionCache.
gep_type_beginReturn a begin iterator over the types indexed by GEP GEP.
gep_type_beginReturn a begin iterator over the types indexed by GEP GEP.
gep_type_endReturn the end iterator for types indexed by GEP GEP.
gep_type_endReturn the end iterator for types indexed by GEP GEP.
getAllocationFamilyIf a function is part of an allocation family (e.g. malloc/realloc/calloc/free), return the identifier for its family of functions.
getBaseObjectSizeLike getObjectSize(), but only for base objects.
getConstantDataArrayInfoReturns true if the value V is a pointer into a ConstantDataArray. If successful Slice will point to a ConstantDataArray info object with an appropriate offset.
getConstantStringInfoCompute the contents of a null-terminated C string pointed to by V.
getInitialValueOfAllocationIf this is a call to an allocation function that initializes memory to a fixed value, return said value in the requested type. Otherwise, return nullptr.
getKnowledgeForValueReturn a valid Knowledge associated to the Value V if its Attribute kind is in AttrKinds and it matches the Filter.
getKnowledgeValidInContextReturn a valid Knowledge associated to the Value V if its Attribute kind is in AttrKinds and the knowledge is suitable to be used in the context of CtxI.
getKnownAlignmentInfer a known alignment for the specified pointer.
getLoadStoreAddressSpaceReturn the address space of the pointer operand of load or store I.
getLoadStoreAlignmentReturn the alignment of load or store instruction I.
getLoadStorePointerOperandReturn the pointer operand of a load or store, or null if V is neither.
getLoadStorePointerOperandReturn the pointer operand of a load or store, or null if V is neither.
getLoadStoreTypeReturn the value type accessed by load or store instruction I.
getLosslessInvCastTry to cast C to InvC losslessly, satisfying CastOp(InvC) equals C, or CastOp(InvC) is a refined value of undefined C. Will try best to preserve the flags.
getLosslessSignedTruncCompute a lossless inverse of a signed extend (sext) of C.
getLosslessUnsignedTruncCompute a lossless inverse of an unsigned extend (zext) of C.
getObjectSizeCompute the size of the object pointed by Ptr.
getOrEnforceKnownAlignmentReturn a known alignment for a value, optionally raising it first.
getPointerAtOffsetFind a trivial pointer located at a byte offset within a constant.
getPointerOperandReturn the pointer operand of a load, store, or GEP, or null otherwise.
getPointerOperandNon-const overload of getPointerOperand.
getSplatValueGet splat value if the input is a splat vector or return nullptr.
getUnderlyingObjectStrip GEP adjustments, pointer casts, and threadlocal.address from V.
getUnderlyingObjectNon-const overload of getUnderlyingObject.
getUnderlyingObjectAggressiveLike getUnderlyingObject(), but will try harder to find a single underlying object. In particular, this function also looks through selects and phis.
getUnderlyingObjectsThis method is similar to getUnderlyingObject except that it can look through phi and select instructions and return multiple objects.
getUnderlyingObjectsForCodeGenThis is a wrapper around getUnderlyingObjects and adds support for basic ptrtoint+arithmetic+inttoptr sequences.
impliesPoisonReturn true if V is poison given that ValAssumedPoison is already poison.
invertConditionInvert a boolean condition, reusing an existing inverted copy when possible.
isAllocLikeFnTests if a value is a call or invoke to a library function that allocates memory (either malloc, calloc, or strdup like).
isAllocationFnTests if a value is a call or invoke to a library function that allocates or reallocates memory (either malloc, calloc, realloc, or strdup like).
isAllocationFnTests if a value is a call or invoke to a library function that allocates or reallocates memory (either malloc, calloc, realloc, or strdup like).
isBaseOfObjectReturn true if V is known to be the base of its memory object.
isBytewiseValueIf the specified value can be set by repeating the same byte in memory, return the i8 value that it is represented with.
isCheckForZeroAndMulWithOverflowReturn true if Op0 and Op1 match a zero check with mul-with-overflow.
isCheckForZeroAndMulWithOverflowReturn true if Op0 and Op1 match a zero check with mul-with-overflow.
isConsecutiveAccessReturns true if the memory operations A and B are consecutive. This is a simple API that does not depend on the analysis pass.
isDereferenceableAndAlignedPointerReturns true if V is always a dereferenceable pointer with sufficient alignment.
isDereferenceableAndAlignedPointerReturns true if V is always dereferenceable for Size bytes with sufficient alignment.
isDereferenceablePointerEquivalent to isDereferenceableAndAlignedPointer with an alignment of 1.
isDereferenceablePointerEquivalent to isDereferenceableAndAlignedPointer with an alignment of 1.
isEscapeSourceReturns true if the pointer is one which would have been considered an escape by isNotCapturedBefore.
isGuaranteedNotToBePoisonIterator-context overload of isGuaranteedNotToBePoison.
isGuaranteedNotToBePoisonReturns true if V cannot be poison, but may be undef.
isGuaranteedNotToBeUndefReturns true if V cannot be undef, but may be poison.
isGuaranteedNotToBeUndefOrPoisonReturn true if this function can prove that V does not have undef bits and is never poison.
isGuardReturns true iff U has semantics of a guard expressed in a form of call of llvm.experimental.guard intrinsic.
isGuardAsWidenableBranchReturns true iff U has semantics of a guard expressed in a form of a widenable conditional branch to deopt block.
isIdentifiedFunctionLocalReturn true if V is unambiguously identified at the function level.
isIdentifiedObjectReturn true if this pointer refers to a distinct and identifiable object.
isImpliedByDomConditionReturn the boolean condition value in the context of the given instruction if it is known based on dominating conditions.
isImpliedConditionReturn whether a compare is implied true or false by LHS, if known.
isImpliedConditionReturn whether RHS is implied true or false by LHS, if known.
isKnownIntegralReturn true if the floating-point value V is known to be an integer value.
isKnownInversionReturn true iff: 1. X is poison implies Y is poison. 2. X is true implies Y is false. 3. X is false implies Y is true. Otherwise, return false.
isKnownNegationReturn true if the two given values are negation.
isKnownNegativeReturns true if the given value is known be negative (i.e. non-positive and non-zero).
isKnownNeverInfOrNaNReturn true if the floating-point value can never contain a NaN or infinity.
isKnownNeverInfinityReturn true if the floating-point scalar value is not an infinity or if the floating-point vector value has no infinities.
isKnownNeverNaNReturn true if the floating-point scalar value is not a NaN or if the floating-point vector value has no NaN elements.
isKnownNonEqualReturn true if the given values are known to be non-equal when defined. Supports scalar integer types only.
isKnownNonNegativeReturns true if the give value is known to be non-negative.
isKnownNonZeroReturn true if the given value is known to be non-zero when defined.
isKnownPositiveReturns true if the given value is known be positive (i.e. non-negative and non-zero).
isKnownToBeAPowerOfTwoReturn true if the given value is known to have exactly one bit set when defined.
isKnownToBeAPowerOfTwoReturn true if V is known to be a power of two when defined.
isNoAliasCallReturn true if this pointer is returned by a noalias function.
isNotVisibleOnUnwindReturn true if Object memory is not visible after an unwind.
isSafeToDestroyConstantReturn true if it is safe to destroy constant C.
isSafeToLoadUnconditionallyReturn true if we know that executing a load from this value cannot trap.
isSafeToLoadUnconditionallyReturn true if we know that executing a load from this value cannot trap.
isSplatValueReturn true if each element of V is poisoned or equal to the others.
isWidenableBranchReturns true iff U is a widenable branch (that is, extractWidenableCondition returns widenable condition).
isWidenableConditionReturns true iff V has semantics of llvm.experimental.widenable.condition call.
isWritableObjectReturn true if Object is writable without trapping.
maskContainsAllOneOrUndefReturn true if any lane of an i1 mask is known true or undef.
matchSelectPatternConst overload of matchSelectPattern.
matchSelectPatternPattern match integer [SU]MIN, [SU]MAX and ABS idioms, returning the kind and providing the out parameter results if we successfully match.
onlyUsedByLifetimeMarkersReturn true if the only users of this pointer are lifetime markers.
onlyUsedByLifetimeMarkersOrDroppableInstsReturn true if the only users of this pointer are lifetime markers or droppable instructions.
parseWidenableBranchParses a widenable branch and returns Uses so they can be modified.
parseWidenableBranchParses a widenable branch and returns its condition, widenable condition, and successor blocks.
parseWidenableGuardCollects the individual checks from a widenable guard's condition.
possiblyDemandedEltsInMaskReturn an APInt of active lanes for a <Y x i1> mask.
propagateIRFlagsIntersect IR flags from scalar ops VL onto vector op I.
replaceDbgDeclareReplace a dbg.declare when its address is replaced.
replaceDominatedUsesWithReplace uses dominated by an edge with another value.
replaceDominatedUsesWithReplace uses dominated by an instruction with another value.
replaceDominatedUsesWithReplace uses dominated by a block's end with another value.
replaceDominatedUsesWithIfConditionally replace uses dominated by an instruction with another value.
replaceDominatedUsesWithIfConditionally replace uses dominated by a block's end with another value.
replaceDominatedUsesWithIfConditionally replace uses dominated by an edge with another value.
replaceRelativePointerUsersWithZeroFinds the same "relative pointer" pattern as described above, where the target is C, and replaces the entire pattern with a constant zero.
setLoadStoreAlignmentSet the alignment of load or store instruction I.
simplifyAShrInstGiven operands for a AShr, fold the result or return nulll.
simplifyAddInstGiven operands for an Add, fold the result or return null.
simplifyAndInstGiven operands for an And, fold the result or return null.
simplifyExtractElementInstGiven operands for an ExtractElementInst, fold the result or return null.
simplifyExtractValueInstGiven operands for an ExtractValueInst, fold the result or return null.
simplifyFAddInstGiven operands for an FAdd, fold the result or return null.
simplifyFDivInstGiven operands for an FDiv, fold the result or return null.
simplifyFMAFMulGiven operands for the multiplication of a FMA, fold the result or return null.
simplifyFMulInstGiven operands for an FMul, fold the result or return null.
simplifyFNegInstGiven operand for an FNeg, fold the result or return null.
simplifyFRemInstGiven operands for an FRem, fold the result or return null.
simplifyFSubInstGiven operands for an FSub, fold the result or return null.
simplifyFreezeInstGiven an operand for a Freeze, see if we can fold the result.
simplifyInsertElementInstGiven operands for an InsertElement, fold the result or return null.
simplifyInsertValueInstGiven operands for an InsertValueInst, fold the result or return null.
simplifyLShrInstGiven operands for a LShr, fold the result or return null.
simplifyMulInstGiven operands for a Mul, fold the result or return null.
simplifyOrInstGiven operands for an Or, fold the result or return null.
simplifySDivInstGiven operands for an SDiv, fold the result or return null.
simplifySRemInstGiven operands for an SRem, fold the result or return null.
simplifySelectInstGiven operands for a SelectInst, fold the result or return null.
simplifyShlInstGiven operands for a Shl, fold the result or return null.
simplifyShuffleVectorInstGiven operands for a ShuffleVectorInst, fold the result or return null.
simplifySubInstGiven operands for a Sub, fold the result or return null.
simplifyUDivInstGiven operands for a UDiv, fold the result or return null.
simplifyURemInstGiven operands for a URem, fold the result or return null.
simplifyWithOpReplacedSee if V simplifies when its operand Op is replaced with RepOp.
simplifyXorInstGiven operands for an Xor, fold the result or return null.
stripNullTestConst overload of stripNullTest.
stripNullTestReturns the inner value X if the expression has the form f(X) where f(X) == 0 if and only if X == 0, otherwise returns nullptr.
tryEnforceAlignmentTry to raise a controlled object's alignment to a preferred value.
wrapWrap an array of Value pointers as opaque LLVMValueRef values.
wrapConvert a Value pointer to an opaque LLVMValueRef.
AA::getWithTypeTry to convert V to type Ty without introducing new instructions.
AA::isValidInScopeReturn true if V is a valid value in Scope, that is a constant or an instruction/argument of Scope.
PatternMatch::m_CheckedFpMatch a float or vector where CheckFn(ele) is true, binding the constant. For vectors, poison elements are assumed to match.
PatternMatch::m_CheckedIntMatch an integer or vector where CheckFn(ele) is true, binding the constant. For vectors, poison elements are assumed to match.
PatternMatch::m_ConstantMatch a Constant, capturing the value if we match.
PatternMatch::m_DeferredMatch a deferred const Value* determined later in the same match expression.
PatternMatch::m_DeferredMatch a deferred Value* determined later in the same match expression.
PatternMatch::m_ImmConstantMatch an immediate Constant, capturing the value if we match.
PatternMatch::m_SpecificMatch if we have a specific specified value.
PatternMatch::m_ValueMatch against the nested pattern, and capture the value if we match.
PatternMatch::m_ValueMatch a const value, capturing it if we match.
PatternMatch::m_ValueMatch against the nested pattern, and capture the value if we match.
PatternMatch::m_ValueMatch a value, capturing it if we match.
VNCoercion::canCoerceMustAliasedValueToLoadReturn true if CoerceAvailableValueToLoadType would succeed if it was called.
VNCoercion::coerceAvailableValueToLoadTypeTry to coerce a stored value to a must-aliased load of a different type.
VNCoercion::getConstantValueForLoadExtract a constant load value from a constant store or load at an offset.
VNCoercion::getValueForLoadExtract bits for a load from a clobbering store or load at a given offset.
instrumentor::evaluateFilterEvaluate a filter expression for an instrumentation opportunity.
objcarc::GetARCInstKindMap V to its ARCInstKind equivalence class.
objcarc::GetArgRCIdentityRootAssuming the given instruction is one of the special calls such as objc_retain or objc_release, return the RCIdentity root of the argument of the call.
objcarc::GetBasicARCInstKindDetermine which objc runtime call instruction class V belongs to.
objcarc::GetRCIdentityRootReturn the RCIdentity root of value V.
objcarc::GetRCIdentityRootReturn the non-const RCIdentity root of value V.
objcarc::GetUnderlyingObjCPtrReturn the underlying ObjC object pointer for V.
objcarc::GetUnderlyingObjCPtrCachedA wrapper for GetUnderlyingObjCPtr used for results memoization.
objcarc::IsNullOrUndefReturn true if V is a null pointer constant or undef.
objcarc::IsObjCIdentifiedObjectReturn true if this value refers to a distinct and identifiable object.
objcarc::IsPotentialRetainableObjPtrTest whether Op may be a retainable object pointer using alias analysis.
objcarc::IsPotentialRetainableObjPtrTest whether the given value is possible a retainable object pointer.