ipa-icf::merge TLC

Jan Hubicka hubicka@ucw.cz
Mon Mar 2 20:21:00 GMT 2015


> 
> 
> On 01/03/15 16:47, Christophe Lyon wrote:
> >On 27 February 2015 at 21:49, Jan Hubicka <hubicka@ucw.cz> wrote:
> >>>
> >>>../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
> >
> >For the record, I have noticed similar errors on ARM and AArch64
> >targets, when building glibc.
> >
> >Christophe.
> >
> 
> I confirm ARM and AArch64 failing to build with this patch:
> chmod a-w /work/build-aarch64-none-linux-gnu/obj/glibc/stdio-common/errlist-compat.cT
> 0x6b9100 symtab_node::address_matters_p()
> 	/work/src/gcc/gcc/symtab.c:1908
> 0xedb4e5 ipa_icf::sem_variable::merge(ipa_icf::sem_item*)
> 	/work/src/gcc/gcc/ipa-icf.c:1723
> 0xee03f9 ipa_icf::sem_item_optimizer::merge_classes(unsigned int)
> 	/work/src/gcc/gcc/ipa-icf.c:2955
> 0xee6d31 ipa_icf::sem_item_optimizer::execute()
> 	/work/src/gcc/gcc/ipa-icf.c:2217
> 0xee8df1 ipa_icf_driver
> 	/work/src/gcc/gcc/ipa-icf.c:3034
> 0xee8df1 ipa_icf::pass_ipa_icf::execute(function*)
> 	/work/src/gcc/gcc/ipa-icf.c:3081

I commited patch for the alias merging yesterda night, so it should be fixed
now.  If it still fails, please fill in a PR with preprocessed testcase so I
can reproduce it in a cross.

Honza
> Please submit a full bug report,
> with preprocessed source if appropriate.
> Please include the complete backtrace with any bug report.
> See <http://gcc.gnu.org/bugs.html> for instructions.
> make[2]: ***
> [/work/build-aarch64-none-linux-gnu/obj/glibc/stdio-common/siglist.o]
> Error 1
> make[2]: *** Waiting for unfinished jobs....
> mv -f /work/build-aarch64-none-linux-gnu/obj/glibc/stdio-common/errlist-compat.cT /work/build-aarch64-none-linux-gnu/obj/glibc/stdio-common/errlist-compat.c
> 
> Regards,
> Alex



More information about the Gcc-patches mailing list