class ConstantDataVector
Declaration
class ConstantDataVector : public ConstantDataSequential { /* full declaration omitted */ };
Description
A vector constant whose element type is a simple 1/2/4/8-byte integer or float/double, and whose elements are just simple data values (i.e. ConstantInt/ConstantFP). This Constant node has no operands because it stores all of the elements of the constant as densely packed data, instead of as Value*'s.
Declared at: llvm/include/llvm/IR/Constants.h:753
Inherits from: ConstantDataSequential
Member Variables
- private bool IsSplatSet
- private bool IsSplat
Inherited from Value:
- protected SubclassOptionalData
- protected NumUserOperands
- protected IsUsedByMD
- protected HasName
- protected HasMetadata
- protected HasHungOffUses
- protected HasDescriptor
- public static MaxAlignmentExponent = 32
- public static MaximumAlignment = 1ULL << MaxAlignmentExponent
Method Overview
- public ConstantDataVector(const llvm::ConstantDataVector &)
- private ConstantDataVector(llvm::Type * ty, const char * Data)
- public static bool classof(const llvm::Value * V)
- public static llvm::Constant * get(llvm::LLVMContext & Context, ArrayRef<uint8_t> Elts)
- public static llvm::Constant * get(llvm::LLVMContext & Context, ArrayRef<uint16_t> Elts)
- public static llvm::Constant * get(llvm::LLVMContext & Context, ArrayRef<uint32_t> Elts)
- public static llvm::Constant * get(llvm::LLVMContext & Context, ArrayRef<uint64_t> Elts)
- public static llvm::Constant * get(llvm::LLVMContext & Context, ArrayRef<float> Elts)
- public static llvm::Constant * get(llvm::LLVMContext & Context, ArrayRef<double> Elts)
- public static llvm::Constant * getFP(llvm::Type * ElementType, ArrayRef<uint16_t> Elts)
- public static llvm::Constant * getFP(llvm::Type * ElementType, ArrayRef<uint32_t> Elts)
- public static llvm::Constant * getFP(llvm::Type * ElementType, ArrayRef<uint64_t> Elts)
- public static llvm::Constant * getRaw(llvm::StringRef Data, uint64_t NumElements, llvm::Type * ElementTy)
- public static llvm::Constant * getSplat(unsigned int NumElts, llvm::Constant * Elt)
- public llvm::Constant * getSplatValue() const
- public inline llvm::FixedVectorType * getType() const
- public bool isSplat() const
- private bool isSplatData() const
Inherited from ConstantDataSequential:
- public classof
- public getAsCString
- public getAsString
- public getElementAsAPFloat
- public getElementAsAPInt
- public getElementAsConstant
- public getElementAsDouble
- public getElementAsFloat
- public getElementAsInteger
- public getElementByteSize
- public getElementType
- protected getImpl
- public getNumElements
- public getRawDataValues
- public isCString
- public isElementTypeCompatible
- public isString
Inherited from ConstantData:
Inherited from Constant:
- public classof
- public containsConstantExpression
- public containsPoisonElement
- public containsUndefOrPoisonElement
- public destroyConstant
- public getAggregateElement
- public getAggregateElement
- public getAllOnesValue
- public getIntegerValue
- public getNullValue
- public getSplatValue
- public getUniqueInteger
- public handleOperandChange
- public hasExactInverseFP
- public hasOneLiveUse
- public hasZeroLiveUses
- public isAllOnesValue
- public isConstantUsed
- public isDLLImportDependent
- public isElementWiseEqual
- public isFiniteNonZeroFP
- public isManifestConstant
- public isMinSignedValue
- public isNaN
- public isNegativeZeroValue
- public isNormalFP
- public isNotMinSignedValue
- public isNotOneValue
- public isNullValue
- public isOneValue
- public isThreadDependent
- public isZeroValue
- public mergeUndefsWith
- public needsDynamicRelocation
- public needsRelocation
- public removeDeadConstantUsers
- public replaceUndefsWith
- public stripPointerCasts
- public stripPointerCasts
Inherited from User:
- protected Op
- protected Op
- protected OpFrom
- protected allocHungoffUses
- public classof
- public dropAllReferences
- public getDescriptor
- public getDescriptor
- public getNumOperands
- public getOperand
- public getOperandList
- public getOperandList
- public getOperandUse
- public getOperandUse
- protected growHungoffUses
- public isDroppable
- public op_begin
- public op_begin
- public op_end
- public op_end
- public operand_values
- public operand_values
- public operands
- public operands
- public replaceUsesOfWith
- public setGlobalVariableNumOperands
- public setNumHungOffUseOperands
- public setOperand
- public value_op_begin
- public value_op_begin
- public value_op_end
- public value_op_end
Inherited from Value:
- public DoPHITranslation
- public DoPHITranslation
- protected addMetadata
- protected addMetadata
- public addUse
- public assertModuleIsMaterialized
- public assertModuleIsMaterializedImpl
- public canBeFreed
- protected clearMetadata
- public clearSubclassOptionalData
- public deleteValue
- public dropDroppableUse
- public dropDroppableUses
- public dropDroppableUsesIn
- public dump
- protected eraseMetadata
- protected getAllMetadata
- public getContext
- protected getMetadata
- protected getMetadata
- protected getMetadata
- protected getMetadata
- public getName
- public getNameOrAsOperand
- public getNumUses
- public getPointerAlignment
- public getPointerDereferenceableBytes
- public getRawSubclassOptionalData
- public getSingleUndroppableUse
- public getSingleUndroppableUse
- protected getSubclassDataFromValue
- public getType
- public getUniqueUndroppableUser
- public getUniqueUndroppableUser
- public getValueID
- public getValueName
- protected hasMetadata
- protected hasMetadata
- protected hasMetadata
- public hasNUndroppableUses
- public hasNUndroppableUsesOrMore
- public hasNUses
- public hasNUsesOrMore
- public hasName
- public hasOneUse
- public hasOneUser
- public hasSameSubclassOptionalData
- public hasValueHandle
- public isSwiftError
- public isTransitiveUsedByMetadataOnly
- public isUsedByMetadata
- public isUsedInBasicBlock
- public materialized_use_begin
- public materialized_use_begin
- public materialized_use_empty
- public materialized_user_begin
- public materialized_user_begin
- public materialized_users
- public materialized_users
- public materialized_uses
- public materialized_uses
- public mutateType
- public print
- public print
- public printAsOperand
- public printAsOperand
- public replaceAllUsesWith
- public replaceNonMetadataUsesWith
- public replaceUsesOutsideBlock
- public replaceUsesWithIf
- public reverseUseList
- protected setMetadata
- protected setMetadata
- public setName
- public setValueName
- protected setValueSubclassData
- public sortUseList
- public stripAndAccumulateConstantOffsets
- public stripAndAccumulateConstantOffsets
- public stripAndAccumulateInBoundsConstantOffsets
- public stripAndAccumulateInBoundsConstantOffsets
- public stripInBoundsConstantOffsets
- public stripInBoundsConstantOffsets
- public stripInBoundsOffsets
- public stripInBoundsOffsets
- public stripPointerCasts
- public stripPointerCasts
- public stripPointerCastsAndAliases
- public stripPointerCastsAndAliases
- public stripPointerCastsForAliasAnalysis
- public stripPointerCastsForAliasAnalysis
- public stripPointerCastsSameRepresentation
- public stripPointerCastsSameRepresentation
- public takeName
- public use_begin
- public use_begin
- public use_empty
- public use_end
- public use_end
- public user_back
- public user_back
- public user_begin
- public user_begin
- public user_empty
- public user_end
- public user_end
- public users
- public users
- public uses
- public uses
Methods
¶ConstantDataVector(
const llvm::ConstantDataVector&)
ConstantDataVector(
const llvm::ConstantDataVector&)
Declared at: llvm/include/llvm/IR/Constants.h:765
Parameters
- const llvm::ConstantDataVector&
¶ConstantDataVector(llvm::Type* ty,
const char* Data)
ConstantDataVector(llvm::Type* ty,
const char* Data)
Declared at: llvm/include/llvm/IR/Constants.h:756
Parameters
- llvm::Type* ty
- const char* Data
¶static bool classof(const llvm::Value* V)
static bool classof(const llvm::Value* V)
Description
Methods for support type inquiry through isa, cast, and dyn_cast:
Declared at: llvm/include/llvm/IR/Constants.h:819
Parameters
- const llvm::Value* V
¶static llvm::Constant* get(
llvm::LLVMContext& Context,
ArrayRef<uint8_t> Elts)
static llvm::Constant* get(
llvm::LLVMContext& Context,
ArrayRef<uint8_t> Elts)
Description
get() constructors - Return a constant with vector type with an element count and element type matching the ArrayRef passed in. Note that this can return a ConstantAggregateZero object.
Declared at: llvm/include/llvm/IR/Constants.h:770
Parameters
- llvm::LLVMContext& Context
- ArrayRef<uint8_t> Elts
¶static llvm::Constant* get(
llvm::LLVMContext& Context,
ArrayRef<uint16_t> Elts)
static llvm::Constant* get(
llvm::LLVMContext& Context,
ArrayRef<uint16_t> Elts)
Declared at: llvm/include/llvm/IR/Constants.h:771
Parameters
- llvm::LLVMContext& Context
- ArrayRef<uint16_t> Elts
¶static llvm::Constant* get(
llvm::LLVMContext& Context,
ArrayRef<uint32_t> Elts)
static llvm::Constant* get(
llvm::LLVMContext& Context,
ArrayRef<uint32_t> Elts)
Declared at: llvm/include/llvm/IR/Constants.h:772
Parameters
- llvm::LLVMContext& Context
- ArrayRef<uint32_t> Elts
¶static llvm::Constant* get(
llvm::LLVMContext& Context,
ArrayRef<uint64_t> Elts)
static llvm::Constant* get(
llvm::LLVMContext& Context,
ArrayRef<uint64_t> Elts)
Declared at: llvm/include/llvm/IR/Constants.h:773
Parameters
- llvm::LLVMContext& Context
- ArrayRef<uint64_t> Elts
¶static llvm::Constant* get(
llvm::LLVMContext& Context,
ArrayRef<float> Elts)
static llvm::Constant* get(
llvm::LLVMContext& Context,
ArrayRef<float> Elts)
Declared at: llvm/include/llvm/IR/Constants.h:774
Parameters
- llvm::LLVMContext& Context
- ArrayRef<float> Elts
¶static llvm::Constant* get(
llvm::LLVMContext& Context,
ArrayRef<double> Elts)
static llvm::Constant* get(
llvm::LLVMContext& Context,
ArrayRef<double> Elts)
Declared at: llvm/include/llvm/IR/Constants.h:775
Parameters
- llvm::LLVMContext& Context
- ArrayRef<double> Elts
¶static llvm::Constant* getFP(
llvm::Type* ElementType,
ArrayRef<uint16_t> Elts)
static llvm::Constant* getFP(
llvm::Type* ElementType,
ArrayRef<uint16_t> Elts)
Description
getFP() constructors - Return a constant of vector type with a float element type taken from argument `ElementType', and count taken from argument `Elts'. The amount of bits of the contained type must match the number of bits of the type contained in the passed in ArrayRef. (i.e. half or bfloat for 16bits, float for 32bits, double for 64bits) Note that this can return a ConstantAggregateZero object.
Declared at: llvm/include/llvm/IR/Constants.h:795
Parameters
- llvm::Type* ElementType
- ArrayRef<uint16_t> Elts
¶static llvm::Constant* getFP(
llvm::Type* ElementType,
ArrayRef<uint32_t> Elts)
static llvm::Constant* getFP(
llvm::Type* ElementType,
ArrayRef<uint32_t> Elts)
Declared at: llvm/include/llvm/IR/Constants.h:796
Parameters
- llvm::Type* ElementType
- ArrayRef<uint32_t> Elts
¶static llvm::Constant* getFP(
llvm::Type* ElementType,
ArrayRef<uint64_t> Elts)
static llvm::Constant* getFP(
llvm::Type* ElementType,
ArrayRef<uint64_t> Elts)
Declared at: llvm/include/llvm/IR/Constants.h:797
Parameters
- llvm::Type* ElementType
- ArrayRef<uint64_t> Elts
¶static llvm::Constant* getRaw(
llvm::StringRef Data,
uint64_t NumElements,
llvm::Type* ElementTy)
static llvm::Constant* getRaw(
llvm::StringRef Data,
uint64_t NumElements,
llvm::Type* ElementTy)
Description
getRaw() constructor - Return a constant with vector type with an element count and element type matching the NumElements and ElementTy parameters passed in. Note that this can return a ConstantAggregateZero object. ElementTy must be one of i8/i16/i32/i64/half/bfloat/float/double. Data is the buffer containing the elements. Be careful to make sure Data uses the right endianness, the buffer will be used as-is.
Declared at: llvm/include/llvm/IR/Constants.h:783
Parameters
- llvm::StringRef Data
- uint64_t NumElements
- llvm::Type* ElementTy
¶static llvm::Constant* getSplat(
unsigned int NumElts,
llvm::Constant* Elt)
static llvm::Constant* getSplat(
unsigned int NumElts,
llvm::Constant* Elt)
Description
Return a ConstantVector with the specified constant in each element. The specified constant has to be a of a compatible type (i8/i16/ i32/i64/half/bfloat/float/double) and must be a ConstantFP or ConstantInt.
Declared at: llvm/include/llvm/IR/Constants.h:802
Parameters
- unsigned int NumElts
- llvm::Constant* Elt
¶llvm::Constant* getSplatValue() const
llvm::Constant* getSplatValue() const
Description
If this is a splat constant, meaning that all of the elements have the same value, return that value. Otherwise return NULL.
Declared at: llvm/include/llvm/IR/Constants.h:810
¶inline llvm::FixedVectorType* getType() const
inline llvm::FixedVectorType* getType() const
Description
Specialize the getType() method to always return a FixedVectorType, which reduces the amount of casting needed in parts of the compiler.
Declared at: llvm/include/llvm/IR/Constants.h:814
¶bool isSplat() const
bool isSplat() const
Description
Returns true if this is a splat constant, meaning that all elements have the same value.
Declared at: llvm/include/llvm/IR/Constants.h:806
¶bool isSplatData() const
bool isSplatData() const
Declared at: llvm/include/llvm/IR/Constants.h:762