Added some statistics events
[libfirm] / ir / be / beutil.h
index 122e217..cc6e60b 100644 (file)
@@ -87,6 +87,7 @@ static INLINE FILE *ffopen(const char *base, const char *ext, const char *mode)
        char buf[1024];
 
        snprintf(buf, sizeof(buf), "%s.%s", base, ext);
+       buf[sizeof(buf) - 1] = '\0';
        if (! (out = fopen(buf, mode))) {
                fprintf(stderr, "Cannot open file %s in mode %s\n", buf, mode);
                return NULL;
@@ -101,7 +102,27 @@ static INLINE FILE *ffopen(const char *base, const char *ext, const char *mode)
  */
 void dump_ir_block_graph_sched(ir_graph *irg, const char *suffix);
 
-#endif
+/**
+ * Dump a extended block graph with schedule edges.
+ * @param irg The graph.
+ * @param suffix A suffix to its file name.
+ */
+void dump_ir_extblock_graph_sched(ir_graph *irg, const char *suffix);
+
+/**
+ * Dumps a graph and numbers all dumps.
+ * @param irg    The graph
+ * @param suffix A suffix to its file name.
+ * @param dumper The dump function
+ */
+void be_dump(ir_graph *irg, const char *suffix, void (*dumper)(ir_graph *, const char *));
+
+/**
+ * Returns the number of reachable nodes in an irg.
+ * @param irg The irg.
+ * @return The number of reachable nodes.
+ */
+unsigned get_num_reachable_nodes(ir_graph *irg);
 
 /**
  * Search for an irn in @p accept.
@@ -109,3 +130,5 @@ void dump_ir_block_graph_sched(ir_graph *irg, const char *suffix);
  * @return The first node out of accept if found. Else NULL is returned.
  */
 ir_node *dom_up_search(pset *accept, ir_node *start_point_exclusive);
+
+#endif /* _BEUTIL_H */