Affiliation:
1. Ghent University, Gent, Belgium
Abstract
The overhead in terms of code size, power consumption and execution time caused by the use of precompiled libraries and separate compilation is often unacceptable in the embedded world, where real-time constraints, battery life-time and production costs are of critical importance. In this paper we present our link-time optimizer for the ARM architecture. We discuss how we can deal with the peculiarities of the ARM architecture related to its visible program counter and how the introduced overhead can be eliminated to a large extent. Our link-time optimizer is evaluated in two tool chains. In the Arm Developer Suite tool chain, average code size reductions with 14.6% are achieved, while execution time is reduced with 8.3% on average, and energy consumption with 7.3%. On binaries from the GCC tool chain the average code size reduction is 16.6%, execution time is reduced with 12.3% and the energy consumption with 11.5% on average. Finally, we show how the incorporation of link-time optimization in tool chains may influence library interface design.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
13 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Implementation of Thread Local Storage Optimization Method Based on LoongArch;2023 42nd Chinese Control Conference (CCC);2023-07-24
2. Propeller: A Profile Guided, Relinking Optimizer for Warehouse-Scale Applications;Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2;2023-01-27
3. Clang __usercall: towards native support for user defined calling conventions;Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2022-11-07
4. From Hack to Elaborate Technique—A Survey on Binary Rewriting;ACM Computing Surveys;2020-05-31
5. ELSE;Proceedings of the Eleventh International Workshop on Programming Models and Applications for Multicores and Manycores;2020-02-19