Software Archive
Read-only legacy content
17060 ディスカッション

IA64 Branch Mispredict Predicate bit Vs. Mispredict

mark-whitener
ビギナー
1,890件の閲覧回数
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 件の賞賛
1 返信
TimP
名誉コントリビューター III
1,890件の閲覧回数
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.
返信