Agenda
Compiler structure
.c
.cpp
.f77
...
.c
.cpp
.F
...
High-Level IR
High-Level IR
High-Level IR
Low-Level
IR
Low-Level
IR
Low-Level IR
asm
.o
.obj
.out
.exe
1
2
4
5
6
1.Препроцессор
2.Front-End
3.Оптимизации
4.Кодогенератор
5.Ассемблер
6.Линкер
Пример (исходый код программы на С)
Линейная последовательность операций
Действия на графе потока управления
Свойство доминирования/постдоминирования
Несводимые циклы
SSA - форма
z = 3
if(P)
y1=5
y2=z+2
y3=phi(y1,y2)
x=y3
Построение SSA/Def-Use графа
Метод нумераций значений
foo += a[i] + (3*A + 2*B);
bar += a[j] + (7*B – 2*A);
i++; j++;
if ( i % 2)
return (foo – bar);
foo = bar = 0;
j = i = 0;
1
2
3
4
“0”
Исходый код программы
Примеры оптимизаций
Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть