aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2010-04-21 19:42:46 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2010-04-21 17:42:46 +0000
commitecd03d10ccfc428749fcada10f9bee48e13f22cc (patch)
tree484cfb0de94cfefd7d49f6f11a6d0c3fb1d87308 /gcc
parent71a810c300b69083846e8a5aab4745c65b7657de (diff)
downloadgcc-ecd03d10ccfc428749fcada10f9bee48e13f22cc.zip
gcc-ecd03d10ccfc428749fcada10f9bee48e13f22cc.tar.gz
gcc-ecd03d10ccfc428749fcada10f9bee48e13f22cc.tar.bz2
lto-cgraph.c (lto_output_node): Do not output comdat groups for boundary nodes.
* lto-cgraph.c (lto_output_node): Do not output comdat groups for boundary nodes. (output_cgraph): Do not arrange comdat groups for boundary nodes. From-SVN: r158615
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/lto-cgraph.c24
2 files changed, 7 insertions, 23 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a532459..bb8e0aa 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2010-04-21 Jan Hubicka <jh@suse.cz>
+
+ * lto-cgraph.c (lto_output_node): Do not output comdat groups
+ for boundary nodes.
+ (output_cgraph): Do not arrange comdat groups for boundary nodes.
+
2010-04-21 Jakub Jelinek <jakub@redhat.com>
PR debug/40040
diff --git a/gcc/lto-cgraph.c b/gcc/lto-cgraph.c
index 309db7f..cb87143 100644
--- a/gcc/lto-cgraph.c
+++ b/gcc/lto-cgraph.c
@@ -324,7 +324,7 @@ lto_output_node (struct lto_simple_output_block *ob, struct cgraph_node *node,
lto_output_sleb128_stream (ob->main_stream,
node->global.estimated_growth);
lto_output_uleb128_stream (ob->main_stream, node->global.inlined);
- if (node->same_comdat_group)
+ if (node->same_comdat_group && !boundary_p)
{
ref = lto_cgraph_encoder_lookup (encoder, node->same_comdat_group);
gcc_assert (ref != LCC_NOT_FOUND);
@@ -447,30 +447,8 @@ output_cgraph (cgraph_node_set set)
/* We should have moved all the inlines. */
gcc_assert (!callee->global.inlined_to);
add_node_to (encoder, callee);
- /* Also with each included function include all other functions
- in the same comdat group. */
- if (callee->same_comdat_group)
- {
- struct cgraph_node *next;
- for (next = callee->same_comdat_group;
- next != callee;
- next = next->same_comdat_group)
- if (!cgraph_node_in_set_p (next, set))
- add_node_to (encoder, next);
- }
}
}
- /* Also with each included function include all other functions
- in the same comdat group. */
- if (node->same_comdat_group)
- {
- struct cgraph_node *next;
- for (next = node->same_comdat_group;
- next != node;
- next = next->same_comdat_group)
- if (!cgraph_node_in_set_p (next, set))
- add_node_to (encoder, next);
- }
}
/* Write out the nodes. We must first output a node and then its clones,