aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2010-06-04 11:00:09 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2010-06-04 11:00:09 +0000
commitd4c0c9f6352d49c09f436670b2e9821469a15c1d (patch)
treebf17c26958a31c8d281981f79bbbeb418d5ca820 /gcc
parentaddcce0450edc8fa3b448d25728658a7b8df1052 (diff)
downloadgcc-d4c0c9f6352d49c09f436670b2e9821469a15c1d.zip
gcc-d4c0c9f6352d49c09f436670b2e9821469a15c1d.tar.gz
gcc-d4c0c9f6352d49c09f436670b2e9821469a15c1d.tar.bz2
re PR lto/41584 (WHOPR doesn't grok empty units)
2010-06-04 Richard Guenther <rguenther@suse.de> PR lto/41584 * cgraph.h (struct varpool_node): Add lto_file_data field. * lto-cgraph.c (input_varpool_node): Initialize it. lto/ * lto.c (lto_1_to_1_map): Use the proper file_data for varpool nodes. From-SVN: r160258
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cgraph.h2
-rw-r--r--gcc/lto-cgraph.c1
-rw-r--r--gcc/lto/ChangeLog6
-rw-r--r--gcc/lto/lto.c1
5 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bab4a24..8ad6bf6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2010-06-04 Richard Guenther <rguenther@suse.de>
+
+ PR lto/41584
+ * cgraph.h (struct varpool_node): Add lto_file_data field.
+ * lto-cgraph.c (input_varpool_node): Initialize it.
+
2010-06-04 Uros Bizjak <ubizjak@gmail.com>
* config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
diff --git a/gcc/cgraph.h b/gcc/cgraph.h
index c82fc18..48a6c3f 100644
--- a/gcc/cgraph.h
+++ b/gcc/cgraph.h
@@ -466,6 +466,8 @@ struct GTY((chain_next ("%h.next"), chain_prev ("%h.prev"))) varpool_node {
/* Circular list of nodes in the same comdat group if non-NULL. */
struct varpool_node *same_comdat_group;
struct ipa_ref_list ref_list;
+ /* File stream where this node is being written to. */
+ struct lto_file_decl_data * lto_file_data;
PTR GTY ((skip)) aux;
/* Ordering of all cgraph nodes. */
int order;
diff --git a/gcc/lto-cgraph.c b/gcc/lto-cgraph.c
index bb912ceb..0795932 100644
--- a/gcc/lto-cgraph.c
+++ b/gcc/lto-cgraph.c
@@ -1089,6 +1089,7 @@ input_varpool_node (struct lto_file_decl_data *file_data,
decl_index = lto_input_uleb128 (ib);
var_decl = lto_file_decl_data_get_var_decl (file_data, decl_index);
node = varpool_node (var_decl);
+ node->lto_file_data = file_data;
bp = lto_input_bitpack (ib);
node->externally_visible = bp_unpack_value (bp, 1);
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index c67cee7..f7f2703 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -1,3 +1,9 @@
+2010-06-04 Richard Guenther <rguenther@suse.de>
+
+ PR lto/41584
+ * lto.c (lto_1_to_1_map): Use the proper file_data for
+ varpool nodes.
+
2010-05-30 Jan Hubicka <jh@suse.cz>
* lto.c (promote_var, promote_fn, lto_wpa_write_files): Dump
diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c
index 5031659..fd474b6 100644
--- a/gcc/lto/lto.c
+++ b/gcc/lto/lto.c
@@ -599,6 +599,7 @@ lto_1_to_1_map (void)
{
if (vnode->alias || !vnode->needed)
continue;
+ file_data = vnode->lto_file_data;
slot = pointer_map_contains (pmap, file_data);
if (slot)
partition = (ltrans_partition) *slot;