Crossware, a leading embedded software tools developer, has released version 3.0 of its C/C++ compiler for ARM-based microcontrollers. The new compiler, available as part of Crossware’s ARM Development Suite, is able to perform highly advanced optimisations that can significantly increase the execution speed and also reduce the code size of the final compiled application.
The Crossware compiler’s complex analysis of both program and data flow is used to perform a sequence of transformations which then enable a range of advanced optimisation algorithms to be applied. These algorithms include dead code elimination and conditional constant propagation. These are effective optimisations in their own right but when they are combined with loop transformation, the effects can be staggering.
“We recently wanted the compiler to unroll a loop in a benchmark program for one of our customers,” said Alan Harry, CEO of Crossware. “Incredibly, when we switched on these three optimisations and looked at the code our compiler had produced, we observed that the loop had disappeared completely. Loop unrolling was unnecessary as there was nothing left to unroll – the optimisations had eliminated all the overhead and consequently the program execution speed was significantly quicker!”
Another optimisation performed by the new compiler is conditional branch elimination which takes advantage of the ARM instruction set. Where appropriate, conditional branch instructions are removed and the ARM instructions are instead conditionally executed. This results in faster execution speed by avoiding any pipeline delays that would otherwise occur.
Stack frame elimination has been also implemented in version 3.0 of the compiler to reduce the function call overhead. This overcomes the need to save and restore the stack pointer at the beginning and end of each function thereby further reducing code size and increasing execution speed.
“These new enhancements make the complete Crossware ARM Development Suite a highly effective and efficient tool for the professional embedded developer,” added Alan Harry.
With its advanced C/C++ compiler, libraries, wizards, simulator and debugger, Crossware’s ARM Development Suite provides a complete and extremely user friendly development environment for the ARM family of microprocessors and microcontrollers.
Crossware is a leading developer of programmer-friendly C/C++ cross compilers and other development tools for embedded systems based on the 8051, ColdFire, ARM, 68000, CPU32 and other chip families. Host environments include Windows 9x, Windows NT, Windows 2000, Windows XP and Windows Vista. The company, founded by Alan Harry in 1984, is headquartered in the UK at Litlington on the outskirts of Cambridge. Crossware’s products are used throughout the world by professional developers, educational establishments and hobbyists.