You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When the SPE previous branch target address (named as PBT) feature is
available, an SPE sample by combining this PBT feature, has two entries.
Arm SPE records SRC/DEST addresses of the latest sampled branch operation,
and it stores into the first entry.
PBT records the target address of most recently taken branch in program order
before the sampled operation, it places into the second entry.
They are formed a chain of two consecutive branches.
Where:
- The previous branch operation (PBT) is always taken.
- In SPE entry, the current source branch (SRC) may be either fall-through or taken.
- The target address (DEST) of the recorded branch operation is always
what was architecturally executed.
However PBT doesn't provide as much information as SPE does. It lacks those information
such as the address of source branch, branch type, and prediction bit.
These information are always filled with zero in PBT entry.
Therefore Bolt cannot evaluate the prediction, and source branch fields,
it leaves them zero during the aggregation process.
Consider the following example to see how SPE profile looks like combining with PBT:
`<PID> <SRC>/<DEST>/PN/-/-/10/COND/- <NULL>/<PBT>/-/-/-/0//-
0xffff8000807216b4/0xffff800080721704/P/-/-/1/COND/- 0x0/0xffff8000807216ac/-/-/-/0//-`
0 commit comments