diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2016-05-16 11:55:14 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2016-05-16 09:55:14 +0000 |
commit | 479f99c9679096f14f8d9d8bbb0ada049dbdead1 (patch) | |
tree | dfb0d85d01678d543b8759d656132ba16c20d587 /gcc | |
parent | 1b81a1c1bd5355d8b5405825b4478078e76fd906 (diff) | |
download | gcc-479f99c9679096f14f8d9d8bbb0ada049dbdead1.zip gcc-479f99c9679096f14f8d9d8bbb0ada049dbdead1.tar.gz gcc-479f99c9679096f14f8d9d8bbb0ada049dbdead1.tar.bz2 |
lto-cgraph.c (compute_ltrans_boundary, [...]): Fix handling of inline thunks
* lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
of inline thunks
* lto-partition.c (add_symbol_to_partition_1): Likewise.
From-SVN: r236270
Diffstat (limited to 'gcc')
-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. |