+static INLINE int _get_irn_deps(const ir_node *node)
+{
+ return node->deps ? ARR_LEN(node->deps) : 0;
+}
+
+static INLINE ir_node *_get_irn_dep(const ir_node *node, int pos)
+{
+ assert(node->deps && "dependency array node yet allocated. use add_irn_dep()");
+ assert(pos >= 0 && pos < ARR_LEN(node->deps) && "dependency index out of range");
+ return node->deps[pos];
+}
+
+static INLINE void
+_set_irn_dep(ir_node *node, int pos, ir_node *dep)
+{
+ ir_node *old;
+
+ assert(node->deps && "dependency array node yet allocated. use add_irn_dep()");
+ assert(pos >= 0 && pos < ARR_LEN(node->deps) && "dependency index out of range");
+ old = node->deps[pos];
+ node->deps[pos] = dep;
+ edges_notify_edge_kind(node, pos, dep, old, EDGE_KIND_DEP, get_irn_irg(node));
+}
+
+
+static INLINE int
+_get_irn_ins_or_deps(const ir_node *irn)
+{
+ return _get_irn_deps(irn) + _get_irn_arity(irn);
+}
+
+static INLINE ir_node *
+_get_irn_in_or_dep(const ir_node *irn, int pos)
+{
+ int n_in = get_irn_arity(irn);
+ return pos < n_in ? get_irn_n(irn, pos) : get_irn_dep(irn, pos - n_in);
+}
+