Компания ARM анонсировала новый выпуск сборочного инструментария ARM Compiler 6, который примечателен уходом от использования набора компиляторов GCC в пользу компилятора Clang и других наработок проекта LLVM. ARM Compiler 6 позиционируется в качестве эталонного инструментария для генерации кода для процессоров на базе архитектуры ARM, в том числе процессоров на базе новых архитектур ARMv8 и ARMv7-A, например, серии ARM Cortex-A50.

Инструментарий составляет полноценное сборочное окружение, предоставляющее C/C++ компилятор, компоновщик, набор библиотек и ассемблер. Поставляемый набор библиотек специально оптимизирован для архитектуры ARM и нацелен на обеспечение максимальной производительности и минимального размера кода. ARM Compiler 6 полностью избавлен от компонентов под лицензией GPL, что позволяет потребителям не заботиться об обеспечении лицензионной чистоты производных работ. Инструментарий будет поставляться в составе продукта DS-5 Development Studio Ultimate Edition.

Среди причин использования Clang/LLVM отмечается модульная структура, упрощающая продвижение улучшений и новых архитектур, расширенные средства для оптимизации и статического анализа кода, а также распространение проекта под лицензий BSD, допускающей связывание кода с проприетарными продуктами и не требующей открытия производных работ. Тем не менее, работа по улучшению поддержки ARM в LLVM ведётся в рамках открытого сообщества и интегрируется в основную открытую кодовую базу проекта. Отмечается, что ARM, Qualcomm и другие партнёры, заинтересованные в использовании архитектуры ARM, подключились к разработке LLVM и провели большую работу по увеличению качества, производительности и энергоэффективности кода, генерируемого для процессоров ARM, способствовали развитию тестовой инфраструктуры и проведению общих оптимизаций производительности.

Из новых возможностей ARM Compiler, появившихся благодаря переходу на Clang, упоминаются расширенные средства диагностики проблем в коде, позволяющие выявлять ошибки на ранних стадиях разработки и упростить процесс отладки, что проявляется в увеличении качества кода и сокращении цикла разработки продукта. При компиляции появилась возможность использовать расширенные техники генерации кода, такие как JIT-компиляция и генерация кода на стадии компоновки (link-time code generation).

К инициативе по улучшению поддержки архитектуры ARM в LLVM также присоединилась компания Apple, которая передала проекту исходные тексты нового бэкенда для поддержки архитектуры AArch64/ARM64 в Clang. Указанный бэкенд используется Apple для сборки iOS для смартфона iPhone 5S, базирующегося на архитектуре ARM64. Кроме iOS в числе поддерживаемых целевых платформ в бэкенде отмечен и Linux. Представленный компанией Apple бэкенд не пересекается с развиваемым проектом LLVM при участии компании ARM бэкендом AArch64, оба бэкенда могут сосуществовать и использоваться параллельно.

Источник: http://www.opennet.ru/opennews/art.shtml?num=39542