HP Caliper User's Guide

cspec Event Set
The cspec event set provides information on the effectiveness of control speculation.
Control speculation is the execution of an operation before the branch that guards it.
Control speculation involves the movement of loads above the basic block with which
is normally is associated. This can give the optimizer added degrees of freedom for
instruction scheduling. It also provides a means to allow for overlapping of cache miss
latencies by moving as many loads as possible before any use of these loads occurs.
Ideally, control speculation would be perfect (always successful). The metrics provided
by this measurement give an assessment of the amount and success rate of control
speculation.
If you use this event set, the default is to make the measurements irrespective of CPU
operating state (that is, user, system, or interrupt states). By default, the idle state is
not included in the measurement. You can use command-line options to limit the scope
of the measurement. Specifically, you can:
Limit measurement to a specific privilege level: -m
event_set[:all|user|kernel]
Include idle: --exclude-idle False
Exclude the interruption state: --measure-on-interrupts off
Only measure the interruption state: --measure-on-interrupts only
The event per kinst (event per 1000 instructions) metrics are computed using all
instructions retired. This includes nops, predicated off instructions, failed speculation
and instructions and associated recovery code as well as the architecturally visible
instruction. You can eliminate idle loops effects by using the command-line option
--exclude-idle True (which is the default). The effects of failed speculative
operations and TLB misses cannot be directly eliminated, but you can get an estimate
of the impact of events from the cspec, dspec, and tlb event sets. You can use the
cpi event set to obtain the fraction of all instructions retired that have an architecturally
visible result, except for predicated off branches, which are counted as useful instructions
(non-taken branch) by the Itanium 2 PMU.
Metrics Available from this Measurement
The following metrics are available from this event set. These descriptions do not take
into account any command-line options you might use.
The metrics are:
Cycles
This is the number of CPU cycles that occurred during the sample interval.
Total Instr Retired
This is the total number of instructions retired during the sample interval. It
includes predicated off and nop instructions.
cspec Event Set 311