https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104117
--- Comment #21 from Vladimir Makarov <vmakarov at gcc dot gnu.org> --- (In reply to Iain Sandoe from comment #20) > (In reply to Iain Sandoe from comment #15) > > (In reply to Vladimir Makarov from comment #13) > > > I think there are two code spots whose pitfalls resulted in the PR. > > > > --- a/gcc/config/rs6000/rs6000.c > > > +++ b/gcc/config/rs6000/rs6000.c > > > @@ -8202,7 +8202,7 @@ legitimate_lo_sum_address_p (machine_mode mode, rtx > > > x, > > > int strict) > > > { > > > bool large_toc_ok; > > > > > > - if (DEFAULT_ABI == ABI_V4 && flag_pic) > > > + if ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_DARWIN) && > > > flag_pic) > > > return false; > > On testing, this is not sufficient - one ends up with ICEs when we reject a > valid (UNSPEC-wrapped) address here. So I think that the slightly more > elaborate target changes are required - but the LRA change seems fine! > > ... reg-straps on this old h/w take > 1 day .. so some more time will be > needed for a complete answer. Ian, you have my approval for LRA changes in advance for committing them into the master and the branches when the overall patch is ready. Thank you for working on machine-dependent parts of the patch.