diff options
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/ipa-inline-transform.c | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3cd0538..ab19c52 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2019-12-05 Jan Hubicka <hubicka@ucw.cz> + * ipa-inline-transform.c (inline_call): Fix maintenatnce of comdat_local + +2019-12-05 Jan Hubicka <hubicka@ucw.cz> + * cgraphclones.c (localize_profile): New function. (cgraph_node::create_clone): Use it for partial profiles. * common.opt (fprofile-partial-training): New flag. diff --git a/gcc/ipa-inline-transform.c b/gcc/ipa-inline-transform.c index 6ec843a..fb2726d 100644 --- a/gcc/ipa-inline-transform.c +++ b/gcc/ipa-inline-transform.c @@ -331,6 +331,7 @@ inline_call (struct cgraph_edge *e, bool update_original, int old_size = 0, new_size = 0; struct cgraph_node *to = NULL; struct cgraph_edge *curr = e; + bool comdat_local = e->callee->comdat_local_p (); struct cgraph_node *callee = e->callee->ultimate_alias_target (); bool new_edges_found = false; @@ -502,7 +503,7 @@ inline_call (struct cgraph_edge *e, bool update_original, if (callee->calls_comdat_local) to->calls_comdat_local = true; - else if (to->calls_comdat_local && callee->comdat_local_p ()) + else if (to->calls_comdat_local && comdat_local) { struct cgraph_edge *se = to->callees; for (; se; se = se->next_callee) |