From 7d81c123834b4dda865c7c1d8a9f03a387cb4424 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Christian=20W=C3=BCrdig?= Date: Tue, 13 Feb 2007 18:03:41 +0000 Subject: [PATCH] fixed keep-alive outedge bug (off-by-one error in edge position) changed ifdef for keep-alive out edges, they are on by default now [r8638] --- ir/ir/irnode.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/ir/ir/irnode.c b/ir/ir/irnode.c index 05c134906..db734bab0 100644 --- a/ir/ir/irnode.c +++ b/ir/ir/irnode.c @@ -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 */ } } -- 2.20.1