+ if (main_opts->timing == BE_TIME_ON) {
+ ra_timer.t_prolog = lc_timer_register("prolog", "regalloc prolog");
+ ra_timer.t_epilog = lc_timer_register("epilog", "regalloc epilog");
+ ra_timer.t_live = lc_timer_register("liveness", "be liveness");
+ ra_timer.t_spill = lc_timer_register("spill", "spiller");
+ ra_timer.t_color = lc_timer_register("color", "graph coloring");
+ ra_timer.t_ifg = lc_timer_register("ifg", "interference graph");
+ ra_timer.t_copymin = lc_timer_register("copymin", "copy minimization");
+ ra_timer.t_ssa = lc_timer_register("ssadestr", "ssa destruction");
+ ra_timer.t_verify = lc_timer_register("verify", "graph verification");
+ ra_timer.t_other = lc_timer_register("other", "other time");
+
+ LC_STOP_AND_RESET_TIMER(ra_timer.t_prolog);
+ LC_STOP_AND_RESET_TIMER(ra_timer.t_epilog);
+ LC_STOP_AND_RESET_TIMER(ra_timer.t_live);
+ LC_STOP_AND_RESET_TIMER(ra_timer.t_spill);
+ LC_STOP_AND_RESET_TIMER(ra_timer.t_color);
+ LC_STOP_AND_RESET_TIMER(ra_timer.t_ifg);
+ LC_STOP_AND_RESET_TIMER(ra_timer.t_copymin);
+ LC_STOP_AND_RESET_TIMER(ra_timer.t_ssa);
+ LC_STOP_AND_RESET_TIMER(ra_timer.t_verify);
+ LC_STOP_AND_RESET_TIMER(ra_timer.t_other);
+ }
+
+#define BE_TIMER_PUSH(timer) if (main_opts->timing == BE_TIME_ON) lc_timer_push(timer)
+#define BE_TIMER_POP() if (main_opts->timing == BE_TIME_ON) lc_timer_pop()
+
+ BE_TIMER_PUSH(ra_timer.t_other);
+ BE_TIMER_PUSH(ra_timer.t_prolog);
+