Home Services Technologies Company Careers Contact  

Blackbird®

Blackbird Home

Blackbird® - HPEC Compiler

The Need

Advanced embedded applications such as signal processing and gaming are placing ever-greater demands on compilers. With high degrees of on-chip parallelism and novel architectures - essentially supercomputers on a chip - embedded hardware is outpacing the performance improvement of general purpose processors. Applications are demanding this performance, and at substantially improved levels of power efficiency. The growth in hardware potential and application demands places the compiler in a critical role.

To achieve good utilization of highly parallel functional units requires not only advanced code generators, but also advanced middle-phase dependence analysis and program transformations. What is needed is a well-engineered commercially-solid compiler base with infrastructure for accepting extensions and modifications to broaden its functionality. The Blackbird compiler is just such a product.

Although Digital Signal Processing (DSP) and game developers have traditionally resorted to programming applications in assembly language to achieve performance, this is becoming less and less viable. Developers have been burned by having to throw away large bodies of assembly language and code bases every time a new architecture emerges, with no tools to port their applications. The size of the code bases and the programming complexity have grown too large to get an economic return when coding applications from scratch every couple of years. Hence many of the largest users are refusing to adopt a new architecture without an ANSI C compiler.

New optimizations and transformations needed for next-generation architectures, and language features specific to application demands are placing even greater demands on the compiler. However, it is important not to lose sight of the enormous amount of work and expense it takes to build a commercially solid advanced compiler. Complete support for all of the complexities of a language like C or C++, an intermediate representation and base optimizations that are correct and efficient, and reliable and correct operation over a broad code base, are nontrivial challenges. Building a compiler from scratch is enormously expensive; academic compilers are often incomplete and of uneven quality, and open-source compilers pose significant legal complexities that can discourage innovation.

Copyright © 1998-2008 Reservoir Labs, Inc.