Sign up for newsletters

Crossware enhances C/C++ compiler

Crossware Products

C/C++ compiler

Crossware has released version 3.0 of its C/C++ compiler for ARM-based microcontrollers.

The compiler, available as part of Crossware's ARM Development Suite, is able to perform advanced optimisations that can increase the execution speed and 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.

'We recently wanted the compiler to unroll a loop in a benchmark program for one of our customers,' said Alan Harry, chief executive officer 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 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.

Add to my alerts

You need to be logged in to add alerts.

Sign in
Source footer