|
Accelerating the development of DSL compilers for specialized processors
P. N. Sovietov MIREA – Russian technological university
Abstract:
Specialized processors programmable in domain-specific languages are increasingly used in modern computing systems. The compiler-in-the-loop approach, based on the joint development of a specialized processor and a compiler, is gaining popularity. At the same time, the traditional tools, like GCC and LLVM, are insufficient for the agile development of optimizing compilers that generate target code of an exotic, irregular architecture with static parallelism of operations. The article proposes methods from the field of program synthesis for the implementation of machine-dependent compilation phases. The phases are based on a reduction to SMT problem which allows to get rid of heuristic and approximate approaches, that requires complex software implementation of a compiler. In particular, a synthesis of machine-dependent optimization rules, instruction selection and instruction scheduling combined with register allocation are implemented with help of SMT solver. Practical applications of the developed methods and algorithms are illustrated by the example of a compiler for a specialized processor with an instruction set that accelerates the implementation of lightweight cryptography algorithms in the Internet of Things. The results of compilation and simulation of 8 cryptographic primitives for 3 variants of specialized processor (CISC-like, VLIW-like and a variant with delayed load instruction) show the vitality of the proposed approach.
Keywords:
DSL, compiler, specialized processor, SMT solver, instruction selection, instruction scheduling, register allocation.
Citation:
P. N. Sovietov, “Accelerating the development of DSL compilers for specialized processors”, Proceedings of ISP RAS, 32:5 (2020), 35–56
Linking options:
https://www.mathnet.ru/eng/tisp542 https://www.mathnet.ru/eng/tisp/v32/i5/p35
|
Statistics & downloads: |
Abstract page: | 142 | Full-text PDF : | 126 | References: | 29 |
|