public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
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)

  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).