The OpenNET Project / Index page

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



"Релиз набора компиляторов LLVM 11.0 "
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Второй уровень иерархии тем в форуме реализован через вкладку "Показ ключевых тем".
. "Релиз набора компиляторов LLVM 11.0 " +/
Сообщение от n00by (ok), 14-Окт-20, 07:45 
>> А что это? -fdump-final-insns выводит внутреннее представление, которое похоже на LISP.
>> bp, sp, di - регистры "архитектуры Интел", без привязки к режиму (разрядности).
> Дык, Register Transfer Language
>> The last part of the compiler work is done on a low-level intermediate representation called Register Transfer Language. In this language, the instructions to be output are described, pretty much one by one, in an algebraic form that describes what the instruction does.
>> RTL is inspired by Lisp lists. It has both an internal form,

То есть язык, описывающий машинные инструкции (целевой платформы?). В общем-то и так понятно, что для трансляции в машинный код мало смысла использовать мнемоники в виде текста, проще работать с деревом.

Имел ввиду, что для промежуточного представления может использоваться набор инструкций абстрактного процессора (например, стековый, где из регистров только аккумулятор -- что-то вроде Fort-машины). Вот это представление оптимизируется, а при генерации под целевую архитектуру верхушка стека заменяется реальными регистрами, в зависимости от их количества: st[0] -> eax, st[1] -> ebx и т.п.

>  (DI тут кстати == "Double Integer mode represents an eight-byte integer")
> Трансформированный из промежуточного представления GIMPLE  (в который, ЕМНИП, трансформируют
> код фронтенды).
> gcc -fdump-rtl-all даст тут более полную картинку.
> https://gcc.gnu.org/onlinedocs/gccint/GIMPLE.html
>> GIMPLE is a three-address representation derived from GENERIC by breaking down GENERIC expressions into tuples of no more than 3 operands (with some exceptions like function calls). GIMPLE was heavily influenced by the SIMPLE IL used by the McCAT compiler project at McGill University, though we have made some different choices.

Вот это уже больше похоже.

> В общем, никаких "AT&T" или тем более "сразу в ASM" ;)

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Релиз набора компиляторов LLVM 11.0 , opennews, 12-Окт-20, 22:53  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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