Переносимые подсказки предсказания ветвлений

Есть ли какой-нибудь переносимый способ сделать подсказки предсказания ветвления? Рассмотрим следующий пример:

  if (unlikely_condition) {
    /* ..A.. */
  } else {
    /* ..B.. */
  }

Это чем-то отличается от выполнения:

  if (!unlikely_condition) {
    /* ..B.. */
  } else {
    /* ..A.. */
  }

Или это единственный способ использовать специфические подсказки компилятора? (например, __builtin_expect в GCC)

Будут ли компиляторы обрабатывать условия if по-разному в зависимости от порядка выполнения условий?

38
задан Mysticial 3 September 2012 в 16:26
поделиться