diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2012-12-10 14:43:54 +0000 |
---|---|---|
committer | H.J. Lu <hongjiu.lu@intel.com> | 2012-12-10 14:43:54 +0000 |
commit | b7613cb7c3da7d08abb1c7e3d13386240be7d9ba (patch) | |
tree | 600079d432d10777a0372663aba17b59c1136cbd | |
parent | e18d4592e93c0248be2d3de2cb69ecd4f7bec3a9 (diff) |
Record the global variables if WPA isn't enabled
PR lto/55466
* lto-symtab.c (lto_symtab_merge_decls_1): Don't record the
prevailing variable.
* lto.c (lto_register_var_decl_in_symtab): Don't record static
variables.
(lto_main): Record the global variables if WPA isn't enabled.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@194359 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/lto-symtab.c | 4 | ||||
-rw-r--r-- | gcc/lto/lto.c | 7 |
3 files changed, 15 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 00c7fef40a0..f36d841e7db 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2012-12-10 H.J. Lu <hongjiu.lu@intel.com> + + PR lto/55466 + * lto-symtab.c (lto_symtab_merge_decls_1): Don't record the + prevailing variable. + * lto.c (lto_register_var_decl_in_symtab): Don't record static + variables. + (lto_main): Record the global variables if WPA isn't enabled. + 2012-12-10 Richard Biener <rguenther@suse.de> PR tree-optimization/55107 diff --git a/gcc/lto-symtab.c b/gcc/lto-symtab.c index 0b0cdacb144..295fd37aa38 100644 --- a/gcc/lto-symtab.c +++ b/gcc/lto-symtab.c @@ -443,10 +443,6 @@ lto_symtab_merge_decls_1 (symtab_node first) symtab_prevail_in_asm_name_hash (prevailing); - /* Record the prevailing variable. */ - if (TREE_CODE (prevailing->symbol.decl) == VAR_DECL) - vec_safe_push (lto_global_var_decls, prevailing->symbol.decl); - /* Diagnose mismatched objects. */ for (e = prevailing->symbol.next_sharing_asm_name; e; e = e->symbol.next_sharing_asm_name) diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index 376af85a704..915303e7e09 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -1766,7 +1766,6 @@ lto_register_var_decl_in_symtab (struct data_in *data_in, tree decl) ASM_FORMAT_PRIVATE_NAME (label, name, DECL_UID (decl)); SET_DECL_ASSEMBLER_NAME (decl, get_identifier (label)); rest_of_decl_compilation (decl, 1, 0); - vec_safe_push (lto_global_var_decls, decl); } /* If this variable has already been declared, queue the @@ -3380,6 +3379,8 @@ lto_main (void) do_whole_program_analysis (); else { + struct varpool_node *vnode; + timevar_start (TV_PHASE_OPT_GEN); materialize_cgraph (); @@ -3397,6 +3398,10 @@ lto_main (void) this. */ if (flag_lto_report) print_lto_report_1 (); + + /* Record the global variables. */ + FOR_EACH_DEFINED_VARIABLE (vnode) + vec_safe_push (lto_global_var_decls, vnode->symbol.decl); } } |