aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2016-05-16 11:55:14 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2016-05-16 09:55:14 +0000
commit479f99c9679096f14f8d9d8bbb0ada049dbdead1 (patch)
treedfb0d85d01678d543b8759d656132ba16c20d587 /gcc
parent1b81a1c1bd5355d8b5405825b4478078e76fd906 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/lto-cgraph.c4
-rw-r--r--gcc/lto/ChangeLog4
-rw-r--r--gcc/lto/lto-partition.c2
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.