- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
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
コピーされたリンク
1 返信
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
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.
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.