From: Bernd Schmidt <bernds@codesourcery.com>
To: Richard Henderson <rth@redhat.com>
Cc: Eric Botcazou <ebotcazou@adacore.com>,
Andreas Schwab <schwab@redhat.com>,
GCC Patches <gcc-patches@gcc.gnu.org>,
Steve Ellcey <sje@cup.hp.com>,
"Vladimir N. Makarov" <vmakarov@redhat.com>
Subject: Re: Correct fix for scheduler bug PR11320
Date: Fri, 05 Aug 2011 17:54:00 -0000 [thread overview]
Message-ID: <4E3C2B59.60508@codesourcery.com> (raw)
In-Reply-To: <4E29B21D.9040701@codesourcery.com>
[-- Attachment #1: Type: text/plain, Size: 826 bytes --]
On 07/22/11 19:23, Bernd Schmidt wrote:
> On 07/22/11 19:17, Richard Henderson wrote:
>> On 07/22/2011 10:00 AM, Eric Botcazou wrote:
>>>> It's getting confused about loads/stores being control_flow_insns and
>>>> getting scheduled past each other nonetheless. Mind testing the following?
>>>
>>> s/flag_non_call_exceptions/cfun->can_throw_non_call_exceptions/
>>>
>>
>> Why test either, since control_flow_insn_p has already done so?
>
> Just to save an unnecessary call to add_dependence.
>
> Although, come to think of it, it might not be unnecessary. The reason
> these two insns aren't already dependent on each other seems to be that
> they have opposite conditions, and I guess that might happen with
> conditional calls as well.
Ok, so Andreas has verified that the following fixes the problem on
ia64. Ok?
Bernd
[-- Attachment #2: noncall.diff --]
[-- Type: text/plain, Size: 648 bytes --]
PR rtl-optimization/49900
* sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
ensure basic blocks stay in the same order.
Index: gcc/sched-ebb.c
===================================================================
--- gcc/sched-ebb.c (revision 176879)
+++ gcc/sched-ebb.c (working copy)
@@ -397,6 +397,9 @@ add_deps_for_risky_insns (rtx head, rtx
bb = BLOCK_FOR_INSN (insn);
bb->aux = last_block;
last_block = bb;
+ /* Ensure blocks stay in the same order. */
+ if (last_jump)
+ add_dependence (insn, last_jump, REG_DEP_ANTI);
last_jump = insn;
}
else if (INSN_P (insn) && last_jump != NULL_RTX)
next prev parent reply other threads:[~2011-08-05 17:42 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-14 10:05 Bernd Schmidt
2011-07-14 11:29 ` Andrey Belevantsev
2011-07-14 11:42 ` Bernd Schmidt
2011-07-14 12:19 ` Eric Botcazou
2011-07-14 12:24 ` Bernd Schmidt
2011-07-14 12:39 ` Eric Botcazou
2011-07-14 13:09 ` Bernd Schmidt
2011-07-14 13:46 ` Eric Botcazou
2011-07-14 16:11 ` Richard Henderson
2011-07-14 16:27 ` Bernd Schmidt
2011-07-14 16:30 ` Bernd Schmidt
2011-07-14 16:34 ` Richard Henderson
2011-07-14 16:43 ` Bernd Schmidt
2011-07-14 16:44 ` Richard Henderson
2011-07-14 16:48 ` Bernd Schmidt
2011-07-14 19:48 ` Richard Henderson
2011-07-19 13:00 ` Andreas Schwab
2011-07-19 14:13 ` Bernd Schmidt
2011-07-19 14:41 ` Andreas Schwab
2011-07-22 14:12 ` Bernd Schmidt
2011-07-22 17:28 ` Eric Botcazou
2011-07-22 18:36 ` Richard Henderson
2011-07-22 18:44 ` Bernd Schmidt
2011-08-05 17:54 ` Bernd Schmidt [this message]
2011-08-05 18:45 ` Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E3C2B59.60508@codesourcery.com \
--to=bernds@codesourcery.com \
--cc=ebotcazou@adacore.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=rth@redhat.com \
--cc=schwab@redhat.com \
--cc=sje@cup.hp.com \
--cc=vmakarov@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).