This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: ipa-icf::merge TLC
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Steve Ellcey <sellcey at imgtec dot com>
- Cc: Jan Hubicka <hubicka at ucw dot cz>, Jack Howarth <howarth dot at dot gcc at gmail dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, mliska at suse dot cz, Jakub Jelinek <jakub at redhat dot com>
- Date: Fri, 27 Feb 2015 21:49:51 +0100
- Subject: Re: ipa-icf::merge TLC
- Authentication-results: sourceware.org; auth=none
- References: <20150227021047 dot GA20437 at kam dot mff dot cuni dot cz> <1425058393 dot 27855 dot 242 dot camel at ubuntu-sellcey>
>
> ../sysdeps/gnu/siglist.c:72:1: internal compiler error: in address_matters_p, at symtab.c:1908
> versioned_symbol (libc, __new_sys_sigabbrev, sys_sigabbrev, GLIBC_2_3_3);
> ^
> 0x66a080 symtab_node::address_matters_p()
> /scratch/sellcey/repos/bootstrap/src/gcc/gcc/symtab.c:1908
> 0xe7cbe5 ipa_icf::sem_variable::merge(ipa_icf::sem_item*)
> /scratch/sellcey/repos/bootstrap/src/gcc/gcc/ipa-icf.c:1443
Indeed, the ipa-icf should not try to analyze aliases - just prove ekvialence of
definitions they are attached to. It already does that for functions (bit by accident;
it gives up when there is no gimple body), but it does not do that for variables because
it gets into ctor_for_folding. For that reason it sometimes decides to try to make two
variable aliases alias of each other that is not a good idea, because of possible creation
of loops.
I am just discussing with Martin the fix.
Honza