Hi Tech Software has recently been making a lot of noise about its “Omniscient Code Generation”. In a nutshell, the technology appears to defer code generation until the entire program has been compiled, and then look at everything before generating the final object code. The end result is a dramatically more compact (and presumably faster running) program image. I haven’t had a chance to play with the compiler yet (in part because it’s still in beta testing). If they have done what they claim, then Hi Tech should be commended. On my list of things to check out about the technology will be:
- Is the technology smart enough to track function calls via function pointers? If it is, then this is truly a neat piece of technology. If instead, it’s one of the limitations of the product, then its usefulness to me has just plummeted.
- Does the technology also track function calls from within interrupts? My experience is that interrupt handling is still the poor relation of compiler technology. If Hi Tech does this, then I’ll be impressed.
Also of interest to me is how other compiler manufacturers will respond. Keil has performed global register coloring on its 8051 compiler for years. I suspect that the Hi Tech approach is a step beyond this, so there’s a chance that Keil will be finally knocked from their #1 position in 8051 code generation. IAR offers a multi unit compilation option with some of its compilers. However, this option isn’t integrated into its Embedded Workbench, so it’s practically useless. With Hi Tech offering compilers for ARM, PIC & MSP430 I can see this really creating a burst of competition in the industry. Excellent!