fixed keep-alive outedge bug (off-by-one error in edge position)
authorChristian Würdig <chriswue@ipd.info.uni-karlsruhe.de>
Tue, 13 Feb 2007 18:03:41 +0000 (18:03 +0000)
committerChristian Würdig <chriswue@ipd.info.uni-karlsruhe.de>
Tue, 13 Feb 2007 18:03:41 +0000 (18:03 +0000)
changed ifdef for keep-alive out edges, they are on by default now

[r8638]

ir/ir/irnode.c

index 05c1349..db734ba 100644 (file)
@@ -831,16 +831,18 @@ add_End_keepalive (ir_node *end, ir_node *ka) {
        assert(end->op == op_End);
        l = ARR_LEN(end->in);
        ARR_APP1(ir_node *, end->in, ka);
-       //edges_notify_edge(end, l - 1, end->in[l], NULL, irg);
+#ifndef NO_KEEPALIVE_OUT_EDGES
+       edges_notify_edge(end, l, end->in[l], NULL, irg);
+#endif /* NO_KEEPALIVE_OUT_EDGES */
 }
 
 void
 set_End_keepalive(ir_node *end, int pos, ir_node *ka) {
        assert(end->op == op_End);
        end->in[pos + 1 + END_KEEPALIVE_OFFSET] = ka;
-#ifdef USE_KEEPALIVE_OUT_EDGES
+#ifndef NO_KEEPALIVE_OUT_EDGES
        set_irn_n(end, pos + END_KEEPALIVE_OFFSET, ka);
-#endif /* USE_KEEPALIVE_OUT_EDGES */
+#endif /* NO_KEEPALIVE_OUT_EDGES */
 }
 
 /* Set new keep-alives */
@@ -848,19 +850,19 @@ void set_End_keepalives(ir_node *end, int n, ir_node *in[]) {
        int i;
        ir_graph *irg = get_irn_irg(end);
 
-#ifdef USE_KEEPALIVE_OUT_EDGES
+#ifndef NO_KEEPALIVE_OUT_EDGES
        /* notify that edges are deleted */
        for (i = 1 + END_KEEPALIVE_OFFSET; i < ARR_LEN(end->in); ++i) {
                edges_notify_edge(end, i, NULL, end->in[i], irg);
        }
-#endif /* USE_KEEPALIVE_OUT_EDGES */
+#endif /* NO_KEEPALIVE_OUT_EDGES */
        ARR_RESIZE(ir_node *, end->in, n + 1 + END_KEEPALIVE_OFFSET);
 
        for (i = 0; i < n; ++i) {
                end->in[1 + END_KEEPALIVE_OFFSET + i] = in[i];
-#ifdef USE_KEEPALIVE_OUT_EDGES
-               edges_notify_edge(end, END_KEEPALIVE_OFFSET + i, end->in[1 + END_KEEPALIVE_OFFSET + i], NULL, irg);
-#endif /* USE_KEEPALIVE_OUT_EDGES */
+#ifndef NO_KEEPALIVE_OUT_EDGES
+               edges_notify_edge(end, 1 + END_KEEPALIVE_OFFSET + i, end->in[1 + END_KEEPALIVE_OFFSET + i], NULL, irg);
+#endif /* NO_KEEPALIVE_OUT_EDGES */
        }
 }