Affiliation:
1. University of Utah, Salt Lake City, UT, USA
2. Cisco Systems Inc., Research Triangle Park, NC, USA
Abstract
Contemporary compilers must typically handle sophisticated high-level source languages, generate efficient code for multiple hardware architectures and operating systems, and support source-level debugging, profiling, and other program development tools. As a result, compilers tend to be among the most complex of software systems. Nanopass frameworks are designed to help manage this complexity. A nanopass compiler is comprised of many single-task passes with formally defined intermediate languages. The perceived downside of a nanopass compiler is that the extra passes will lead to substantially longer compilation times. To determine whether this is the case, we have created a plug replacement for the commercial Chez Scheme compiler, implemented using an updated nanopass framework, and we have compared the speed of the new compiler and the code it generates against the original compiler for a large set of benchmark programs. This paper describes the updated nanopass framework, the new compiler, and the results of our experiments. The compiler produces faster code than the original, averaging 15-27% depending on architecture and optimization level, due to a more sophisticated but slower register allocator and improvements to several optimizations. Compilation times average well within a factor of two of the original compiler, despite the slower register allocator and the replacement of five passes of the original 10 with over 50 nanopasses.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
8 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Nanopass Attribute Grammars;Proceedings of the 16th ACM SIGPLAN International Conference on Software Language Engineering;2023-10-23
2. On Normative Arrows and Comparing Tax Automation Systems;Proceedings of the Nineteenth International Conference on Artificial Intelligence and Law;2023-06-19
3. IRDL: an IR definition language for SSA compilers;Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation;2022-06-09
4. Compilation on the GPU?;Proceedings of the 19th ACM International Conference on Computing Frontiers;2022-05-17
5. Symplectic structure-preserving particle-in-cell whole-volume simulation of tokamak plasmas to 111.3 trillion particles and 25.7 billion grids;Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis;2021-11-13