![](images/doc.gif)
ЗАО УМЦСТФ УДК 004.4Т416 На правах рукописи Серебряный Константин Сергеевич МЕТОДЫ ВЫСОКОУРОВНЕВОЙ ОПТИМИЗАЦИИ ЦИКЛОВ 05.13.11 - УМатематическое и программное обеспечение вычислительных машин, комплексов и ...
-- [ Страница 2 ] -- -86 [41] S. S. Muchnick. Advanced compiler design and implementation // Morgan Kaufmann Publishers Inc., 1997. [42] R. Muth. Alto: A platform for object code modication // PhD thesis, Department of Computer Science, University of Arizona, 1999. [43] R. Muth, S. A. Watterson, S. K. Debray. Code specialization based on value proles // In Static Analysis Symposium, pp. 340Ц359, 2000. [44] D. A. Padua, M. J. Wolfe. Advanced compiler optimizations for supercomputers // Commun. ACM, vol. 29, no. 12, pp. 1184-1201, 1986. [45] J.R.C. Patterson. Accurate static branch prediction by value range propagation // In Proceedings of the ACM SIGPLAN Т95 Conference on Programming Language Design and Implementation, pp. 67Ц78, 1995. [46] E. Salami, J. Corbal, C. Alvarez, M. Valero. Cost eective memory disambiguation for multimedia codes // Proceedings of the international conference on Compilers, architecture, and synthesis f or embedded systems, pp. 117-126, 2002. [47] Y. Sazeides, J. E. Smith. The predictability of data values // In International Symposium on Microarchitecture, pp. 248Ц258, 1997. [48] J. Sheldon, W. Lee, B. Greenwald, S. Amarasinghe. Strength reduction of integer division and modulo operations // citeseer.nj.nec.com/503048.html [49] S. Watterson, S. Debray. Goal-directed value proling // Lecture Notes in Computer Science, 2027, 2001. [50] S. Wolfram. The Mathematica Book, 4th ed. // Wolfram Media/Cambridge University Press, 1999. [51] [52] [53] -87 [54] [55] [56] -88 Список примеров 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Автоматическая параллелизация..................... 14 Замена цикла на вызов memcpy()..................... 15 Идеальное гнездо циклов.......................... 15 Гнездо циклов после перестановки.................... Замена умножения на сложение...................... 16 Замена сдвига на сложение......................... 17 Развертка цикла............................... 17 Индуктивные выражения.......................... 20 Обобщенная индуктивная переменная.................. Преобразование типа индуктивного выражения............. 21 Деление индуктивных выражений на константу............. 22 Индуктивная переменная с двумя определениями............ 23 Различные обобщенные индуктивные переменные............ 24 С-функции ОИП............................... 25 Подстановка ТМ............................... 28 Цикл do...while................................ 29 Снижение стоимости............................ 31 Применения интервального анализа.................... 42 Цикл с беззнаковой управляющей переменной.............. 44 Оператор постинкремента в цикле while................. 50 Глобальная переменная в качестве верхней границы.......... 52 Результат считывания из памяти в качестве верхней границы..... 52 Проверка инвариантности верхней границы............... 53 Цикл с конфликтами по доступу в память................ 54 Цикл с разрешенными конфликтами по доступу в память....... 55 Специализация кода: простой пример цикла............... 65 Специализация по значению одной переменной............. 66 Специализация по значениям двух переменных............. 66 -89 29 31 30 32 Простое профилирование значения.................... 69 Использование класса PVP......................... 69 Класс PVP.................................. 70 Профилирование трех значений...................... 70 Профилирование трех переменных.................... -90 Список иллюстраций 1 2 3 Специализация кода............................. 43 Прирост производительности........................ 76 Структура оптимизирующего компилятора Sun............. Список таблиц 1 2 3 4 5 6 7 8 9 10 11 12 13 Типы циклов в пакете SPEC CPU2000................... 13 Результат применения нового алгоритма снижения стоимости..... 36 Результат применения нового алгоритма подстановки ИП....... 37 Количество найденных линейных индуктивных выражений...... 37 Количество произведенных подстановок индуктивных переменных.. 37 Количество распараллеленных циклов.................. 38 Количество нормализованных циклов................... 59 Увеличение времени компиляции в результате нормализации циклов Результат нормализации структуры управляющей переменной.... 60 Число трансформаций нормализованных циклов............ 61 Количество точек профилирования и специализаций кода....... 74 Замедление инструментированной программы.............. 75 Результат применения специализации по профилю значений..... -91
Pages: | 1 | 2 |
Книги, научные публикации