llvm::Argument

This class represents an incoming formal argument to a Function.

Synopsis

Declared in <llvm/IR/Argument.h>

class Argument final
    : public Value

Description

A formal argument, since it is formal'', does not contain an actual value but instead represents the type, argument number, and attributes of an argument for a specific function. When used in the body of said function, the argument of course represents the value of the actual argument that the function was called with.

Base Classes

NameDescription
ValueLLVM Value Representation

Type Aliases

NameDescription
const_use_iterator Const iterator over this value's uses.
const_user_iterator Const iterator over this value's users.
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
Argument [constructor]Argument constructor.
operator= [deleted]Values are identity objects and cannot be copy-assigned.
DoPHITranslation DoPHITranslation overloads
addAttr Add an attribute to this argument.
addAttrs Add attributes to an argument.
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.
deleteValue Delete a pointer to a generic Value.
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()
getArgNo Return the index of this formal argument in its containing function.
getAttribute Return the attribute object for the given kind.
getAttributes Return the attribute set attached to this argument.
getContext All values hold a context through their type.
getDeadOnReturnInfo Returns information on the memory marked dead_on_return for the argument.
getDereferenceableBytes If this argument has the dereferenceable attribute, return the number of bytes known to be dereferenceable. Otherwise, zero is returned.
getDereferenceableOrNullBytes If this argument has the dereferenceable_or_null attribute, return the number of bytes known to be dereferenceable. Otherwise, zero is returned.
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.
getNoFPClass If this argument has nofpclass attribute, return the mask representing disallowed floating-point values. Otherwise, fcNone is returned.
getNumUses This method computes the number of uses of this Value.
getParamAlign If this is a byval or inalloca argument, return its alignment.
getParamByRefType If this is a byref argument, return its type.
getParamByValType If this is a byval argument, return its type.
getParamInAllocaType If this is an inalloca argument, return its type.
getParamStackAlign If this argument has the alignstack attribute, return the requested stack alignment. Otherwise, return an empty alignment.
getParamStructRetType If this is an sret argument, return its type.
getParent Return the function that owns this argument.
getPassPointeeByValueCopySize If this argument satisfies has hasPassPointeeByValueAttr, return the in-memory ABI size copied to the stack for the call. Otherwise, return 0.
getPointeeInMemoryValueType If hasPointeeInMemoryValueAttr returns true, the in-memory ABI type is returned. Otherwise, nullptr.
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.
getRange If this argument has a range attribute, return the value range of the argument. Otherwise, std::nullopt is returned.
getRawSubclassOptionalData Return the raw optional flags value contained in this value.
getSingleUndroppableUse getSingleUndroppableUse overloads
getType All values are typed, get the type of this value.
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.
hasAttribute hasAttribute overloads
hasByRefAttr Return true if this argument has the byref attribute.
hasByValAttr Return true if this argument has the byval attribute.
hasInAllocaAttr Return true if this argument has the inalloca attribute.
hasInRegAttr Return true if this argument has the inreg attribute.
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.
hasNestAttr Return true if this argument has the nest attribute.
hasNoAliasAttr Return true if this argument has the noalias attribute.
hasNoCaptureAttr Return true if this argument has the nocapture attribute.
hasNoFreeAttr Return true if this argument has the nofree attribute.
hasNonNullAttr Return true if this argument has the nonnull attribute.
hasOneUse Return true if there is exactly one use of this value.
hasOneUser Return true if there is exactly one user of this value.
hasPassPointeeByValueCopyAttr Return true if this argument has the byval, inalloca, or preallocated attribute.
hasPointeeInMemoryValueAttr Return true if this argument has the byval, sret, inalloca, preallocated, or byref attribute.
hasPreallocatedAttr Return true if this argument has the preallocated attribute.
hasReturnedAttr Return true if this argument has the returned attribute.
hasSExtAttr Return true if this argument has the sext attribute.
hasStructRetAttr Return true if this argument has the sret attribute.
hasSwiftErrorAttr Return true if this argument has the swifterror attribute.
hasSwiftSelfAttr Return true if this argument has the swiftself attribute.
hasUseList Check if this Value has a use-list.
hasValueHandle Return true if there is a value handle associated with this value.
hasZExtAttr Return true if this argument has the zext attribute.
isSwiftError Return true if this value is a swifterror value.
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.
onlyReadsMemory Return true if this argument has the readonly or readnone attribute.
print print overloads
printAsOperand printAsOperand overloads
removeAttr Remove attributes from an argument.
removeAttrs Remove attributes from this argument.
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.
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.
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.
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

Static Member Functions

NameDescription
classof Method for support type inquiry through isa, cast, and dyn_cast.
dropDroppableUse Remove the droppable use U.

Static Data Members

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

Protected Enums

NameDescription
Unnamed enum The number of operands in the subclass.

Protected Member Functions

NameDescription
addMetadata addMetadata overloads
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.
setMetadata setMetadata overloads
setValueSubclassData Set the opaque subclass data bits stored in this value.

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.

Friends

NameDescription
llvm::FunctionA single function or procedure in LLVM IR.

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.
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.
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.
MapValueLook up or compute a value in the value map.
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.
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.
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.
getObjectSizeCompute the size of the object pointed by Ptr.
getOrEnforceKnownAlignmentReturn a known alignment for a value, optionally raising it first.
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.
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.
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.
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.
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.
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_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_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::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.