Synopsis
Declared in <llvm/Analysis/DXILResource.h>
class AnyResourceExtType
: public TargetExtType
Base Classes
Name |
Description |
Class to represent target extensions types, which are generally unintrospectable from target‐independent optimizations. |
Type Aliases
Enums
Name |
Description |
Definitions of all of the base types for the Type system. Based on this value, you can cast to a class defined in DerivedTypes.h. Note: If you add an element to this, you need to add an element to the Type::getPrimitiveType function, or else things will break! Also update LLVMTypeKind and LLVMGetTypeKind () in the C binding. |
Member Functions
Name |
Description |
|
Constructors |
Assignment operators |
|
Return true if this type could be converted with a lossless BitCast to type 'Ty'. For example, i8* to i32*. BitCasts are valid for types of the same size only where no re‐interpretation of the bits is done. Determine if this type could be losslessly bitcast to Ty |
|
Return true if this type is or contains a target extension type that disallows being used as a global. |
|
Return true if this type is or contains a target extension type that disallows being used as a local. |
|
This method is used to implement the type iterator (defined at the end of the file). For derived types, this returns the types 'contained' in the derived type. |
|
Return the LLVMContext in which this type was uniqued. |
|
Given scalar/vector integer type, returns a type with elements twice as wide as in the original type. For vectors, preserves element count. |
|
Return the width of the mantissa of this type. This is only valid on floating‐point types. If the FP type does not have a stable mantissa (e.g. ppc long double), this method returns ‐1. |
|
Returns an underlying layout type for the target extension type. This type can be used to query size and alignment information, if it is appropriate (although note that the layout type may also be void). It is not legal to bitcast between this type and the layout type, however. |
|
Return the name for this target extension type. Two distinct target extension types may have the same name if their type or integer parameters differ. |
|
Return the number of types in the derived type. |
|
Get the address space of this pointer or pointer vector type. |
|
Return the basic size of this type if it is a primitive type. These are fixed by LLVM and are not target‐dependent. This will return zero if the type does not have a size or is not a primitive type. |
|
If this is a vector type, return the getPrimitiveSizeInBits value for the element type. Otherwise return the getPrimitiveSizeInBits value for this type. |
|
If this is a vector type, return the element type, otherwise return 'this'. |
|
Given scalar/vector integer type, returns a type with elements half as wide as in the original type. For vectors, preserves element count. |
|
Return the type id for the type. This will return one of the TypeID enum elements defined above. |
|
Given an integer or vector type, change the lane bitwidth to NewBitwidth, whilst keeping the old number of lanes. |
|
Given vector type, change the element type, whilst keeping the old number of elements. For non‐vectors simply returns |
|
Returns true if the target extension type contains the given property. |
|
Return the integer parameters for this particular target extension type. If there are no parameters, an empty array is returned. |
|
Return true if this is a 16‐bit float type. |
|
Return true if the type is an aggregate type. This means it is valid as the first operand of an insertvalue or extractvalue instruction. This includes struct and array types, but does not include vector types. |
|
True if this is an instance of ArrayType. |
|
Return true if this is 'bfloat', a 16‐bit bfloat type. |
|
|
|
|
|
Return true if this is 'double', a 64‐bit IEEE fp type. |
|
Return true if this type is empty, that is, it has no elements or all of its elements are empty. |
|
Return true if this is 'fp128'. |
|
Return true if this is a FP type or a vector of FP. |
|
Return true if the type is "first class", meaning it is a valid type for a Value. |
|
Return true if this is 'float', a 32‐bit IEEE fp type. |
|
Return true if this is one of the floating‐point types |
|
True if this is an instance of FunctionType. |
|
Return true if this is 'half', a 16‐bit IEEE fp type. |
|
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. |
|
|
|
Return true if this is an integer type or a pointer type. |
|
|
|
Return true if this is 'label'. |
|
Return true if this is 'metadata'. |
|
Returns true if this is a floating‐point type that is an unevaluated sum of multiple floating‐point units. An example of such a type is ppc_fp128, also known as double‐double, which consists of two IEEE 754 doubles. |
|
Return true if this is powerpc long double. |
|
True if this is an instance of PointerType. |
|
Return true if this is a pointer type or a vector of pointer types. |
|
Return true if this is a target extension type with a scalable layout. |
|
Return true if this is a type whose size is a known multiple of vscale. |
|
Return true if the type is a valid type for a register in codegen. This includes all first‐class types except struct and array types. |
|
Return true if it makes sense to take the size of this type. To get the actual size for a particular target, it is reasonable to use the DataLayout subsystem to do this. |
|
True if this is an instance of StructType. |
|
Return true if this is a target extension type. |
|
Returns true if this is 'token' or a token‐like target type.s |
|
Return true if this is 'token'. |
|
True if this is an instance of VectorType. |
|
Return true if this is 'void'. |
|
Return true if this is X86 AMX. |
|
Return true if this is x86 long double. |
|
Print the current type. Omit the type details if |
|
Return the type parameters for this particular target extension type. If there are no parameters, an empty array is returned. |
Static Member Functions
Name |
Description |
Check that a newly created target extension type has the expected number of type parameters and integer parameters, returning the type itself if OK or an appropriate Error if not. |
|
Return a target extension type having the specified name and optional type and integer parameters. |
|
Returns a byte (vector of byte) type with the same size of an integer of the given integer (vector of integer) type. |
|
Returns an integer (vector of integer) type with the same size of a byte of the given byte (vector of byte) type. |
|
Return a target extension type having the specified name and optional type and integer parameters, or an appropriate Error if it fails the parameters check. |
|
Return a type based on an identifier. |
|
Protected Member Functions
Protected Data Members
Name |
Description |
A pointer to the array of Types contained by this Type. For example, this includes the arguments of a function type, the elements of a structure, the pointee of a pointer, the element type of an array, etc. This pointer may be 0 for types that don't contain other types (Integer, Double, Float). |
|
Keeps track of how many Type*'s there are in the ContainedTys list. |
Non-Member Functions
Name |
Description |
Compute the linearized index of a member in a nested aggregate/struct/array. |
|
Returns true if |
|
Returns the types contained in |
|
Construct a low‐level type based on an LLVM type. |
|
Returns the distance between the pointers |
|
Returns the number of vector elements for a vectorized type. |
|
Returns true if |
|
Given operands for a GetElementPtrInst, fold the result or return null. |
|
A helper for converting vectorized types to scalarized (non‐vector) types. For vector types, this is equivalent to calling .getScalarType(). For struct types, this returns a new struct where each element type has been converted to a scalar type. Note: Only unpacked literal struct types are supported. |
|
A helper function for converting Scalar types to vector types. If the incoming type is void, we return void. If the EC represents a scalar, we return the scalar type. |
|
A helper for converting to vectorized types. For scalar types, this is equivalent to calling |
|
|
Returns true if this is a type legal for the 'nofpclass' attribute. This follows the same type rules as FPMathOperator. |
|
Which attributes cannot be applied to a type. The argument |
|
Match a value of a specific type, capturing it if we match. |
|
Match a value of a specific type. |
|
This function determines whether a value for the pointer LoadPtr can be extracted from the load at DepLI. |
|
This function determines whether a value for the pointer LoadPtr can be extracted from the memory intrinsic at DepMI. |
|
This function determines whether a value for the pointer LoadPtr can be extracted from the store at DepSI. |
|
@{ Populate a small list of potentially interesting constants of a given type. |
|
Converts a scalar or vector LLVM type to its DXIL element type. Integer signedness must be supplied separately because LLVM integer types are signless. |
Created with MrDocs