Релиз 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