X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbe_t.h;h=d3c63fd5e0b982f6b012d3efb1be7dcda8eca097;hb=d300330b1e6df8c8914b8fb70cf38ee1c8ca2634;hp=279f66e472b5c69d9a35214ba1ddb83877c80de7;hpb=1ce363f80e6a204d4011f85813362d9bd1d0e7e4;p=libfirm diff --git a/ir/be/be_t.h b/ir/be/be_t.h index 279f66e47..d3c63fd5e 100644 --- a/ir/be/be_t.h +++ b/ir/be/be_t.h @@ -30,10 +30,10 @@ #include "obst.h" #include "debug.h" #include "bitset.h" +#include "timing.h" #include "be.h" #include "bearch.h" -#include "be_dbgout.h" #include "beirg.h" #define DUMP_NONE 0 @@ -67,9 +67,9 @@ struct be_options_t { int timing; /**< time the backend phases */ int opt_profile; /**< instrument code for profiling */ int omit_fp; /**< try to omit the frame pointer */ - int stabs_debug_support; /**< enable stabs debugging support */ int vrfy_option; /**< backend verify option */ int scheduler; /**< the scheduler */ + char target_os[128]; /**< target operating system name */ char ilp_server[128]; /**< the ilp server name */ char ilp_solver[128]; /**< the ilp solver name */ int statev; /**< enable stat event dumping */ @@ -82,7 +82,6 @@ struct be_main_env_t { be_options_t *options; arch_code_generator_t *cg; arch_irn_handler_t *phi_handler; - dbg_handle *db_handle; const char *cup_name; }; @@ -93,7 +92,46 @@ struct be_main_env_t { * @param bs The bitset (may be NULL). * @return The number of registers to be ignored. */ -unsigned be_put_ignore_regs(const be_irg_t *birg, const arch_register_class_t *cls, - bitset_t *bs); +unsigned be_put_ignore_regs(const be_irg_t *birg, + const arch_register_class_t *cls, bitset_t *bs); + +extern int be_timing; + +#define BE_TIMER_PUSH(timer) \ + if (be_timing) { \ + int res = ir_timer_push(timer); \ + (void) res; \ + assert(res && "Timer already on stack, cannot be pushed twice."); \ + } + +#define BE_TIMER_POP(timer) \ + if (be_timing) { \ + ir_timer_t *tmp = ir_timer_pop(); \ + (void) tmp; \ + assert(tmp == timer && "Attempt to pop wrong timer."); \ + } + +extern ir_timer_t *t_abi; +extern ir_timer_t *t_codegen; +extern ir_timer_t *t_sched; +extern ir_timer_t *t_constr; +extern ir_timer_t *t_finish; +extern ir_timer_t *t_emit; +extern ir_timer_t *t_other; +extern ir_timer_t *t_execfreq; +extern ir_timer_t *t_verify; +extern ir_timer_t *t_heights; +extern ir_timer_t *t_live; /**< timer for liveness calculation */ +extern ir_timer_t *t_ssa_constr; /**< timer for ssa reconstruction */ +extern ir_timer_t *t_ra_prolog; /**< timer for prolog */ +extern ir_timer_t *t_ra_epilog; /**< timer for epilog */ +extern ir_timer_t *t_ra_constr; /**< timer for spill constraints */ +extern ir_timer_t *t_ra_spill; /**< timer for spilling */ +extern ir_timer_t *t_ra_spill_apply; +extern ir_timer_t *t_ra_color; /**< timer for graph coloring */ +extern ir_timer_t *t_ra_ifg; /**< timer for building interference graph */ +extern ir_timer_t *t_ra_copymin; /**< timer for copy minimization */ +extern ir_timer_t *t_ra_ssa; /**< timer for ssa destruction */ +extern ir_timer_t *t_ra_other; /**< timer for remaining stuff */ #endif /* FIRM_BE_BE_T_H */