summaryrefslogtreecommitdiff
path: root/gcc/ipa.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ipa.c')
-rw-r--r--gcc/ipa.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ipa.c b/gcc/ipa.c
index 70b1d01873f..042c501ae88 100644
--- a/gcc/ipa.c
+++ b/gcc/ipa.c
@@ -426,6 +426,19 @@ symtab_remove_unreachable_nodes (bool before_inlining_p, FILE *file)
enqueue_node (cnode, &first, reachable);
}
}
+
+ }
+ /* If any reachable function has simd clones, mark them as
+ reachable as well. */
+ if (cnode->simd_clones)
+ {
+ cgraph_node *next;
+ for (next = cnode->simd_clones;
+ next;
+ next = next->simdclone->next_clone)
+ if (in_boundary_p
+ || !pointer_set_insert (reachable, next))
+ enqueue_node (next, &first, reachable);
}
}
/* When we see constructor of external variable, keep referred nodes in the