Spec-Zone.ru › GCC 11

Далее: Опции AMD GCN, Предыдущее: Опции AArch64, Выше: Опции, зависящие от модели процессора [Содержание][Индекс]

3.19.2 Опции Adapteva Epiphany ¶

Эти параметры ‘-m’ определены для Adapteva Epiphany:

-mhalf-reg-file

Не выделять регистры в диапазоне r32…r63. Это позволяет коду работать на аппаратных вариантах, в которых этих регистров нет.

-mprefer-short-insn-regs

Предпочитать выделение регистров, которые позволяют сгенерировать короткие инструкции. Это может привести к увеличению количества инструкций, что может либо уменьшить, либо увеличить общий размер кода.

-mbranch-cost=num

Установить стоимость ветвлений примерно в num «простых» инструкций. Эта стоимость является лишь эвристикой и не гарантирует согласованных результатов в разных выпусках.

-mcmove

Включить генерацию условных перемещений.

-mnops=num

Выводить num инструкций NOP перед каждой другой сгенерированной инструкцией.

-mno-soft-cmpsf

Для сравнений с плавающей точкой одинарной точности генерировать инструкцию fsub и проверять флаги. Это быстрее, чем программное сравнение, но может давать неверные результаты при наличии NaN или когда два разных малых числа сравниваются таким образом, что их разность вычисляется как ноль. По умолчанию используется -msoft-cmpsf, который использует более медленные, но совместимые с IEEE, программные сравнения.

-mstack-offset=num

Установить смещение между верхом стека и указателем стека. Например, значение 8 означает, что восемь байт в диапазоне sp+0…sp+7 могут использоваться функциями-листьями без выделения памяти в стеке. Значения, отличные от ‘8’ или ‘16’, не протестированы и вряд ли будут работать. Обратите также внимание, что этот параметр изменяет ABI; компиляция программы с другим смещением стека, чем у библиотек, обычно не работает. Этот параметр может быть полезен, если вы хотите оценить, даст ли другое смещение стека лучший код, но для фактического использования другого смещения стека при построении рабочих программ рекомендуется настроить компилятор с соответствующим параметром --with-stack-offset=num.

-mno-round-nearest

Заставить планировщик предполагать, что режим округления установлен на усечение. По умолчанию используется -mround-nearest.

-mlong-calls

Если не указано иначе атрибутом, предположить, что все вызовы могут выходить за пределы диапазона смещений инструкций b / bl, и поэтому загрузить адрес функции в регистр перед выполнением вызова (в противном случае прямого).

-mshort-calls

Если не указано иначе атрибутом, предположить, что все прямые вызовы находятся в диапазоне инструкций b / bl, поэтому использовать эти инструкции для прямых вызовов. По умолчанию используется -mlong-calls.

-msmall16

Предполагать, что адреса могут быть загружены как 16-битные беззнаковые значения. Это не относится к адресам функций, для которых действуют семантика -mlong-calls.

-mfp-mode=mode

Установить текущий режим блока обработки чисел с плавающей точкой. Это определяет режим обработки чисел с плавающей точкой, который предоставляется и ожидается при вызове и возврате функций. Сопоставление этого режима с режимом, который вам нужен преимущественно в начале функции, может сделать ваши программы меньше и быстрее, избегая ненужных переключений режимов.

mode может быть установлен на одно из следующих значений:

‘caller’

Любой режим при входе в функцию является допустимым и сохраняется или восстанавливается при возврате из функции и при вызове других функций. Этот режим полезен для компиляции библиотек или других единиц компиляции, которые вы можете включить в разные программы с разными режимами FPU, и удобство использования одного файла объекта перевешивает размер и производительность издержки любого дополнительного переключения режима, по сравнению с тем, что потребовалось бы с более конкретным выбором преобладающего режима FPU.

‘truncate’

Это режим, используемый для расчётов с плавающей точкой с режимом округления усечения (т.е. округление к нулю). Это включает в себя преобразование из плавающей точки в целое число.

‘round-nearest’

Это режим, используемый для расчётов с плавающей точкой с режимом округления к ближайшему или чётному.

‘int’

Это режим, используемый для выполнения целочисленных расчётов в FPU, например, умножения на целые числа или умножения и накопления на целые числа.

По умолчанию используется -mfp-mode=caller

-mno-split-lohi
-mno-postinc
-mno-postmodify

Настройки генерации кода, которые соответственно отключают разделение 32-битных загрузок, генерацию адресов с пост-инкрементом и генерацию адресов с пост-модификацией. По умолчанию используются msplit-lohi, -mpost-inc и -mpost-modify.

-mnovect-double

Изменить предпочтительный режим SIMD на SImode. По умолчанию используется -mvect-double, который использует DImode в качестве предпочтительного режима SIMD.

-max-vect-align=num

Максимальное выравнивание для типов векторов режима SIMD. num может быть 4 или 8. По умолчанию используется 8. Обратите внимание, что это изменение ABI, даже если многие интерфейсы функций библиотек не затрагиваются, если они не используют режимы векторов SIMD в местах, которые влияют на размер и/или выравнивание соответствующих типов.

-msplit-vecmove-early

Разделить перемещения векторов на перемещения отдельных слов перед загрузкой. Теоретически это может дать лучшее распределение регистров, но пока наоборот, похоже, имеет место в большинстве случаев.

-m1reg-reg

Указать регистр для хранения константы −1, что ускоряет загрузку небольших отрицательных констант и определённых битовых масок. Допустимые значения для reg — ‘r43’ и ‘r63’, которые указывают на использование этого регистра как фиксированного регистра, и ‘none’, что означает, что ни один регистр не используется для этой цели. По умолчанию используется -m1reg-none.

Далее: Опции AMD GCN, Предыдущее: Опции AArch64, Выше: Опции, зависящие от модели процессора [Содержание][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-11.4.0/gcc/Adapteva-Epiphany-Options.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API