public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jeffrey A Law <law@redhat.com>
To: Steven Bosscher <stevenb@suse.de>
Cc: gcc@gcc.gnu.org
Subject: Re: Delay branch scheduling vs. the CFG
Date: Sun, 13 Nov 2005 21:02:00 -0000	[thread overview]
Message-ID: <1131915750.3728.348.camel@slowpoke> (raw)
In-Reply-To: <200511132120.14753.stevenb@suse.de>

On Sun, 2005-11-13 at 21:20 +0100, Steven Bosscher wrote:
> Hi,
> 
> I'm trying to figure out how much effort it would take to make
> dbr_schedule CFG aware.  One of the issues I'm running into is
> that the RTL CFG stuff doesn't support SEQUENCEs at all.  So if
> I have a delay slot filled, e.g.,
> 
> (sequence [
>     (jump_insn (...))   ;; The branch with delay slots
>     (insn (...))        ;; An insn in a delay slot
>     ])
> 
> verify_flow_info immediately dies on this because the last insn
> in a basic block is not a branch instruction.  It sees just the
> sequence and not the instructions in it.
> 
> Now I could add some kind of flag "reorg_completed" and go hack
> all the RTL cfg routines to support SEQUENCEs.  But I'd rather
> not do that unless I'm really sure nobody thinks that is a Very
> Bad Idea.  ;-)
No great insights on how to make dbr_schedule CFG aware -- just
remember that a filled delay slot can represent 3 different cases:

  1. An extension of the block containing the sequence.

  2. An extension of the block at the target of a branch.

  3. An extension of the fall-thru block.

  4. An entirely new basic block on its own.

Firing out which of these cases holds can be nontrivial.


I'm not sure what you're trying to accomplish, but if you're
really interested in improving reorg, a huge step in the right
direction would be to have it use insn dependency information
to determine what insns are candidates for filling delay slots.

The net result is all the resource tracking nonsense goes away
as do the compile-time issues associated with it. 

Jeff


  reply	other threads:[~2005-11-13 21:02 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-13 20:20 Steven Bosscher
2005-11-13 21:02 ` Jeffrey A Law [this message]
2005-11-13 21:20   ` Steven Bosscher
2005-11-13 21:26     ` Jeffrey A Law
2005-11-16 20:07       ` Richard Henderson
2005-11-16 23:19         ` Jeffrey A Law
2005-11-16 22:42 Joern RENNECKE

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=1131915750.3728.348.camel@slowpoke \
    --to=law@redhat.com \
    --cc=gcc@gcc.gnu.org \
    --cc=stevenb@suse.de \
    /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).