diff options
author | Jan Hubicka <jh@suse.cz> | 2011-10-02 16:30:50 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2011-10-02 14:30:50 +0000 |
commit | 467a8db025e7513bca07688dc3eaf515bed0eb87 (patch) | |
tree | f40e1b4f38e5db0794b1f03ee8f8d26958cf4b8b /gcc/ipa.c | |
parent | 78e5ce9f1eb789154f083296ae85a7582bc36a97 (diff) | |
download | gcc-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.c | 7 |
1 files changed, 1 insertions, 6 deletions
@@ -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); |