|
LLVM 23.0.0git
|
Class to represent byte types. More...
#include "llvm/IR/DerivedTypes.h"
Public Types | |
| enum | { MIN_BYTE_BITS = 1 , MAX_BYTE_BITS } |
| This enum is just used to hold constants we need for ByteType. More... | |
| Public Types inherited from llvm::Type | |
| enum | TypeID { HalfTyID = 0 , BFloatTyID , FloatTyID , DoubleTyID , X86_FP80TyID , FP128TyID , PPC_FP128TyID , VoidTyID , LabelTyID , MetadataTyID , X86_AMXTyID , TokenTyID , IntegerTyID , ByteTyID , 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> |
Public Member Functions | |
| unsigned | getBitWidth () const |
| Get the number of bits in this ByteType. | |
| LLVM_ABI APInt | getMask () const |
| For example, this is 0xFF for an 8 bit byte, 0xFFFF for b16, etc. | |
| Public Member Functions inherited from llvm::Type | |
| LLVM_ABI void | print (raw_ostream &O, bool IsForDebug=false, bool NoDetails=false) const |
| Print the current type. | |
| LLVM_ABI void | dump () const |
| LLVMContext & | getContext () const |
| Return the LLVMContext in which this type was uniqued. | |
| TypeID | getTypeID () const |
| Return the type id for the type. | |
| bool | isVoidTy () const |
| Return true if this is 'void'. | |
| bool | isHalfTy () const |
| Return true if this is 'half', a 16-bit IEEE fp type. | |
| bool | isBFloatTy () const |
| Return true if this is 'bfloat', a 16-bit bfloat type. | |
| bool | is16bitFPTy () const |
| Return true if this is a 16-bit float type. | |
| bool | isFloatTy () const |
| Return true if this is 'float', a 32-bit IEEE fp type. | |
| bool | isDoubleTy () const |
| Return true if this is 'double', a 64-bit IEEE fp type. | |
| bool | isX86_FP80Ty () const |
| Return true if this is x86 long double. | |
| bool | isFP128Ty () const |
| Return true if this is 'fp128'. | |
| bool | isPPC_FP128Ty () const |
| Return true if this is powerpc long double. | |
| bool | isIEEELikeFPTy () const |
| Return true if this is a well-behaved IEEE-like type, which has a IEEE compatible layout, and does not have non-IEEE values, such as x86_fp80's unnormal values. | |
| bool | isFloatingPointTy () const |
| Return true if this is one of the floating-point types. | |
| bool | isMultiUnitFPType () const |
| Returns true if this is a floating-point type that is an unevaluated sum of multiple floating-point units. | |
| LLVM_ABI const fltSemantics & | getFltSemantics () const |
| bool | isX86_AMXTy () const |
| Return true if this is X86 AMX. | |
| bool | isTargetExtTy () const |
| Return true if this is a target extension type. | |
| LLVM_ABI bool | isScalableTargetExtTy () const |
| Return true if this is a target extension type with a scalable layout. | |
| LLVM_ABI bool | isScalableTy (SmallPtrSetImpl< const Type * > &Visited) const |
| Return true if this is a type whose size is a known multiple of vscale. | |
| LLVM_ABI bool | isScalableTy () const |
| LLVM_ABI bool | containsNonGlobalTargetExtType (SmallPtrSetImpl< const Type * > &Visited) const |
| Return true if this type is or contains a target extension type that disallows being used as a global. | |
| LLVM_ABI bool | containsNonGlobalTargetExtType () const |
| LLVM_ABI bool | containsNonLocalTargetExtType (SmallPtrSetImpl< const Type * > &Visited) const |
| Return true if this type is or contains a target extension type that disallows being used as a local. | |
| LLVM_ABI bool | containsNonLocalTargetExtType () const |
| bool | isFPOrFPVectorTy () const |
| Return true if this is a FP type or a vector of FP. | |
| bool | isLabelTy () const |
| Return true if this is 'label'. | |
| bool | isMetadataTy () const |
| Return true if this is 'metadata'. | |
| bool | isTokenTy () const |
| Return true if this is 'token'. | |
| LLVM_ABI bool | isTokenLikeTy () const |
| Returns true if this is 'token' or a token-like target type.s. | |
| bool | isByteTy () const |
| True if this is an instance of ByteType. | |
| LLVM_ABI bool | isByteTy (unsigned BitWidth) const |
| Return true if this is a ByteType of the given width. | |
| bool | isByteOrByteVectorTy () const |
| Return true if this is a byte type or a vector of byte types. | |
| bool | isByteOrByteVectorTy (unsigned BitWidth) const |
| Return true if this is a byte type or a vector of byte types of the given width. | |
| bool | isIntegerTy () const |
| True if this is an instance of IntegerType. | |
| LLVM_ABI bool | isIntegerTy (unsigned Bitwidth) const |
| Return true if this is an IntegerType of the given width. | |
| bool | isIntOrIntVectorTy () const |
| Return true if this is an integer type or a vector of integer types. | |
| bool | isIntOrIntVectorTy (unsigned BitWidth) const |
| Return true if this is an integer type or a vector of integer types of the given width. | |
| bool | isIntOrPtrTy () const |
| Return true if this is an integer type or a pointer type. | |
| bool | isFunctionTy () const |
| True if this is an instance of FunctionType. | |
| bool | isStructTy () const |
| True if this is an instance of StructType. | |
| bool | isArrayTy () const |
| True if this is an instance of ArrayType. | |
| bool | isPointerTy () const |
| True if this is an instance of PointerType. | |
| bool | isPtrOrPtrVectorTy () const |
| Return true if this is a pointer type or a vector of pointer types. | |
| bool | isVectorTy () const |
| True if this is an instance of VectorType. | |
| LLVM_ABI bool | isRISCVVectorTupleTy () const |
| LLVM_ABI bool | canLosslesslyBitCastTo (Type *Ty) const |
| Return true if this type could be converted with a lossless BitCast to type 'Ty'. | |
| LLVM_ABI bool | isEmptyTy () const |
| Return true if this type is empty, that is, it has no elements or all of its elements are empty. | |
| LLVM_ABI bool | isFirstClassType () const |
| Return true if the type is "first class", meaning it is a valid type for a Value. | |
| bool | isSingleValueType () const |
| Return true if the type is a valid type for a register in codegen. | |
| bool | isAggregateType () const |
| Return true if the type is an aggregate type. | |
| bool | isSized (SmallPtrSetImpl< Type * > *Visited=nullptr) const |
| Return true if it makes sense to take the size of this type. | |
| LLVM_ABI TypeSize | getPrimitiveSizeInBits () const LLVM_READONLY |
| Return the basic size of this type if it is a primitive type. | |
| LLVM_ABI unsigned | getScalarSizeInBits () const LLVM_READONLY |
| If this is a vector type, return the getPrimitiveSizeInBits value for the element type. | |
| LLVM_ABI int | getFPMantissaWidth () const |
| Return the width of the mantissa of this type. | |
| Type * | getScalarType () const |
| If this is a vector type, return the element type, otherwise return 'this'. | |
| 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). | |
| unsigned | getNumContainedTypes () const |
| Return the number of types in the derived type. | |
| LLVM_ABI unsigned | getIntegerBitWidth () const |
| LLVM_ABI unsigned | getByteBitWidth () const |
| LLVM_ABI Type * | getFunctionParamType (unsigned i) const |
| LLVM_ABI unsigned | getFunctionNumParams () const |
| LLVM_ABI bool | isFunctionVarArg () const |
| LLVM_ABI StringRef | getStructName () const |
| LLVM_ABI unsigned | getStructNumElements () const |
| LLVM_ABI Type * | getStructElementType (unsigned N) const |
| LLVM_ABI uint64_t | getArrayNumElements () const |
| Type * | getArrayElementType () const |
| LLVM_ABI StringRef | getTargetExtName () const |
| LLVM_ABI Type * | getWithNewType (Type *EltTy) const |
| Given vector type, change the element type, whilst keeping the old number of elements. | |
| LLVM_ABI Type * | getWithNewBitWidth (unsigned NewBitWidth) const |
| Given an integer or vector type, change the lane bitwidth to NewBitwidth, whilst keeping the old number of lanes. | |
| LLVM_ABI Type * | getExtendedType () const |
| Given scalar/vector integer type, returns a type with elements twice as wide as in the original type. | |
| LLVM_ABI unsigned | getPointerAddressSpace () const |
| Get the address space of this pointer or pointer vector type. | |
| LLVM_ABI | LLVM_DEPRECATED ("Use PointerType::get instead", "PointerType::get") PointerType *getPointerTo(unsigned AddrSpace=0) const |
| Return a pointer to the current type. | |
Protected Member Functions | |
| ByteType (LLVMContext &C, unsigned NumBits) | |
| Protected Member Functions inherited from llvm::Type | |
| Type (LLVMContext &C, TypeID tid) | |
| ~Type ()=default | |
| unsigned | getSubclassData () const |
| void | setSubclassData (unsigned val) |
Friends | |
| class | LLVMContextImpl |
Additional Inherited Members | |
| Protected Attributes inherited from llvm::Type | |
| unsigned | NumContainedTys = 0 |
| Keeps track of how many Type*'s there are in the ContainedTys list. | |
| Type *const * | ContainedTys = nullptr |
| A pointer to the array of Types contained by this Type. | |
Class to represent byte types.
Definition at line 104 of file DerivedTypes.h.
| anonymous enum |
This enum is just used to hold constants we need for ByteType.
| Enumerator | |
|---|---|
| MIN_BYTE_BITS | Minimum number of bits that can be specified. |
| MAX_BYTE_BITS | Maximum number of bits that can be specified Note that bit width is stored in the Type classes SubclassData field which has 24 bits. SelectionDAG type legalization can require a power of 2 ByteType, so limit to the largest representable power of 2, 8388608. |
Definition at line 114 of file DerivedTypes.h.
|
inlineexplicitprotected |
Definition at line 108 of file DerivedTypes.h.
References llvm::Type::ByteTyID, llvm::CallingConv::C, llvm::Type::setSubclassData(), and llvm::Type::Type().
Methods for support type inquiry through isa, cast, and dyn_cast.
Definition at line 140 of file DerivedTypes.h.
References llvm::Type::ByteTyID, T, and llvm::Type::Type().
|
static |
This static method is the primary way of constructing a ByteType.
If a ByteType with the same NumBits value was previously instantiated, that instance will be returned. Otherwise a new one will be created. Only one instance with a given NumBits value is ever created. Get or create a ByteType instance.
Definition at line 384 of file Type.cpp.
Referenced by llvm::ConstantByte::get(), llvm::DataLayout::getBytePtrType(), llvm::DataLayout::getBytePtrType(), and LLVMByteTypeInContext().
|
inline |
Get the number of bits in this ByteType.
Definition at line 132 of file DerivedTypes.h.
References llvm::Type::getSubclassData().
| APInt ByteType::getMask | ( | ) | const |
|
friend |
Definition at line 105 of file DerivedTypes.h.
References LLVMContextImpl.
Referenced by LLVMContextImpl.