В этот номер журнала собраны статьи по методам создания оптимизирующих компиляторов для современных микропроцессорных архитектур. Исследования и практические реализации в этой области переживают в настоящее время этап серьезной эволюции, обусловленной стремительным развитием архитектур в направлении все более широкого использования параллелизма. Это, в свою очередь, требует поиска новых методов автоматического распараллеливания вычислений в компиляторах для программ, представленных на последовательных языках программирования. Роль оптимизирующих компиляторов в части повышения производительности микропроцессорных систем особенно важна для архитектур с явным параллелизмом команд, таких как Intel Itanium Processor Family или российский микропроцессор Эльбрус-ЗМ. Но оптимизирующие компиляторы играют все более заметную роль не только потому, что позволяют повышать производительность существующих систем. Не менее важно, что они позволяют более свободно развивать сами микропроцессорные архитектуры, обеспечивая эффективную совместимость с существующими широко распространенными платформами на основе оптимизирующей двоичной трансляции. Вашему вниманию предлагаются статьи, с разных сторон затрагивающие все упомянутые вопросы. В статье В.Ю.Волконского описан общий подход к разработке оптимизирующих компиляторов для архитектур с явным параллелизмом команд и аппаратной поддержкой двоичной совместимости. В статьях с участием А.Ю.Дроздова рассмотрены вопросы углубленного анализа зависимостей (совместно с А.С.Боханко и P.M. Корневым), вопросы различных оптимизаций циклов, и, прежде всего, их программной конвейеризации на базе мощной аппаратной поддержки (совместно со A.M. Степаненковым), а также методы эффективного объединения множества оптимизаций, включаемых в современный оптимизирующий компилятор (совместно со A.M. Степаненковым). В статье В.Ю.Волконского, А.Ю.Дроздова и Е.В.Ровинского рассмотрены методы оптимизации с использованием групповых команд (типа MMX/SSE) над малоразрядными векторами, которые дают заметный прирост производительности на специальных классах задач. Статья Ю.В.Баскакова и соавторов посвящена вопросам поиска новых и поддержания на высоком уровне уже реализованных методов оптимизации, необходимых для современных платформ. В статьях с участием Д.М.Масленникова предложены решения проблем эффективной двоичной совместимости, причем первая (совместно с П.С.Васильцом и О.С.Драгошанским) посвящена вопросам оптимизации кодов программ, интенсивно работающих с вещественными числами, а вторая (совместно с В.Д.Гимпельсоном и В.Ю.Волконским) – быстрым алгоритмам оптимизации, что особенно важно для динамических двоичных трансляторов. Наконец, в статье Р.Ю.Рогова, А.А.Лаврешникова и Л.Г.Тарасенко исследуются вопросы обеспечения высокой надежности для столь сложных программных комплексов, каковыми на сегодняшний день становятся оптимизирующие компиляторы. Директор ИМВС РАН, член-корреспондент РАН, профессор Б.А.Бабаян |