OSDN Git Service

gcc:
[pf3gnuchains/gcc-fork.git] / gcc / domwalk.h
index d477833..44ea396 100644 (file)
@@ -25,7 +25,7 @@ Boston, MA 02111-1307, USA.  */
 
 struct dom_walk_data
 {
-  /* This is the direction of the dominator tree we want to walk.  ie,
+  /* This is the direction of the dominator tree we want to walk.  i.e.,
      if it is set to CDI_DOMINATORS, then we walk the dominator tree,
      if it is set to CDI_POST_DOMINATORS, then we walk the post
      dominator tree.  */
@@ -55,7 +55,7 @@ struct dom_walk_data
   /* Function to call before the statement walk occurring before the
      recursive walk of the dominator children. 
 
-     This typically initializes an block local data and pushes that
+     This typically initializes a block local data and pushes that
      data onto BLOCK_DATA_STACK.  */
   void (*before_dom_children_before_stmts) (struct dom_walk_data *,
                                            basic_block);
@@ -103,8 +103,16 @@ struct dom_walk_data
   /* From here below are private data.  Please do not use this
      information/data outside domwalk.c.  */
 
-  /* Stack of available block local structures.   */
+  /* Stack of available block local structures.  */
   varray_type free_block_data;
+
+  /* Interesting blocks to process.  If this field is not NULL, this
+     set is used to determine which blocks to walk.  If we encounter
+     block I in the dominator traversal, but block I is not present in
+     INTERESTING_BLOCKS, then none of the callback functions are
+     invoked on it.  This is useful when a particular traversal wants
+     to filter out non-interesting blocks from the dominator tree.  */
+  sbitmap interesting_blocks;
 };
 
 void walk_dominator_tree (struct dom_walk_data *, basic_block);