Spec-Zone.ru › GCC 5

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

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

Далее: Параметры ARC, Предыдущий: Параметры AArch64, Вверх: Параметры подмодели [Оглавление][Индекс]

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

Spec-Zone.ru

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