is_irn_start_block_placed() added\nconst added to skip_Proj()
authorMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Fri, 29 Sep 2006 18:56:12 +0000 (18:56 +0000)
committerMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Fri, 29 Sep 2006 18:56:12 +0000 (18:56 +0000)
[r8310]

ir/ir/irnode.c
ir/ir/irnode.h
ir/ir/irnode_t.h

index cac4387..5e93ec7 100644 (file)
@@ -2374,7 +2374,7 @@ get_irn_irg(const ir_node *node) {
 /*----------------------------------------------------------------*/
 
 ir_node *
-skip_Proj (ir_node *node) {
+skip_Proj (const ir_node *node) {
   /* don't assert node !!! */
   if (node && is_Proj(node)) {
     return get_Proj_pred(node);
@@ -2715,6 +2715,13 @@ int (is_irn_keep)(const ir_node *node) {
   return _is_irn_keep(node);
 }
 
+/*
+ * Returns non-zero for nodes that are always placed in the start block.
+ */
+int (is_irn_start_block_placed)(const ir_node *node) {
+  return _is_irn_start_block_placed(node);
+}
+
 /* Returns non-zero for nodes that are machine operations. */
 int (is_irn_machine_op)(const ir_node *node) {
        return _is_irn_machine_op(node);
index efd2c5a..0c36be2 100644 (file)
@@ -1113,7 +1113,7 @@ void    set_Pin_op(ir_node *pin, ir_node *node);
  */
 
 /** returns operand of node if node is a Proj. */
-ir_node *skip_Proj(ir_node *node);
+ir_node *skip_Proj(const ir_node *node);
 /** returns operand of node if node is a Id */
 ir_node *skip_Id(ir_node *node);   /* Old name is skip_nop(). */
 /** returns corresponding operand of Tuple if node is a Proj from
@@ -1126,7 +1126,7 @@ ir_node *skip_Confirm(ir_node *node);
 /** Skip all high-level Operations. */
 ir_node *skip_HighLevel(ir_node *node);
 /** returns true if irn is a Const node. */
-int                     is_Const(const ir_node *node);
+int      is_Const(const ir_node *node);
 /** returns true if node is a Bad node. */
 int      is_Bad(const ir_node *node);
 /** returns true if node is a Start node. */
@@ -1211,6 +1211,11 @@ int is_irn_always_opt(const ir_node *node);
  */
 int is_irn_keep(const ir_node *node);
 
+/**
+ * Returns non-zero for nodes that are always placed in the start block.
+ */
+int is_irn_start_block_placed(const ir_node *node);
+
 /**
  * Returns non-zero for nodes that are machine operations.
  */
index 8a62795..c8e1593 100644 (file)
@@ -867,6 +867,10 @@ static INLINE int _is_irn_keep(const ir_node *node) {
   return is_op_keep(_get_irn_op(node));
 }
 
+static INLINE int _is_irn_start_block_placed(const ir_node *node) {
+  return is_op_start_block_placed(_get_irn_op(node));
+}
+
 static INLINE int _is_irn_machine_op(const ir_node *node) {
   return is_op_machine(_get_irn_op(node));
 }
@@ -958,6 +962,7 @@ static INLINE unsigned _get_irn_idx(const ir_node *node) {
 #define is_irn_constlike(node)                _is_irn_constlike(node)
 #define is_irn_always_opt(node)               _is_irn_always_opt(node)
 #define is_irn_keep(node)                     _is_irn_keep(node)
+#define is_irn_start_block_placed(node)       _is_irn_start_block_placed(node)
 #define is_irn_machine_op(node)               _is_irn_machine_op(node)
 #define is_irn_machine_operand(node)          _is_irn_machine_operand(node)
 #define is_irn_machine_user(node, n)          _is_irn_machine_user(node, n)