3.20.21 Параметры IA-64
Параметры ‘-m’, определённые для архитектуры Intel IA-64.
-
-mbig-endian -
Генерировать код для целевой платформы с порядком байтов от старшего к младшему. Это значение по умолчанию для HP-UX.
-
-mlittle-endian -
Генерировать код для целевой платформы с порядком байтов от младшего к старшему. Это значение по умолчанию для AIX5 и GNU/Linux.
-
-mgnu-as -mno-gnu-as-
Генерировать (или не генерировать) код для ассемблера GNU. Это значение по умолчанию.
-
-mgnu-ld -mno-gnu-ld-
Генерировать (или не генерировать) код для компоновщика GNU. Это значение по умолчанию.
-
-mno-pic -
Генерировать код, не использующий регистр глобального указателя. Результат не является позиционно-независимым кодом и нарушает ABI IA-64.
-
-mvolatile-asm-stop -mno-volatile-asm-stop-
Генерировать (или не генерировать) стоп-бит непосредственно перед операторами volatile asm и после них.
-
-mregister-names -mno-register-names-
Генерировать (или не генерировать) имена регистров ‘in’, ‘loc’ и ‘out’ для стековых регистров. Это может повысить удобочитаемость вывода ассемблера.
-
-mno-sdata -msdata-
Отключить (или включить) оптимизации, использующие секцию малых данных. Это может быть полезно для обхода ошибок оптимизатора.
-
-mconstant-gp -
Генерировать код, использующий единственное постоянное значение глобального указателя. Это полезно при компиляции кода ядра.
-
-mauto-pic -
Генерировать самоперемещаемый код. Это подразумевает -mconstant-gp. Это полезно при компиляции кода микропрограммы.
-
-minline-float-divide-min-latency -
Генерировать встроенный код для деления значений с плавающей точкой с использованием алгоритма с минимальной задержкой.
-
-minline-float-divide-max-throughput -
Генерировать встроенный код для деления значений с плавающей точкой с использованием алгоритма с максимальной пропускной способностью.
-
-mno-inline-float-divide -
Не генерировать встроенный код для деления значений с плавающей точкой.
-
-minline-int-divide-min-latency -
Генерировать встроенный код для деления целых чисел с использованием алгоритма с минимальной задержкой.
-
-minline-int-divide-max-throughput -
Генерировать встроенный код для деления целых чисел с использованием алгоритма с максимальной пропускной способностью.
-
-mno-inline-int-divide -
Не генерировать встроенный код для деления целых чисел.
-
-minline-sqrt-min-latency -
Генерировать встроенный код для извлечения квадратного корня с использованием алгоритма с минимальной задержкой.
-
-minline-sqrt-max-throughput -
Генерировать встроенный код для извлечения квадратного корня с использованием алгоритма с максимальной пропускной способностью.
-
-mno-inline-sqrt -
Не генерировать встроенный код для
sqrt. -
-mfused-madd -mno-fused-madd-
Генерировать (или не генерировать) код, использующий инструкции слитого умножения со сложением или умножения с вычитанием. По умолчанию эти инструкции используются.
-
-mno-dwarf2-asm -mdwarf2-asm-
Не генерировать (или генерировать) ассемблерный код для отладочной информации о номерах строк DWARF. Это может быть полезно при использовании ассемблера, отличного от GNU.
-
-mearly-stop-bits -mno-early-stop-bits-
Разрешить размещение стоп-битов раньше, чем непосредственно перед инструкцией, вызвавшей появление стоп-бита. Это может улучшить планирование инструкций, но не всегда приводит к такому результату.
-
-mfixed-range=register-range -
Генерировать код, рассматривая указанный диапазон регистров как фиксированные регистры. Фиксированный регистр — это регистр, который распределитель регистров не может использовать. Это полезно при компиляции кода ядра. Диапазон регистров задаётся двумя регистрами, разделёнными дефисом. Можно указать несколько диапазонов регистров, разделив их запятыми.
-
-mtls-size=tls-size -
Задать разрядность непосредственных смещений TLS. Допустимые значения: 14, 22 и 64.
-
-mtune=cpu-type -
Настроить планирование инструкций для конкретного процессора. Допустимые значения: ‘itanium’, ‘itanium1’, ‘merced’, ‘itanium2’ и ‘mckinley’.
-
-milp32 -mlp64-
Генерировать код для 32-разрядной или 64-разрядной среды. В 32-разрядной среде типы int, long и указатели имеют разрядность 32 бита. В 64-разрядной среде тип int имеет разрядность 32 бита, а тип long и указатели — 64 бита. Эти флаги предназначены только для HP-UX.
-
-mno-sched-br-data-spec -msched-br-data-spec-
Отключить (или включить) планирование спекулятивных операций с данными до перезагрузки. Это приводит к генерации инструкций
ld.aи соответствующих инструкций проверки (ld.c/chk.a). По умолчанию эта функция отключена. -
-msched-ar-data-spec -mno-sched-ar-data-spec-
Включить (или отключить) планирование спекулятивных операций с данными после перезагрузки. Это приводит к генерации инструкций
ld.aи соответствующих инструкций проверки (ld.c/chk.a). По умолчанию эта функция включена. -
-mno-sched-control-spec -msched-control-spec-
Отключить (или включить) планирование спекулятивных операций управления. Эта возможность доступна только при планировании регионов (то есть до перезагрузки). Это приводит к генерации инструкций
ld.sи соответствующих инструкций проверкиchk.s. По умолчанию эта функция отключена. -
-msched-br-in-data-spec -mno-sched-br-in-data-spec-
Включить (или отключить) спекулятивное планирование инструкций, зависящих от спекулятивных загрузок данных, до перезагрузки. Эта настройка действует только при включённом параметре -msched-br-data-spec. По умолчанию эта функция включена.
-
-msched-ar-in-data-spec -mno-sched-ar-in-data-spec-
Включить (или отключить) спекулятивное планирование инструкций, зависящих от спекулятивных загрузок данных, после перезагрузки. Эта настройка действует только при включённом параметре -msched-ar-data-spec. По умолчанию эта функция включена.
-
-msched-in-control-spec -mno-sched-in-control-spec-
Включить (или отключить) спекулятивное планирование инструкций, зависящих от спекулятивных загрузок управления. Эта настройка действует только при включённом параметре -msched-control-spec. По умолчанию эта функция включена.
-
-mno-sched-prefer-non-data-spec-insns -msched-prefer-non-data-spec-insns-
Если эта функция включена, спекулятивные инструкции с данными выбираются для планирования только в том случае, если в данный момент нет других вариантов. Это делает использование спекуляции данных гораздо более консервативным. По умолчанию эта функция отключена.
-
-mno-sched-prefer-non-control-spec-insns -msched-prefer-non-control-spec-insns-
Если эта функция включена, спекулятивные инструкции управления выбираются для планирования только в том случае, если в данный момент нет других вариантов. Это делает использование спекуляции управления гораздо более консервативным. По умолчанию эта функция отключена.
-
-mno-sched-count-spec-in-critical-path -msched-count-spec-in-critical-path-
Если эта функция включена, спекулятивные зависимости учитываются при вычислении приоритетов инструкций. Это делает использование спекуляции несколько более консервативным. По умолчанию эта функция отключена.
-
-msched-spec-ldc -
Использовать простую проверку спекуляции данных. По умолчанию этот параметр включён.
-
-msched-control-spec-ldc -
Использовать простую проверку спекуляции управления. По умолчанию этот параметр включён.
-
-msched-stop-bits-after-every-cycle -
При планировании помещать стоп-бит после каждого цикла. По умолчанию этот параметр включён.
-
-msched-fp-mem-deps-zero-cost -
Считать, что конфликты между операциями сохранения и загрузки значений с плавающей точкой маловероятны, если они помещены в одну группу инструкций. По умолчанию этот параметр отключён.
-
-msel-sched-dont-check-control-spec -
Генерировать проверки спекуляции управления при выборочном планировании. По умолчанию этот флаг отключён.
-
-msched-max-memory-insns=max-insns -
Ограничение на количество инструкций работы с памятью в группе инструкций: последующим инструкциям работы с памятью, которые пытаются попасть в ту же группу, назначается более низкий приоритет. Часто это полезно для предотвращения конфликтов банков кэша. Значение по умолчанию — 1.
-
-msched-max-memory-insns-hard-limit -
Делает ограничение, заданное параметром msched-max-memory-insns, жёстким: в группе инструкций запрещено размещать больше инструкций, чем указано. В противном случае ограничение является «мягким»: при его достижении предпочтение отдаётся операциям, не связанным с памятью, но операции с памятью всё ещё могут быть запланированы.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/IA_002d64-Options.html