Services - tools - models - for embedded software development
Separation strip between header and contents

GNU Tool Chain Porting and MILEPOST GCC

The open source GNU tool chain is the most widely available set of tools for software development on embedded processors. Unlike most proprietary offerings, it is available for a wide range of different embedded processors. With heterogenous SoC designs becoming the norm, it is little surprise that major design houses are insisting on GNU support for any processor IP they use.

The growth in popularity of the GNU tools is further driven by the growth in Linux and derivatives such as Android for embedded targets, all of which rely on the GNU C compiler.

Embecosm's leads the way with its development of the first commercially supported versions of MILEPOST GCC, adding machine learning technology to give further improvements to the performance of code generated by the compiler.

Quality and Expertise

Quality is key when implementing a tool chain. The worlds finest silicon can be let down if its tool chain does not deliver first class reliability, code density and performance. With around 4 million lines of code, the GNU Compiler Collection (GCC) represents the biggest of all challenges.

Compiler and debugging technology is highly complex. Quality demands the most skilled and experienced of engineers, which Embecosm can provide.

  • Dr Jeremy Bennett is author of a standard University text on compiler technology, and author of the widely used guide to porting the GNU Debugger. With nearly 30 years professional experience, he leads Embecosm's debugger and model integration work.

  • Jörn Rennecke is one of the worlds foremost experts on GCC for embedded targets. A contributor to the GCC project for nearly 15 years, he leads Embecosm's GNU compiler work.

MILEPOST GCC

MILEPOST GCC was the result of a European research project to improve GCC code generation for embedded targets. Machine learning technology is used, so that the compiler can determine from past experience the best optimization heuristics to use for any particular program. MILEPOST GCC, which offers signficant improvements in performance over standard GCC, was released in June 2009, and Embecosm is the first company to offer commercial support for this technology.

Our technology pages give more information on how MILEPOST GCC works, and the performance improvements that are possible.

Availability

Embecosm engineers are available to port the latest versions of GNU tools and libraries and to upgrade existing implementations.

MILEPOST GCC 4.4 was released in June 2009 for AMD Athlon, Intel Xeon, Intel Itanium and ARC 745. Embecosm are now able to provide ports of this technology to any processor supporting GCC 4.4. Where GCC 4.4 is not available for a target processor, Embecosm can also provide that implementation.

All services come with an initial 3 month support package, which can be extended as desired.

Embecosm Services

Embecosm provides the following services for customers wishing to improve their GNU tool chain technology.

  • MILEPOST Evaluation Package. Intended for customers who wish to evaluate the potential benefits of MILEPOST, based on the existing GCC 4.4 implementation.

    Embecosm provides a migration of the existing GCC 4.4 implementation to MILEPOST. We then visit the customer site for a minimum of two weeks to install MILEPOST GCC and work with the customer to build an evaluation optimization database and measure the benefits. The entire program should be completed within one month.

    This service is supplied as a fixed price package.

  • MILEPOST Deployment Package. For customers who have decided to deploy MILEPOST GCC, or who need MILEPOST GCC to run with new targets.

    Embecosm integrates the new GCC 4.5 MILEPOST plugin to the customer's existing GCC 4.5 implementation. This is extended with refinements to control which optimization passes can be selected (not all are appropriate for all targets or applications). This is then used to build a production optimization database, using iterative compilation over a representative set of applications.

    Embecosm work with the customer to put in place approriate test and release processes before deployment. We implement a strategy to allow third parties to report issues, including the status of the optimization database.

    For customers without a GCC 4.5 implementation, Embecosm can upgrade an existing implementation to GCC 4.5, or provide a new implementation from scratch.

    This service can be supplied as a fixed price package.

  • Provide new ports of binutils, GCC, GDB and GNU libraries. For users without an existing GNU tool chain for their processor.

    Embecosm engineers create a new port, based on the latest versions of the tools, following the current coding standards, or tool implementation strategy.

    Option. Embecosm offer a minimal version of this package, aimed at start-ups developing new processors, who need to demonstrate that the GNU tool chain can work with their processor. The resulting tool chain is restricted in functionality, and not ready for commercial deployment. However it is appropriate for demonstrating that the technology will work without problems to investors.

    Option. This work can be compbined with integrating the Embecosm Unified Debug Interface and incorporating MILEPOST GCC.

    Option. Embecosm can manage introduction of the new port(s) into the mainstream FSF distribution(s) and provide ongoing maintenance of the code to ensure consistency within the mainstream distribution.

    The minimal version of this service can be supplied as a fixed price package.

  • Upgrade Existing Ports of binutils, GCC, GDB and GNU libraries. For users with an existing port, but which are now out of date.

    Embecosm engineers migrate the existing code to the latest versions of the tools. Where code does not follow the current coding standards, or tool implementation strategy, it is corrected.

    Option. This work can be compbined with integrating the Embecosm Unified Debug Interface and incorporating MILEPOST GCC.

    Option. Embecosm can manage introduction of the new port(s) into the mainstream FSF distribution(s) and provide ongoing maintenance of the code to ensure consistency within the mainstream distribution.

For further information, including pricing, please contact us.