Группа исследователей из университета Юты (США) предложила оптимизатор Minotaur для набора компиляторов LLVM, использующий метод на основе решения задач выполнимости формул (SMT Solver) для выявления недостающих оптимизаций в промежуточном представлении кода (LLVM IR), генерируемом оптимизатором LLVM. Minotaur главным образом нацелен на оптимизацию целочисленных векторных инструкций (SIMD), как переносимых, так и специфичных для систем x86_64 (SSE, AVX, AVX2 и AVX-512). В качестве векторизатора задействована библиотека Alive2, модифицированная для синтеза и поддержки векторных инструкций, используемых на системах x86_64. Разработка продолжает развитие проекта Souper, разрабатывавшегося теми же авторами. Minotaur может находить различные оптимизации применения векторных инструкций, пропущенные штатным оптимизатором LLVM. При тестировании дополнительно оптимизированного кода библиотеки libYUV на системе с CPU Intel Cascade Lake зафиксировано максимальное повышение производите
Проект Minotaur развивает оптимизатор векторных инструкций для LLVM
17 июля 202317 июл 2023
9
1 мин