only during the epilog phase and is initialized to one more than the number of epilog
stages. If the qualifying predicate is zero during the speculative stages of the prolog,
EC will be decremented during this part of the prolog, and the initialization value for EC
is increased accordingly.
4.5.2
Branch Prediction Hints
Information about branch behavior can be provided to the processor to improve branch
prediction. This information can be encoded in two ways: with branch hints as part of a
branch instruction (referred to as hints), and with separate Branch Predict instructions
(brp) where the entire instruction is hint information. Hints and brp instructions do not
affect the functional behavior of the program and may be ignored by the processor.
Branch instructions can provide three types of hints:
• Whether prediction strategy: This describes (for COND, CALL and RET type
branches) how the processor should predict the branch condition. (For the loop type
branches, prediction is based on LC and EC.) The suggested strategies that can be
hinted are shown in
Table 4-26.
Completer
spnt
sptk
dpnt
dptk
• Sequential prefetch: This indicates how much code the processor should prefetch
at the branch target (shown in
documentation for further information.
Table 4-27.
Completer
few
many
• Predictor deallocation: This provides re-use information to allow the hardware to
better manage branch prediction resources. Normally, prediction resources keep
track of the most-recently executed branches. However, sometimes the
most-recently executed branch is not useful to remember, either because it will not
be re-visited any time soon or because a hint instruction will re-supply the
information prior to re-visiting the branch. In such cases, this hint can be used to
free up the prediction resources.
1:78
Table
4-26.
Whether Prediction Hint on Branches
Strategy
Static Not-Taken
Ignore this branch, do not allocate prediction resources for this
branch.
Static Taken
Always predict taken, do not allocate prediction resources for
this branch.
Dynamic Not-Taken
Use dynamic prediction hardware. If no dynamic history
information exists for this branch, predict not-taken.
Dynamic Taken
Use dynamic prediction hardware. If no dynamic history
information exists for this branch, predict taken.
Table
Sequential Prefetch Hint on Branches
Sequential Prefetch
Hint
Prefetch few lines
When prefetching code at the branch target, stop prefetching
after a few (implementation-dependent number of) lines.
Prefetch many lines
When prefetching code at the branch target, prefetch more
lines (also an implementation-dependent number).
Operation
4-27). Please see the processor-specific
Operation
Volume 1, Part 1: Application Programming Model
Need help?
Do you have a question about the ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3 and is the answer not in the manual?
Questions and answers