Access a specific type. See LeanGccJit.Core.TypeEnum
for the list of types.
Upcast a JitType
to an Object
.
Access the integer type of the given size.
Given type T
, get type T*
.
Given type T
, get type const T
.
Given type T
, get type volatile T
.
Given type T
, get type restrict T
.
Return non-zero if the two types are compatible.
For instance, if uint64_t
and unsigned long
are the same size on the target,
this will return non-zero.
Return the size of a type, in bytes. It only works on integer types for now.
Given non-void type T
, get type T[N]
(for a constant N).
Construct a new union type, with the given name and fields.
Generate a JitType
for a function pointer with the given return type and parameters.
Each of param_types must be non-void
; return_type may be void
.
Given non-void type T
, get type:
T __attribute__ ((aligned (ALIGNMENT_IN_BYTES)))
The alignment must be a power of two.
Given type T
, get type:
T __attribute__ ((vector_size (sizeof(T) * num_units))
T
must be integral or floating point; num_units must be a power of two.
This can be used to construct a vector type in which operations are applied element-wise. The compiler will automatically use SIMD instructions where possible.
See also Vector Extensions.
Get the element type of an array type or none
if it’s not an array.
Return true
if the type is a bool.
Return the function type if it is one or none
.
Given a function type, return its return type.
Given a function type, return its number of parameters.
Given a function type, return the type of the specified parameter.
Return true
if the type is an integral.
Return the type pointed by the pointer type or none
if it’s not a pointer.
Given a type, return a dynamic cast to a vector type or none
.
Given a type, return a dynamic cast to a struct type or none
.
Given a vector type, return the number of units it contains.
Given a vector type, return the type of its elements.
Given a type, return the unqualified type, removing const
, volatile
and alignment qualifiers.