public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Avoid double mangling at WHOPR
@ 2011-10-09 18:34 Jan Hubicka
  2011-10-10  9:39 ` Richard Guenther
  0 siblings, 1 reply; 7+ messages in thread
From: Jan Hubicka @ 2011-10-09 18:34 UTC (permalink / raw)
  To: gcc-patches, rguenther

Hi,
whopr currently produce local_static.1234.43124 type symbols. This is because
everything gets mangled at WPA time and then again at ltrans time.  This simply
avoids the second mangling. This save some space & makes WHOPR/non_WHOPR symbol
tables comparable more directly.

Bootstrapped/regtested x86_64-linux, also tested with Mozilla LTO, OK?

Honza

	* lto.c (lto_register_var_decl_in_symtab,
	lto_register_function_decl_in_symtab): Do not mangle at ltrans time.
	* lto-lang.c (lto_set_decl_assembler_name): Likewise.
Index: lto/lto.c
===================================================================
--- lto/lto.c	(revision 179664)
+++ lto/lto.c	(working copy)
@@ -604,7 +604,7 @@ lto_register_var_decl_in_symtab (struct
 
   /* Variable has file scope, not local. Need to ensure static variables
      between different files don't clash unexpectedly.  */
-  if (!TREE_PUBLIC (decl)
+  if (!TREE_PUBLIC (decl) && !flag_ltrans
       && !((context = decl_function_context (decl))
 	   && auto_var_in_fn_p (decl, context)))
     {
@@ -646,7 +646,7 @@ lto_register_function_decl_in_symtab (st
 {
   /* Need to ensure static entities between different files
      don't clash unexpectedly.  */
-  if (!TREE_PUBLIC (decl))
+  if (!TREE_PUBLIC (decl) && !flag_ltrans)
     {
       /* We must not use the DECL_ASSEMBLER_NAME macro here, as it
 	 may set the assembler name where it was previously empty.  */
Index: lto/lto-lang.c
===================================================================
--- lto/lto-lang.c	(revision 179664)
+++ lto/lto-lang.c	(working copy)
@@ -954,7 +954,7 @@ lto_set_decl_assembler_name (tree decl)
      TREE_PUBLIC, to avoid conflicts between individual files.  */
   tree id;
 
-  if (TREE_PUBLIC (decl))
+  if (TREE_PUBLIC (decl) || flag_ltrans)
     id = targetm.mangle_decl_assembler_name (decl, DECL_NAME (decl));
   else
     {

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2011-10-10 13:38 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-10-09 18:34 Avoid double mangling at WHOPR Jan Hubicka
2011-10-10  9:39 ` Richard Guenther
2011-10-10 13:22   ` Jan Hubicka
2011-10-10 13:22     ` Richard Guenther
2011-10-10 13:31       ` Jan Hubicka
2011-10-10 13:45         ` Richard Guenther
2011-10-10 13:48           ` Jan Hubicka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).