comment on this article

ARM moves to open source LLVM for future compilers

ARM's future compilers will be built on the LLVM open source framework, the company announced yesterday.

The next version, ARM Compiler 6, will be integrated into future versions of the DS-5 development suite. It will first be released for 64bit ARM v8 architecture cores, with 64bit ARM v8 support expected later this year. Full support for ARM v7A, v7R, and initial support for v7M cores, will also be made available.

ARM says the modular nature of LLVM will make collaboration on custom features easier. "The main benefit for users is greater feature velocity from open source," noted Hobson Bullman, general manager of development solutions.

The compiler in the ARM Compiler 6 toolchain is armclang, based on Clang, a C/C++ front end for the LLVM code-generation framework. LLVM is designed as a set of reusable libraries with well defined interfaces. In comparison, armcc, the compiler in ARM Compiler 5, is composed of modules with less well defined interfaces and separation, which makes the parts less reusable across a larger code generation problem space.

armclang adheres to the three phase LLVM design, with a front end parser and syntax checker, a mid end optimiser and code generators that produce native machine code in the backend. The three phases have clear separation in terms of their intended function and this aspect of LLVM makes it reusable and flexible.

The LLVM framework also makes it easier to add new targets. Users have the option of adding their own backends for custom DSPs or GPUs as plugins into the toolchain.

The code generator itself is based on several built-in passes for common problems like instruction selection, register allocation and scheduling, so adding new code generators from scratch is relatively easy.

ARM Compiler 6 comes with optimised libraries and armlink, an industrial strength linker developed as part of the ARM Compiler toolchain.

ARM expects to introduce link time optimisation in a future version of the product. This, it says, would enable optimisation across library boundaries, something which was not possible using older versions of ARM Compiler.

Laura Hopperton

Comment on this article




This material is protected by MA Business copyright See Terms and Conditions. One-off usage is permitted but bulk copying is not. For multiple copies contact the sales team.

What you think about this article:

Add your comments


Your comments/feedback may be edited prior to publishing. Not all entries will be published.
Please view our Terms and Conditions before leaving a comment.

Related Articles

SuperTest extended

Solid Sands, a specialist in testing and validation for C and C++ compilers and ...

Protected spaces

Embedded systems developers are looking to container technology to try and ...

Change based testing

A major cause of software bugs is inefficient and incomplete testing. This ...

PAVE360 for AV

System-of-systems is a collection of systems, each with a specific function ...

The changing face

A year of seismic social and political change 1968 saw anti-Vietnam war ...

Life without GitHub?

The software development platform and code sharing repository GitHub celebrates ...

A prolific inventor

Polish software engineer Marta Karczewicz, who has been shortlisted for the ...

Teach them to fish

Last year was dubbed the “worst ever” by the Online Trust Alliance for data ...