Polly - это open-source проект, который возник на базе LLVM. Polly применяет полиэдральные оптимизации к промежуточному представлению LLVM, используя плюсы абстрактного подхода. Трансляция языков в промежуточное представление LLVM (LLVM-IR) позволяет использовать методы семантического анализа. Более того, LLVM применяет к промежуточному представлению преобразования, которые приводят представление к каноническому виду. В результате, использование LLVM упрощает работу и два значительные преимущества: Поддержка множества программ, написанных на наиболее используемых языках программирования Анализ любых языковых конструкций с помощью общей абстрактной модели Другими словами, Polly независим от языка программирования и прозрачно поддерживает сложные конструкции, такие, как С++ итераторы, арифметика указателей, циклы с goto и другие реализации циклов. Он реализует набор оптимизаций кэш-локальности, а также автопараллелизм и векторизацию с использованием полиэдральной модели. |