aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2011-10-02 16:30:50 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2011-10-02 14:30:50 +0000
commit467a8db025e7513bca07688dc3eaf515bed0eb87 (patch)
treef40e1b4f38e5db0794b1f03ee8f8d26958cf4b8b /gcc/ipa.c
parent78e5ce9f1eb789154f083296ae85a7582bc36a97 (diff)
downloadgcc-467a8db025e7513bca07688dc3eaf515bed0eb87.zip
gcc-467a8db025e7513bca07688dc3eaf515bed0eb87.tar.gz
gcc-467a8db025e7513bca07688dc3eaf515bed0eb87.tar.bz2
cgraphunit.c (ipa_passes): Remove unrechable nodes.
* cgraphunit.c (ipa_passes): Remove unrechable nodes. * lto-streamer-out.c (produce_symtab): Skip unused extern declarations. * ipa.c (cgraph_remove_unreachable_nodes): Do not assume that external functions are reachable when address is taken. * ipa-inline-analysis.c (reset_inline_edge_summary): New * gcc.dg/ipa/ctor-empty-1.c: Update dump file. From-SVN: r179429
Diffstat (limited to 'gcc/ipa.c')
-rw-r--r--gcc/ipa.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/gcc/ipa.c b/gcc/ipa.c
index a8c4a35..dfd8eef 100644
--- a/gcc/ipa.c
+++ b/gcc/ipa.c
@@ -196,12 +196,7 @@ cgraph_remove_unreachable_nodes (bool before_inlining_p, FILE *file)
/* Keep around virtual functions for possible devirtualization. */
|| (before_inlining_p
&& DECL_VIRTUAL_P (node->decl)
- && (DECL_COMDAT (node->decl) || DECL_EXTERNAL (node->decl)))
- /* Also external functions with address taken are better to stay
- for indirect inlining. */
- || (before_inlining_p
- && DECL_EXTERNAL (node->decl)
- && node->address_taken)))
+ && (DECL_COMDAT (node->decl) || DECL_EXTERNAL (node->decl)))))
{
gcc_assert (!node->global.inlined_to);
enqueue_cgraph_node (node, &first);