Относительная производительность кода, сгенерированного компиляторами splat - PullRequest
1 голос
/ 11 января 2012

Достигли ли успехи в проектировании ЦП, такие как динамическое планирование команд, сокращение разрыва в производительности между кодом, сгенерированным компиляторами splat, и оптимизацией компиляторов, т. Е. Могут ли компиляторы быть более глупыми в наши дни?

1 Ответ

2 голосов
/ 11 января 2012

Напротив, оптимизирующие компиляторы достигают большего на современных процессорах.Автоматическая векторизация делает код в несколько раз быстрее.Современные наборы команд также предоставляют некоторые возможности оптимизации (например, использование CMOV вместо условного перехода в x86).

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

...