Software Archive
Read-only legacy content
17061 Discussions

IA64 Branch Mispredict Predicate bit Vs. Mispredict

mark-whitener
Beginner
387 Views
With Itanium I understand there is a predicate bit that can avoid branch mispredict events in some cases. Yet in other cases,branch mispredicts still occur in IA64.
My questions is what is the factor in Itanium architecture which determines a branch mispredict vs. a predicated branch?
Thanks in advance
Mark
0 Kudos
1 Reply
TimP
Honored Contributor III
387 Views
Predication is used to make a branch conditional. Maybe you mean the branch hints, which can be used to initialize branch prediction to "taken" or "not taken." The first time the predication doesn't match the hint, for example on loop exit, there would always be a mis-predict. Later on, if the predication matches a pattern stored in branch history, it may be possible to "predict," if the pattern continues.
Normally, the hint is set by the compiler, by rules such as backward jump taken, forward conditional jump not taken, and, we hope, loop exit not taken. If the compiler is instructed to use a profiling history, it would set the hints accordingly.
0 Kudos
Reply