This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFC 0/6] Flags outputs for asms
- From: Segher Boessenkool <segher at kernel dot crashing dot org>
- To: Jeff Law <law at redhat dot com>
- Cc: Richard Henderson <rth at redhat dot com>, "H. Peter Anvin" <hpa at zytor dot com>, gcc-patches at gcc dot gnu dot org, peterz at infradead dot org, torvalds at linux-foundation dot org, jakub at redhat dot com
- Date: Fri, 8 May 2015 17:10:25 -0500
- Subject: Re: [RFC 0/6] Flags outputs for asms
- Authentication-results: sourceware.org; auth=none
- References: <1431034740-5375-1-git-send-email-rth at redhat dot com> <554C0E31 dot 5070509 at zytor dot com> <554CDC30 dot 1080903 at redhat dot com> <554D195D dot 4010508 at redhat dot com> <554D2B8A dot 4010506 at redhat dot com>
On Fri, May 08, 2015 at 03:32:58PM -0600, Jeff Law wrote:
> On 05/08/2015 02:15 PM, Richard Henderson wrote:
> >
> >But it *does* try to match an intermediate pattern,
> >
> >(set (reg:CCGC 17 flags)
> > (compare:CCGC (reg:CCGC 17 flags)
> > (const_int 0 [0])))
> >
> >which can be considered a no-op move. If I add the attached pattern, then
> >the
> >combination happens in two steps -- 9->12, 12->13 -- and we get what we
> >hoped:
> So what happens if that pattern is actually recognized as a nop-move by
> set_noop_p? That would allow recog_for_combine to see it as a nop and
> "recognize" it as valid.
It's not valid RTL though, so it is a bit more work than that.
Segher