diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/lto-cgraph.c | 4 | ||||
-rw-r--r-- | gcc/lto/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/lto/lto-partition.c | 2 |
4 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4b7aeb5..2bbd60e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-05-16 Jan Hubicka <hubicka@ucw.cz> + + * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling + of inline thunks + 2016-05-16 Matthew Wahab <matthew.wahab@arm.com> Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> Jiong Wang <jiong.wang@arm.com> diff --git a/gcc/lto-cgraph.c b/gcc/lto-cgraph.c index 1430213..11d440b 100644 --- a/gcc/lto-cgraph.c +++ b/gcc/lto-cgraph.c @@ -972,7 +972,7 @@ compute_ltrans_boundary (lto_symtab_encoder_t in_encoder) if (node->alias && node->analyzed) create_references (encoder, node); if (cnode - && cnode->thunk.thunk_p) + && cnode->thunk.thunk_p && !cnode->global.inlined_to) add_node_to (encoder, cnode->callees->callee, false); while (node->transparent_alias && node->analyzed) { @@ -1028,7 +1028,7 @@ output_symtab (void) { node = dyn_cast <cgraph_node *> (lto_symtab_encoder_deref (encoder, i)); if (node - && (node->thunk.thunk_p + && ((node->thunk.thunk_p && !node->global.inlined_to) || lto_symtab_encoder_in_partition_p (encoder, node))) { output_outgoing_cgraph_edges (node->callees, ob, encoder); diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 80ffba3..06458d4 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,7 @@ +2016-05-16 Jan Hubicka <hubicka@ucw.cz> + + * lto-partition.c (add_symbol_to_partition_1): Likewise. + 2016-05-03 Jan Hubicka <hubicka@ucw.cz> * lto-symtab.c (lto_cgraph_replace_node): Initialize inline_failed. diff --git a/gcc/lto/lto-partition.c b/gcc/lto/lto-partition.c index c191d24..453343a 100644 --- a/gcc/lto/lto-partition.c +++ b/gcc/lto/lto-partition.c @@ -163,7 +163,7 @@ add_symbol_to_partition_1 (ltrans_partition part, symtab_node *node) /* Add all thunks associated with the function. */ for (e = cnode->callers; e; e = e->next_caller) - if (e->caller->thunk.thunk_p) + if (e->caller->thunk.thunk_p && !e->caller->global.inlined_to) add_symbol_to_partition_1 (part, e->caller); /* Instrumented version is actually the same function. |