initial checkin
[libfirm] / ir / be / bestat.c
index c7d181b..0c0034a 100644 (file)
@@ -52,20 +52,44 @@ static void stat_reg_pressure_block(ir_node *block, void *env) {
 }
 
 void be_do_stat_reg_pressure(be_irg_t *birg) {
-       /* Collect register pressure information for each block */
-       irg_block_walk_graph(birg->irg, stat_reg_pressure_block, NULL, birg);
+       if (stat_is_active()) {
+               be_liveness(birg->irg);
+               /* Collect register pressure information for each block */
+               irg_block_walk_graph(birg->irg, stat_reg_pressure_block, NULL, birg);
+       }
 }
 
 /**
  * Notify statistic module about amount of ready nodes.
  */
 void be_do_stat_sched_ready(ir_node *block, nodeset *ready_set) {
-       stat_be_block_sched_ready(get_irn_irg(block), block, nodeset_count(ready_set));
+       if (stat_is_active()) {
+               stat_be_block_sched_ready(get_irn_irg(block), block, nodeset_count(ready_set));
+       }
+}
+
+/**
+ * Pass information about a perm to the statistic module.
+ */
+void be_do_stat_perm(const char *class_name, int n_regs, ir_node *perm, ir_node *block, int n, int real_size) {
+       if (stat_is_active()) {
+               stat_be_block_stat_perm(class_name, n_regs, perm, block, n, real_size);
+       }
+}
+
+/**
+ * Pass information about a cycle or chain in a perm to the statistic module.
+ */
+void be_do_stat_permcycle(const char *class_name, ir_node *perm, ir_node *block, int is_chain, int n_elems, int n_ops) {
+       if (stat_is_active()) {
+               stat_be_block_stat_permcycle(class_name, perm, block, is_chain, n_elems, n_ops);
+       }
 }
 
 #else
 
 void (be_do_stat_reg_pressure)(be_irg_t *birg) {}
 void (be_do_stat_sched_ready)(ir_node *block, nodeset *ready_set) {}
+void (be_do_stat_perm)(const char *class_name, int n_regs, ir_node *perm, ir_node *block, int n, int real_size) {}
 
 #endif /* FIRM_STATISTICS */