Trace Scheduling in GCC

Ghassan Shobaki gshobaki@ece.ucdavis.edu
Fri Feb 11 16:55:00 GMT 2005


Hi,

I have previously studied superblock scheduling by importing superblock 
DAGs from gcc and feeding them into my scheduler (I have published 
my results at Micro in case you are interested: 
http://www.microarch.org/micro37/papers/25_Shobaki-Superblock.pdf) 

Now, I wonder if I can do the same thing to traces by importing the DAGs and 
the necessary data-flow information from gcc. Unlike the superblock, which has 
a single entry and multipl exits, a trace is a more general structure that can 
have multiple entries and multiple exits. So, the question is: Can I 
extract traces for my experiments from gcc?

My understanding is that since version 3.4 gcc offers these two command-line 
options: 

-fsched2-use-superblocks: This does extended basic block scheduling; no 
trace formation or tail duplication. It just schedules the extended basic 
blocks that appear naturally in the code.

-fsched2-use-traces: This does superblock scheduling, i.e. it forms 
traces then it does tail duplication to eliminate side entrances.

I am right about the functionalities of these options?
It seems to me that none of these options meets my objective of studying 
traces that have mltiple entrances and multiple exits. Please correct me 
if I am wrong. And if I am right, is there another way for me to get what 
I want, may be by doing some quick hack that bypasses tail duplication under 
the -fsched2-use-tarces option -does this make sense?

Thanks
-Ghassan
   



More information about the Gcc-help mailing list