summaryrefslogtreecommitdiffhomepage
path: root/ir/be/bespillslots.c
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2014-04-03 16:58:30 +0200
committerMatthias Braun <matze@braunis.de>2014-04-07 15:01:22 +0200
commit2c1a285e72b0ed3b0fc7c633e46aae323f8c954d (patch)
tree35867a23f0de5f260eecde193f33af16353fb277 /ir/be/bespillslots.c
parent34f56b9472295fa4cdfd69af6b3f881fb3eec894 (diff)
bespillslots: do not create affinity edges for self-loops
Diffstat (limited to 'ir/be/bespillslots.c')
-rw-r--r--ir/be/bespillslots.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/ir/be/bespillslots.c b/ir/be/bespillslots.c
index 998656d..88c22ce 100644
--- a/ir/be/bespillslots.c
+++ b/ir/be/bespillslots.c
@@ -133,6 +133,9 @@ static spill_t *collect_spill(be_fec_env_t *env, ir_node *node,
if (is_Phi(node)) {
foreach_irn_in(node, i, arg) {
+ /* ignore obvious self-loops */
+ if (arg == node)
+ continue;
affinity_edge_t *affinty_edge;
spill_t *arg_spill = collect_spill(env, arg, mode, align);
ir_node *block = get_nodes_block(arg);