Preview

Труды Института системного программирования РАН

Расширенный поиск

Разработка компилятора для стековой процессорной архитектуры TF16 на основе LLVM

https://doi.org/10.15514/ISPRAS-2021-33(5)-8

Полный текст:

Аннотация

Разработка для стековых процессорных архитектур обычно ведётся с использованием устаревших низкоуровневых языков программирования или языка ассемблер. Поэтому актуальна задача поддержки языков программирования высокого уровня для таких архитектур. В этой работе мы рассматриваем процесс разработки и реализации на базе инфраструктуры LLVM/Clang полноценной системы программирования для языка Си для стековой архитектуры TF16. Использование именно LLVM в качестве базовой системы программирования обусловлено большими возможностями адаптации дополнительных компонентов системы программирования, например, таких как дизассемблер, компоновщик и отладчик для использования с новыми архитектурами. Нами были разработаны две версии компилятора. В первой версии компилятора архитектура TF16 рассматривалась как классическая регистровая архитектура, и сгенерированный код не использовал стековые возможности. Эта версия была относительно проста в разработке и служила точкой сравнения для второй версии компилятора. Во второй версии компилятора был разработан и реализован платформо-независимый алгоритм планирования команд с учётом особенностей стековых архитектур. При сравнении двух версий версия компилятора с поддержкой стековых возможностей генерирует код, который в среднем на 35.7% быстрее по времени выполнения и на 50.8% меньше по размеру, чем код, генерируемый версией компилятора без поддержки стековых возможностей. Разработанный алгоритм позволяет реализовать в компиляторе LLVM поддержку других стековых процессорных архитектур.

Об авторах

Леонид Владленович СКВОРЦОВ
Институт системного программирования им. В.П. Иванникова РАН
Россия

Стажёр-исследователь отдела компиляторных технологий



Роман Вячеславович БАЕВ
Институт системного программирования им. В.П. Иванникова РАН
Россия

Старший лаборант отдела компиляторных технологий



Ксения Юрьевна ДОЛГОРУКОВА
Институт системного программирования им. В.П. Иванникова РАН
Россия

Младший научный сотрудник отдела компиляторных технологий



Евгений Юрьевич ШАРЫГИН
Институт системного программирования им. В.П. Иванникова РАН
Россия

Стажёр-исследователь отдела компиляторных технологий



Список литературы

1. Koopman P. Stack computers: the new wave. Halsted Press, 1989. 231 p.

2. Каршенбойм И. Стековые процессоры, или новое — это хорошо забытое новое. Компоненты и технологии, no. 2, 2004 г., стр. 130-134 / Karshenboim J. Stack processors, or new is the well-forgotten new. Components and technologies, no. 2, 2004, pp. 139-134 (In Russian).

3. Rather E, Colburn D, Moore C. The evolution of Forth. ACM SIGPLAN Notices, volю 28, тo. 3, 1993, pp. 177-199.

4. LLVM Compiler Infrastructure. Available at: https://llvm.org, accessed 10.09.2021.

5. Koopman P. A preliminary exploration of optimized stack code generation. Journal of Forth Application and Research, vol. 6, no. 3, 1994, pp. 241-251.

6. GCC, the GNU Compiler Collection. Available at https://gcc.gnu.org, accessed 10.09.2021.

7. Bailey C. Inter-boundary scheduling of stack operands: A preliminary study. In Proc. of the EuroForth Conference, 2000, pp 3-11.

8. Shannon M. A C Compiler for Stack Machines. MS Thesis. University of York, 2006, 116 p.

9. SCC, Simple C Compiler. Available at https://www.simple-cc.org, accessed 10.09.2021.

10. FCC, Fedjmike's C Compiler. Available at https://github.com/Fedjmike/fcc, accessed 10.09.2021.


Рецензия

Для цитирования:


СКВОРЦОВ Л.В., БАЕВ Р.В., ДОЛГОРУКОВА К.Ю., ШАРЫГИН Е.Ю. Разработка компилятора для стековой процессорной архитектуры TF16 на основе LLVM. Труды Института системного программирования РАН. 2021;33(5):137-154. https://doi.org/10.15514/ISPRAS-2021-33(5)-8

For citation:


SKVORTSOV L.V., BAEV R.V., DOLGORUKOVA K.Yu., SHARYGIN E.Yu. Developing an LLVM-based compiler for stack based TF16 processor architecture. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2021;33(5):137-154. (In Russ.) https://doi.org/10.15514/ISPRAS-2021-33(5)-8



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)