3.19.23 Параметры LoongArch
Эти параметры командной строки определены для целей LoongArch:
-march=cpu-type-
Генерировать инструкции для типа процессора cpu-type. В отличие от -mtune=cpu-type, который лишь настраивает сгенерированный код для указанного cpu-type, -march=cpu-type позволяет GCC генерировать код, который может вообще не выполняться на процессорах, отличных от указанного. Указание -march=cpu-type подразумевает -mtune=cpu-type, за исключением случаев, когда указано иное.
Возможные значения для cpu-type:
- ‘native’
Этот параметр выбирает процессор для генерации кода во время компиляции, определяя тип процессора компилирующей машины. Использование -march=native включает все наборы инструкций, поддерживаемые локальной машиной (поэтому результат может не выполняться на других машинах). Использование -mtune=native производит код, оптимизированный для локальной машины в рамках ограничений выбранного набора инструкций.
- ‘loongarch64’
Общий процессор с 64-битными расширениями.
- ‘la464’
Процессор LoongArch LA464 с LBT, LSX, LASX, LVZ.
-mtune=cpu-type-
Оптимизировать вывод для указанного процессора, заданного по имени микроархитектуры.
-mabi=base-abi-type-
Генерировать код для указанной соглашения о вызовах. base-abi-type может быть одним из следующих:
- ‘lp64d’
Использует 64-битные регистры общего назначения и 32/64-битные регистры с плавающей точкой для передачи параметров. Модель данных LP64, где ‘int’ — 32 бита, а ‘long int’ и указатели — 64 бита.
- ‘lp64f’
Использует 64-битные регистры общего назначения и 32-битные регистры с плавающей точкой для передачи параметров. Модель данных LP64, где ‘int’ — 32 бита, а ‘long int’ и указатели — 64 бита.
- ‘lp64s’
Использует 64-битные регистры общего назначения и без регистров с плавающей точкой для передачи параметров. Модель данных LP64, где ‘int’ — 32 бита, а ‘long int’ и указатели — 64 бита.
-mfpu=fpu-type-
Генерировать код для указанного типа FPU, который может быть одним из:
- ‘64’
Разрешить использование аппаратных инструкций с плавающей точкой для 32- и 64-битных операций.
- ‘32’
Разрешить использование аппаратных инструкций с плавающей точкой для 32-битных операций.
- ‘none’
- ‘0’
Запретить использование аппаратных инструкций с плавающей точкой.
-msoft-float-
Принудительно установить -mfpu=none и запретить использование регистров с плавающей точкой для передачи параметров. Этот параметр может изменить целевой ABI.
-msingle-float-
Принудительно установить -mfpu=32 и разрешить использование 32-битных регистров с плавающей точкой для передачи параметров. Этот параметр может изменить целевой ABI.
-mdouble-float-
Принудительно установить -mfpu=64 и разрешить использование 32/64-битных регистров с плавающей точкой для передачи параметров. Этот параметр может изменить целевой ABI.
-mbranch-cost=n-
Установить стоимость ветвлений примерно в n инструкций.
-mcheck-zero-division-mno-check-zero-divison-
Захват (не захват) при целочисленном делении на ноль. По умолчанию это -mcheck-zero-division для -O0 или -Og, и -mno-check-zero-division для других уровней оптимизации.
-mcond-move-int-mno-cond-move-int-
Условные перемещения для целочисленных данных в регистрах общего назначения включены (выключены). По умолчанию -mcond-move-int.
-mcond-move-float-mno-cond-move-float-
Условные перемещения для регистров с плавающей точкой включены (выключены). По умолчанию -mcond-move-float.
-mmemcpy-mno-memcpy-
Принудительно (не принудительно) использовать
memcpyдля нетривиальных блочных перемещений. По умолчанию -mno-memcpy, что позволяет GCC встраивать большинство копий постоянного размера. Установка уровня оптимизации в -Os также принудительно используетmemcpy, но -mno-memcpy может переопределить это поведение, если оно явно указано, независимо от порядка этих параметров в командной строке. -mstrict-align-mno-strict-align-
Избегать или разрешать генерацию обращений к памяти, которые могут не быть выровнены на границе естественного объекта, как описано в спецификации архитектуры. По умолчанию -mno-strict-align.
-msmall-data-limit=number-
Поместить глобальные и статические данные размером меньше number байт в специальный раздел (на некоторых целях). Значение по умолчанию — 0.
-mmax-inline-memcpy-size=n-
Встраивать все блочные перемещения (такие как вызовы
memcpyили копирования структур), меньше или равные n байт. Значение по умолчанию n равно 1024. -mcmodel=code-model-
Установить модель кода на одну из следующих:
- ‘tiny-static’
-
- локальный символ и глобальный сильный символ: раздел данных должен находиться в адресном пространстве +/-2MiB. Раздел текста должен находиться в адресном пространстве +/-128MiB.
- глобальный слабый символ: таблица GOT должна находиться в адресном пространстве +/-2GiB.
- ‘tiny’
-
- локальный символ: раздел данных должен находиться в адресном пространстве +/-2MiB. Раздел текста должен находиться в адресном пространстве +/-128MiB.
- глобальный символ: таблица GOT должна находиться в адресном пространстве +/-2GiB.
- ‘normal’
-
- локальный символ: раздел данных должен находиться в адресном пространстве +/-2GiB. Раздел текста должен находиться в адресном пространстве +/-128MiB.
- глобальный символ: таблица GOT должна находиться в адресном пространстве +/-2GiB.
- ‘large’
-
- локальный символ: раздел данных должен находиться в адресном пространстве +/-2GiB. Раздел текста должен находиться в адресном пространстве +/-128GiB.
- глобальный символ: таблица GOT должна находиться в адресном пространстве +/-2GiB.
- ‘extreme(Не реализовано)’
-
- локальный символ: разделы данных и текста должны находиться в адресном пространстве +/-8EiB.
- глобальный символ: таблица GOT данных должна находиться в адресном пространстве +/-8EiB.
По умолчанию модель кода
normal.
Далее: Параметры M32C, Предыдущее: Параметры LM32, Наверх: Параметры подмодели [Оглавление][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-12.2.0/gcc/LoongArch-Options.html