report88(1)
NAME
report88 − generate profile reports from the programs patched by analyze88 −P
SYNOPSIS
report88 [−H] [−a] [−b] [−B number] [−d range] [−i] [−M megahertz] [−r] [−R number] [−s] [−t] [−w] [−z] programfile [programfile.prof]
OPTIONS
−H Print a help message and exit.
−a Report on all the individual data sets recorded in the profile data file. If the −t option is used, normally only the totals for all the runs of the program are printed. The −a option forces all the individual runs to generate reports as well.
−b Generate a report showing where the program spent its time at the individual basic block level. This report is ordered with the most expensive block listed first (in terms of cycles spent in that block).
−B number Restrict the basic block report to only the first number basic blocks. If the number is written with a trailing % character on the end, then it will restrict the list of blocks printed to just the first set of blocks that total to that percent of the total time. This option implies the use of the −b option. Both forms of the −B option may be used, in which case the first limit reached will terminate the listing.
−d range Each time a patched program is run, it appends a new set of profile data onto the end of its profile data file. This means that one data file may contain several sets of data. The first set is set number one. This option may be used to select which sets are actually reported. It can be a single number, a list of comma separated numbers or a range of numbers separated with a dash.
−i Report summary information for the complete program. This option uses the assumed clock rate (specified with the −M option) to report the clock time the original program would take to run. It also summarizes the count of the different types of instructions that were executed.
−M megahertz
Specify the megahertz clock rate to assume when computing clock time from cycle counts. The default is 25.
−r Generate a profiling report showing the time spent in each routine. This report is generated by adding up all the time in the individual basic blocks.
−R number This option acts much like the −B option (above). It is used to limit the number of routines printed, and will accept an absolute number or a percentage. Use of −R implies −r.
−s Print the header information from each profile data set. This may be used by itself to determine how many sets of data are in a profile data file in order to determine which sets to examine with the −d option.
−t Total all the data sets and print the total statistics in any of the reports requested. Normally this option suppresses the generation of any reports on individual data sets and only the totals are printed. The −a option (above) can be used to change this behavior.
−w Print the raw statistics information from the profile data file in a human readable form.
−z Print information about blocks and routines that are executed zero times. If no blocks in a routine were executed, only the routine name is printed and the individual blocks for that routine are not reported. For routines in which some blocks were executed and some were not, the blocks with zero execution time are reported individually.
DESCRIPTION
The report88 program is available only on Series 4000 and 5000 systems. It reads the profile data generated by running a program which has been patched with the −P option of the analyze88 tool.
The report88 tool needs two arguments, the name of the patched program (generated by analyze88) and the name of the profile data file. If the second argument is not specified, it will append to the end of the first argument and look there for the profile data.
The printed reports are generated in a format that will conform with tools that are used to parse error messages from compilers, with file name : line number listed first on the line.
Except where explicitly indicated in the individual report all times are reported in terms of cycles. Because no analysis of pipe conflicts across basic blocks is done, times are always reported in terms of a range of times from max time to min time. All sorts are done on max time, and percentages are calculated in terms of max time.
BUGS
The cycle counts reported are based on the cycle counts calculated by analyze88 and are subject to the same limitations described in the documentation for that tool.
Most notably the behavior of the memory system is not taken into account, so actual wall time may be even longer than the maximum time reported (especially if the application has many cache misses).
If the program was not compiled with line number information, or if it was stripped before being processed by analyze88 none of the reports will be able to include accurate file names or line numbers (generally the file name will be the null string and the line numbers will be 0 if the information was not present in the object file).
SEE ALSO
analyze88(1) in the CX/UX Programmer’s Reference Manual
CX/UX User’s Reference Manual