Go to the first, previous, next, last section, table of contents.
Introduction
Sloop reads in a description of a flow graph for the functions in a
program (usually generated by alto using the "-P loop" option) and
prints out the graphs and/or subgraphs for selected functions, loops,
or basic blocks, as specified using the options below. The critical
path(s) in the (sub)graph are displayed in green, while any function
call out of a basic block is indicated in red.
Invocation
sloop [option*]
Options
- -I
-
Print instructions within basic blocks. Normally, instructions
are not printed because they take up a lot of space and therefore
cause the overall graph to be shrunk to such an extent to fit on
a page that the result is very hard to read.
- -f FSpec
-
FSpec is a function object specification. A function (loop, block)
object specification can be either the symbol "+", indicating
that all functions (loops, blocks) are to be displayed; or a
comma-separated list of function (loop, block) object selectors.
A function (loop, block) object selector is one of the following:
@itemize
@item an object name: specifies that object;
@item wt = NNN or ct = NNN, where NNN is a floating point number between
0 and 1. This specifies all function (loop, block) objects with
weight ("wt") or count ("ct") at least NNN of the total.
NOTE: At this time, functions don't have counts associated with
them.
@item wt = :N or ct = :N, where N is an integer. This specifies the
N function (loop, block) objects with maximal weight ("wt") or
count ("ct").
@end itemize
- -l LSpec
-
LSpec is a loop object specification. Selecting a loop to be printed
implies that the function it occurs in is also selected.
- -b BSpec
-
BSpec is a block object specification. Selecting a basic block to be
printed implies that the function it occurs in is also selected.
- -i fname
-
fname is the input file. Default: stdin.
- -o fname
-
fname is the output file. Default: stdout
- -s fname
-
fname is the name of the file into which (the functions containing)
the selected objects is printed in sloop source format. This option
is provided because input files are often very large, and therefore
time-consuming to read in, whereas often we'll be interested in only
a few objects. Using the "-s" option, these can be selected and
printed into a file in sloop source format, and this file can then
be used as the input to sloop subsequently.
- -d fname
-
fname is the name of a file into which the dot specification of the
output graph is to be written. The resulting file is not deleted at
the end of processing. This option allows the user to modify the input
to dot in ways not possible from the sloop command line.
- -t
-
"tile" -- if specified, instructs the back-end graph-drawing tool
to print large graphs on multiple pages (which can be "tiled" together
to produce a single graph) instead of reducing it excessively in order
to fit on a single page.
- -c
-
Print only basic blocks and edges on the critical path.
- -C
-
Print only basic blocks and edges on the critical path, as well as
the instructions in them. Equivalent to -c -I.
The selector options -f, -l, and -b can be used together, e.g., the query
sloop -f -l wt = :3
specifies that the 3 heaviest loops should be printed out, together with
the functions they occur in.
Options must be specified separately, each option preceded by a "-". E.g.,
the command "sloop -f -l -b 1000" specifies that basic block 1000 should be
printed, together with the function and the loop it occurs in; but
"sloop -fl -b 1000" asks for basic block 1000 and function "l".
Go to the first, previous, next, last section, table of contents.