HI-TECH Software introduces call- and pointer-graph-based compilation
By Robert Cravotta, Technical Editor -- 4/3/2007
HI-TECH Software, a supplier of compilers for Microchip and Cypress microcontrollers, announced at ESC today a new compilation technology that generates object code, based on call and pointer reference graphs derived from examining all the modules in an embedded program before the final step of code generation.
HI-TECH calls this approach OCG (Omniscient Code Generation). This global optimization approach allows the compiler to catch inconsistent calling conventions, variable declarations, and redundant code because it examines all of the code before generating the final code. This allows the compiler to optimize the size of each pointer variable, based on its usage, resulting in a smaller code size. This process requires no extra input from the programmer, relies on no nonstandard extensions, and is entirely transparent to the engineer. The technology identifies recursively or re-entrantly called functions and can use dynamic stack space or local variable storage to ensure that re-entrant calls do not overwrite existing data.
The C language assumes a single, linear address space. However, many embedded processors have complex, nonlinear memory architectures with different word widths. This makes it difficult to map nontarget-specific C code onto some processors' memory maps. OCG creates a global representation of the complete set of variables and pointers across all program modules; it also knows how big the stack must be and where it will be located before the code is generated. This allows the compiler to define a set of address spaces for each pointer variable that is optimally efficient for the particular processor architecture, without any specific direction from the programmer. OCG builds separate call graphs for both main-line and interrupt code. Any function that appears in more than one call graph can replicate its own local variable area, eliminating the requirement for a separate stack.
The current OCG implementation assumes the entire project call- and pointer-graph can reside in the host computer's memory at one time. This is not a limitation in the current processor supported by the technology because the applications are small compared to the host computer's available memory.
PICC-18 PRO is available with full source code to all library routines and run-time start off modules, allowing the programmer to customize the run-time environment for a particular hardware system. The company imposes no restrictions or limitations on the use of executable library code. A fully functional, 45-day trial version of PICC-18 PRO can be downloaded free from HI-TECH's Web site. For a limited time, the company is offering PICC-18 PRO for $1195.00 ($300 off the regular price). Discounts are also available for multiuser versions, educational users, and existing customers.
© 2009, Reed Business Information, a division of Reed Elsevier Inc. All Rights Reserved.
