Автоматическая векторизация выражений оптимизирующим компилятором Ермолицкий Александр, 112 группа Научный руководитель: Шлыков Сергей Московский Физико-Технический Институт (государственный университет) Москва 2007
Пример векторизации цикла unsigned char a[N], b[N], c[N]; int x;... for( i=0; i 255 ) x = 255; c[i] = x; } for( i=0; i
Реализованная функциональность for( i=0; i
Схема векторизации циклов for( i=0; i
Ограничения for( i=0; i
Выравнивающие преобразования float a[N], b[N];... for( i=0; i
Алгоритм выравнивания операций анализ выровненности операций чтения/записи разбиение операций на группы с одинаковой выровненностью выравнивание наибольшей группы пилингом выравнивание остальных групп динамическими проверками for( i=0; i
Невыровненные операции ld insf st getf insf scr ld
Рекуррентные выражения int a[N];... for( i=0; i
Условные выражения char a[N], b[N], c[N], x;... for( i=0; i b[i] ) x = a[i]; else x = b[i]; c[i] = x; } for( i=0; i
Циклы с боковым выходом LD a[i] Vs1 ST b[i] Vs1 CMPEs Vs1, 0 постцикл ADDs Vs0, 1 Vs0 CMPLs Vs0, N LD a[i:i+7] Vd1 CMPEd Vd1, 0 постцикл ST b[i:i+7] Vd1 ADDs Vs0, 8 Vs0 CMPLs Vs0, N LD a[i] Vs1 ST b[i] Vs1 CMPEs Vs1, 0 ADDs Vs0, 1 Vs0 CMPLs Vs0, N char a[N], b[N];... for( i=0; i
Раскрученные циклы float a[N], b[N], c[N];... for( i=0; i
Результаты
Результаты
Результаты
Вопросы?