pub enum Type {
Show 13 variants
VoidType,
IntegerType {
bits: u32,
},
PointerType {
pointee_type: TypeRef,
addr_space: AddrSpace,
},
FPType(FPType),
FuncType {
result_type: TypeRef,
param_types: Vec<TypeRef>,
is_var_arg: bool,
},
VectorType {
element_type: TypeRef,
num_elements: usize,
},
ArrayType {
element_type: TypeRef,
num_elements: usize,
},
StructType {
element_types: Vec<TypeRef>,
is_packed: bool,
},
NamedStructType {
name: String,
},
X86_MMXType,
MetadataType,
LabelType,
TokenType,
}
Expand description
Variants§
VoidType
IntegerType
PointerType
FPType(FPType)
FuncType
VectorType
Vector types (along with integer, FP, pointer, X86_MMX, and X86_AMX types) are “first class types”, which means they can be produced by instructions (see LLVM 14 docs on First Class Types). See LLVM 14 docs on Vector Type
ArrayType
Struct and Array types (but not vector types) are “aggregate types” and cannot be produced by a single instruction (see LLVM 14 docs on Aggregate Types). See LLVM 14 docs on Array Type
StructType
The StructType
variant is used for a “literal” (i.e., anonymous) structure type.
See LLVM 14 docs on Structure Type
NamedStructType
Named structure types. Note that these may be self-referential (i.e., recursive).
See LLVM 14 docs on Structure Type
To get the actual definition of a named structure type, use module.types.named_struct_def()
.
X86_MMXType
MetadataType
LabelType
LabelType
is the type of BasicBlock
labels.
See LLVM 14 docs on Label Type