llvm2py.ir.type module

This module contains all types that exist in the LLVM IR representation. For detailed documentation, please refer to the source https://llvm.org/docs/LangRef.html#type-system

class ArrayType(elem_count: int, elem_ty: Type)

Bases: NamedTuple

Parameters:
  • elem_count (int) – The number of elements in the array.

  • elem_ty (Type) – The array element type.

class FPType(kind: str)

Bases: NamedTuple

Parameters:

kind (str) – One of {‘half’, ‘bfloat’, ‘float’, ‘double’, ‘fp128’, ‘x86_fp80’, ‘ppc_fp128’}

class FunctionType(param_tys: list[Type], ret_ty: Type)

Bases: NamedTuple

Parameters:
  • param_tys (list[Type]) – List of function argument types in the appropriate order.

  • ret_ty (Type) – Type of value returned by function.

class IntegerType(num_bits: int)

Bases: NamedTuple

Parameters:

num_bits (int) – Bit width.

class LabelType

Bases: NamedTuple

class MetadataType

Bases: NamedTuple

class OpaqueType

Bases: NamedTuple

class PtrType(addr_space: int, ty: Type | None = None)

Bases: NamedTuple

Almost always, pointers are opaque (untyped).

Parameters:
  • addr_space (int) – Numbered address space where the pointed-to object resides.

  • ty (Type | None) – Pointer type (may be used by some gpu targets).

class StructureType(name: str | None, elem_tys: list[Type], is_packed: bool = False)

Bases: NamedTuple

Parameters:

name (str | None) – Structure name, if it is a named structure.

class TargetExtensionType(name: str, params: list[int | Type])

Bases: NamedTuple

Parameters:
  • name (str) – Type name.

  • params (list[int | Type]) – List of type parameters.

class TokenType

Bases: NamedTuple

class VectorType(elem_count: int, elem_ty: Type, is_scalable: bool = False)

Bases: NamedTuple

Parameters:
  • elem_count (int) – Vector element count. If the vector is scalable, it is the minimum number of elements in this vector. The actual number of elements in the vector is an integer multiple of this value.

  • elem_ty (Type) – Vector element type.

  • is_scalable (bool) – If True, the vector is scalable (vscale).

class VoidType

Bases: NamedTuple

class X86_amxType

Bases: NamedTuple