aiSee: Post Pass Code Optimization<>index

Call graph with control flow subgraphs, before optimization —> Call graph with control flow subgraphs, after optimization with aiPop

Control flow graph of a sample application for the C164 microcontroller before and after optimization with aiPop. Visualized with aiCall for C16x/ST10.

The size of compiled C code is becoming increasingly critical in embedded systems, where the economic incentives to reduce ROM sizes are very compelling. Reducing code size means reducing system costs, saving additional engineering effort, and extending application lifetime while speeding up time to market.

Unfortunately, the most common "solutions" to code size problems are very costly. Switching to another microcontroller model supporting more memory means additional investment: time, effort, and money. And reducing code size manually is not only tedious and error-prone, but involves additional expense into the bargain. The result: Precious engineering resources are wasted.

Functional abstractionBy contrast, abstract interpretation and advanced pattern matching techniques provide for a cost-effective generic approach for automatically reducing code size.

This is where aiPop comes in. The aiPop optimizer suite was developed to reduce the code size and/or to speed up the execution of assembly files produced by a C-compiler. Tests of aiPop on complete reference customer applications showed overall code size reductions of up to 20.39%. This allows 25% more functionality to be packed into a flash memory of the same size.

Integration into the development cycleaiPop was designed and implemented after conducting in-depth studies of customer needs and in close dialog with major developers of embedded applications (such as Siemens ICM). It integrates a vast number of sophisticated solutions to common code size and execution speed problems, in addition to introducing a variety of radically new techniques. Its impressive body of optimization solutions was tuned to satisfy the requirements of developers in several vertical industries, enabling smooth integration into existing and well-established tool chains.

With aiPop, you can select from and combine dozens of optimization techniques, trade size for speed and vice versa. And with aiCall, you can quickly grasp all changes made to your files, easily compare optimized files with unoptimized ones, and view explanations for each and every optimization made.

Unoptimized file —> Optimized file —> All changes are documented and founded in additional information windows

Unoptimized file

Optimized file

All optimizations are documented and explained in additional information windows

» aiPop.com: Code optimization and code compaction on assembly level

» December 2002: Spider web
» October 2002: Constant propagation analysis

» Related graphs:

» Submit a graph of yours

HomeSitemapai
Last modified on 1 November 2002 by webmaster. © 2002 AbsInt.
URL: http://www.aisee.com/graph_of_the_month/aipop.htm


Home
About
Examples
Free trial
Support
Store
Legal
Contact

 Extras
» Graph of
   the month
   11/2002

» Polls
» Memory
» Puzzle
» GDLedit
» Desktop
» Logos
» Papers
» Links

Sitemap