aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraph.h
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2014-02-07 03:27:05 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2014-02-07 02:27:05 +0000
commit964512791e121b627ced9b14021856ca34121bc0 (patch)
tree63a0d48e093baf01eaef591a754404df1020cbe3 /gcc/cgraph.h
parentb3bb0eb9c0a89c9ec197f2f0a7c2e6a8d3f004af (diff)
downloadgcc-964512791e121b627ced9b14021856ca34121bc0.zip
gcc-964512791e121b627ced9b14021856ca34121bc0.tar.gz
gcc-964512791e121b627ced9b14021856ca34121bc0.tar.bz2
re PR ipa/59469 (LLVM build failure with gcc LTO)
PR ipa/59469 * lto-cgraph.c (lto_output_node): Use symtab_get_symbol_partitioning_class. (lto_output_varpool_node): likewise. (symtab_get_symbol_partitioning_class): Move here from lto/lto-partition.c * cgraph.h (symbol_partitioning_class): Likewise. (symtab_get_symbol_partitioning_class): Declare. * lto-partition.c (symbol_class): Move to cgraph.h (get_symbol_class): Move to symtab.c (add_references_to_partition, add_symbol_to_partition_1, lto_max_map, lto_1_to_1_map, lto_balanced_map, lto_promote_cross_file_statics): Update. From-SVN: r207589
Diffstat (limited to 'gcc/cgraph.h')
-rw-r--r--gcc/cgraph.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/cgraph.h b/gcc/cgraph.h
index e9e93cd..32b1ee1 100644
--- a/gcc/cgraph.h
+++ b/gcc/cgraph.h
@@ -704,6 +704,20 @@ extern GTY(()) struct asm_node *asm_nodes;
extern GTY(()) int symtab_order;
extern bool cpp_implicit_aliases_done;
+/* Classifcation of symbols WRT partitioning. */
+enum symbol_partitioning_class
+{
+ /* External declarations are ignored by partitioning algorithms and they are
+ added into the boundary later via compute_ltrans_boundary. */
+ SYMBOL_EXTERNAL,
+ /* Partitioned symbols are pur into one of partitions. */
+ SYMBOL_PARTITION,
+ /* Duplicated symbols (such as comdat or constant pool references) are
+ copied into every node needing them via add_symbol_to_partition. */
+ SYMBOL_DUPLICATE
+};
+
+
/* In symtab.c */
void symtab_register_node (symtab_node *);
void symtab_unregister_node (symtab_node *);
@@ -734,6 +748,7 @@ bool symtab_for_node_and_aliases (symtab_node *,
symtab_node *symtab_nonoverwritable_alias (symtab_node *);
enum availability symtab_node_availability (symtab_node *);
bool symtab_semantically_equivalent_p (symtab_node *, symtab_node *);
+enum symbol_partitioning_class symtab_get_symbol_partitioning_class (symtab_node *);
/* In cgraph.c */
void dump_cgraph (FILE *);