Go to the first, previous, next, last section, table of contents.


Sloop Manpage

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.