diff options
author | Michael Matz <matz@suse.de> | 2011-04-03 11:21:06 +0000 |
---|---|---|
committer | Michael Matz <matz@gcc.gnu.org> | 2011-04-03 11:21:06 +0000 |
commit | e89964e31c5f26caefe5fffb0ccc1fb4932f44bc (patch) | |
tree | 1e63a8bdd37fbff2c65aec3206ef1005c2481cd1 /gcc/varasm.c | |
parent | b9a5b5b2a2771889f315d778629dc7e6245a69cf (diff) | |
download | gcc-e89964e31c5f26caefe5fffb0ccc1fb4932f44bc.zip gcc-e89964e31c5f26caefe5fffb0ccc1fb4932f44bc.tar.gz gcc-e89964e31c5f26caefe5fffb0ccc1fb4932f44bc.tar.bz2 |
lto-streamer.h (struct lto_streamer_cache_d): Remove offsets and next_slot members.
* lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
and next_slot members.
(lto_streamer_cache_insert, lto_streamer_cache_insert_at,
lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
(lto_streamer_cache_append): Declare.
* lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
unsigned index, remove offset parameter, ensure that we append
or update existing entries.
(lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
parameter, update next_slot for append.
(lto_streamer_cache_insert): Use unsigned index, remove offset_p
parameter.
(lto_streamer_cache_insert_at): Likewise.
(lto_streamer_cache_append): New function.
(lto_streamer_cache_lookup): Use unsigned index.
(lto_streamer_cache_get): Likewise.
(lto_record_common_node): Don't test tree_node_can_be_shared.
(preload_common_node): Adjust call to lto_streamer_cache_insert.
(lto_streamer_cache_delete): Don't free offsets member.
* lto-streamer-out.c (eq_string_slot_node): Use memcmp.
(lto_output_string_with_length): Use lto_output_data_stream.
(lto_output_tree_header): Remove ix parameter, don't write it.
(lto_output_builtin_tree): Likewise.
(lto_write_tree): Adjust callers to above, don't track and write
offset, write unsigned index.
(output_unreferenced_globals): Don't emit all global vars.
(write_global_references): Use unsigned indices.
(lto_output_decl_state_refs): Likewise.
(write_symbol): Likewise.
* lto-streamer-in.c (lto_input_chain): Move earlier.
(input_function): Use unsigned index.
(input_alias_pairs): Don't read and then ignore all global vars.
(lto_materialize_tree): Remove ix_p parameter, don't read index,
don't pass it back, use lto_streamer_cache_append.
(lto_register_var_decl_in_symtab): Use unsigned index.
(lto_register_function_decl_in_symtab): Likewise.
(lto_get_pickled_tree): Don't read in or handle offset, read unsigned
index.
(lto_get_builtin_tree): Don't read index, use
lto_streamer_cache_append.
(lto_read_tree): Adjust call to lto_materialize_tree.
* ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
don't use function calls in arguments to MIN.
* varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
twice.
* gimple.c (gimple_type_leader_entry): Mark deletable.
lto/
* lto.c (lto_materialize_function): Don't read and then discard
sections in WPA mode.
(lto_read_in_decl_state): Adjust call to lto_streamer_cache_get.
* lto-lang.c (registered_builtin_fndecls): Remove.
(lto_getdecls): Return NULL_TREE.
(lto_builtin_function): Don't remember in registered_builtin_fndecls.
From-SVN: r171906
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r-- | gcc/varasm.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c index 9887fe4..84eae3e 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -6798,7 +6798,7 @@ default_binds_local_p_1 (const_tree exp, int shlib) current module (shared library or executable), that is to binds_local_p. We use this fact to avoid need for another target hook and implement the logic using binds_local_p and just special cases where - decl_binds_to_current_def_p is stronger than binds local_p. In particular + decl_binds_to_current_def_p is stronger than binds_local_p. In particular the weak definitions (that can be overwritten at linktime by other definition from different object file) and when resolution info is available we simply use the knowledge passed to us by linker plugin. */ @@ -6811,7 +6811,7 @@ decl_binds_to_current_def_p (tree decl) if (!targetm.binds_local_p (decl)) return false; /* When resolution is available, just use it. */ - if (TREE_CODE (decl) == VAR_DECL && TREE_PUBLIC (decl) + if (TREE_CODE (decl) == VAR_DECL && (TREE_STATIC (decl) || DECL_EXTERNAL (decl))) { struct varpool_node *vnode = varpool_get_node (decl); @@ -6819,7 +6819,7 @@ decl_binds_to_current_def_p (tree decl) && vnode->resolution != LDPR_UNKNOWN) return resolution_to_local_definition_p (vnode->resolution); } - else if (TREE_CODE (decl) == FUNCTION_DECL && TREE_PUBLIC (decl)) + else if (TREE_CODE (decl) == FUNCTION_DECL) { struct cgraph_node *node = cgraph_get_node_or_alias (decl); if (node |