LLVM
17.0.0git
|
Class to represent array types. More...
#include "llvm/IR/DerivedTypes.h"
Public Member Functions | |
ArrayType (const ArrayType &)=delete | |
ArrayType & | operator= (const ArrayType &)=delete |
uint64_t | getNumElements () const |
Type * | getElementType () const |
![]() | |
void | print (raw_ostream &O, bool IsForDebug=false, bool NoDetails=false) const |
Print the current type. More... | |
void | dump () const |
LLVMContext & | getContext () const |
Return the LLVMContext in which this type was uniqued. More... | |
TypeID | getTypeID () const |
Return the type id for the type. More... | |
bool | isVoidTy () const |
Return true if this is 'void'. More... | |
bool | isHalfTy () const |
Return true if this is 'half', a 16-bit IEEE fp type. More... | |
bool | isBFloatTy () const |
Return true if this is 'bfloat', a 16-bit bfloat type. More... | |
bool | is16bitFPTy () const |
Return true if this is a 16-bit float type. More... | |
bool | isFloatTy () const |
Return true if this is 'float', a 32-bit IEEE fp type. More... | |
bool | isDoubleTy () const |
Return true if this is 'double', a 64-bit IEEE fp type. More... | |
bool | isX86_FP80Ty () const |
Return true if this is x86 long double. More... | |
bool | isFP128Ty () const |
Return true if this is 'fp128'. More... | |
bool | isPPC_FP128Ty () const |
Return true if this is powerpc long double. More... | |
bool | isIEEELikeFPTy () const |
Return true if this is a well-behaved IEEE-like type, which has a IEEE compatible layout as defined by isIEEE(), and does not have unnormal values. More... | |
bool | isFloatingPointTy () const |
Return true if this is one of the floating-point types. More... | |
bool | isMultiUnitFPType () const |
Returns true if this is a floating-point type that is an unevaluated sum of multiple floating-point units. More... | |
const fltSemantics & | getFltSemantics () const |
bool | isX86_MMXTy () const |
Return true if this is X86 MMX. More... | |
bool | isX86_AMXTy () const |
Return true if this is X86 AMX. More... | |
bool | isTargetExtTy () const |
Return true if this is a target extension type. More... | |
bool | isFPOrFPVectorTy () const |
Return true if this is a FP type or a vector of FP. More... | |
bool | isLabelTy () const |
Return true if this is 'label'. More... | |
bool | isMetadataTy () const |
Return true if this is 'metadata'. More... | |
bool | isTokenTy () const |
Return true if this is 'token'. More... | |
bool | isIntegerTy () const |
True if this is an instance of IntegerType. More... | |
bool | isIntegerTy (unsigned Bitwidth) const |
Return true if this is an IntegerType of the given width. More... | |
bool | isIntOrIntVectorTy () const |
Return true if this is an integer type or a vector of integer types. More... | |
bool | isIntOrIntVectorTy (unsigned BitWidth) const |
Return true if this is an integer type or a vector of integer types of the given width. More... | |
bool | isIntOrPtrTy () const |
Return true if this is an integer type or a pointer type. More... | |
bool | isFunctionTy () const |
True if this is an instance of FunctionType. More... | |
bool | isStructTy () const |
True if this is an instance of StructType. More... | |
bool | isArrayTy () const |
True if this is an instance of ArrayType. More... | |
bool | isPointerTy () const |
True if this is an instance of PointerType. More... | |
bool | isOpaquePointerTy () const |
True if this is an instance of an opaque PointerType. More... | |
bool | isPtrOrPtrVectorTy () const |
Return true if this is a pointer type or a vector of pointer types. More... | |
bool | isVectorTy () const |
True if this is an instance of VectorType. More... | |
bool | canLosslesslyBitCastTo (Type *Ty) const |
Return true if this type could be converted with a lossless BitCast to type 'Ty'. More... | |
bool | isEmptyTy () const |
Return true if this type is empty, that is, it has no elements or all of its elements are empty. More... | |
bool | isFirstClassType () const |
Return true if the type is "first class", meaning it is a valid type for a Value. More... | |
bool | isSingleValueType () const |
Return true if the type is a valid type for a register in codegen. More... | |
bool | isAggregateType () const |
Return true if the type is an aggregate type. More... | |
bool | isSized (SmallPtrSetImpl< Type * > *Visited=nullptr) const |
Return true if it makes sense to take the size of this type. More... | |
TypeSize | getPrimitiveSizeInBits () const LLVM_READONLY |
Return the basic size of this type if it is a primitive type. More... | |
unsigned | getScalarSizeInBits () const LLVM_READONLY |
If this is a vector type, return the getPrimitiveSizeInBits value for the element type. More... | |
int | getFPMantissaWidth () const |
Return the width of the mantissa of this type. More... | |
bool | isIEEE () const |
Return whether the type is IEEE compatible, as defined by the eponymous method in APFloat. More... | |
Type * | getScalarType () const |
If this is a vector type, return the element type, otherwise return 'this'. More... | |
subtype_iterator | subtype_begin () const |
subtype_iterator | subtype_end () const |
ArrayRef< Type * > | subtypes () const |
subtype_reverse_iterator | subtype_rbegin () const |
subtype_reverse_iterator | subtype_rend () const |
Type * | getContainedType (unsigned i) const |
This method is used to implement the type iterator (defined at the end of the file). More... | |
unsigned | getNumContainedTypes () const |
Return the number of types in the derived type. More... | |
unsigned | getIntegerBitWidth () const |
Type * | getFunctionParamType (unsigned i) const |
unsigned | getFunctionNumParams () const |
bool | isFunctionVarArg () const |
StringRef | getStructName () const |
unsigned | getStructNumElements () const |
Type * | getStructElementType (unsigned N) const |
uint64_t | getArrayNumElements () const |
Type * | getArrayElementType () const |
StringRef | getTargetExtName () const |
Type * | getPointerElementType () const |
This method is deprecated without replacement. More... | |
Type * | getNonOpaquePointerElementType () const |
Only use this method in code that is not reachable with opaque pointers, or part of deprecated methods that will be removed as part of the opaque pointers transition. More... | |
Type * | getWithNewType (Type *EltTy) const |
Given vector type, change the element type, whilst keeping the old number of elements. More... | |
Type * | getWithNewBitWidth (unsigned NewBitWidth) const |
Given an integer or vector type, change the lane bitwidth to NewBitwidth, whilst keeping the old number of lanes. More... | |
Type * | getExtendedType () const |
Given scalar/vector integer type, returns a type with elements twice as wide as in the original type. More... | |
unsigned | getPointerAddressSpace () const |
Get the address space of this pointer or pointer vector type. More... | |
PointerType * | getPointerTo (unsigned AddrSpace=0) const |
Return a pointer to the current type. More... | |
Additional Inherited Members | |
![]() | |
enum | TypeID { HalfTyID = 0, BFloatTyID, FloatTyID, DoubleTyID, X86_FP80TyID, FP128TyID, PPC_FP128TyID, VoidTyID, LabelTyID, MetadataTyID, X86_MMXTyID, X86_AMXTyID, TokenTyID, IntegerTyID, FunctionTyID, PointerTyID, StructTyID, ArrayTyID, FixedVectorTyID, ScalableVectorTyID, TypedPointerTyID, TargetExtTyID } |
Definitions of all of the base types for the Type system. More... | |
using | subtype_iterator = Type *const * |
using | subtype_reverse_iterator = std::reverse_iterator< subtype_iterator > |
![]() | |
Type (LLVMContext &C, TypeID tid) | |
~Type ()=default | |
unsigned | getSubclassData () const |
void | setSubclassData (unsigned val) |
![]() | |
unsigned | NumContainedTys = 0 |
Keeps track of how many Type*'s there are in the ContainedTys list. More... | |
Type *const * | ContainedTys = nullptr |
A pointer to the array of Types contained by this Type. More... | |
Class to represent array types.
Definition at line 357 of file DerivedTypes.h.
Methods for support type inquiry through isa, cast, and dyn_cast.
Definition at line 379 of file DerivedTypes.h.
References llvm::Type::ArrayTyID, and T.
This static method is the primary way to construct an ArrayType.
Definition at line 640 of file Type.cpp.
References assert(), llvm::Type::getContext(), isValidElementType(), and llvm::LLVMContext::pImpl.
Referenced by llvm::memtag::alignAndPadAlloca(), appendToGlobalArray(), appendToUsedList(), classifyConstantWithOpaquePtr(), llvm::SanitizerStatReport::create(), createLoweredType(), llvm::OpenMPIRBuilder::createMapperAllocas(), llvm::OpenMPIRBuilder::createOffloadMapnames(), llvm::OpenMPIRBuilder::createOrderedDepend(), llvm::OpenMPIRBuilder::createReductions(), createRelLookupTable(), llvm::OpenMPIRBuilder::createTask(), llvm::embedBitcodeInModule(), llvm::OpenMPIRBuilder::emitMapperCall(), llvm::OpenMPIRBuilder::emitOffloadingArraysArgument(), llvm::generateEnqueueInst(), llvm::ConstantDataArray::getFP(), getMemSetPatternValue(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVArrayType(), llvm::ConstantDataArray::getRaw(), LLVMArrayType(), LLVMConstArray(), llvm::lowerGlobalIFuncUsersAsGlobalCtor(), OptimizeGlobalAddressOfAllocation(), removeFromUsedList(), removeGlobalCtors(), llvm::SanitizerStatReport::SanitizerStatReport(), setCoroInfo(), setUsedInitializer(), simplifyAllocaArraySize(), and llvm::InstCombinerImpl::visitLandingPadInst().
|
inline |
Definition at line 370 of file DerivedTypes.h.
Referenced by arrayTypeToVecType(), llvm::ConstantFoldGetElementPtr(), findFuncPointers(), llvm::SPIRVGlobalRegistry::getOrCreateConsIntArray(), llvm::getPointerAtOffset(), llvm::DataLayout::getTypeSizeInBits(), llvm::isGEPBasedOnPointerToString(), removeGlobalCtors(), runImpl(), llvm::UpgradeGlobalVariable(), and llvm::InstCombinerImpl::visitLandingPadInst().
|
inline |
Definition at line 369 of file DerivedTypes.h.
Referenced by arrayTypeToVecType(), createRelLookupTable(), findFuncPointers(), llvm::SPIRVGlobalRegistry::getOrCreateConsIntArray(), llvm::DataLayout::getTypeSizeInBits(), isZeroLengthArray(), and llvm::InstCombinerImpl::visitLandingPadInst().
|
static |
Return true if the specified type is valid as a element type.
Definition at line 652 of file Type.cpp.
References llvm::Type::isFunctionTy(), llvm::Type::isLabelTy(), llvm::Type::isMetadataTy(), llvm::Type::isTokenTy(), llvm::Type::isVoidTy(), and llvm::Type::isX86_AMXTy().
Referenced by get().