Compiler Cuts Code in Half
Hi-Tech Software has announced a new compilation technology that generates object code based on call- and pointer-reference graphs derived from all the modules in an embedded program. The new technology, called Omniscient Code Generation (OCG), overcomes problems in conventional compilers that can miss inconsistent calling conventions, variable declarations and redundant code because they compile each module independently and separately. OCG results in more easily ported code that is nearly 50 percent more dense than code from competing compilers. OCG optimizes the size of each pointer variable (based on its use), eliminates the need for many non-standard C compiler options and qualifiers and optimizes interrupt context-switching code. OCG can implement complicated library functions specific to a particular program. If programmers use the printf() function to format numbers, it can take as many as 5 Kbytes of code. But the OCG technology can detect when a program uses the printf() function to produce text strings and thus reduce the code to only 20 or 30 bytes. The new compiler technology looks at all code modules and collects comprehensive data on register, stack, pointer, object and variable declarations. It uses this information to ensure consistent variable and object declarations between modules, optimize stack and register allocation and to delete unused variables and functions. This process requires no extra input from the programmer, no non-standard extensions, and it is entirely transparent. Hi-Tech Software has implemented Omniscient Code Generation in compilers for Microchip’s PIC18 MCU family and for Cypress Semiconductor’s Mixed Signal Controllers. The company will offer additional OCG compilers for all Microchip MCUs and DSPs, ARM7-based MCUs from Atmel, NXP, OKI and Samsung, and 8051 microcontrollers from many manufacturers.