This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix PR middle-end/28690, indexed load/store performance + reload bug
- From: Paolo Bonzini <paolo dot bonzini at lu dot unisi dot ch>
- To: Peter Bergner <bergner at vnet dot ibm dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Ian Lance Taylor <iant at google dot com>
- Date: Sat, 06 Jan 2007 19:06:47 +0100
- Subject: Re: [PATCH] Fix PR middle-end/28690, indexed load/store performance + reload bug
- References: <20061205050808.GA13002@vervain.rchland.ibm.com> <457572D1.8070801@lu.unisi.ch> <20070105211017.GA1310@vervain.rchland.ibm.com>
Anyway, I tried to be careful to preserve the previous behavior of
simplify_plus_minus_op_data_cmp and swap_commutative_operands_with_target
wrt the special cases they were trying to handle at the same time as
attempting to optimize for the indexed load/store case. This patch seems
to handle all the previous test cases that we handled before (ie, those
test cases where the pointer is not marked "artifical") as well as Pat's
last test case in Comment #32 in PR28690 which we were not handling with
the older patch.
At least this patch should work without regressions. I would very much
prefer to avoid the hack, if it were possible to rank
mem/reg/reg-pointer with different commutative_operator_precedence. I
understand however that it is a big job. :-(
Paolo