gcc-patches has rejected the original message as it contained invalid
MIME type. Therefore I am re-sending it.
-------- Forwarded Message --------
Subject: Re: [lra] Cleanup the use of offmemok and don't count spilling
cost for it
Date: Mon, 4 Jul 2016 15:44:25 -0400
From: Vladimir Makarov <vmaka...@redhat.com>
To: Jiong Wang <jiong.w...@foss.arm.com>, gcc-patches@gcc.gnu.org
CC: Andreas Krebbel <kreb...@linux.vnet.ibm.com>,
v...@linux.vnet.ibm.com, Jeff Law <l...@redhat.com>, Robin Dapp
<rd...@linux.vnet.ibm.com>
On 06/30/2016 01:22 PM, Jiong Wang wrote:
Here is the patch,
From my understanding, "offmemok" is used to represent a memory
operand who's address we want to reload, and searching of it's
reference location seems confirmed my understanding as it's always
used together with MEM_P check. So this patch does the following
modifications: * Only set offmemok to true if MEM_P is also true, as
otherwise offmemok is not used. * Remove redundant MEM_P check which
was used together with offmemok. * Avoid the addition of spilling cost
if offmemok be true as an address calculation reload is not spilling.
bootstrap & gcc/g++ regression OK on x86_64/aarch64/arm. OK for trunk?
Yes. The patch looks OK to me. Thank you for working on the solution,
Jiong. As I wrote the code is very sensitive and any its change might
affect some targets. Usually patches for this part of LRA can take a
few iterations.
2016-06-30 Jiong Wang <jiong.w...@arm.com> gcc * lra-constraints.c
(process_alt_operands): Only set "offmemok" for MEM_P. Remove
redundant MEM_P check if it's used together with "offmemok" check.
Don't add spilling cost for "offmemok". (curr_insn_transform): Remove
redundant MEM_P check.