80.1.4.1. КОМПИЛЯТОРЫ




THIS SECTION IS UNDER CONSTRUCTION



















Оптимизация Константные выражения Алгебраическое упрощение и переассоциация -(-x) x*1 x+0 x&true x|true x << 0 x +a -a Value numbering i = x * 2 + 1; j = x * 2 + 1; Быстрое вычисление AND/OR SP-based frames Оптимизация subexpressions Замена деления на константу умножением Замена умножений на константу сдвигами Раскраска регистров нетрезвыми красочками Отказ от ветвлений Оптимизация циклов Разворот цикла Регистрация переменной цикла


Векторизация Конкурентизация циклов разделение на части которые отдаются разным процессорам Разделение операций на высшем уровне * (CPU2) / \ (CPU1) + C / \ A B Переименование переменных (так же как регистров в CPU) Расщепление зависимостей по данным Растягивания скаляров (в векторные регистры) Перестановка вложенных циклов Слияние циклов Разрыв итераций (делит циклы на циклы по длинне вектора) Коллапс циклов Условные присваивания (если аппаратно поддерживаются) Выявление и упрощение индуктивных ьэлементов Распознование охватывающих элементов Расщепление вершин (копирование данных) Чистка циклов (вынос инвариантного кода) Расширение циклов (смежные циклы с зависимостями по данным)


Index Prev Next