ARM Compiler — еталонний складальний інструментарій для генерації коду для процесорів на базі архітектури ARM, зокрема процесорів на базі архітектур ARMv8 і ARMv7-A, наприклад, серії ARM Cortex-A50. Інструментарій становить повноцінне складальне оточення, яке надає C/C++ компілятор, компонувальник, набір бібліотек і асемблер. Набір бібліотек спеціально оптимізований для архітектури ARM і націлений на забезпечення максимальної продуктивності і мінімального розміру коду.

Версії ред.

ARM Compiler 6 ред.

ARM Compiler 6, який вийшов у квітні 2014[1][2], примітний відходом від використання набору компіляторів GCC на користь компілятора Clang та інших напрацювань проекту LLVM. ARM Compiler 6 повністю позбавлений від компонентів під ліцензією GNU GPL, що дозволяє споживачам не дбати про забезпечення ліцензійної чистоти похідних робіт. Інструментарій поставляється в складі продукту Development Studio Ultimate Edition.

Серед причин використання Clang/LLVM відзначається модульна структура, яка спрощує просування поліпшень і нових архітектур, розширені засоби для оптимізації і статичного аналізу коду, а також поширення проекту під ліцензією BSD, що допускає зв'язування коду з власницькими продуктами і не вимагає відкриття похідних робіт. Тим не менше, робота з поліпшення підтримки ARM в LLVM ведеться в рамках відкритого співтовариства і інтегрується в основну відкриту кодову базу проекту.

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

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

Виноски ред.

  1. ARM Compiler 6 – Best in class code generation for the ARM Architecture. Архів оригіналу за 13 квітня 2014. Процитовано 10 квітня 2014.
  2. Представлен ARM Compiler 6, перешедший с GCC на Clang [Архівовано 13 квітня 2014 у Wayback Machine.] // opennet.ru 10.04.2014

Посилання ред.