> 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