public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Ghassan Shobaki <gshobaki@ece.ucdavis.edu>
To: Jan Hubicka <hubicka@ucw.cz>
Cc: "Vladimir N. Makarov" <vmakarov@redhat.com>,
	gcc-help@gcc.gnu.org, gcc@gnu.org
Subject: Re: Superblock Instruction Scheduling in GCC
Date: Thu, 04 Dec 2003 01:30:00 -0000	[thread overview]
Message-ID: <Pine.GHP.4.58.0312031653400.6447@dante.ece.ucdavis.edu> (raw)
In-Reply-To: <20031204000558.GD23084@atrey.karlin.mff.cuni.cz>

Jan and Vladimir,

Thank you guys for the immediate and very helpful responses. I have just
tried the -fsched2-use-superblocks on vresion 3.3.1 that I currently have,
but it did not work. Is this version supposed to have it or I have to
download version 3.3.2 in order to get this feature?

Also, what's exactly the difference between -fsched2-use-superblocks and
-fsched2-use-traces? As far as I know, a superblock is a single-entry
multiple-exit region that is formed from a trace using tail duplication.
This means that superblocks are more likely (but not necessarily) to
increase code size due to tail duplication. This also implies that
superblock scheduling is simpler than trace scheduling. Is this consistent
with what the above two gcc comman-line options mean?

As far as experimentation is concerned, let me give some background about
what I am doing and what kind of input I might be able to provide:

I am doing research on optimal superblock scheduling and I need to import
superblocks (more precisely, superblock data dependence graphs) from gcc to
run them through my optimal solver (my research group currently has a way
to import basic blocks and I am trying to extend that to superblocks).
Even though this optimal solver is currently too slow to be included in a
production compiler like gcc, it will be useful for studying the quality
of gcc's schedules by comparing them against optimal. It will probably
take me two or three months to get to that point for the very simplistic
machine models that we are working with, but I'll be more than happy to
provide you with any interesting results that I might come up with.

Regards

-Ghassan



On Thu, 4 Dec 2003, Jan Hubicka wrote:

> > Ghassan Shobaki wrote:
> >
> > > I know how to get gcc to form superblocks (by using the -ftracer
> > > command-line switch), but is there a way to get it to use these
> > > superblocks as scheduling regions in the instruction scheduling pass?
> > > Currently, the instruction scheduling module forms regions that are totally
> > > different from the superblocks that are formed in the tracer module
> > > even though each superblock is a valid scheduling region.
> > > Any idea how I can achieve this? Or are there any plans to do superblock
> > > instruction scheduling in the near future?
> >
> > There was Jan Hubicka's patch for this.  Please look at it
> >
> > http://gcc.gnu.org/ml/gcc-patches/2003-02/msg00499.html
> >
> > This patch should work for all platforms except for IA64 whose the second
> > scheduling is made on EBB.
>
> This patch is currently in the mainline tree, so you can simply use
> -fsched2-use-traces / -fsched2-use-superblocks
> >
> > I tried trace scheduling for IA64 (but I did not post the patch for ia64).
> > Here the results are
> >
> > http://gcc.gnu.org/ml/gcc-patches/2003-02/msg00499.html
> >
> > The problem with trace scheduling is that the generated code is bigger, the
> > compiler is slower and the code improvement is insignificant.
> >
> >   If you manage to achieve an improvement for a platform on a credible
> > benchmark (SPEC95, SPEC2000), we could consider to add the patch to gcc at
> > least for given platform for -O3.   Because the compiler changed since the
> > patch was posted, there is a probability that you could achieve this.
>
> Yes, we need experimenting here.
> I was quite surprised that the benefits wasn't too noticeable on
> in-order architecture and I would like to hear about any results
> (positive or negative).
> -fsched2-use-superblocks should bring most of benefits at no code size
> costs, while -fsched2-use-traces is more experimental and probably needs
> profile feedback to do somethign usefull.  (I managed to get some
> speedups using this on Athlon but the benefits wasn't considerable
> enought to discuss inclusion in -O3 -fbranch-probabilities combination)
>
> Honza
> >
> >
> > Vlad
> >
>

  reply	other threads:[~2003-12-04  1:27 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-12-03  7:07 Ghassan Shobaki
2003-12-03 14:05 ` Vladimir N. Makarov
2003-12-04  0:13   ` Jan Hubicka
2003-12-04  1:30     ` Ghassan Shobaki [this message]
2003-12-04 10:49       ` Jan Hubicka
2003-12-04 17:40         ` Vladimir Makarov
2003-12-09 21:45     ` Ghassan Shobaki
2004-01-28  3:26     ` Superblock Instruction Scheduling in GCC 3.4 Ghassan Shobaki
2004-01-28 12:51       ` Jan Hubicka
2004-01-29 10:14         ` Ghassan Shobaki
2004-01-29 11:15           ` Jan Hubicka
2004-02-01 18:19             ` Ghassan Shobaki
2004-02-01 21:56               ` Jan Hubicka
2004-02-02  5:54                 ` Ghassan Shobaki
2004-02-10 18:58                 ` Superblock Scheduling Alg in GCC Ghassan Shobaki
2004-02-10 20:10                   ` Vladimir Makarov
2004-02-10 20:18                     ` Vladimir Makarov
2004-02-10 20:28                       ` Jan Hubicka
2004-04-14 17:40                         ` Ghassan Shobaki
2004-04-15  8:44                           ` Vladimir Makarov
2004-05-27 14:12                         ` Ghassan Shobaki

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=Pine.GHP.4.58.0312031653400.6447@dante.ece.ucdavis.edu \
    --to=gshobaki@ece.ucdavis.edu \
    --cc=gcc-help@gcc.gnu.org \
    --cc=gcc@gnu.org \
    --cc=hubicka@ucw.cz \
    --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).