Spec-Zone.ru › GCC 4

3.17.45 Параметры SPU

Эти параметры поддерживаются на SPU:

-mwarn-reloc
-merror-reloc
Загрузчик SPU не обрабатывает динамические перебазирования. По умолчанию GCC выдает ошибку при генерации кода, требующего динамического перебазирования. -mno-error-reloc отключает ошибку, -mwarn-reloc генерирует предупреждение вместо этого.
-msafe-dma
-munsafe-dma
Инструкции, инициирующие или проверяющие завершение DMA, не должны быть переупорядочены относительно загрузки и сохранения памяти, к которой осуществляется доступ. С -munsafe-dma вы должны использовать ключевое слово volatile, чтобы защитить доступ к памяти, но это может привести к неэффективному коду в местах, где известно, что память не меняется. Вместо того, чтобы помечать память как volatile, вы можете использовать -msafe-dma для указания компилятору, что инструкции DMA могут потенциально влиять на всю память.
-mbranch-hints
По умолчанию GCC генерирует инструкцию ветвления для предотвращения остановок конвейера для всегда-взятых или, вероятно, взятых ветвлений. Подсказка не генерируется ближе, чем на 8 инструкций от ветвления. Причины для их отключения мало, кроме отладки или для уменьшения размера объекта.
-msmall-mem
-mlarge-mem
По умолчанию GCC генерирует код, предполагая, что адреса никогда не превышают 18 бит. С -mlarge-mem генерируется код, предполагающий полный 32-битный адрес.
-mstdmain
По умолчанию GCC подключается к коду инициализации, предполагающему интерфейс функции main в стиле SPU (с нестандартным списком параметров). С -mstdmain, GCC подключает вашу программу к коду инициализации, предполагающему интерфейс в стиле C99 для main, включая локальную копию argv строк.
-mfixed-range=register-range
Генерировать код, рассматривая данный диапазон регистров как фиксированные регистры. Фиксированный регистр — это регистр, который выделенный для распределения регистров не может использовать. Это полезно при компиляции ядра. Диапазон регистров задается как два регистра, разделенных дефисом. Можно указать несколько диапазонов регистров, разделенных запятыми.
-mea32
-mea64
Компилировать код, предполагая, что указатели на адресное пространство PPU, к которым осуществляется доступ через квалификатор имени адресного пространства __ea, имеют ширину 32 или 64 бита. По умолчанию используется 32 бита. Поскольку это параметр, изменяющий ABI, весь объектный код в исполняемом файле должен быть скомпилирован с одинаковыми настройками.
-maddress-space-conversion
-mno-address-space-conversion
Разрешить/запретить обработку адресного пространства __ea как надмножества общего адресного пространства. Это позволяет явные преобразования типов между __ea и общим указателем, а также неявные преобразования общих указателей в __ea указатели. По умолчанию разрешены преобразования указателей адресных пространств.
-mcache-size=cache-size
Этот параметр управляет версией libgcc, к которой компилятор подключается к исполняемому файлу, и выбирает кэширование переменных в адресном пространстве __ea с заданным размером кэша. Возможные значения для cache-size — ‘8’, ‘16’, ‘32’, ‘64’ и ‘128’. По умолчанию размер кэша составляет 64 КБ.
-matomic-updates
-mno-atomic-updates
Этот параметр управляет версией libgcc, к которой компилятор подключается к исполняемому файлу, и определяет, используются ли атомарные обновления кэша на стороне PPU. Если вы используете атомарные обновления, изменения переменной PPU из кода SPU, использующего квалификатор имени адресного пространства __ea, не будут мешать изменениям других переменных PPU, находящихся в той же строке кэша, из кода PPU. Если вы не используете атомарные обновления, такое вмешательство может произойти; однако, запись строк кэша более эффективна. По умолчанию используется атомарные обновления.
-mdual-nops
-mdual-nops=n
По умолчанию GCC вставляет nops, чтобы увеличить двойную выдачу, когда ожидает, что это увеличит производительность. n может принимать значения от 0 до 10. Меньшее значение n вставляет меньше nops. 10 — значение по умолчанию, 0 эквивалентно -mno-dual-nops. Отключается с -Os.
-mhint-max-nops=n
Максимальное количество nops, которые необходимо вставить для подсказки ветвления. Подсказка ветвления должна находиться, как минимум, на 8 инструкций от ветвления, на которое она влияет. GCC вставляет до n nops, чтобы обеспечить это, в противном случае подсказка ветвления не генерируется.
-mhint-max-distance=n
Кодировка инструкции подсказки ветвления ограничивает подсказку расстоянием в 256 инструкций от ветвления, на которое она влияет. По умолчанию GCC гарантирует, что оно находится в пределах 125 инструкций.
-msafe-hints
Обход аппаратной ошибки, которая приводит к бесконечному зависанию SPU. По умолчанию GCC вставляет инструкцию hbrp для предотвращения этой остановки.

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

Spec-Zone.ru

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