On Thu, Apr 18, 2013 at 04:44:21PM -0400, Vladimir Makarov wrote: > LRA can fix the wrong address but secondary reload was done before > processing addresses. It could be fixed in rs6000.c code too but it > is complicated and I found a better (and i think more right) > solution by moving secondary reload generation after address > processing.
I tended to think secondary_reload should always happen after address processing. > Here is the patch for your branch (patch for trunk is a bit > different as some changes in affected code were done on trunk). > > 2013-04-18 Vladimir Makarov <vmaka...@redhat.com> > > * lra-constraints.c (check_and_process_move): Move code for move > cost check to simple_move_p. Remove equiv_substitution. > (simple_move_p): New function. > (curr_insn_transform): Use the new function. Move call of > check_and_process_move after operand equiv substitution and > address process. > > Tomorrow I am going to look at SPEC2006 dealII crash for 32-bit mode. > Thanks for the patch. Unfortunately I just updated the branch to be merged up to 198065. So if you could send me a patch against current trunk, or update the branch (branches/ibm/meissner-lra) and check it into the branch, it would be appreciated. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460, USA email: meiss...@linux.vnet.ibm.com, phone: +1 (978) 899-4797