This is the mail archive of the gcc-patches@gcc.gnu.org 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]

Re: [PATCH] sched-deps.c deps->last_pending_memory_flush fix (PR rtl-optimization/46614, take 2)


On 11/23/2010 06:14 PM, Jakub Jelinek wrote:
Hi!

On Tue, Nov 23, 2010 at 11:39:01PM +0100, Jakub Jelinek wrote:
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)
Here is updated patch, ok if it passes bootstrap/regtest?
Everything is ok, Jakub.

Thanks for the patch.


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