Оптимизирующие компиляторы (МФТИ, 2024). Лекция 10. Разрушение SSA.
Описание
Лекции по компиляторам для свежих интернов базовой кафедры в МФТИ.
Пришла пора разрушить то, что мы так тщательно строили и чем так долго пользовались. Это будет не так просто и процесс будет иметь некоторые нюансы. И, конечно же, после разрушения SSA представления, нам всё ещё будет чем заняться. Например распределением регистров, рематериализацией значений, планированием инструкций и разрывание антизависимостей. Мы увидим как отлично зарекомендовавший себя в выборе инструкций подход через квадратичное булево программирование поможет нам с иррегулярными архитектурами. В конце нас ждут последние задания и последняя литература.
На этом с вами прощается курс, но, конечно не компиляторная теория. Она гораздо глубже, богаче и интересней, чем это поверхностное введение и ей легко можно посвятить много лет или даже всю жизнь. Теперь, когда вы в общих чертах понимаете что именно делает оптимизирующий компилятор, вы готовы к этому путешествию. Возьмите с собой в эту дорогу этот курс и написанную автором курса книгу.
И я надеюсь вам понравилось.
Лектор: Константин Владимиров
Видео и звук: Юлий Тарасов
Предыдущая лекция: https://rutube.ru/video/000c34fb9c7107f443b0caaa7a29275b/
Следующая лекция: нет, это последняя лекция
Слайды к занятиям: https://sourceforge.net/projects/cpp-lects-rus/files/compilers/
Книга: https://www.chitai-gorod.ru/product/optimiziruyushchie-kompilyatory-struktura-i-algoritmy-3059667
Timeline
00:00 Семантические сети
06:50 Разрушение SSA
11:46 Распределение регистров
16:10 Спиллы и рематериализация
25:51 Линейное сканирование
29:40 Нерегулярные архитектуры и PBQP
35:05 Планирование инструкций
42:54 Антизависимости
47:35 Планирование критического пути
53:28 Задачи и литература
Errata
* пока пусто
Рекомендуемые видео




















