Как оптимизирующие компиляторы решают, когда и сколько развернуть цикл?

Когда компилятор выполняет оптимизацию развертывания цикла, как он определяет, по какому фактору развернуть цикл или нужно ли развернуть весь цикл? Поскольку это компромисс между объемом и производительностью, насколько в среднем эффективен этот метод оптимизации для повышения производительности программы? Кроме того, при каких условиях рекомендуется использовать этот метод (например, определенные операции или вычисления)?

Это не обязательно должно быть специфическим для определенного компилятора. Это может быть любое объяснение, излагающее идею, лежащую в основе этой техники, и то, что наблюдалось на практике.

10
задан Rob Kennedy 7 October 2011 в 20:47
поделиться