b8 compiler from MMCS SFedU
Credits:
- Aliev M.
Avakyan G.Bulanov D.- Ermolaev D.
Ermolinsky A.- Fateev S.
- Koval N.
- Kubesh. E.
Limarev V.- Nezhevsky N.
- Ostapenko A.
- Paterikin A.
- Raskin A.
- Rogov D.
Silnyagin Y.- Cherkasov V.
Team | Dev1 | Dev2 |
---|---|---|
RR | Rogov D. | Raskin A. |
AN | Nezhevsky N. | |
LK | Kubesh. E. | Koval N. |
FB | Fateev S. | |
PC | Paterikin A. | Cherkasov V. |
OE | Ostapenko A. | Ermolaev D. |
AE | Aliev M. |
Scientific Advisor: Mikhalkovich S.
Tasks:
RR Rogov D. Raskin A.
- Парсер v2
- Передаточная функция для реализации распространения констант
Nezhevsky N.
- Генерация трехадресного кода
- Для каждого обратного ребра найти естественный цикл
- Установить, все ли отступающие ребра обратные
Koval N. Kubesh. E.
- Доступные выражения между базовыми блоками - множества e_gen(b) и e_kill(b)
- Доступные выражения внутри ББЛ(+оптимизации)
- Доступные выражения, итерационный алгоритм*
- Нисходящая часть алгоритма анализа на основе областей
Fateev S.
- Разработка класса "область" с разновидностями "область тела" и "область цикла"
- Формирование поседовательности областей R1,...,Rn в восходящем порядке
PC Paterikin A. Cherkasov V.
- Создание CFG из базовых блоков
- Поддержка goto и меток
- Достигающие определения: вычисление gen_B и kill_B
- Итерационный алгоритм для достигающих определений
- Дерево доминаторов
Ermolaev D.
- Построить на CFG глубинное остовное дерево, перенумеровав элементы в порядке обратном посфиксному
- Переписание CFG с использованием высокоуровневой библиотеки QuickGraph
- Классификация ребер графа: наступающие, отступающие, поперечные
- Восходящая часть алгоритма анализа на основе областей
AE Aliev M.
- Активные переменные внутри ББЛ
- Живые переменные между ББЛ, множества use_B и def_B
- Живые переменные - итерационный алгоритм
- Разработка класса для хранения f_r,IN[s] и f_r,OUT[B]
- Модифицированный (ускоренный) алгоритм с правильной нумерацией базовых блоков
- 3 примера программ, дающих неправильные графы, найти отступающие ребра, не явл. обратными.
- оптимизация общего итерационного алгоритма обхода