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