glenda.party
term% ls -F
term% cat index.txt
LCOMP(1)                    General Commands Manual                   LCOMP(1)



NAME
       lcomp, lprint - line-by-line profiler

SYNOPSIS
       lcomp [options] ... file ...

       lprint [options] [files]

DESCRIPTION
       Lcomp  is  used  in  place  of cc (1) or f77 (1) to insert instruction-
       counting code into programs.  It recognizes options whose initial  let‐
       ters  are  taken  from  the  string ``cwpDUIRdlNnz'', and accepts files
       whose names end in `.c', `.f', `.s', or `.o'.  From each source file it
       derives  a  `.o'  file  and a `.sL' file which lprint uses to correlate
       source lines with basic blocks.  If the -c option  is  not  present  it
       creates  a.out.  Each time the `a.out' file is run statistics are added
       to a profiling file prof.out.

       Lprint produces on the standard output  a  listing  (in  the  style  of
       pr(1))  of the programs compiled by lcomp.  Without arguments or files,
       each line of the listing is preceded by the number of times it was exe‐
       cuted,  as determined from the data in prof.out.  Lprint interprets the
       following options.

       -a     Detailed listing of every machine instruction and how  often  it
              was executed.

       -b     Attempts to indicate how often each basic block was executed.

       -c     Compress the prof.out file, which otherwise grows with every ex‐
              ecution of a.out .

       -f     Print summary information by function:  instruction  executions,
              number  of  invocations,  source instructions, and number of in‐
              structions never executed.

       -i     Before each line of source print the number of machine  instruc‐
              tions executed.

       -p     Before  each  line of source print the number of times the first
              basic block in that line was executed.

       -s     Summarize the counts by  source  file:  instruction  exectuions,
              source  instructions,  instructions  never executed, basic block
              executions, total number of source basic blocks,  and  how  many
              were never executed.

       If  any  file names are given, the arguments "abip" apply only to them.
       If no options are given, -p is assumed.  Any combination of options  is
       allowed.

FILES
       prof.out            counts
       *.sL                for correlating with source
       /usr/lib/bb         finding basic blocks and inserting counting code
       /usr/lib/nexit.o    printing counts when `a.out' exits

SEE ALSO
       cc(1), f77(1)

BUGS
       A  line  in  the source file may be in zero, one, or more basic blocks;
       the count given in the listing corresponds to some particular choice of
       the basic block to associate with the line.
       Processing  the  output  of yacc(1) without removing `#line' directives
       will produce unsatisfactory results.



                                                                      LCOMP(1)