| 
    LLVM 22.0.0git
    
   | 
 
GetElementPtrConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement getelementptr constant exprs. More...
#include "IR/ConstantsContext.h"
Public Member Functions | |
| Type * | getSourceElementType () const | 
| Type * | getResultElementType () const | 
| std::optional< ConstantRange > | getInRange () const | 
| DECLARE_TRANSPARENT_OPERAND_ACCESSORS (Value) | |
| Transparently provide more efficient getOperand methods.   | |
| Public Member Functions inherited from llvm::ConstantExpr | |
| DECLARE_TRANSPARENT_OPERAND_ACCESSORS (Constant) | |
| Transparently provide more efficient getOperand methods.   | |
| LLVM_ABI bool | isCast () const | 
| Return true if this is a convert constant expression.   | |
| unsigned | getOpcode () const | 
| Return the opcode at the root of this constant expression.   | |
| LLVM_ABI ArrayRef< int > | getShuffleMask () const | 
| Assert that this is a shufflevector and return the mask.   | |
| LLVM_ABI Constant * | getShuffleMaskForBitcode () const | 
| Assert that this is a shufflevector and return the mask.   | |
| LLVM_ABI const char * | getOpcodeName () const | 
| Return a string representation for an opcode.   | |
| Constant * | getWithOperands (ArrayRef< Constant * > Ops) const | 
| This returns the current constant expression with the operands replaced with the specified values.   | |
| LLVM_ABI Constant * | getWithOperands (ArrayRef< Constant * > Ops, Type *Ty, bool OnlyIfReduced=false, Type *SrcTy=nullptr) const | 
| Get the current expression with the operands replaced.   | |
| LLVM_ABI Instruction * | getAsInstruction () const | 
| Returns an Instruction which implements the same operation as this ConstantExpr.   | |
| Public Member Functions inherited from llvm::Constant | |
| void | operator= (const Constant &)=delete | 
| Constant (const Constant &)=delete | |
| LLVM_ABI bool | isNullValue () const | 
| Return true if this is the value that would be returned by getNullValue.   | |
| LLVM_ABI bool | isOneValue () const | 
| Returns true if the value is one.   | |
| LLVM_ABI bool | isNotOneValue () const | 
| Return true if the value is not the one value, or, for vectors, does not contain one value elements.   | |
| LLVM_ABI bool | isAllOnesValue () const | 
| Return true if this is the value that would be returned by getAllOnesValue.   | |
| LLVM_ABI bool | isNegativeZeroValue () const | 
| Return true if the value is what would be returned by getZeroValueForNegation.   | |
| LLVM_ABI bool | isZeroValue () const | 
| Return true if the value is negative zero or null value.   | |
| LLVM_ABI bool | isNotMinSignedValue () const | 
| Return true if the value is not the smallest signed value, or, for vectors, does not contain smallest signed value elements.   | |
| LLVM_ABI bool | isMinSignedValue () const | 
| Return true if the value is the smallest signed value.   | |
| LLVM_ABI bool | isFiniteNonZeroFP () const | 
| 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.   | |
| LLVM_ABI bool | isNormalFP () const | 
| Return true if this is a normal (as opposed to denormal, infinity, nan, or zero) floating-point scalar constant or a vector constant with all normal elements.   | |
| LLVM_ABI bool | hasExactInverseFP () const | 
| Return true if this scalar has an exact multiplicative inverse or this vector has an exact multiplicative inverse for each element in the vector.   | |
| LLVM_ABI bool | isNaN () const | 
| Return true if this is a floating-point NaN constant or a vector floating-point constant with all NaN elements.   | |
| LLVM_ABI bool | isElementWiseEqual (Value *Y) const | 
| Return true if this constant and a constant 'Y' are element-wise equal.   | |
| LLVM_ABI bool | containsUndefOrPoisonElement () const | 
| Return true if this is a vector constant that includes any undef or poison elements.   | |
| LLVM_ABI bool | containsPoisonElement () const | 
| Return true if this is a vector constant that includes any poison elements.   | |
| LLVM_ABI bool | containsUndefElement () const | 
| Return true if this is a vector constant that includes any strictly undef (not poison) elements.   | |
| LLVM_ABI bool | containsConstantExpression () const | 
| Return true if this is a fixed width vector constant that includes any constant expressions.   | |
| LLVM_ABI bool | isThreadDependent () const | 
| Return true if the value can vary between threads.   | |
| LLVM_ABI bool | isDLLImportDependent () const | 
| Return true if the value is dependent on a dllimport variable.   | |
| LLVM_ABI bool | isConstantUsed () const | 
| Return true if the constant has users other than constant expressions and other dangling things.   | |
| LLVM_ABI bool | needsRelocation () const | 
| This method classifies the entry according to whether or not it may generate a relocation entry (either static or dynamic).   | |
| LLVM_ABI bool | needsDynamicRelocation () const | 
| LLVM_ABI Constant * | getAggregateElement (unsigned Elt) const | 
| For aggregates (struct/array/vector) return the constant that corresponds to the specified element if possible, or null if not.   | |
| LLVM_ABI Constant * | getAggregateElement (Constant *Elt) const | 
| LLVM_ABI Constant * | getSplatValue (bool AllowPoison=false) const | 
| If all elements of the vector constant have the same value, return that value.   | |
| LLVM_ABI const APInt & | getUniqueInteger () const | 
| 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.   | |
| LLVM_ABI ConstantRange | toConstantRange () const | 
| Convert constant to an approximate constant range.   | |
| LLVM_ABI void | destroyConstant () | 
| Called if some element of this constant is no longer valid.   | |
| LLVM_ABI void | handleOperandChange (Value *, Value *) | 
| This method is a special form of User::replaceUsesOfWith (which does not work on constants) that does work on constants.   | |
| LLVM_ABI void | removeDeadConstantUsers () const | 
| If there are any dead constant users dangling off of this constant, remove them.   | |
| LLVM_ABI bool | hasOneLiveUse () const | 
| Return true if the constant has exactly one live use.   | |
| LLVM_ABI bool | hasZeroLiveUses () const | 
| Return true if the constant has no live uses.   | |
| const Constant * | stripPointerCasts () const | 
| Constant * | stripPointerCasts () | 
| LLVM_ABI bool | isManifestConstant () const | 
| Return true if a constant is ConstantData or a ConstantAggregate or ConstantExpr that contain only ConstantData.   | |
| Public Member Functions inherited from llvm::User | |
| User (const User &)=delete | |
| LLVM_ABI void | operator delete (void *Usr) | 
| Free memory allocated for User and Use objects.   | |
| void | operator delete (void *Usr, HungOffOperandsAllocMarker) | 
| Placement delete - required by std, called if the ctor throws.   | |
| void | operator delete (void *Usr, IntrusiveOperandsAllocMarker) | 
| Placement delete - required by std, called if the ctor throws.   | |
| void | operator delete (void *Usr, IntrusiveOperandsAndDescriptorAllocMarker) | 
| Placement delete - required by std, called if the ctor throws.   | |
| const Use * | getOperandList () const | 
| Use * | getOperandList () | 
| Value * | getOperand (unsigned i) const | 
| void | setOperand (unsigned i, Value *Val) | 
| const Use & | getOperandUse (unsigned i) const | 
| Use & | getOperandUse (unsigned i) | 
| unsigned | getNumOperands () const | 
| LLVM_ABI ArrayRef< const uint8_t > | getDescriptor () const | 
| Returns the descriptor co-allocated with this User instance.   | |
| LLVM_ABI MutableArrayRef< uint8_t > | getDescriptor () | 
| Returns the descriptor co-allocated with this User instance.   | |
| void | setNumHungOffUseOperands (unsigned NumOps) | 
| Subclasses with hung off uses need to manage the operand count themselves.   | |
| LLVM_ABI bool | isDroppable () const | 
| A droppable user is a user for which uses can be dropped without affecting correctness and should be dropped rather than preventing a transformation from happening.   | |
| op_iterator | op_begin () | 
| const_op_iterator | op_begin () const | 
| op_iterator | op_end () | 
| const_op_iterator | op_end () const | 
| op_range | operands () | 
| const_op_range | operands () const | 
| value_op_iterator | value_op_begin () | 
| value_op_iterator | value_op_end () | 
| iterator_range< value_op_iterator > | operand_values () | 
| const_value_op_iterator | value_op_begin () const | 
| const_value_op_iterator | value_op_end () const | 
| iterator_range< const_value_op_iterator > | operand_values () const | 
| void | dropAllReferences () | 
| Drop all references to operands.   | |
| LLVM_ABI bool | replaceUsesOfWith (Value *From, Value *To) | 
| Replace uses of one Value with another.   | |
| Public Member Functions inherited from llvm::Value | |
| Value (const Value &)=delete | |
| Value & | operator= (const Value &)=delete | 
| LLVM_ABI void | deleteValue () | 
| Delete a pointer to a generic Value.   | |
| LLVM_ABI void | dump () const | 
| Support for debugging, callable in GDB: V->dump()   | |
| Type * | getType () const | 
| All values are typed, get the type of this value.   | |
| LLVM_ABI LLVMContext & | getContext () const | 
| All values hold a context through their type.   | |
| bool | hasName () const | 
| LLVM_ABI ValueName * | getValueName () const | 
| LLVM_ABI void | setValueName (ValueName *VN) | 
| LLVM_ABI StringRef | getName () const | 
| Return a constant reference to the value's name.   | |
| LLVM_ABI void | setName (const Twine &Name) | 
| Change the name of the value.   | |
| LLVM_ABI void | takeName (Value *V) | 
| Transfer the name from V to this value.   | |
| LLVM_ABI std::string | getNameOrAsOperand () const | 
| LLVM_ABI void | replaceAllUsesWith (Value *V) | 
| Change all uses of this to point to a new Value.   | |
| LLVM_ABI void | replaceNonMetadataUsesWith (Value *V) | 
| Change non-metadata uses of this to point to a new Value.   | |
| LLVM_ABI void | replaceUsesWithIf (Value *New, llvm::function_ref< bool(Use &U)> ShouldReplace) | 
| Go through the uses list for this definition and make each use point to "V" if the callback ShouldReplace returns true for the given Use.   | |
| LLVM_ABI void | replaceUsesOutsideBlock (Value *V, BasicBlock *BB) | 
| replaceUsesOutsideBlock - Go through the uses list for this definition and make each use point to "V" instead of "this" when the use is outside the block.   | |
| LLVM_ABI void | assertModuleIsMaterializedImpl () const | 
| void | assertModuleIsMaterialized () const | 
| bool | hasUseList () const | 
| Check if this Value has a use-list.   | |
| bool | use_empty () const | 
| bool | materialized_use_empty () const | 
| use_iterator | materialized_use_begin () | 
| const_use_iterator | materialized_use_begin () const | 
| use_iterator | use_begin () | 
| const_use_iterator | use_begin () const | 
| use_iterator | use_end () | 
| const_use_iterator | use_end () const | 
| iterator_range< use_iterator > | materialized_uses () | 
| iterator_range< const_use_iterator > | materialized_uses () const | 
| iterator_range< use_iterator > | uses () | 
| iterator_range< const_use_iterator > | uses () const | 
| bool | user_empty () const | 
| user_iterator | materialized_user_begin () | 
| const_user_iterator | materialized_user_begin () const | 
| user_iterator | user_begin () | 
| const_user_iterator | user_begin () const | 
| user_iterator | user_end () | 
| const_user_iterator | user_end () const | 
| User * | user_back () | 
| const User * | user_back () const | 
| iterator_range< user_iterator > | materialized_users () | 
| iterator_range< const_user_iterator > | materialized_users () const | 
| iterator_range< user_iterator > | users () | 
| iterator_range< const_user_iterator > | users () const | 
| bool | hasOneUse () const | 
| Return true if there is exactly one use of this value.   | |
| LLVM_ABI bool | hasNUses (unsigned N) const | 
| Return true if this Value has exactly N uses.   | |
| LLVM_ABI bool | hasNUsesOrMore (unsigned N) const | 
| Return true if this value has N uses or more.   | |
| LLVM_ABI bool | hasOneUser () const | 
| Return true if there is exactly one user of this value.   | |
| LLVM_ABI Use * | getSingleUndroppableUse () | 
| Return true if there is exactly one use of this value that cannot be dropped.   | |
| const Use * | getSingleUndroppableUse () const | 
| LLVM_ABI User * | getUniqueUndroppableUser () | 
| Return true if there is exactly one unique user of this value that cannot be dropped (that user can have multiple uses of this value).   | |
| const User * | getUniqueUndroppableUser () const | 
| LLVM_ABI bool | hasNUndroppableUses (unsigned N) const | 
| Return true if there this value.   | |
| LLVM_ABI bool | hasNUndroppableUsesOrMore (unsigned N) const | 
| Return true if this value has N uses or more.   | |
| LLVM_ABI void | dropDroppableUses (llvm::function_ref< bool(const Use *)> ShouldDrop=[](const Use *) { return true;}) | 
| Remove every uses that can safely be removed.   | |
| LLVM_ABI void | dropDroppableUsesIn (User &Usr) | 
Remove every use of this value in User that can safely be removed.   | |
| LLVM_ABI bool | isUsedInBasicBlock (const BasicBlock *BB) const | 
| Check if this value is used in the specified basic block.   | |
| LLVM_ABI unsigned | getNumUses () const | 
| This method computes the number of uses of this Value.   | |
| void | addUse (Use &U) | 
| This method should only be used by the Use class.   | |
| unsigned | getValueID () const | 
| Return an ID for the concrete type of this object.   | |
| unsigned | getRawSubclassOptionalData () const | 
| Return the raw optional flags value contained in this value.   | |
| void | clearSubclassOptionalData () | 
| Clear the optional flags contained in this value.   | |
| bool | hasSameSubclassOptionalData (const Value *V) const | 
| Check the optional flags for equality.   | |
| bool | hasValueHandle () const | 
| Return true if there is a value handle associated with this value.   | |
| bool | isUsedByMetadata () const | 
| Return true if there is metadata referencing this value.   | |
| LLVM_ABI bool | isSwiftError () const | 
| Return true if this value is a swifterror value.   | |
| LLVM_ABI const Value * | stripPointerCasts () const | 
| Strip off pointer casts, all-zero GEPs and address space casts.   | |
| Value * | stripPointerCasts () | 
| LLVM_ABI const Value * | stripPointerCastsAndAliases () const | 
| Strip off pointer casts, all-zero GEPs, address space casts, and aliases.   | |
| Value * | stripPointerCastsAndAliases () | 
| LLVM_ABI const Value * | stripPointerCastsSameRepresentation () const | 
| Strip off pointer casts, all-zero GEPs and address space casts but ensures the representation of the result stays the same.   | |
| Value * | stripPointerCastsSameRepresentation () | 
| LLVM_ABI const Value * | stripPointerCastsForAliasAnalysis () const | 
| Strip off pointer casts, all-zero GEPs, single-argument phi nodes and invariant group info.   | |
| Value * | stripPointerCastsForAliasAnalysis () | 
| LLVM_ABI const Value * | stripInBoundsConstantOffsets () const | 
| Strip off pointer casts and all-constant inbounds GEPs.   | |
| Value * | stripInBoundsConstantOffsets () | 
| LLVM_ABI const Value * | stripAndAccumulateConstantOffsets (const DataLayout &DL, APInt &Offset, bool AllowNonInbounds, bool AllowInvariantGroup=false, function_ref< bool(Value &Value, APInt &Offset)> ExternalAnalysis=nullptr, bool LookThroughIntToPtr=false) const | 
| Accumulate the constant offset this value has compared to a base pointer.   | |
| Value * | stripAndAccumulateConstantOffsets (const DataLayout &DL, APInt &Offset, bool AllowNonInbounds, bool AllowInvariantGroup=false, function_ref< bool(Value &Value, APInt &Offset)> ExternalAnalysis=nullptr, bool LookThroughIntToPtr=false) | 
| const Value * | stripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset) const | 
| This is a wrapper around stripAndAccumulateConstantOffsets with the in-bounds requirement set to false.   | |
| Value * | stripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset) | 
| LLVM_ABI const Value * | stripInBoundsOffsets (function_ref< void(const Value *)> Func=[](const Value *) {}) const | 
| Strip off pointer casts and inbounds GEPs.   | |
| Value * | stripInBoundsOffsets (function_ref< void(const Value *)> Func=[](const Value *) {}) | 
| LLVM_ABI std::optional< int64_t > | getPointerOffsetFrom (const Value *Other, const DataLayout &DL) const | 
If this ptr is provably equal to Other plus a constant offset, return that offset in bytes.   | |
| LLVM_ABI bool | canBeFreed () const | 
| Return true if the memory object referred to by V can by freed in the scope for which the SSA value defining the allocation is statically defined.   | |
| LLVM_ABI uint64_t | getPointerDereferenceableBytes (const DataLayout &DL, bool &CanBeNull, bool &CanBeFreed) const | 
| Returns the number of bytes known to be dereferenceable for the pointer value.   | |
| LLVM_ABI Align | getPointerAlignment (const DataLayout &DL) const | 
| Returns an alignment of the pointer value.   | |
| LLVM_ABI const Value * | DoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB) const | 
| Translate PHI node to its predecessor from the given basic block.   | |
| Value * | DoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB) | 
| void | mutateType (Type *Ty) | 
| Mutate the type of this Value to be of the specified type.   | |
| template<class Compare> | |
| void | sortUseList (Compare Cmp) | 
| Sort the use-list.   | |
| LLVM_ABI void | reverseUseList () | 
| Reverse the use-list.   | |
| LLVM_ABI void | print (raw_ostream &O, bool IsForDebug=false) const | 
| Implement operator<< on Value.   | |
| LLVM_ABI void | print (raw_ostream &O, ModuleSlotTracker &MST, bool IsForDebug=false) const | 
| LLVM_ABI void | printAsOperand (raw_ostream &O, bool PrintType=true, const Module *M=nullptr) const | 
| Print the name of this Value out to the specified raw_ostream.   | |
| LLVM_ABI void | printAsOperand (raw_ostream &O, bool PrintType, ModuleSlotTracker &MST) const | 
Static Public Member Functions | |
| static GetElementPtrConstantExpr * | Create (Type *SrcElementTy, Constant *C, ArrayRef< Constant * > IdxList, Type *DestTy, unsigned Flags, std::optional< ConstantRange > InRange) | 
| static bool | classof (const ConstantExpr *CE) | 
| static bool | classof (const Value *V) | 
| Static Public Member Functions inherited from llvm::ConstantExpr | |
| static LLVM_ABI Constant * | getAlignOf (Type *Ty) | 
| getAlignOf constant expr - computes the alignment of a type in a target independent way (Note: the return type is an i64).   | |
| static LLVM_ABI Constant * | getSizeOf (Type *Ty) | 
| getSizeOf constant expr - computes the (alloc) size of a type (in address-units, not bits) in a target independent way (Note: the return type is an i64).   | |
| static LLVM_ABI Constant * | getNeg (Constant *C, bool HasNSW=false) | 
| static LLVM_ABI Constant * | getNot (Constant *C) | 
| static LLVM_ABI Constant * | getAdd (Constant *C1, Constant *C2, bool HasNUW=false, bool HasNSW=false) | 
| static LLVM_ABI Constant * | getSub (Constant *C1, Constant *C2, bool HasNUW=false, bool HasNSW=false) | 
| static LLVM_ABI Constant * | getXor (Constant *C1, Constant *C2) | 
| static LLVM_ABI Constant * | getTrunc (Constant *C, Type *Ty, bool OnlyIfReduced=false) | 
| static LLVM_ABI Constant * | getPtrToAddr (Constant *C, Type *Ty, bool OnlyIfReduced=false) | 
| static LLVM_ABI Constant * | getPtrToInt (Constant *C, Type *Ty, bool OnlyIfReduced=false) | 
| static LLVM_ABI Constant * | getIntToPtr (Constant *C, Type *Ty, bool OnlyIfReduced=false) | 
| static LLVM_ABI Constant * | getBitCast (Constant *C, Type *Ty, bool OnlyIfReduced=false) | 
| static LLVM_ABI Constant * | getAddrSpaceCast (Constant *C, Type *Ty, bool OnlyIfReduced=false) | 
| static Constant * | getNSWNeg (Constant *C) | 
| static Constant * | getNSWAdd (Constant *C1, Constant *C2) | 
| static Constant * | getNUWAdd (Constant *C1, Constant *C2) | 
| static Constant * | getNSWSub (Constant *C1, Constant *C2) | 
| static Constant * | getNUWSub (Constant *C1, Constant *C2) | 
| static LLVM_ABI Constant * | getExactLogBase2 (Constant *C) | 
| If C is a scalar/fixed width vector of known powers of 2, then this function returns a new scalar/fixed width vector obtained from logBase2 of C.   | |
| static LLVM_ABI Constant * | getBinOpIdentity (unsigned Opcode, Type *Ty, bool AllowRHSConstant=false, bool NSZ=false) | 
| Return the identity constant for a binary opcode.   | |
| static LLVM_ABI Constant * | getIntrinsicIdentity (Intrinsic::ID, Type *Ty) | 
| static LLVM_ABI Constant * | getIdentity (Instruction *I, Type *Ty, bool AllowRHSConstant=false, bool NSZ=false) | 
| Return the identity constant for a binary or intrinsic Instruction.   | |
| static LLVM_ABI Constant * | getBinOpAbsorber (unsigned Opcode, Type *Ty, bool AllowLHSConstant=false) | 
| Return the absorbing element for the given binary operation, i.e.   | |
| static LLVM_ABI Constant * | getCast (unsigned ops, Constant *C, Type *Ty, bool OnlyIfReduced=false) | 
| Convenience function for getting a Cast operation.   | |
| static LLVM_ABI Constant * | getTruncOrBitCast (Constant *C, Type *Ty) | 
| static LLVM_ABI Constant * | getPointerCast (Constant *C, Type *Ty) | 
| Create a BitCast, AddrSpaceCast, or a PtrToInt cast constant expression.   | |
| static LLVM_ABI Constant * | getPointerBitCastOrAddrSpaceCast (Constant *C, Type *Ty) | 
| Create a BitCast or AddrSpaceCast for a pointer type depending on the address space.   | |
| static LLVM_ABI Constant * | get (unsigned Opcode, Constant *C1, Constant *C2, unsigned Flags=0, Type *OnlyIfReducedTy=nullptr) | 
| get - Return a binary or shift operator constant expression, folding if possible.   | |
| static Constant * | getGetElementPtr (Type *Ty, Constant *C, ArrayRef< Constant * > IdxList, GEPNoWrapFlags NW=GEPNoWrapFlags::none(), std::optional< ConstantRange > InRange=std::nullopt, Type *OnlyIfReducedTy=nullptr) | 
| Getelementptr form.   | |
| static Constant * | getGetElementPtr (Type *Ty, Constant *C, Constant *Idx, GEPNoWrapFlags NW=GEPNoWrapFlags::none(), std::optional< ConstantRange > InRange=std::nullopt, Type *OnlyIfReducedTy=nullptr) | 
| static LLVM_ABI Constant * | getGetElementPtr (Type *Ty, Constant *C, ArrayRef< Value * > IdxList, GEPNoWrapFlags NW=GEPNoWrapFlags::none(), std::optional< ConstantRange > InRange=std::nullopt, Type *OnlyIfReducedTy=nullptr) | 
| static Constant * | getInBoundsGetElementPtr (Type *Ty, Constant *C, ArrayRef< Constant * > IdxList) | 
| Create an "inbounds" getelementptr.   | |
| static Constant * | getInBoundsGetElementPtr (Type *Ty, Constant *C, Constant *Idx) | 
| static Constant * | getInBoundsGetElementPtr (Type *Ty, Constant *C, ArrayRef< Value * > IdxList) | 
| static LLVM_ABI Constant * | getExtractElement (Constant *Vec, Constant *Idx, Type *OnlyIfReducedTy=nullptr) | 
| static LLVM_ABI Constant * | getInsertElement (Constant *Vec, Constant *Elt, Constant *Idx, Type *OnlyIfReducedTy=nullptr) | 
| static LLVM_ABI Constant * | getShuffleVector (Constant *V1, Constant *V2, ArrayRef< int > Mask, Type *OnlyIfReducedTy=nullptr) | 
| static LLVM_ABI bool | isDesirableBinOp (unsigned Opcode) | 
| Whether creating a constant expression for this binary operator is desirable.   | |
| static LLVM_ABI bool | isSupportedBinOp (unsigned Opcode) | 
| Whether creating a constant expression for this binary operator is supported.   | |
| static LLVM_ABI bool | isDesirableCastOp (unsigned Opcode) | 
| Whether creating a constant expression for this cast is desirable.   | |
| static LLVM_ABI bool | isSupportedCastOp (unsigned Opcode) | 
| Whether creating a constant expression for this cast is supported.   | |
| static bool | isSupportedGetElementPtr (const Type *SrcElemTy) | 
| Whether creating a constant expression for this getelementptr type is supported.   | |
| static bool | classof (const Value *V) | 
| Methods for support type inquiry through isa, cast, and dyn_cast:   | |
| Static Public Member Functions inherited from llvm::Constant | |
| static bool | classof (const Value *V) | 
| static LLVM_ABI Constant * | getNullValue (Type *Ty) | 
| Constructor to create a '0' constant of arbitrary type.   | |
| static LLVM_ABI Constant * | getAllOnesValue (Type *Ty) | 
| static LLVM_ABI Constant * | getIntegerValue (Type *Ty, const APInt &V) | 
| Return the value for an integer or pointer constant, or a vector thereof, with the given scalar value.   | |
| static LLVM_ABI Constant * | replaceUndefsWith (Constant *C, Constant *Replacement) | 
| Try to replace undefined constant C or undefined elements in C with Replacement.   | |
| static LLVM_ABI Constant * | mergeUndefsWith (Constant *C, Constant *Other) | 
| Merges undefs of a Constant with another Constant, along with the undefs already present.   | |
| Static Public Member Functions inherited from llvm::User | |
| static bool | classof (const Value *V) | 
| Static Public Member Functions inherited from llvm::Value | |
| static LLVM_ABI void | dropDroppableUse (Use &U) | 
Remove the droppable use U.   | |
Additional Inherited Members | |
| Public Types inherited from llvm::User | |
| using | op_iterator = Use* | 
| using | const_op_iterator = const Use* | 
| using | op_range = iterator_range<op_iterator> | 
| using | const_op_range = iterator_range<const_op_iterator> | 
| Public Types inherited from llvm::Value | |
| enum | ValueTy | 
| Concrete subclass of this.  More... | |
| using | use_iterator = use_iterator_impl<Use> | 
| using | const_use_iterator = use_iterator_impl<const Use> | 
| using | user_iterator = user_iterator_impl<User> | 
| using | const_user_iterator = user_iterator_impl<const User> | 
| Static Public Attributes inherited from llvm::Value | |
| static constexpr unsigned | MaxAlignmentExponent = 32 | 
| The maximum alignment for instructions.   | |
| static constexpr uint64_t | MaximumAlignment = 1ULL << MaxAlignmentExponent | 
| Protected Types inherited from llvm::Value | |
| enum | : unsigned { NumUserOperandsBits = 27 } | 
| The number of operands in the subclass.  More... | |
| Protected Member Functions inherited from llvm::ConstantExpr | |
| ConstantExpr (Type *ty, unsigned Opcode, AllocInfo AllocInfo) | |
| ~ConstantExpr ()=default | |
| Protected Member Functions inherited from llvm::Constant | |
| Constant (Type *ty, ValueTy vty, AllocInfo AllocInfo) | |
| ~Constant ()=default | |
| Protected Member Functions inherited from llvm::User | |
| void * | operator new (size_t Size)=delete | 
| LLVM_ABI void * | operator new (size_t Size, HungOffOperandsAllocMarker) | 
| Allocate a User with an operand pointer co-allocated.   | |
| LLVM_ABI void * | operator new (size_t Size, IntrusiveOperandsAllocMarker allocTrait) | 
| Allocate a User with the operands co-allocated.   | |
| LLVM_ABI void * | operator new (size_t Size, IntrusiveOperandsAndDescriptorAllocMarker allocTrait) | 
| Allocate a User with the operands co-allocated.   | |
| User (Type *ty, unsigned vty, AllocInfo AllocInfo) | |
| LLVM_ABI void | allocHungoffUses (unsigned N, bool IsPhi=false) | 
| Allocate the array of Uses, followed by a pointer (with bottom bit set) to the User.   | |
| LLVM_ABI void | growHungoffUses (unsigned N, bool IsPhi=false) | 
| Grow the number of hung off uses.   | |
| ~User ()=default | |
| template<int Idx> | |
| Use & | Op () | 
| template<int Idx> | |
| const Use & | Op () const | 
| Protected Member Functions inherited from llvm::Value | |
| LLVM_ABI | Value (Type *Ty, unsigned scid) | 
| LLVM_ABI | ~Value () | 
| Value's destructor should be virtual by design, but that would require that Value and all of its subclasses have a vtable that effectively duplicates the information in the value ID.   | |
| LLVM_ABI void | getAllMetadata (SmallVectorImpl< std::pair< unsigned, MDNode * > > &MDs) const | 
Appends all metadata attached to this value to MDs, sorting by KindID.   | |
| bool | hasMetadata () const | 
| Return true if this value has any metadata attached to it.   | |
| LLVM_ABI bool | eraseMetadata (unsigned KindID) | 
| Erase all metadata attachments with the given kind.   | |
| LLVM_ABI void | eraseMetadataIf (function_ref< bool(unsigned, MDNode *)> Pred) | 
| Erase all metadata attachments matching the given predicate.   | |
| LLVM_ABI void | clearMetadata () | 
| Erase all metadata attached to this Value.   | |
| LLVM_ABI MDNode * | getMetadataImpl (unsigned KindID) const | 
| Get metadata for the given kind, if any.   | |
| unsigned short | getSubclassDataFromValue () const | 
| void | setValueSubclassData (unsigned short D) | 
| MDNode * | getMetadata (unsigned KindID) const | 
| Get the current metadata attachments for the given kind, if any.   | |
| LLVM_ABI MDNode * | getMetadata (StringRef Kind) const | 
| LLVM_ABI void | getMetadata (unsigned KindID, SmallVectorImpl< MDNode * > &MDs) const | 
Appends all attachments with the given ID to MDs in insertion order.   | |
| LLVM_ABI void | getMetadata (StringRef Kind, SmallVectorImpl< MDNode * > &MDs) const | 
| bool | hasMetadata (unsigned KindID) const | 
| Return true if this value has the given type of metadata attached.   | |
| bool | hasMetadata (StringRef Kind) const | 
| LLVM_ABI void | setMetadata (unsigned KindID, MDNode *Node) | 
| Set a particular kind of metadata attachment.   | |
| LLVM_ABI void | setMetadata (StringRef Kind, MDNode *Node) | 
| LLVM_ABI void | addMetadata (unsigned KindID, MDNode &MD) | 
| Add a metadata attachment.   | |
| LLVM_ABI void | addMetadata (StringRef Kind, MDNode &MD) | 
| Static Protected Member Functions inherited from llvm::User | |
| template<int Idx, typename U> | |
| static Use & | OpFrom (const U *that) | 
| Protected Attributes inherited from llvm::Value | |
| unsigned char | SubclassOptionalData: 7 | 
| Hold subclass data that can be dropped.   | |
| unsigned | NumUserOperands: NumUserOperandsBits | 
| unsigned | IsUsedByMD: 1 | 
| unsigned | HasName: 1 | 
| unsigned | HasMetadata: 1 | 
| unsigned | HasHungOffUses: 1 | 
| unsigned | HasDescriptor: 1 | 
GetElementPtrConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement getelementptr constant exprs.
Definition at line 196 of file ConstantsContext.h.
      
  | 
  inlinestatic | 
Definition at line 225 of file ConstantsContext.h.
References llvm::ConstantExpr::ConstantExpr().
Referenced by classof().
Definition at line 228 of file ConstantsContext.h.
References llvm::cast(), classof(), and llvm::isa().
      
  | 
  inlinestatic | 
Definition at line 208 of file ConstantsContext.h.
References llvm::CallingConv::C, llvm::ConstantExpr::Constant, and llvm::ArrayRef< T >::size().
Referenced by llvm::ConstantExprKeyType::create().
| llvm::GetElementPtrConstantExpr::DECLARE_TRANSPARENT_OPERAND_ACCESSORS | ( | Value | ) | 
Transparently provide more efficient getOperand methods.
| std::optional< ConstantRange > GetElementPtrConstantExpr::getInRange | ( | ) | const | 
Definition at line 2830 of file Constants.cpp.
| Type * GetElementPtrConstantExpr::getResultElementType | ( | ) | const | 
Definition at line 2826 of file Constants.cpp.
| Type * GetElementPtrConstantExpr::getSourceElementType | ( | ) | const | 
Definition at line 2822 of file Constants.cpp.