Abstract
Optimizing embedded applications using a compiler can generally be broken down into two major categories: hand-optimizing code to take advantage of a particular processor's compiler and applying built-in optimization options to proven and well-polished code. The former is well documented for different processors, but little has been done to find generalized methods for optimal sets of compiler options based on common goal criteria such as application code size, execution speed, power consumption, and build time. This article discusses the fundamental differences between these two general categories of optimizations using the compiler. Examples of common, built-in compiler options are presented using a simulated ARM processor and C compiler, along with a simple methodology that can be applied to any embedded compiler for finding an optimal set of compiler options.
- ARM, Ltd. 2007. Procedure Call Standard for the ARM Architecture. ARM Ltd., Cambridge, UK.Google Scholar
- ARM, Ltd. 2007. RealView Compilation Tools for uVision v3.1 Compiler Reference Guide. ARM Ltd., Cambridge, UK.Google Scholar
- Atmel. 2001. Atmel's ARM-based microcontroller--Low power for portable systems. White Paper. Atmel, San Jose, CA.Google Scholar
- Faggin, F., Hoff, M. E., Mazor, S., and Shima, M. 1996. The history of the 4004. IEEE Micro 16, 12. 10-20. Google ScholarDigital Library
- Furber, S. 2000. ARM System On-chip Architecture. Addison-Wesley Professional, Harlow, UK. Google ScholarDigital Library
- Hall, S. 1996. Journey to the Moon: The History of the Apollo Guidance Computer. American Institute of Aeronautics & Astronautics, Reston, VA. Google ScholarDigital Library
- Hennessy, J. and Patterson, D. 2002. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, San Francisco, CA. Google ScholarDigital Library
- Lupers, R. 2000. Code Optimization Techniques for Embedded Processors . Kluwer Academic Publishers, Dordrecht, The Netherlands. Google ScholarDigital Library
- Martin, T. 2005. Insider's Guide to Philips ARM7 Microcontrollers. Hitex (UK) Ltd., Coventry, UK.Google Scholar
- Muchnick, S. 1997. Advanced Compiler Design and Implementation. Morgan Kaufmann, San Francisco, CA. Google ScholarDigital Library
- Seal, D. 2001. ARM Architecture Reference Manual (2nd ed.). Addison-Wesley, Harlow, UK. Google ScholarDigital Library
- Shen, J. 2004. Modern Processor Design: Fundamentals of Superscalar Processors. McGraw-Hill, New York, NY.Google Scholar
- Sloss, A., Symes, S., and Wright, C. 2004. ARM Architecture Reference Manual 2nd Ed. ARM System Developer's Guide. Morgan Kaufmann, San Francisco, CA. Google ScholarDigital Library
- York, R. 2002. Benchmarking in context: Dhrystone. White Paper. ARM Ltd., Cambridge, UK.Google Scholar
Index Terms
- The use of compiler optimizations for embedded systems software
Recommendations
Tuning Compiler Optimizations for Simultaneous Multithreading
Special issue on the 30th annual ACM/IEEE international symposium on microarchitecture, part IISimultaneous Multithreading (SMT) is a processor architectural technique that promises to significantly improve the utilization and performance of modern wide-issue superscalar processors. An SM T processor is capable of issuing multiple instructions ...
Tuning compiler optimizations for simultaneous multithreading
MICRO 30: Proceedings of the 30th annual ACM/IEEE international symposium on MicroarchitectureCompiler optimizations are often driven by specific assumptions about the underlying architecture and implementation of the target machine. For example, when targeting shared-memory multiprocessors, parallel programs are compiled to minimize sharing, in ...
A compiler framework for speculative optimizations
Speculative execution, such as control speculation or data speculation, is an effective way to improve program performance. Using edge/path profile information or simple heuristic rules, existing compiler frameworks can adequately incorporate and exploit ...
Comments