Spec-Zone.ru › GCC 4

3.17.2 Параметры Adapteva Epiphany

Эти параметры для 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, поэтому использовать эти инструкции для прямых вызовов.
-msmall16
Предполагать, что адреса можно загрузить как 16-битные беззнаковые значения. Это не относится к адресам функций, для которых действуют семантики -mlong-calls.
-mfp-mode=mode
Установить преобладающий режим блока обработки плавающей запятой. Это определяет режим плавающей запятой, который предоставляется и ожидается во время вызова и возврата функции. Согласование этого режима с режимом, в котором вам в основном нужна функция в начале, может сделать ваши программы меньше и быстрее, избегая ненужных переключений режимов.
‘caller’
Любой режим при входе в функцию является допустимым и сохраняется или восстанавливается при возвращении из функции и при вызове других функций. Этот режим полезен для компиляции библиотек или других модулей компиляции, которые вы можете включить в разные программы с разными преобладающими режимами FPU, и удобство использования одного объектного файла перевешивает издержки по размеру и скорости для любых дополнительных переключений режимов, которые могут потребоваться по сравнению с тем, что потребовалось бы с более специфичным выбором преобладающего режима FPU.
‘truncate’
Это режим, используемый для вычислений с плавающей запятой с режимом округления до усечения (т. е. округление к нулю). Это включает преобразование из плавающей запятой в целое число.
‘round-nearest’
Это режим, используемый для вычислений с плавающей запятой с режимом округления к ближайшему или четному.
‘int’
Это режим, используемый для выполнения целочисленных вычислений в FPU, например, умножения целых чисел или умножения и накопления целых чисел.

По умолчанию -mfp-mode=caller

-mnosplit-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.

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

Spec-Zone.ru

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