mirror of
https://gitflic.ru/project/e2khome/lccrt.git
synced 2024-11-23 02:15:30 +01:00
Обновление README.md, установка интерфейсного файла lccrt.h при 'make install'.
This commit is contained in:
parent
6fa132aeb4
commit
ed7f317b07
@ -20,7 +20,9 @@ set( lccrt_SOURCE
|
||||
|
||||
add_library( lccrt SHARED ${lccrt_SOURCE})
|
||||
target_include_directories( lccrt PRIVATE include include/internal)
|
||||
set_target_properties( lccrt PROPERTIES PUBLIC_HEADER "include/lccrt.h")
|
||||
|
||||
install( TARGETS lccrt
|
||||
LIBRARY DESTINATION lib
|
||||
PUBLIC_HEADER DESTINATION include
|
||||
RUNTIME DESTINATION bin)
|
||||
|
10
README.md
10
README.md
@ -4,17 +4,17 @@
|
||||
|
||||
## Промежуточное представление lccrt-IR.
|
||||
|
||||
Промежуточное представление lccrt-IR ориентировано на модули полученные из Си-подобного языка. Изначально представление спроектировано как представление выполняющее транзитную функцию между представлением llvm-IR и EIR (компилятора lcc для e2k). Наличие дополнительного слоя в виде lccrt-IR позволяет сделать патч в llvm-project для e2k-платформы opensource-проектом. Внешние бэкенды подключаются как динамические плагины при инициализации библиотеки liblccrt.
|
||||
Промежуточное представление lccrt-IR ориентировано на модули полученные из Си-подобного языка. Изначально представление спроектировано как представление выполняющее транзитную функцию между представлениями llvm-IR и EIR (из компилятора lcc для e2k). Наличие дополнительного слоя в виде lccrt-IR позволяет сделать патч в llvm-project для e2k-платформы opensource-проектом и предоставить открытое API для (закрытого) e2k-бэкенда. Внешние бэкенды подключаются как динамические плагины при инициализации библиотеки liblccrt.
|
||||
|
||||
Причем проект lccrt реализует самодостаточную библиотеку, формально не зависящую на уровне исходных кодов от других проектов. С этой точки зрения проект lccrt теоретически может рассматриваться как инструмент для преобразования и компиляции llvm-IR в другие IR'ы (предполагается вариант с libgccjit в качестве бэкенда), либо может выступать в качестве внешнего API (закрытого) оптимизирующего бэкенда для e2k-платформы в составе opensource-фронтендов отличных от llvm (если таковые возникнут на практике).
|
||||
Проект lccrt реализует самодостаточную библиотеку, формально не зависящую на уровне исходных кодов от других проектов. С этой точки зрения проект lccrt теоретически может рассматриваться как инструмент для компиляции llvm-IR с помощью внешних бэкендов (предполагается вариант с libgccjit в качестве бэкенда), либо может выступать в качестве внешнего API для оптимизирующего e2k-бэкенда в составе opensource-фронтендов отличных от llvm (если таковые возникнут на практике).
|
||||
|
||||
В качестве тестового бэкенда может выступать lcbe-бэкенд (lib/lcbe), который преобразует lccrt-IR в компилируемый и исполняемый Си-код (разработка lcbe не завершена). В таком случае Си-код используется в качестве аналога target-ассемблера.
|
||||
В качестве тестового бэкенда может выступать lcbe-бэкенд (lccrt/tools/lcbe), который преобразует lccrt-IR в компилируемый и исполняемый Си-код (разработка lcbe не завершена). В таком случае Си-код используется в качестве аналога target-ассемблера. Приниципиальной задачей, которая ставится перед lcbe-бэкендом, является задача получения минимальной замкнутой сборки при отсутствии бинарной версии e2k-бэкенда.
|
||||
|
||||
## Сборка.
|
||||
|
||||
* ``mkdir lccrt/build && cd lccrt/build``
|
||||
* ``cmake ../ && make && make install``
|
||||
|
||||
## Использование.
|
||||
## Применение.
|
||||
|
||||
* В трансляторе llvm-IR -> EIR (llvm-часть транслятора: https://gitflic.ru/project/e2khome/llvm-project-e-2-k)
|
||||
* В трансляторе llvm-IR -> EIR (llvm-часть транслятора: [llvm-project-e2k](https://gitflic.ru/project/e2khome/llvm-project-e-2-k))
|
||||
|
Loading…
Reference in New Issue
Block a user