This is the mail archive of the
mailing list for the GCC project.
Re: rl78 vs cse vs memory_address_addr_space
- From: Jeff Law <law at redhat dot com>
- To: DJ Delorie <dj at redhat dot com>, gcc at gcc dot gnu dot org
- Date: Mon, 06 Jul 2015 14:26:14 -0600
- Subject: Re: rl78 vs cse vs memory_address_addr_space
- Authentication-results: sourceware.org; auth=none
- References: <201507020414 dot t624EibE009579 at greed dot delorie dot com>
On 07/01/2015 10:14 PM, DJ Delorie wrote:
I believe this used to be conditional on -fforce-mem or -fforce-reg or
some such option that we deprecated long ago.
In this bit of code in explow.c:
/* By passing constant addresses through registers
we get a chance to cse them. */
if (! cse_not_expected && CONSTANT_P (x) && CONSTANT_ADDRESS_P (x))
x = force_reg (address_mode, x);
On the rl78 it results in code that's a bit too complex for later
passes to be optimized fully. Is there any way to indicate that the
above force_reg() is bad for a particular target?
It'd be helpful if you could be more specific about what can't be
handled. combine for example was extended to handle larger chains of
insns not terribly long ago.