Raisonance
C Compiler raisonance
Raisonance - Embedded Development Tools
Download free software Access our Support Forum
sitemap




access the Price List

 

 C Compiler 

Raisonance bases its C compiler on a unique and well-tried technology and personalizes them according to the features of each specific processor architecture.

 Optimizations

Classical optimizations are implemented in each RC-xx C compiler (RC-51, RC-XA, RCST7, RC-ST6,...):

  • Constant propagation: when a local variable is assigned a constant value, subsequent references may be resolved at 'compile-time'. For example:

{

int x = 1 ;

int y = x+1 ; /* y is assigned the value 2 at 'compile-time' */

/*....*/

}

  • Jump optimizations: any series of jumps is simplified.
  • Elimination of the useless code: the compiler can recognize that some code is "in-accessible". It warns the programmer and removes the redundant code from the object file(s).
  • Use of variables in CPU registers;: local variables are automatically located in registers when it is possible in order to improve performance.
  • Function parameters are placed in registers whenever possible.
  • Elimination of common sub-expressions: the results of complex common sub-expressions are saved in registers for rapid reuse.
  • Loop rotation: simple loops used in initialization as buffers are recognized and optimized. According to the instruction set, loop variables are optimized in registers and eventually "adapted" to generate the best code.
  • Optimization of the "switch" instruction: the constant values associated with different 'cases' are successively tested with results in different code structures depending whether the preferred optimization is to maximize the speed or minimize the code size.

In addition, further optimization is undertaken by the linker.

Reliability

During design and maintenance of each C compiler, Raisonance applies strict rules for quality control and applies various test suites:

  • On suite consists of a wide set of programs, including an "anti-regression" test. Whenever a bug is reported, Raisonance strives to make it appear in a specific test program, which is then added to the "anti-regression" tests in order to ensure non-regression extends to all of our compilers. This suite tries to guarantee both the reliability and overall performance of C compilers.
  • Another (commercial) suite ensures that Raisonance compilers conform to ANSI standards. This suite strengthens the control over non-regression.

Other common features:

  • C Compilers generate "object" files that are compliant with those produced by our assemblers. In addition an assembly source file can be produced.
  • RCxx Compiler libraries are written in assembler to maximize performance while minimizing code size.
  • Different listings are available. For example pre-processing, compilation listing, assembler source file, cross-reference table…etc.

Complete debug information is generated to allow source level debugging.

Different C Compiler have been developed by Raisonance:

Home | Company Profile | News & Events | Products | Support | Download | Buy on line | Contact