Crolles, France - November 21, 2000 - Raisonance showed today for the first time at Electronica CodeCompressor, its new optimization tool initially available for 8051 targets. Unlike other 8051 toolchains CodeCompressor takes a new and unique approach to optimizing applications written for microcontrollers: by acting after the linker, CodeCompressor optimizes the whole application, including C, assembler and libraries, therefore saving an extra 10% to 20% (typical) on the overall code size. Traditionally, optimizing compilers limit their action to one module, but whatever gain is obtained in this way becomes less important when linking the whole program with the libraries: CodeCompressor works instead on the overall program, exactly the one that will be burnt in Eprom or Flash, and can allow to chose a smaller memory or to fit in extra features that can add value to a design.
CodeCompressor achieves its best performance and easiness of use when used into Raisonance Integrated Development Environment, but can be used to compress third party-generated 8051 programs as well, including binary files; in this case a specially developed user interface helps the user to enter information that CodeCompressor couldn't get from the Compiler/Assembler/Linker and that are vital for it to work safely and efficiently.
According to Francis Lamotte, CEO of Raisonance, "Raisonance has spent the last 10 years to optimize more and more its 8051 C compiler and toolchain; today it is between the best in its class and it had become really hard to gain 1 % more by acting on the compiler alone. A radically new approach was needed: the fact of running one or more optimization passes after the linker had been on the back of my mind for quite along time, but it's something that was very hard to do without a complete and detailed knowledge of the 'overall' toolchain, including simulator and IDE. Today our tools have reached a level of integration and reliability that allows us to implement this new technology in a way that is both safe and easy to use."
Luca Ubiali, Marketing Manager agrees, "The competition is very stiff in the 8051 marketplace: it was no more enough to say that our compiler was one of the best, we wanted to do something that really put us apart. With CodeCompressor
we are going to have a definite edge over the competition."
CodeCompressor acts in three phases that can be individually enabled and disabled by the user to have the best control over the program: the first pass consist in inlining functions that are called only once in the application, including library functions. The second pass is code factorization: CodeCompressor will look everywhere in the code for similar blocks of assembler instructions and will create a subroutine with the proper calls whenever this is
safe and convenient. The Third Pass is 'local optimization': the code rearranged by inlining and factorization exposes new opportunities for traditional local optimizations, such as peephole, constant folding and absolute/relative jumps replacement.
One of the most important problems to be solved in order to make CodeCompressor easily usable by any programmer with no specific knowledge of the target architecture, was to preserve debug information. Because CodeCompressor can modify the assembler code quite heavily, it is important that the programmer still has the impression of modifying something he/she has written, and not some form of highly optimized, but incomprehensible code. This required to extend the debug information and to create a new format, that we called OMF51+. The user can either choose this format to work with CodeCompressor or keep the old format for compatibility issues. In the first case, the compiler and assembler have been extended too, and now provide information on Data and Code sections, to tell CodeCompressor where it can optimize and where it can not.
Availability and Pricing
CodeCompressor is currently in beta test and is schedules to be available in January 2001. It will be commercialized as a part of Raisonance's high-end Enterprise Suites, starting with RkitE51. A technical article describing in detail CodeCompressor features and performance is available now at http://www.raisonance.com.
Temporary evaluation versions will be available on a customer per customer base starting in December: please send you request for evaluation at email@example.com RkitE51 is priced at Euro 2500 (~US$2100) and is available from Raisonance and World Wide distributors or for online sale at http://www.raisonance.com.
Raisonance designs and manufactures a variety of Microprocessor Development Systems, including Compilers, Simulators, High Level Language Debuggers, Real Time Operating Systems, Integrated Development Environment, Evaluation Boards and Real Time In-Circuit Emulators. Supported target architectures include 8051 from several manufacturers, XA from Philips, ST6 from STMicroelectronics, Smart Card products from Philips and specific, proprietary architectures. Founded in
1988 and located near Grenoble in the French Alps, Raisonance is committed to provide high quality products dedicated to suit the specific needs of the embedded market by introducing innovative and unique solutions. Raisonance development tools are distributed and supported worldwide. For more information, see http://www.raisonance.com.