Spec-Zone.ru › GCC 12

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-12.2.0/gcc/Adapteva-Epiphany-Options.html

Spec-Zone.ru

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