Go to file
2023-01-27 01:26:18 +03:00
include Добавление cmake-сборки. Обновление README.md и удаление устаревшей irr-компоненты. 2023-01-27 01:26:18 +03:00
lib Добавление cmake-сборки. Обновление README.md и удаление устаревшей irr-компоненты. 2023-01-27 01:26:18 +03:00
tools Добавление в архив исходного кода проекта и выбор для проекта лицензии 'Apache License 2.0'. 2023-01-26 02:34:00 +03:00
CMakeLists.txt Добавление cmake-сборки. Обновление README.md и удаление устаревшей irr-компоненты. 2023-01-27 01:26:18 +03:00
LICENSE Добавление в архив исходного кода проекта и выбор для проекта лицензии 'Apache License 2.0'. 2023-01-26 02:34:00 +03:00
NOTICE Добавление в архив исходного кода проекта и выбор для проекта лицензии 'Apache License 2.0'. 2023-01-26 02:34:00 +03:00
README.md Добавление cmake-сборки. Обновление README.md и удаление устаревшей irr-компоненты. 2023-01-27 01:26:18 +03:00

Проект lccrt.

Основная задача проекта - предоставить компактную библиотеку для создания/хранения модуля в терминах IR и делегации процесса компиляции внешнему бэкенду.

Промежуточное представление lccrt-IR.

Промежуточное представление lccrt-IR ориентировано на модули полученные из Си-подобного языка. Изначально представление спроектировано как представление выполняющее транзитную функцию между представлением llvm-IR и EIR (компилятора lcc для e2k). Наличие дополнительного слоя в виде lccrt-IR позволяет сделать патч в llvm-project для e2k-платформы opensource-проектом. Внешние бэкенды подключаются как динамические плагины при инициализации библиотеки liblccrt.

Причем проект lccrt реализует самодостаточную библиотеку, формально не зависящую на уровне исходных кодов от других проектов. С этой точки зрения проект lccrt теоретически может рассматриваться как инструмент для преобразования и компиляции llvm-IR в другие IR'ы (предполагается вариант с libgccjit в качестве бэкенда), либо может выступать в качестве внешнего API (закрытого) оптимизирующего бэкенда для e2k-платформы в составе opensource-фронтендов отличных от llvm (если таковые возникнут на практике).

В качестве тестового бэкенда может выступать lcbe-бэкенд (lib/lcbe), который преобразует lccrt-IR в компилируемый и исполняемый Си-код (разработка lcbe не завершена). В таком случае Си-код используется в качестве аналога target-ассемблера.

Сборка.

  • mkdir lccrt/build && cd lccrt/build
  • cmake ../ && make && make install

Использование.