- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page