The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Новая криптографическая библиотека EverCrypt с математически..."
Отправлено meantraitor, 12-Апр-19 13:00 
> вы, похоже, не владеете темой.

Да-да, уже 15 лет не владею ;)

Все современные компиляторы так устроены уже давно - фронтенды производят IR (intermediate
representation), который уже далее обрабатывается middleend'ом и/или backend'ом.
И, кстати, этих IR'ов может быть несколько в одном и том же компиляторе

И gcc и llvm именно так и устроены.
Как я вам уже сказал, отличие llvm в том, что этот IR из него можно вытащить, а можно и запихать
обратно в текстовом виде. Заодно llvm включает в себя байткод-интерпретатор, который умеет этот IR (двоичный, не тесктовый!) исполнять и JIT.

Что касается asm printer и binary emitter, то чаще все-таки бывает, что target умеет -S, но не умеет сразу .o, чем наоборот.

То, что вы называете "состоянием" gcc - это тоже IR, и не важно, что его нельзя вытянуть из компилятора. Точнее, обычно IR таки можно достать из всех компиляторов - в двоичном виде.
(Все эти временные файлы, которые компиляторы могут производить - это он)
И обратно его потом можно засунуть. Но только в llvm к нему приделали текстовое представление.
Сравните clang -emit-llvm -S vs. clang -emit-llvm -c

> А здесь это именно язык llvm. Но совершенно нечеловекочитаемый, даром что похож.

Еще раз - этот "язык", а на самом деле сериализованный IR, не предназначен для чтения
людьми, а исключительно для писателей компиляторов. А для этих "нелюдей" исключительно удобно
- иметь возможность достать IR, покрутить его и запихнуть обратно. Или, например, regression
tests на нем писать.
Не знаю, что там такого ужасно нечитаемого в самом представлении как таковом.
Большая часть нечитаемости происходит из-за того как они variable renaming делают для SSA

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру