cleaned up
[libfirm] / ir / ir / irnode_t.h
index 7552ed1..f842d85 100644 (file)
@@ -286,8 +286,7 @@ __is_ir_node (const void *thing) {
  * Intern version for libFirm.
  */
 static INLINE ir_op *
-__get_irn_op (const ir_node *node)
-{
+__get_irn_op (const ir_node *node) {
   assert (node);
   return node->op;
 }
@@ -297,8 +296,7 @@ __get_irn_op (const ir_node *node)
  * Intern version for libFirm.
  */
 static INLINE opcode
-__get_irn_opcode (const ir_node *node)
-{
+__get_irn_opcode (const ir_node *node) {
   assert (k_ir_node == get_kind(node));
   assert (node -> op);
   return node->op->code;
@@ -341,7 +339,7 @@ extern int (*__get_irn_arity)(const ir_node *node);
  */
 static INLINE ir_node *
 __get_irn_intra_n (ir_node *node, int n) {
-  assert(node); assert(-1 <= n && n < __get_irn_arity(node));
+  assert(node); assert(-1 <= n && n < __get_irn_intra_arity(node));
 
   return (node->in[n + 1] = skip_Id(node->in[n + 1]));
 }
@@ -351,7 +349,7 @@ __get_irn_intra_n (ir_node *node, int n) {
  */
 static INLINE ir_node*
 __get_irn_inter_n (ir_node *node, int n) {
-  assert(node); assert(-1 <= n && n < __get_irn_arity(node));
+  assert(node); assert(-1 <= n && n < __get_irn_inter_arity(node));
 
   /* handle Filter and Block specially */
   if (__get_irn_opcode(node) == iro_Filter) {
@@ -479,11 +477,39 @@ __get_irn_link(const ir_node *node) {
 static INLINE op_pin_state
 __get_irn_pinned(const ir_node *node) {
   op_pin_state state = __get_op_pinned(__get_irn_op(node));
-  if (state == op_pin_state_exc_pinned)
+  if (state >= op_pin_state_exc_pinned)
     return get_opt_fragile_ops() ? node->attr.except.pin_state : op_pin_state_pinned;
   return state;
 }
 
+static INLINE int
+__is_unop(const ir_node *node) {
+  return (node->op->opar == oparity_unary);
+}
+
+static INLINE int
+__is_binop(const ir_node *node) {
+  return (node->op->opar == oparity_binary);
+}
+
+static INLINE int
+__is_Bad(const ir_node *node) {
+  assert(node);
+  return (node && __get_irn_op(node) == op_Bad);
+}
+
+static INLINE int
+__is_no_Block(const ir_node *node) {
+  assert(node);
+  return (__get_irn_op(node) != op_Block);
+}
+
+static INLINE int
+__is_Block(const ir_node *node) {
+  assert(node);
+  return (__get_irn_op(node) == op_Block);
+}
+
 /* this section MUST contain all inline functions */
 #define is_ir_node(thing)          __is_ir_node(thing)
 #define get_irn_intra_arity(node)  __get_irn_intra_arity(node)
@@ -503,5 +529,10 @@ __get_irn_pinned(const ir_node *node) {
 #define irn_not_visited(node)      __irn_not_visited(node)
 #define set_irn_link(node, link)   __set_irn_link(node, link)
 #define get_irn_link(node)         __get_irn_link(node)
+#define is_unop(node)              __is_unop(node)
+#define is_binop(node)             __is_binop(node)
+#define is_Bad(node)               __is_Bad(node)
+#define is_no_Block(node)          __is_no_Block(node)
+#define is_Block(node)             __is_Block(node)
 
 # endif /* _IRNODE_T_H_ */