added function to retrieve number of reachable nodes in an irg
authorChristian Würdig <chriswue@ipd.info.uni-karlsruhe.de>
Fri, 23 Jun 2006 10:37:32 +0000 (10:37 +0000)
committerChristian Würdig <chriswue@ipd.info.uni-karlsruhe.de>
Fri, 23 Jun 2006 10:37:32 +0000 (10:37 +0000)
ir/be/beutil.c
ir/be/beutil.h

index 844fcf2..7e0e7a3 100644 (file)
@@ -1,3 +1,8 @@
+/**
+ * Contains some useful function for the backend.
+ * @author Sebastian Hack
+ * @cvsid  $Id$
+ */
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -207,6 +212,17 @@ void be_collect_phis(ir_graph *irg)
        irg_walk_graph(irg, collect_phis, NULL, NULL);
 }
 
+unsigned count_num_reachable_nodes(ir_node *irn, void *env) {
+       int *num = env;
+       (*num)++;
+}
+
+unsigned get_num_reachable_nodes(ir_graph *irg) {
+       int num = 0;
+       irg_walk_graph(irg, count_num_reachable_nodes, NULL, &num);
+       return num;
+}
+
 /* FIXME: not used. can be deleted? */
 ir_node *dom_up_search(pset *accept, ir_node *start_point_exclusive) {
        ir_node *irn, *idom;
index ae193f5..cc6e60b 100644 (file)
@@ -117,6 +117,13 @@ void dump_ir_extblock_graph_sched(ir_graph *irg, const char *suffix);
  */
 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.
  * The search is started at @p start_point_exclusive and continues upwards the dom-tree