类型引用

类型引用封装了 LLVM 类型。它允许访问类型的名称和 IR 表示。它也被诸如 TargetData.get_abi_size() 等方法接受。

TypeRef 类

class llvmlite.binding.TypeRef

LLVM 类型的包装器。可用的属性有

  • name

    此类型的名称,以字符串形式表示。

  • is_struct
    • —该类型是结构体类型

    • —该类型不是结构体类型

  • is_pointer
    • —该类型是指针类型

    • —该类型不是指针类型

  • is_array
    • —该类型是数组类型

    • —该类型不是数组类型

  • is_vector
    • —该类型是向量类型

    • —该类型不是向量类型

  • is_function_vararg
    • — 该函数类型接受可变数量的参数

    • —该函数类型接受固定数量的参数

  • elements

    返回一个迭代器,遍历其包含的类型。例如,数组的元素或结构体的成员。

  • element_type

    如果该类型是指针,则返回所指向的类型。如果该类型不是指针类型,则引发 ValueError。

  • element_count

    返回数组或向量中的元素数量。对于可伸缩向量,返回最小元素数量。当类型既不是数组也不是向量时,引发异常。

  • type_width

    如果此类型是基本类型,则返回其基本大小。这些由 LLVM 固定,不依赖于目标。如果该类型没有大小或不是基本类型,则此方法将返回零。

    如果这是可伸缩向量类型,则可伸缩属性将被设置,并且运行时大小将是基本大小的正整数倍。

    请注意,这可能不反映为类型实例分配的内存大小,或将类型实例存储到内存时写入的字节数。

  • type_kind

    返回此类型的 LLVMTypeKind 枚举。

  • as_ir(self, ir_ctx)

    转换为 llvmlite.ir.Type

  • __str__(self)

    获取该类型的字符串 IR 表示。