removed a bug
authorGötz Lindenmaier <goetz@ipd.info.uni-karlsruhe.de>
Tue, 20 Nov 2001 13:50:45 +0000 (13:50 +0000)
committerGötz Lindenmaier <goetz@ipd.info.uni-karlsruhe.de>
Tue, 20 Nov 2001 13:50:45 +0000 (13:50 +0000)
[r275]

ir/ir/ircons.c
ir/ir/irgopt.c

index 6dfb226..057de62 100644 (file)
@@ -1113,7 +1113,6 @@ get_r_frag_value_internal (ir_node *block, ir_node *cfOp, int pos, ir_mode *mode
   ir_node **rem;
   ir_node **frag_arr;
 
-  DDMSG2(cfOp);
   assert(is_fragile_op(cfOp));
 
   frag_arr = get_frag_arr(cfOp);
index 65e381e..361ca00 100644 (file)
@@ -486,7 +486,14 @@ void inline_method(ir_node *call, ir_graph *called_graph) {
     for (i = 0; i < arity; i++) {
       ir_node *ret;
       ret = skip_Proj(get_irn_n(end_bl, i));
-      if (is_fragile_op(ret) || (get_irn_op(ret) == op_Raise)) {
+      if (get_irn_op(ret) == op_Call) {
+       cf_pred[n_exc] = new_r_Proj(current_ir_graph, get_nodes_Block(ret), ret, mode_M, 3);
+       n_exc++;
+      } else if (is_fragile_op(ret)) {
+       /* We rely that all cfops have the memory output at the same position. */
+       cf_pred[n_exc] = new_r_Proj(current_ir_graph, get_nodes_Block(ret), ret, mode_M, 0);
+       n_exc++;
+      } else if (get_irn_op(ret) == op_Raise) {
        cf_pred[n_exc] = new_r_Proj(current_ir_graph, get_nodes_Block(ret), ret, mode_M, 1);
        n_exc++;
       }