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)