ftoc - interface between prof and cord
The ftoc interface reads one or more feedback files produced by the -feedback option of the profiler prof(1) and writes onto stdout a reorder-file for use with the cache-rearranging program cord(1). It interprets each feedback file as representing one phase of a program's execution. In other words, if a program behaves in two distinct ways depending on its input, you could create two different feedback files by executing the program twice with different input data, and both ftoc and cord will understand that the information from the first file is distinct from that of the second file.
As an example, to improve the instruction-cache performance of a program called hello, you could generate a new hello.cord program by saying:
cc -non_shared -o hello hello.c pixie -o hello.pixie hello hello.pixie prof -pixie -feedback hello.feedback hello ftoc hello.feedback > hello.reorder cord -o hello.cord hello hello.reorder
The reorderfile consists of a list of lines of the form:
sourcefile procname.procname... n
where ``procname.procname...'' represents an outer-to-inner
list of nested procedures, and
is 10 times the
percentage of the procedure's ``density'' with respect to the total
of the densities of all procedures. (``Density'' is the ratio of
a procedure's total cycles to its total static instructions.) A line consisting
of ``$phase'' separates information from different feedback files.