This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GCC trunk revision 120704 failed to build spec cpu2k/gcc
> Hello,
>
> > > > GCC trunk revision 120704 failed to build SPEC cpu2000/gcc on -O1 and
> > > > higher optimization level at x86_64-redhat-linux.
> > > >
> > > > reload1.c: In function 'reload':
> > > > reload1.c:449: error: address taken, but ADDRESSABLE bit not set
> > > > bad_spill_regs
> > > >
> > > > reload1.c:449: error: address taken, but ADDRESSABLE bit not set
> > > > bad_spill_regs
> > > >
> > > > reload1.c:449: internal compiler error: verify_stmts failed
> > > > Please submit a full bug report,
> > > > with preprocessed source if appropriate.
> > > > See <URL:http://gcc.gnu.org/bugs.html> for instructions.
> > > >
> > > > Does anybody see the same?
> >
> > I can reproduce this on i686. I will check what the problem is,
>
> this is probably due to some of the recent IPA changes.
> ipa-reference.c:analyze_function does not traverse phi nodes,
> and thus misses that the address of bad_spill_regs is taken inside the
> phi node (and clears the addressable flag from it, causing an ICE
> later). I am working on the patch.
Thanks for looking into that. THe problem seems to be that
ipa-reference and early optimization was more or less tested each
independently, so I never noticed this problem (it does not reproduce on
IPA branch that has both changes in however).
Proper fix is probably to make ipa-reference and symmetrically also the
other IPA pass use PHI operands infrastructure as suggested by comments
earlier.
Honza
>
> Zdenek