Несколько дней назад компания ARM анонсировала выход ARM Compiler 6, который уже лишен компилятора GCC.
ARM Compiler 6 представляет собой новое поколение инструментов для программирования на языках C/C++. Версия ARM Compiler 6 базируется на компиляторе сlang (разработан Apple) и LLVM (опен-сорсный кроссплатформенный компилятор, тоже написан на С++).
ARM Compiler включает в себя целый набор инструментов для программирования, а именно - компилятор, ряд библиотек, рабочее окружение и компоновщик. Версии ARM Compiler, начиная с 6-й поддерживают архитектуру процессоров на базе ARMv7 и ARMv8. Он может быть использован в сочетании с ARM DS-5 Development Studio для создания и отладки ARMv8 исполняемого кода.
Использование LLVM, в свою очередь, дает многие преимущества для решения задач при помощи современных микроархитектур, требующих хорошей производительности и функциональности. Разработчики ARM Compiler в последней версии полностью избавились от лицензии GPL в надежде, что это поможет другим разработчикам избавиться от ненужных проблем с лицензиями (а недостатков, как оказалось, у GPL предостаточно). По крайней мере, такое решение избавит разработчиков от кучи лицензий.
Основные причины перехода с GCC на Clang/LLVM:
- Больше возможностей для оптимизации исходного кода;
- Ориентирование на работу с новыми архитектурами;
- Модульная структура Clang/LLVM более удобная в использовании;
- Лицензия теперь не требует открытия исходного кода (при этом исходный код самого проекта останется в большей степени открытым для упрощения поддержки ARM Compiler);
- Упрощение поиска ошибок в коде (благодаря переходу на Clang), упрощение отладки проектов;
- Еще одной причиной послужила заинтересованность разработчиков LLVM в работе над улучшением продуктов под архитектуру ARM. Особенно сильно это затронуло производительность и качество программного обеспечения.
После перехода ARM Compiler на Clang/LLVM, в Apple решили помочь разработчикам ARM и предоставили поддержку архитектуры AArch64/ARM64 в своем компиляторе. Напомним, что Apple заинтересована в архитектуре ARM64 из за ее использования в смартфонах iPhone 5S.