This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] sched-deps.c deps->last_pending_memory_flush fix (PR rtl-optimization/46614)
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Vladimir Makarov <vmakarov at redhat dot com>
- Cc: Jeff Law <law at redhat dot com>, gcc-patches at gcc dot gnu dot org
- Date: Tue, 23 Nov 2010 23:39:01 +0100
- Subject: Re: [PATCH] sched-deps.c deps->last_pending_memory_flush fix (PR rtl-optimization/46614)
- References: <20101123172211.GT29412@tyan-ft48-01.lab.bos.redhat.com> <4CEC0DF1.6070402@redhat.com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Tue, Nov 23, 2010 at 01:54:41PM -0500, Vladimir Makarov wrote:
> On 11/23/2010 12:22 PM, Jakub Jelinek wrote:
> >Fixed by instead remembering if a JUMP_INSN stands only for itself
> >and nothing else in the deps->last_pending_memory_flush list
> >(such jumps have REG_NOTE_KIND set to REG_DEP_ANTI, could be
> >anything but REG_DEP_TRUE which is the default and used for
> >additions to the list from flush_pending_lists) and using REG_NOTE_KIND
> >instead of JUMP_P checks in the two places which care about it.
> >
> >Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
> >
> It looks ok for me, Jakub. Although it would be nice to add a
> comment about meaning REG_DEP_ANTI for element of list
> last_pending_memory_flush when you set it up in function
> deps_analyze_insn.
Maybe also define macros?
/* In deps->last_pending_memory_flush marks JUMP_INSNs that weren't
added to the list because of flush_pending_lists, stands just
for itself and not for any other pending memory reads/writes. */
#define NON_FLUSH_JUMP_KIND REG_DEP_ANTI
#define NON_FLUSH_JUMP_P(x) (REG_NOTE_KIND (x) == REG_DEP_ANTI)
Jakub