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.

Highlights

  • В настоящее время все активнее применяются спецпроцессоры, отличающиеся от процессоров общего назначения специализацией своей вычислительной структуры и предметно-ориентированным набором команд

  • Результатом синтеза правил машинно-зависимой оптимизации является множество оптимизирующих правил легализации, то есть правил для трансформации фрагментов графа зависимостей (ГЗ) в форму, содержащую только поддерживаемые архитектурой спецпроцессора операции

  • Research interests: technologies of compilation and implementation of programming languages, domain-specific languages, codesign of software and hardware systems, solvers of NP-complete problems

Read more

Summary

Введение

В настоящее время все активнее применяются спецпроцессоры, отличающиеся от процессоров общего назначения специализацией своей вычислительной структуры и предметно-ориентированным набором команд. В программах преобладают вычислительные операции, поэтому для получения ожидаемого качества целевого кода достаточными являются локальные методы компиляции – методы уровня линейного участка;. В этой связи актуальна разработка методов и алгоритмов, ориентированных на оперативное создание оптимизирующих DSL-компиляторов для спецпроцессоров с использованием точных методов решения NP-полных задач, позволяющих рутинную часть генератора кода компилятора реализовать силами универсальных программ-решателей. 2 описана предлагаемая модель генератора кода DSL-компилятора на основе сведения задач компиляции к задаче SMT, в разд. 2.1 Граф зависимостей по данным и состоянию памяти В фазах модели генератора кода компилятора используется единое представление линейного участка программы – ориентированный ациклический граф зависимостей (ГЗ) по данным, дополненный П-зависимостями. Для получения этих данных предназначен вспомогательный алгоритм определения адресатов результата каждой операции из ГЗ, на вход которого поступает ГЗ. Результатом работы этого алгоритма является таблица , где каждому индексу операции сопоставлено множество индексов предшественников этой операции.

Метод синтеза правил машинно-зависимой оптимизации
Совместное планирование команд с выбором регистров
Компилятор JC
Заключение
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call