This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix PR middle-end/28690, indexed load/store performance + reload bug


Peter Bergner <bergner@vnet.ibm.com> writes:

> 2006-12-04  Peter Bergner  <bergner@vnet.ibm.com>
> 
> 	PR middle-end/28690
> 	* rtlanal.c (swap_commutative_operands_p): Preference a REG_POINTER
> 	over a non REG_POINTER.
> 	* tree-ssa-address.c (gen_addr_rtx): Force a REG_POINTER to be
> 	the first operand of a PLUS.
> 	* reload1.c (eliminate_regs_in_insn): Don't call single_set() on
> 	PARALLEL insns.

The patch to rtlanal.c is OK.


The patch to reload1.c is OK if you change 0 to NULL_RTX in this line:
> +    old_set = 0;


The patch to tree-ssa-address.c I'm not sure about.  In RTL land I
would say that this is something that should be handled by
LEGITIMIZE_MEMORY_ADDRESS.  For example, see how this is done in
hppa_legitimize_address in pa/pa.c.  I don't see any similar code in
rs6000_legitimize_address.  If you change rs6000_legitimize_address to
do this flip, do you still need this case in tree-ssa-address.c?


Thanks.

Ian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]