aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2010-11-20 21:57:31 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2010-11-20 20:57:31 +0000
commit671769c38a2a4e4f76817307be3eb871f1acc399 (patch)
tree7cc39c470d6699fa1f571addc906bfa4b6db0039 /gcc
parent700c498021be8d1f76b9a32a6c61a9e84a10e886 (diff)
downloadgcc-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/ChangeLog15
-rw-r--r--gcc/cgraph.c16
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)