Enum llvm_ir::types::Type [−][src]
pub enum Type {
Show 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
Show fields
Fields of IntegerType
bits: u32FPType(FPType)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 12 docs on First Class Types). See LLVM 12 docs on Vector Type
Struct and Array types (but not vector types) are “aggregate types” and cannot be produced by a single instruction (see LLVM 12 docs on Aggregate Types). See LLVM 12 docs on Array Type
The StructType variant is used for a “literal” (i.e., anonymous) structure type.
See LLVM 12 docs on Structure Type
Named structure types. Note that these may be self-referential (i.e., recursive).
See LLVM 12 docs on Structure Type
To get the actual definition of a named structure type, use module.types.named_struct_def().
Show fields
Fields of NamedStructType
name: StringName of the struct type
LabelType is the type of BasicBlock labels.
See LLVM 12 docs on Label Type
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Typeimpl UnwindSafe for TypeBlanket Implementations
Mutably borrows from an owned value. Read more