This is the mail archive of the 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]

Fwd: Re: [lra] Cleanup the use of offmemok and don't count spilling cost for it

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 <>
To: 	Jiong Wang <>,
CC: Andreas Krebbel <>,, Jeff Law <>, Robin Dapp <>

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 <> 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.

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