diff options
author | Jan Hubicka <jh@suse.cz> | 2010-11-20 21:57:31 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2010-11-20 20:57:31 +0000 |
commit | 671769c38a2a4e4f76817307be3eb871f1acc399 (patch) | |
tree | 7cc39c470d6699fa1f571addc906bfa4b6db0039 /gcc | |
parent | 700c498021be8d1f76b9a32a6c61a9e84a10e886 (diff) | |
download | gcc-671769c38a2a4e4f76817307be3eb871f1acc399.zip gcc-671769c38a2a4e4f76817307be3eb871f1acc399.tar.gz gcc-671769c38a2a4e4f76817307be3eb871f1acc399.tar.bz2 |
cgraph.c (ld_plugin_symbol_resolution_names): New.
* cgraph.c (ld_plugin_symbol_resolution_names): New.
(dump_cgraph_node): Dump resolution.
* cgraph.h (ld_plugin_symbol_resolution_names): Declare.
(cgraph_comdat_can_be_unshared_p): Dclare.
* lto-streamer-out.c (produce_symtab): Use
cgraph_comdat_can_be_unshared_p.
* ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
(cgraph_comdat_can_be_unshared_p): New function based on logic
in cgraph_externally_visible_p.
(cgraph_externally_visible_p): Use it.
(varpool_externally_visible_p): Virtual tables can be unshared.
* varpool.c (dump_varpool_node): Dump resolution.
From-SVN: r166984
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 15 | ||||
-rw-r--r-- | gcc/cgraph.c | 16 |
2 files changed, 31 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index aea6f59..3fd3ae1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,20 @@ 2010-11-20 Jan Hubicka <jh@suse.cz> + * cgraph.c (ld_plugin_symbol_resolution_names): New. + (dump_cgraph_node): Dump resolution. + * cgraph.h (ld_plugin_symbol_resolution_names): Declare. + (cgraph_comdat_can_be_unshared_p): Dclare. + * lto-streamer-out.c (produce_symtab): Use + cgraph_comdat_can_be_unshared_p. + * ipa.c (cgraph_address_taken_from_non_vtable_p): New function. + (cgraph_comdat_can_be_unshared_p): New function based on logic + in cgraph_externally_visible_p. + (cgraph_externally_visible_p): Use it. + (varpool_externally_visible_p): Virtual tables can be unshared. + * varpool.c (dump_varpool_node): Dump resolution. + +2010-11-20 Jan Hubicka <jh@suse.cz> + * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p. 2010-11-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> diff --git a/gcc/cgraph.c b/gcc/cgraph.c index fbeb094..36bb87a 100644 --- a/gcc/cgraph.c +++ b/gcc/cgraph.c @@ -99,6 +99,19 @@ The callgraph: #include "ipa-utils.h" #include "lto-streamer.h" +const char * const ld_plugin_symbol_resolution_names[]= +{ + "", + "undef", + "prevailing_def", + "prevailing_def_ironly", + "preempted_reg", + "preempted_ir", + "resolved_ir", + "resolved_exec", + "resolved_dyn" +}; + static void cgraph_node_remove_callers (struct cgraph_node *node); static inline void cgraph_edge_remove_caller (struct cgraph_edge *e); static inline void cgraph_edge_remove_callee (struct cgraph_edge *e); @@ -1866,6 +1879,9 @@ dump_cgraph_node (FILE *f, struct cgraph_node *node) fprintf (f, " local"); if (node->local.externally_visible) fprintf (f, " externally_visible"); + if (node->resolution != LDPR_UNKNOWN) + fprintf (f, " %s", + ld_plugin_symbol_resolution_names[(int)node->resolution]); if (node->local.finalized) fprintf (f, " finalized"); if (node->local.disregard_inline_limits) |