Техника оптимизации под линуха

Сводная таблица качества оптимизации




компилятор

действие

Microsoft Visual C++ 6

IntelC++ 8.0

GCC 3.3.4

свертка констант

выполняет улучшенную свертку

выполняет улучшенную свертку

выполняет улучшенную свертку

объединение констант

никогда не объединяет

объединяет идентичные строковые и вещественные константы

объединяет идентичные строковые и вещественные константы

константная подстановка в условиях

подставляет

не подставляет

подставляет

свертка функций

сворачивает только встраиваемые

с ключом -ipo сворачивает все

сворачивает только встраиваемые

удаление мертвого кода

удаляет только в основной ветке

удаляет во всех ветках

удаляет только в основной ветке

удаление неиспользуемых функций

никогда не удаляет

удаляет с ключом –ipo

никогда не удаляет

удаление неиспользуемых переменных

удаляет с все неявно неиспользуемые отслеживанием генетических связей

удаляет с все неявно неиспользуемые отслеживанием генетических связей

удаляет с все неявно неиспользуемые отслеживанием генетических связей

удаление неиспользуемых выражений

удаляет

удаляет

удаляет

удаление лишних обращений к памяти

частично

частично

частично

удаление копий переменных

удаляет

удаляет

удаляет

размножение переменных

не размножает

размножает

не размножает

распределение переменных по регистрам

распределяет отлично

распределяет плохо

распределяет средне

реассоциацирует регистры

не реассоцирует

реассоцирует

не реассоцирует

алгебраическое упрощение выражений

в большинстве случаев выполняет упрощение

упрощает простые и некоторые сложные выражения

упрощает простые выражения

упрощение алгоритма

упрощает некоторые операции

никогда не выполняет

никогда не выполняет

использование подвыражений

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

распознает все явные и частично неявные подвыражения во всех ветках

распознает явные подвыражения во всех ветках



Содержание раздела