Sign in



Don't have an account?

Signing up is free and easy
Home -> Our Services -> Programming Tools BU -> White Papers -> C Compiler Optimizations: How effective is your Compiler?

C Compiler Optimizations: How effective is your Compiler?

by

 

One of the challenging tasks during embedded software development is to attain efficient target code. Embedded application developers must act carefully to tune up the code by considering the requirements of the target processor. Generally application developers prefer C language for high level programming. One of the obvious reasons is that the C language set is comparatively smaller than other high level programming languages. As a result, there will always be an availability of effective C compiler for embedded application development.

As we know that a C compiler is a tool that transforms a C source code to assembly code for the target processor. During the transformation an optimizing compiler optionally performs various optimizations to produce optimized target code. Basically, an optimizing compiler should have the capability to improve the efficiency of the code and minimize the human effort.

Many optimizing compilers do not bother much on non-trivial optimizations. When a compiler neglects to perform non-trivial optimizations, application developers go for possible hand optimizations to achieve optimized code. However, the application developers should have a second thought before going for hand optimizations. Moreover, application developers cannot visualize all possible candidates of non-trivial optimizations from the C source code. For instance, an optimizing compiler can perform code movement transformation optimizations (Code Hoisting and Code Sinking) after target code generation. Such possible optimizations cannot be visualized by application developers from the C source code.

These series of white paper aims to trigger off the thought process of application developers with a question of: How effective is your compiler when optimizations really matters?