This is the mail archive of the
mailing list for the GCC project.
Re: LRA reloads of subregs
- From: David Miller <davem at davemloft dot net>
- To: segher at kernel dot crashing dot org
- Cc: vmakarov at redhat dot com, gcc at gcc dot gnu dot org
- Date: Fri, 04 Sep 2015 11:30:26 -0700 (PDT)
- Subject: Re: LRA reloads of subregs
- Authentication-results: sourceware.org; auth=none
- References: <20150904012651 dot GF13559 at gate dot crashing dot org> <20150903 dot 231943 dot 2075353083354354862 dot davem at davemloft dot net> <20150904114604 dot GG13559 at gate dot crashing dot org>
From: Segher Boessenkool <email@example.com>
Date: Fri, 4 Sep 2015 06:46:04 -0500
> On Thu, Sep 03, 2015 at 11:19:43PM -0700, David Miller wrote:
>> The paradoxical subreg restriction in general_operand() is only
>> enforced when reload_completed is true, which will not be the
>> case while LRA is working.
> This one?
> #ifdef INSN_SCHEDULING
> /* On machines that have insn scheduling, we want all memory
> reference to be explicit, so outlaw paradoxical SUBREGs.
> However, we must allow them after reload so that they can
> get cleaned up by cleanup_subreg_operands. */
> if (!reload_completed && MEM_P (sub)
> && GET_MODE_SIZE (mode) > GET_MODE_SIZE (GET_MODE (sub)))
> return 0;
> I think you misread that. Also doc/rtl.texi makes pretty clear that
> you really shouldn't see subregs of mem. So where does it come from?
I see what you are saying, I'll take a look into this.