Релиз GCC-плагина DragonEgg 2.8

Увидел свет релиз проекта DragonEgg 2.8, представляющего собой плагин к набору компиляторов GCC 4.5, заменяющий оригинальные оптимизаторы и генераторы кода GCC на аналоги, созданные в рамках проекта LLVM. DragonEgg предоставляет наиболее простой способ использования технологий LLVM без модификации кода GCC (при сборке достаточно добавить "-fplugin=path/dragonegg.so").

В настоящий момент до достаточно высокого уровня доведена работоспособность DragonEgg для языков Си и Си++ (пройден рубеж собственной пересборки), частично реализована поддержка Fortran и Ada, хуже обстоят дела с поддержкой Obj-C и Obj-C++, много работы предстоит проделать для поддержки Java. На текущей стадии развития DragonEgg поддерживает архитектуры x86-32 и x86-64, может работать в Linux и Darwin.

Из улучшений, добавленных в DragonEgg 2.8, можно отметить:

  • Синхронизация с кодовой базой LLVM-2.8;
  • Сокращено число экспортируемых символов, что позволило ускорить загрузку плагина;
  • Реализованы дополнительные векторные оптимизации, такие как addps256;
  • Для языка Ada не инициализированные глобальные переменные больше не обнуляются, что в результате привело к более высокой оптимизации кода;
  • Флаг '-fplugin-arg-dragonegg-enable-gcc-optzns' теперь может выполнять любые оптимизаторы GCC;
  • Налажен процесс связывания программ на языке Фортран, использующих общие переменные;
  • Устранена проблема с крахом компилятора, при работе конструкций GNU OMP.

© OpenNet