void IRGenerator::accept(Handler& handler) { FNTRACE(); setHandler(getHandler(handler.name())); setInsertPoint(createBlock("EntryPoint")); this->handler()->setEntryPoint(getInsertPoint()); for (Symbol* symbol: *handler.scope()) { codegen(symbol); } codegen(handler.body()); createRet(get(false)); }
void IRGenerator::accept(Handler& handlerSym) { FNTRACE(); assert(handlerStack_.empty()); setHandler(getHandler(handlerSym.name())); setInsertPoint(createBlock("EntryPoint")); codegenInline(handlerSym); createRet(get(false)); handler()->verify(); assert(handlerStack_.empty()); }