Оптимизация для специфического типа процессора
Оптимизация для специфического типа процессора
Для GCC версий x существует две основные опции оптимизации, которые основаны на специфическом типе процессора. Это указано в руководстве по GCC:
-mno-486 | - | оптимизация для 8038 |
-m486 | - | оптимизация для 8048 Однако, такая программа сможет выполняться на процессоре 8038 |
Следует заметить, что в настоящий момент для GCC версий x,
нет опций поддержки новых типов процессоров фирмы Intel (Pentium и более новые).Однако предполагается, что будущие версии GNAT,
которые будут собраны с использованием GCC версий x и более новыми версиями GCC,
возможно, будут полноценно поддерживать следующие опции:
-mpentium | - | оптимизация для Pentium / Intel 58 |
-mcpu=i686 | - | оптимизация для Pentium II/ Intel 68 |
-mcpu=k6 | - | оптимизация для AMD K |
Для GCC , который используется совместно с GNAT, рекомендуется следующая комбинация опций компилятора для получения разумного выигрыша в производительности при использовании процессора Pentium:
-m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -fno-strength-reduce |
Существуют также другие опции, которые могут быть полезны или бесполезны, в зависимости от конкретной программы.Для получения более полной информации следует обратиться к gcc FAQ.
Рассмотрим совместное использование этих опций.Предположим, что необходимо разработать программу которая будет выполняться на процессоре Intel Pentium, и скорость выполнения программы имеет существенное значение.В процессе разработки программы, можно использовать утилиту gnatmake с опцией -O1.Такая установка будет подавлять предупреждающие сообщения об использовании директив оптимизации в исходном тексте.После завершения разработки, для выполнения заключительной сборки проекта, можно использовать следующую комбинацию опций для утилиты gnatmake:
-m486 -O3 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -fno-strength-reduce -gnatp |
В результате,
это позволяет обеспечить максимальную производительность
при выполнении программы на процессоре Intel Pentium.
Содержание раздела