On 2012.09.18 at 15:35 +0200, Jan Hubicka wrote: > Hi, > this patch reorganize lto-symtab to work across symtab's symbol table instead > of building its own. This simplifies things a bit and with the previous > changes it is rather straighforward - i.e. replace all uses of > lto_symtab_entry_t by symtab_node. > > There are few differences in between the symtab as built by lto-symtab and > our symbol table. In one direction the declarations that are not going to be > output to final assembly (i.e. are used by debug info and such) are not in > symbol table and consequentely they no longer get merged. I think this is > fine. > > Other difference is that symbol table contains some symbols that are not > really > symbols in classical definition - such as inline clones or functions held in > table only for purposes of materialization. I added symtab_real_symbol_p > predicate for this. It would make more sense to exclude those from the > assembler name hash and drop checks I added to lto-symtab.c. I plan to work > on > this incrementally - it is not completely trivial. The symbol can become > non-real in several ways and it will need bit of work to get this consistent. > > Bootstrapped/regtested x86_64-linux, tested by building Mozilla, Qt and other > stuff with LTO. OK?
This patch causes: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54625 -- Markus