X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=driver%2Ffirm_codegen.c;h=ad89a969a3b6befc1b54b9ab53e1bf93fd1a677f;hb=86e613f57ea7f1eac5b020163a1ab045ee198142;hp=dd44a6ff07e5c97021ae2cc5e828765f94609e3c;hpb=6d7d61de445629e1590d3a2ba2990ef7a651368a;p=cparser diff --git a/driver/firm_codegen.c b/driver/firm_codegen.c index dd44a6f..ad89a96 100644 --- a/driver/firm_codegen.c +++ b/driver/firm_codegen.c @@ -41,11 +41,9 @@ static char *generate_asm_file_name(const char *file_name) { break; #endif -#ifdef FIRM_BACKEND case BE_FIRM_BE: strncat(asm_file_name, ".s", 4); break; -#endif } return asm_file_name; @@ -55,42 +53,45 @@ static char *generate_asm_file_name(const char *file_name) { * Calls the specified backend. * Code is written to file ('.c' is substituted for '.asm') */ -void do_codegen(FILE *out, const char *file_name) { - FILE *close_out = NULL; - if (out == NULL) { - char *asm_file_name = generate_asm_file_name(file_name); +void do_codegen(FILE *out, const char *file_name) +{ + FILE *close_out = NULL; + if (out == NULL) { + char *asm_file_name = generate_asm_file_name(file_name); - if ((out = fopen(asm_file_name, "w")) == NULL) { - fprintf(stderr, "Could not open output file %s\n", asm_file_name); - exit(1); - } - free(asm_file_name); - close_out = out; - } + if ((out = fopen(asm_file_name, "w")) == NULL) { + fprintf(stderr, "Could not open output file %s\n", asm_file_name); + exit(1); + } + free(asm_file_name); + close_out = out; + } - switch (firm_be_opt.selection) { + switch (firm_be_opt.selection) { #ifdef FIRM2C_BACKEND - case BE_FIRM2C: - timer_start(TV_FIRM2C_BE); - cbackend_set_debug_retrieve(dbg_retrieve); - generate_code_file(out); - timer_stop(TV_FIRM2C_BE); - break; + case BE_FIRM2C: { + ir_timer_t *timer = ir_timer_new(); + timer_register(timer, "Firm: C-generating backend"); + timer_start(timer); + generate_code_file(out); + timer_stop(timer); + break; + } #endif -#ifdef FIRM_BACKEND - case BE_FIRM_BE: - timer_start(TV_FIRM_BE); - ir_set_debug_retrieve(dbg_retrieve); - be_main(out, file_name); - timer_stop(TV_FIRM_BE); - break; -#endif + case BE_FIRM_BE: { + ir_timer_t *timer = ir_timer_new(); + timer_register(timer, "Firm: backend"); + timer_start(timer); + be_main(out, file_name); + timer_stop(timer); + break; + } - default: - fprintf(stderr, "Fatal: Unknown backend %d\n", firm_be_opt.selection); - } /* switch (firm_be_opt.selection) */ + default: + fprintf(stderr, "Fatal: Unknown backend %d\n", firm_be_opt.selection); + } /* switch (firm_be_opt.selection) */ - if (close_out) - fclose(close_out); -} /* do_codegen() */ + if (close_out) + fclose(close_out); +}