Как развертывание цикла снижает штраф за переход?

Я пытаюсь понять концепцию развертывания цикла, и, согласно Википедии, это ограничивает/минимизирует штраф за ветку?

Теперь я понимаю, что такое развертывание цикла. Это в основном увеличение шага приращения цикла и повторение операторов внутри цикла.

Однако я не совсем понимаю, как это поможет со штрафом за ветку?


person Dude    schedule 05.04.2017    source источник


Ответы (1)


Штраф за ветку применяется к каждой ветке. Если вы повторяете цикл 100 раз, а код цикла не разворачивается, вы заплатите штраф за ветку 100 раз. Но если цикл развернут один раз (т. е. всего две копии кода), вы заплатите штраф только 50 раз.

person aghast    schedule 05.04.2017