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