module volt.llvm.toplevel
Code handling control flow and toplevel contstructs.
Code Map
//! Code handling control flow and toplevel contstructs.
module volt.llvm.toplevel;
//! Visits a module and turn it into code.
class LlvmVisitor : NullVisitor
{
public:
struct Block
{
public:
_case: ir.SwitchCase;
block: LLVMBasicBlockRef;
}
public:
state: State;
mod: LLVMModuleRef;
b: LLVMBuilderRef;
public:
this(lv: State) { }
fn compile(m: ir.Module) { }
fn enter(func: ir.Function) Status { }
fn enter(var: ir.Variable) Status { }
fn enter(ret: ir.ReturnStatement) Status { }
fn enter(exps: ir.ExpStatement) Status { }
fn enter(ss: ir.SwitchStatement) Status { }
fn enter(t: ir.TryStatement) Status { }
fn handleTryNoEH(t: ir.TryStatement) { }
fn handleTryPosixEH(t: ir.TryStatement) { }
fn enter(ifs: ir.IfStatement) Status { }
fn enter(w: ir.WhileStatement) Status { }
fn enter(d: ir.DoStatement) Status { }
fn enter(f: ir.ForStatement) Status { }
fn enter(bs: ir.BlockStatement) Status { }
fn visit(cs: ir.ContinueStatement) Status { }
fn visit(bs: ir.BreakStatement) Status { }
fn leave(gs: ir.GotoStatement) Status { }
fn leave(t: ir.ThrowStatement) Status { }
fn leave(m: ir.Module) Status { }
fn doNewBlock(b: LLVMBasicBlockRef, bs: ir.BlockStatement, fall: LLVMBasicBlockRef) { }
fn handleScopeSuccessTo(loc: Location, to: State.PathState) { }
fn handleScopedFunction(func: ir.Function, llvmFunc: LLVMValueRef) { }
fn handleScopedFunctionPosixAndNone(func: ir.Function, llvmFunc: LLVMValueRef) { }
fn fillInLandingPad(landingPad: LLVMBasicBlockRef, setCleanup: bool, catchPath: State.PathState) { }
fn enter(m: ir.Module) Status { }
fn leave(v: ir.Variable) Status { }
fn leave(f: ir.Function) Status { }
fn leave(i: ir.IfStatement) Status { }
fn leave(e: ir.ExpStatement) Status { }
fn leave(b: ir.BlockStatement) Status { }
fn leave(r: ir.ReturnStatement) Status { }
}
class LlvmVisitor : NullVisitor
Visits a module and turn it into code.