get_extbb_leader() and get_extbb_node_nr() added
authorMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Thu, 8 Sep 2005 14:19:28 +0000 (14:19 +0000)
committerMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Thu, 8 Sep 2005 14:19:28 +0000 (14:19 +0000)
[r6603]

ir/ana/irextbb.c
ir/ana/irextbb.h
ir/ana/irextbb_t.h

index d06c3de..c22aba1 100644 (file)
@@ -226,3 +226,13 @@ int (get_extbb_n_blocks)(const ir_extblk *blk) {
 ir_node *(get_extbb_block)(ir_extblk *blk, int pos) {
   return _get_extbb_block(blk, pos);
 }
+
+/* Return the leader basis block of an extended block. */
+ir_node *(get_extbb_leader)(ir_extblk *blk) {
+  return _get_extbb_leader(blk);
+}
+
+/* Return the node number of an extended block. */
+long get_extbb_node_nr(ir_extblk *blk) {
+  return get_irn_node_nr(get_extbb_leader(blk));
+}
index 4327e84..d64b5c2 100644 (file)
@@ -85,14 +85,24 @@ void *get_extbb_link(const ir_extblk *blk);
 void set_extbb_link(ir_extblk *blk, void *link);
 
 /**
- * Return the number of basic blocks of an extended block
+ * Return the number of basic blocks of an extended block.
  */
 int get_extbb_n_blocks(const ir_extblk *blk);
 
 /**
- * Return the i'th basic block of an extended block
+ * Return the i'th basic block of an extended block.
  */
 ir_node *get_extbb_block(ir_extblk *blk, int pos);
 
+/**
+ * Return the leader basis block of an extended block.
+ */
+ir_node *get_extbb_leader(ir_extblk *blk);
+
+/**
+ * Return the node number of an extended block.
+ * Its the block number of the leader block
+ */
+long get_extbb_node_nr(ir_extblk *blk);
 
 #endif /* _IREXTBB_H_ */
index 1577862..926ed85 100644 (file)
@@ -23,6 +23,7 @@
 #include "firm_config.h"
 #include "irgraph_t.h"
 #include "irextbb.h"
+#include "irtools.h"
 
 /**
  * An extended block.
@@ -124,6 +125,15 @@ _get_extbb_block(ir_extblk *blk, int pos)
   return blk->blks[pos];
 }
 
+/**
+ * Return the leader basis block of an extended block
+ */
+static INLINE ir_node *
+_get_extbb_leader(ir_extblk *blk)
+{
+  return blk->blks[0];
+}
+
 #define get_extbb_visited(blk)         _get_extbb_visited(blk)
 #define set_extbb_visited(blk, v)      _set_extbb_visited(blk, v)
 #define mark_extbb_visited(blk)          _mark_extbb_visited(blk)
@@ -132,5 +142,6 @@ _get_extbb_block(ir_extblk *blk, int pos)
 #define get_extbb_link(blk)       _get_extbb_link(blk)
 #define set_extbb_link(blk, link) _set_extbb_link(blk, link)
 #define get_extbb_n_blocks(blk)   _get_extbb_n_blocks(blk)
+#define get_extbb_leader(blk)     _get_extbb_leader(blk)
 
 #endif /* _IREXTBB_H_ */