diff options
author | Richard Guenther <rguenther@suse.de> | 2010-06-04 11:00:09 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2010-06-04 11:00:09 +0000 |
commit | d4c0c9f6352d49c09f436670b2e9821469a15c1d (patch) | |
tree | bf17c26958a31c8d281981f79bbbeb418d5ca820 | |
parent | addcce0450edc8fa3b448d25728658a7b8df1052 (diff) | |
download | gcc-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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cgraph.h | 2 | ||||
-rw-r--r-- | gcc/lto-cgraph.c | 1 | ||||
-rw-r--r-- | gcc/lto/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/lto/lto.c | 1 |
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; |