https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69847
--- Comment #8 from Vladimir Makarov <vmakarov at gcc dot gnu.org> --- (In reply to Michael Meissner from comment #7) > The following options were used for LRA code generation: > -DSPEC_CPU -DNDEBUG -I. -g -mlittle -save-temps=obj -ffast-math -O3 > -mveclibabi=mass -mcpu=power8 -mrecip=rsqrt -fpeel-loops -funroll-loops > -ftree-vectorize -fvect-cost-model -msave-toc-indirect > -fno-aggressive-loop-optimizations -mno-pointers-to-nested-functions -mlra > -m64 -I/opt/at8.0/include > -I/opt/at8.0/lib/gcc/powerpc64le-linux-gnu/4.9.4/include -fgnu89-inline > -DSPEC_CPU_LP64 -DSPEC_CPU -DSPEC_CPU2006 -DINLINE= > > The following options were used for reload code generation: > -DSPEC_CPU -DNDEBUG -I. -g -mlittle -save-temps=obj -ffast-math -O3 > -mveclibabi=mass -mcpu=power8 -mrecip=rsqrt -fpeel-loops -funroll-loops > -ftree-vectorize -fvect-cost-model -msave-toc-indirect > -fno-aggressive-loop-optimizations -mno-pointers-to-nested-functions -m64 > -I/opt/at8.0/include > -I/opt/at8.0/lib/gcc/powerpc64le-linux-gnu/4.9.4/include -fgnu89-inline > -DSPEC_CPU_LP64 -DSPEC_CPU -DSPEC_CPU2006 -DINLINE= Mike, thanks for a good and detail report. After spending some time on comparison of code generated by reload and LRA, at least I found that LRA generates unnecessary address reloads: Creating newreg=225, assigning class BASE_REGS to addr r225 alt=0,overall=0,losers=0,rld_nregs=0 Choosing alt 0 in insn 15: (0) =Y (1) r {*movdi_internal64} 15: [r225:DI+low(unspec[`*.LANCHOR0',%2:DI] 47)]=r181:DI REG_DEAD r181:DI REG_DEAD %2:DI Inserting insn reload before: 133: r225:DI=high(unspec[`*.LANCHOR0',%2:DI] 47) After checking what reload pass do in this situation, I found that reload transforms the memnory address into sum of hi and low in the insn through *LEGITIMIZE_RELOAD_ADDRESS* before actual reloading. LRA does not use LEGITIMIZE_RELOAD_ADDRESS at all as the macro frequently uses push_reload which is not a part of LRA. I'll think how to fix it better. Probably it will need introduction analogous macro for LRA.