Defined in File array.h
ArrayType: public seq::types::Type¶
Codegens the default value of this type. Usually this is just what you’d expect: zero for integral types, null for pointer and reference types, recursively defined for aggregate types.
value of the default value
block: where to codegen the default value
Performs a one-time initialization of this type’s methods, including magic methods.
Performs a one-time initialization of this type’s fields.
Returns whether this type is “atomic”. A type is defined to be atomic if its LLVM representation contains no pointers to heap allocated data. This is used internally by the GC, as we can allocate “atomic” and “non-atomic” blocks separately. Atomic blocks do not need to be scanned when searching for pointers.
is(Type *type) const¶
Checks whether this type “is” another type.
getBaseType(unsigned idx) const¶
Obtain the base type at index
idxshould be less than numBaseTypes().
getLLVMType(llvm::LLVMContext &context) const¶
Returns the LLVM type corresponding to this type.
size(llvm::Module *module) const¶
Returns the size (in bytes) of the LLVM type corresponding to this type.
make(llvm::Value *ptr, llvm::Value *len, llvm::BasicBlock *block)¶
Clones this type and all of its methods.
refis used internally to keep track of cloned objects, and to make sure we don’t clone certain objects twice.
ref: generic object that is being cloned
- Value *