|
Developing an llvm-based compiler for stack based tf16 processor architecture
L. V. Skvortsov, R. V. Baev, K. Yu. Dolgorukova, E. Yu. Sharygin Ivannikov Institute for System Programming of the RAS
Abstract:
Development for stack-based architectures is usually done using legacy low level languages or assembly code, so there exists a problem of a high level programming language support for such architectures. In this paper we describe the development process of an LLVM/Clang-based C compiler for stack-based TF16 processor architecture. LLVM was used due to adaptation possibilities of its components for new architectures, such as disassembler, linker and debugger. Two compiler versions were developed. The first version generated code without using stack capabilities of TF16, treating it instead as a register-based architecture. This version was relatively easy to develop and it provided us a comparison point for the second one. In the second version we have implemented a platform independent stack scheduling algorithm that allowed us to generate code that makes use of the stack capabilities of the CPU. When comparing the two versions, a version that utilized stack capabilities generated code that was on average 35.7% faster and 50.8% smaller than the original version. The developed stack scheduling algorithm also allows to support other stack based architectures in LLVM toolchain
Keywords:
stack processor, compiler, LLVM.
Citation:
L. V. Skvortsov, R. V. Baev, K. Yu. Dolgorukova, E. Yu. Sharygin, “Developing an llvm-based compiler for stack based tf16 processor architecture”, Proceedings of ISP RAS, 33:5 (2021), 137–154
Linking options:
https://www.mathnet.ru/eng/tisp632 https://www.mathnet.ru/eng/tisp/v33/i5/p137
|
Statistics & downloads: |
Abstract page: | 40 | Full-text PDF : | 13 |
|