bool codegen(ast_t* program, pass_opt_t* opt) { printf("Generating\n"); pony_mkdir(opt->output); compile_t c; memset(&c, 0, sizeof(compile_t)); init_module(&c, program, opt); init_runtime(&c); genprim_builtins(&c); // Emit debug info for this compile unit. dwarf_init(&c.dwarf, c.opt, c.builder, c.target_data, c.module); dwarf_compileunit(&c.dwarf, program); bool ok; if(c.opt->library) ok = genlib(&c, program); else ok = genexe(&c, program); codegen_cleanup(&c); return ok; }
bool codegen(ast_t* program, pass_opt_t* opt) { if(opt->verbosity >= VERBOSITY_MINIMAL) fprintf(stderr, "Generating\n"); pony_mkdir(opt->output); compile_t c; memset(&c, 0, sizeof(compile_t)); genned_strings_init(&c.strings, 64); ffi_decls_init(&c.ffi_decls, 64); if(!init_module(&c, program, opt)) return false; init_runtime(&c); genprim_reachable_init(&c, program); bool ok; if(c.opt->library) ok = genlib(&c, program); else ok = genexe(&c, program); codegen_cleanup(&c); return ok; }
bool codegen(ast_t* program, pass_opt_t* opt) { PONY_LOG(opt, VERBOSITY_MINIMAL, ("Generating\n")); pony_mkdir(opt->output); compile_t c; memset(&c, 0, sizeof(compile_t)); init_module(&c, program, opt); init_runtime(&c); genprim_reachable_init(&c, program); bool ok; if(c.opt->library) ok = genlib(&c, program); else ok = genexe(&c, program); codegen_cleanup(&c); return ok; }