+/**
+ * returns an Alloc node if the node adr Select
+ * from one
+ */
+static ir_node *is_depend_alloc(ir_node *adr) {
+ ir_node *alloc;
+
+ if (!is_Sel(adr))
+ return NULL;
+
+ /* should be a simple Sel */
+ if (get_Sel_n_indexs(adr) != 0)
+ return NULL;
+
+ alloc = skip_Proj(get_Sel_ptr(adr));
+ if (!is_Alloc(alloc))
+ return NULL;
+
+ /* hmm, we depend on this Alloc */
+ ir_printf("depend alloc %+F\n", alloc);
+
+ return NULL;
+}
+