Spec-Zone.ru › GCC 15

6.4.1.13 Атрибуты функций LoongArch

Следующие атрибуты функций поддерживаются в бэкенде LoongArch:

strict-align
no-strict-align

strict-align указывает, что компилятор не должен предполагать, что система обрабатывает невыровненные обращения к памяти. Чтобы разрешить компилятору предполагать, что система обрабатывает выровненные обращения к памяти, можно указать обратный атрибут no-strict-align. Поведение соответствует параметрам командной строки -mstrict-align и -mno-strict-align.

cmodel=

Указывает, что для этой функции следует генерировать код с определённой моделью кода. Поведение и допустимые аргументы соответствуют параметру командной строки -mcmodel=.

arch=

Задаёт версию архитектуры и архитектурные расширения, используемые для этой функции. Поведение и допустимые аргументы соответствуют параметру командной строки -march=.

tune=

Задаёт ядро, для которого следует оптимизировать производительность этой функции. Поведение и допустимые аргументы соответствуют параметру командной строки -mtune=.

lsx
no-lsx

lsx указывает, разрешена ли генерация векторных инструкций при компиляции функции. Поведение соответствует параметрам командной строки -mlsx и -mno-lsx.

lasx
no-lasx

lasx указывает, разрешена ли генерация инструкций LASX при компиляции функции. Поведение немного отличается от параметра командной строки -mno-lasx. Пример:

test.c:
typedef int v4i32 __attribute__ ((vector_size(16), aligned(16)));

v4i32 a, b, c;
#ifdef WITH_ATTR
__attribute__ ((target("no-lasx"))) void
#else
void
#endif
test ()
{
  c = a + b;
}
$ gcc test.c -o test.s -O2 -mlasx -DWITH_ATTR

При компиляции, как показано выше, возможна векторизация с шириной 128 бит. Однако следующий метод не может выполнять векторизацию с шириной 128 бит.

$ gcc test.c -o test.s -O2 -mlasx -mno-lasx

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/LoongArch-Function-Attributes.html

Spec-Zone.ru

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