Я не знаю какого-либо подробного анализа таких конкретных намеков.В любом случае, это будет очень специфично для процессора.В общем, если вы уверены в вероятности (например,> 90%), то, вероятно, стоит добавить такие аннотации, хотя улучшения будут сильно различаться в зависимости от конкретного случая использования.
Современные настольные ЦП имеют очень хороший прогноз ветвления.Если ваш код в любом случае находится на «горячем пути», динамический предсказатель ветвления быстро выяснит, что ветвь смещена сама по себе.Такие подсказки в основном полезны, чтобы помочь статическому предиктору, который срабатывает, если информация о динамическом ветвлении недоступна.
На x86 статический предиктор предсказывает, что будут взяты прямые ветви , а не , и обратные ветви кбыть взятым (так как они обычно указывают петли).Поэтому компилятор корректирует статическое расположение кода в соответствии с предсказаниями.(Это также может помочь в размещении горячего пути в соседних строках кэша, что может помочь в дальнейшем.)
В PPC некоторые инструкции перехода имеют немного, чтобы предсказать их вероятность.Я не знаю, будет ли компилятор переставлять код тоже.
Я не знаю, как процессоры ARM предсказывают ветвления.Как устройство с низким энергопотреблением, оно может иметь менее сложное прогнозирование ветвлений, а статическое прогнозирование может оказать большее влияние.