Superblock Instruction Scheduling in GCC

Vladimir N. Makarov
Wed Dec 3 14:03:00 GMT 2003

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

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

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.


More information about the Gcc-help mailing list