aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2012-12-10 14:43:54 +0000
committerH.J. Lu <hongjiu.lu@intel.com>2012-12-10 14:43:54 +0000
commitb7613cb7c3da7d08abb1c7e3d13386240be7d9ba (patch)
tree600079d432d10777a0372663aba17b59c1136cbd
parente18d4592e93c0248be2d3de2cb69ecd4f7bec3a9 (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/ChangeLog9
-rw-r--r--gcc/lto-symtab.c4
-rw-r--r--gcc/lto/lto.c7
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);
}
}