This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [LTO] [PATCH] Avoid middle/back-end use of set_decl_assembler_name and tree_size lang hooks
- From: Mark Mitchell <mark at codesourcery dot com>
- To: Robert Kennedy <jimbob at google dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Mon, 19 Mar 2007 20:28:17 -0700
- Subject: Re: [LTO] [PATCH] Avoid middle/back-end use of set_decl_assembler_name and tree_size lang hooks
- References: <17913.47538.408187.834465@whippen.corp.google.com>
Robert Kennedy wrote:
> This patch eliminates the set_decl_assembler_name and tree_size
> lang-hooks from the call graph of LTO. They are still present for
> source language front ends; the LTO front end sets the
> set_decl_assembler_name to a stub that amounts to gcc_unreachable(),
> and leaves the tree_size hook set to the default stub that does the
> same.
Very glad to see you working on this!
The lto/* changes are OK. I didn't know about DW_AT_MIPS_LINKAGE_NAME;
I was planning to invent an attribute for that. I guess MIPS already
did. :-)
However, I'm not really keen on the MBE_DECL_RTL idea. One of the open
questions in the LTO design is to what extent (if at all) RTL (as
opposed to trees) should be saved/restored across recompilation.
Certainly, the only RTL we should consider saving/restoring is
"declarative RTL" for global objects, not the "executable RTL" that
makes up the bodies of functions. However, perhaps we can avoid even
that, and make the LTO boundary completely RTL-free, which would seem
best to me.
I would have expected that the assembler-name hook for LTO would abort
if the assembler name was not already set, but otherwise be tolerant.
If we adopt that approach, do we still need your change?
Thanks,
--
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713