"Адское" программирование Ada-95 -Компилятор GNAT

         

Оптимизация для специфического типа процессора



Оптимизация для специфического типа процессора

Для 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.

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