Class BaseFunc

Inheritance Relationships

Derived Types

Class Documentation

class seq::BaseFunc

Abstract base function class, representing functions in a program or the top-level module (which ultimately also compiles to an LLVM function).

Subclassed by seq::BaseFuncLite, seq::Func, seq::SeqModule

Public Functions

bool isGen()
void resolveTypes()
void codegen(llvm::Module *module) = 0
llvm::LLVMContext &getContext()
llvm::BasicBlock *getPreamble() const
types::FuncType *getFuncType()
llvm::Function *getFunc(llvm::Module *module)
void setEnclosingClass(types::Type *parentType)
BaseFunc *clone(Generic *ref)

Protected Functions


Protected Attributes

types::Type *parentType

Type containing this function as a method, or null if none.

llvm::Module *module

Module containing this function.

llvm::BasicBlock *preambleBlock

This function’s first block (where alloca’s are codegen’d)

llvm::Function *func

LLVM function representing this function.