https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90270

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #5)
> (In reply to bin cheng from comment #4)
> > On AArch64, iovpts generates following code:
> >   <bb 3> [local count: 954449108]:
> >   # crc_20 = PHI <crc_7(D)(2), crc_12(5)>
> >   # ivtmp.5_18 = PHI <1(2), ivtmp.5_17(5)>
> >   _19 = &final_counts + 18446744073709551612;
> >   _1 = MEM[base: _19, index: ivtmp.5_18, step: 4, offset: 0B];
> >   crc_10 = crcu32 (_1, crc_20);
> >   _5 = &track_counts + 18446744073709551612;
> 
> I thought we had decided &final_counts + 18446744073709551612 would be
> invalid gimple anyways as we are taking the address of one element before.

No, it's not invalid GIMPLE.  It's just address computation.  We only
assume we stay inside 'final_counts' here.

What we need to avoid is IVs based on &a - &b since that may confuse PTA.

Reply via email to