Spec-Zone.ru › GCC 10

Следующий: Опции 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-10.5.0/gcc/Adapteva-Epiphany-Options.html

Spec-Zone.ru

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