Как развернуть определенный цикл с определенными параметрами, такими как max-unroll-times в GCC

Как мне написать свой код, если я хочу, чтобы GCC развернул один из циклов в моем коде с определенными параметрами, такими как max-unroll-times в GCC?

1 ответ

Попробуй это:

#pragma GCC push_options
#pragma GCC optimize ("O3", "unroll-loops")
void func()
{
    #pragma GCC unroll 4
    for (...)
    {
    }
}
#pragma GCC pop_options

Параметры как max-unroll-times не кажется управляемым через #pragma; если вам действительно нужны разные значения для разных циклов, переместите каждый цикл в функцию в отдельном файле и скомпилируйте именно те параметры, которые вам нужны.

Другие вопросы по тегам