9. Цели и задачи
Цель: cоздание генератора промежуточного представления
SSA из полиэдральной модели независимого от библиотеки
CLooG.
Задачи:
1. Graphite должен стать полностью независимым от CLooG.
2. Не должна нарушиться раскрутка (англ. bootstrapping)
коллекции компиляторов GNU.
3. Сохранить отсутствие регрессионных ошибок.
4. Добавить новые тесты.
10. Детали реализации
!
• Выбор стратегии разработки.
• Тестирование.
• Реализация нового обхода AST.
• Сохранение возможности использования генератора на
основе CLooG.
• Изменение проверки циклов на параллельность.
• Определение параметров генерации абстрактного
синтаксического дерева в библиотеке ISL.
• Определение типов переменных, полученных из
полиэдральной модели.
github.com/gareevroman/generator/blob/master/описание_работы.txt
11. Количество строк кода
Генератор, основанный на библиотеке ISL
!
990 строк текста
143 строк комментариев
169 пустых строк
!
Генератор, основанный на библиотеке CLooG
!
1725 строк текста
187 строк комментариев
355 пустых строк
12. Количество строк кода
Количество программного кода
!
41,42%
!
Комментарии
!
20,6349% (15,8073%)
13. Сравнение производительности
Регрессия производительности по времени выполнения
(библиотеки ISL над библиотекой CLooG): 1.1%
!
!
Регрессия производительности по времени компиляции
(библиотеки ISL над библиотекой CLooG): 1.26%
15. Использование генератора
!
!
Генератор, основанный на библиотеке CLooG
-fgraphite-code-generator=cloog
!
!
Генератор, основанный на библиотеке ISL
-fgraphite-code-generator=isl
17. Планы на будущее
1. Создание новых режимов генерации
!
!
!
2. Использование новых возможностей библиотеки ISL
!
!
!
3. Исключение возможности использования генератора на
основе CLooG.
!
!
!
4. Профилирование генератора