HP DCPI tool



Site information

» Send us your comments


» Download DCPI
» Installing DCPI

Product information

» Frequently asked questions
» Documentation
» Publications
customer times newsletter link



dcpivlst - A form of dcpilist that also shows value profile information


dcpivlst [flags] [-p] [procedure-name] image-file

dcpivlst -V


Dcpivlst is a version of dcpilist(1) which was modified to display value profiling information. Note that dcpilist can now also show value profiling information; and it should usually be used instead of dcpivlst.

The value profile information printed per instruction by dcpivlst is:

  • How many value samples were collected.
  • For each value sample collected, the probability of it being added to the value profile data.
  • How many distinct values there are in the value profile data.
  • Each distinct value, and the number of times it was added to the value profile data.

cycles     cpi                                    vtot   thld  nv
      0         0x120001160 ldah   gp, 8192(t12)     0    0.0   0
  15693  1.0cy  0x120001198 cmpeq  v0, 0x1, v0     142    1.0   2  v0: (88.0% 0x0) .
 173339 10.8cy  0x120001190 mull   t1, 0xa, t3    1554  126.9  15  t3: (51.1% 0x58a3de2) ...
An example of dcpivlst output is shown above. The column vtot shows collected value samples, the thld column gives the reciprocal probability of adding samples to the profile, and the nv column shows the number of distinct values in the profile. The end of each line shows the name of the register sampled, and the profile data values for that register, as (P V) pairs, where V is a value and P is the percentage of total samples this value accounts for. The list of (P V) pairs is sorted by P, so values accounting for most total value samples come first. Some pairs may be printed as dots; this, and the number of pairs shown, is controlled by the -vcutoff and -vshow flags described above.


Dcpivlst supports many of the same options as dcpilist(1) as well as these below. Note that, like dcpilist, -asm -vprof are necessary to see value profiling information.

List all procedures in the image.

List value profile information.

Report counts (and derived percentages) of value profiles based on concise samples rather than counting samples. Concise samples more truly represent a uniformly random sampling of the distribution, but the percentage estimates are often less accurate, especially for random or near-random distributions.

-vcutoff P
Only list profile data values that were seen in more than P percent of the total value samples.

-vshow N
Only list in full the N value profile data values accounting for the most value samples. Other profile data values, that pass the -vcutoff, if it is set, are shown as dots.

-vtotcut S
Do not output value profiles if they are based on S or fewer value samples.

After every instruction, list registers used in that instruction for which values are known. For each register, print the address of the instruction where values were captured for that register. The set of registers whose values are known at an instruction, and the instructions where their values are captured are determined by dataflow analysis. There can be more than one set of values visible for a register at each instruction. Below is sample output, showing for register t1 two addresses where value profile data is available.
cycles vtot  thld nv 
 25459  976   1.0  2 0x1200011f0 stl t1, 0(t2)  t1: (90.1% 0x7) .
                                                t1: 0x120001160 
                                                t1: 0x1200011e8 
                                                t2: 0x1200011ec 
After every instruction, list registers used in that instruction and a computed set of their probable values, if possible. The set of probable values is computed using the same dataflow analysis results as in -vregaddr. Below is sample output showing probable values for registers t1 and t2. Note that the t1 estimate has the correct value, but the percentage is only correct in the high-order bit.
cycles                            vtot  thld nv
 25459 0x1200011f0 stl t1, 0(t2)   976   1.0  2  t1: (90.1% 0x7) .
                                                 t1: (60.5% 0x7) .
                                                 t2: (100.0% 0x140000170)
-vcontext [@xA]
List the return address context information along with each value. Use the option -vcontext_ra to show the context value from the ra register, and -vcontext_sp0 to show the context value from the top of the stack, sp(0). Below is sample output.
cycles                            vtot  thld nv
 25459 0x1200011f0 stl t1, 0(t2)   976   1.0  2  t1: (90.1% 0x7 @x120018ca4) .
The optional argument @xA specifies an address A (in hexadecimal) for which dcpivlst will show a projected value profile. The projected value profile is constructed by removing all value samples whose context is not A.

Note that if dcpivlst is used to display value profiles collected with context information, but the vcontext is not given, the value profiles displayed will also be projections of the actual data, with the context information ignored.


dcpi(1), dcpi2bb(1), dcpi2pix(1), dcpi2ps(1), dcpicalc(1), dcpicat(1), dcpicc(1), dcpicoverage(1), dcpictl(1), dcpid(1), dcpidiff(1), dcpidis(1), dcpiepoch(1), dcpiflow(1), dcpiflush(1), dcpikdiff(1), dcpilabel(1), dcpildlatency(1), dcpilist(1), dcpiprof(1), dcpiprofileme(1), dcpiquit(1), dcpiscan(1), dcpisource(1), dcpistats(1), dcpisumxct(1), dcpitar(1), dcpitopcounts(1), dcpitopstalls(1), dcpiuninstall(1), dcpiupcalls(1), dcpivarg(1), dcpivcat(1), dcpiversion(1), dcpivprofiler(1), dcpiwhatcg(1), dcpix(1), dcpiformat(4), dcpiexclusions(4)

For more information, see the DCPI project home page http://h30097.www3.hp.com/dcpi.


Copyright 1996-2004, Hewlett-Packard Company. All rights reserved.