HP Caliper User Guide Release 5.5 (5900-2351, August 2012)

Function Details
Each instruction bundle shown in a Function Details table consists of four rows of data. The top
row for the instruction bundle shows data totals for the bundle. The remaining rows show
per-instruction data. The bundles shown may or may not be contiguous.
You can use the -r (--report-details) option to specify whether reports should contain
function source (-rs), instructions (-ri), or both (-ra).
Use the --context-lines option to control how much source or disassembly, or both to display.
Disassembly Listing
A PMU histogram report gives a disassembly listing, which is a source listing with disassembly
code for the top performance bottlenecks.
The disassembly listing is not provided by default. To see it, you must use the -r
(--report-details) option. Specify -ri (instructions) or -ra (all).
Figure 24 (page 110) shows a disassembly listing in a report.
Figure 24 Disassembly Listing Example
Function Details
---------------------------------------------------
%Total Line|
IP IP Slot| >Statement|
Samples Samples Col,Offset Instruction
---------------------------------------------------
31.11 [wordplay::extract, 0x4007d30, wordplay.c]
201 1052 Function Totals
------------------------------------------
[wordplay.c]
4 1074 > s1p = t1;
4 3,0x0040:0 adds r34=0,r44;;
:1 adds r47=0,r34
:2 nop.i 0
1 1075 > s1len = (int) strlen (s1p);
1 6,0x0060:0 adds r40=0,r8;;
:1 add r37=r40,r34
:2 adds r35=0,r33
4 1079 > s2len = (int) strlen (s2);
4 6,0x0080:0 adds r41=0,r8;;
:1 add r38=r41,r35
:2 adds r35=0,r33 ;;
10 1082 *> for (s2p = s2; s2p < s2end;s2p++)
1 7,0x0090:0 cmp4.ltu p0,p6=r35,r38
:1 nop.m 0
:2 (p6) br.dptk .+0x180 ;;
1 7,0x00a0:0 nop.m 0
Disassembly listings show instruction templates and symbolic representations of branch targets.
You also have the option to include a mark (colon) before instructions that are the target of a branch
instruction.
Intraprocedural branch targets are shown as:
{self}+offset
where offset is an offset from the start of the procedure.
Interprocedural branch targets within the same load module are shown as:
procedure_name+0x0
When a branch target is a stub, the target is simply shown as *STUB@address*.
110 Controlling the Content of Reports