added routine to read flag
[libfirm] / ir / ana / field_temperature.c
index 9afc3e6..e23bef3 100644 (file)
@@ -170,7 +170,7 @@ int get_irn_loop_call_depth(ir_node *n) {
 }
 
 int get_irn_loop_depth(ir_node *n) {
-  get_loop_depth(get_irn_loop(get_nodes_block(n)));
+  return get_loop_depth(get_irn_loop(get_nodes_block(n)));
 }
 
 int get_irn_recursion_depth(ir_node *n) {
@@ -212,6 +212,9 @@ void chain_accesses(ir_node *n, void *env) {
 
   if (is_memop(n)) {
     addr = get_memop_ptr(n);
+  } else if (get_irn_op(n) == op_Call) {
+    addr = get_Call_ptr(n);
+    if (get_irn_op(addr) != op_Sel) return;  /* Sels before Calls mean a Load / polymorphic Call. */
   } else {
     return;
   }