Loading...
Please wait, while we are loading the content...
Similar Documents
Compiling for resource-constrained platforms using ASSHes: Application- and system-specific heuristics (2005)
| Content Provider | CiteSeerX |
|---|---|
| Author | Reid, Alastair Cooprider, Nathan Regehr, John |
| Abstract | We present and evaluate application- and system-specific heuristics (ASSHes) for optimizing embedded software. ASSHes are scripts that decide which compiler optimizations to apply; they make decisions using feedback from previous compilations, using the results of program analyses, and using high-level information, e.g., “there are only 4 KB of RAM, and interrupt handlers 5–7 should be fast since we expect them to execute very frequently. ” In contrast, traditional compilers base optimization decisions on built-in heuristics that are oblivious to high-level application- and platform-specific concerns. The ASSH effectively becomes the high-level optimization policy and the existing compiler becomes a low-level mechanism for applying code transformations. ASSHes are more generic than previous approaches to compiling embedded software: they permit compilation to be directed towards meeting many different goals and combinations of goals. So far we have investigated ASSHes that control two optimizations: loop unrolling and function inlining. We evaluate ASSHes by applying them to TinyOS sensor network applications, where they have successfully reduced resource usage. For example, for one large application we can either reduce worst-case stack depth by 16%, reduce code size by 3.5%, or reduce the amount of time the processor is active by 14 % (our baseline for comparison is the output of the nesC compiler, which itself performs aggressive crossmodule inlining). These various improvements conflict: they can be achieved individually but not together—dealing with tradeoffs among resources is central to designing efficient embedded systems. 1. |
| File Format | |
| Publisher Date | 2005-01-01 |
| Access Restriction | Open |
| Subject Keyword | System-specific Heuristic Resource-constrained Platform Platform-specific Concern Loop Unrolling Many Different Goal Worst-case Stack Depth Code Size Large Application Evaluate Application Program Analysis Built-in Heuristic High-level Application Nesc Compiler Resource Usage Tinyos Sensor Network Application High-level Information Low-level Mechanism Various Improvement Conflict Previous Compilation High-level Optimization Policy Optimization Decision Code Transformation Function Inlining Traditional Compiler Aggressive Crossmodule Interrupt Handler |
| Content Type | Text |