This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Superblock Instruction Scheduling in GCC
- From: "Vladimir N. Makarov" <vmakarov at redhat dot com>
- To: Ghassan Shobaki <gshobaki at ece dot ucdavis dot edu>
- Cc: gcc-help at gcc dot gnu dot org, gcc at gnu dot org
- Date: Wed, 03 Dec 2003 09:07:40 -0500
- Subject: Re: Superblock Instruction Scheduling in GCC
- References: <Pine.GHP.4.58.0312022125060.26397@dante.ece.ucdavis.edu>
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.
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.
Vlad