Software Archive
Read-only legacy content
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
17060 Discussions

IA64 Branch Mispredict Predicate bit Vs. Mispredict

mark-whitener
Beginner
564 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
564 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