Size: a a a

Compiler Development

2020 February 29

TS

Timur Safin in Compiler Development
ну они пытались принести HTM в Java synchronized блоки. Им не удалось. И он сделал вывод, что HTM на Intel-е не может работать
источник

PS

Peter Sovietov in Compiler Development
Timur Safin
ну они пытались принести HTM в Java synchronized блоки. Им не удалось. И он сделал вывод, что HTM на Intel-е не может работать
Но у Intel, если я правильно помню, была действительно какая-то ошибка в аппаратной реализации.
источник

TS

Timur Safin in Compiler Development
он не про ошибку, он утверждал про дизайн. но кажется (кажется) что synchronized семантика просто слегка перегружена для таких примитивов. И из несовместимости таких далеко идущих выводов делать было нельзя
источник

PS

Peter Sovietov in Compiler Development
Timur Safin
он не про ошибку, он утверждал про дизайн. но кажется (кажется) что synchronized семантика просто слегка перегружена для таких примитивов. И из несовместимости таких далеко идущих выводов делать было нельзя
Я имел дело с одной архитектурой, в которой можно было пересылать сложные запросы контроллеру памяти — самые настоящие программы, а не просто транзакции. Интересно, понравилось бы это Клику :)
источник

TS

Timur Safin in Compiler Development
Peter Sovietov
Я имел дело с одной архитектурой, в которой можно было пересылать сложные запросы контроллеру памяти — самые настоящие программы, а не просто транзакции. Интересно, понравилось бы это Клику :)
это какая архитектура? прям заинтригован
источник

PS

Peter Sovietov in Compiler Development
Timur Safin
это какая архитектура? прям заинтригован
Это был российский многоядерный процессор. Не работаю уже давно с ними и не хочется рекламировать, сейчас у них, на мой взгляд, не лучшие времена. (если очень интересно — напишу лично)
источник

TS

Timur Safin in Compiler Development
Peter Sovietov
Это был российский многоядерный процессор. Не работаю уже давно с ними и не хочется рекламировать, сейчас у них, на мой взгляд, не лучшие времена. (если очень интересно — напишу лично)
таки интересно!
источник

VT

Vasiliy Tereshkov in Compiler Development
Коллеги, а жив ли сейчас бэкенд QBE? Хорош ли? Можно ли на него полагаться?
источник

PS

Peter Sovietov in Compiler Development
Vasiliy Tereshkov
Коллеги, а жив ли сейчас бэкенд QBE? Хорош ли? Можно ли на него полагаться?
Однозначно сказать сложно, зависит о целей. QBE не самый компактный, не самый оптимизирующий и не самый поддерживаемый :)
источник

VT

Vasiliy Tereshkov in Compiler Development
Peter Sovietov
Однозначно сказать сложно, зависит о целей. QBE не самый компактный, не самый оптимизирующий и не самый поддерживаемый :)
Думаю о некоей фантазии на тему "C, каким он мог бы быть". В общем, о любительской разработке (я, увы, не профессионал), но о такой, чтобы не засмеяли. Тащить LLVM, который будет в сотни раз больше всего моего компилятора, как-то неприлично.
источник

PS

Peter Sovietov in Compiler Development
Vasiliy Tereshkov
Думаю о некоей фантазии на тему "C, каким он мог бы быть". В общем, о любительской разработке (я, увы, не профессионал), но о такой, чтобы не засмеяли. Тащить LLVM, который будет в сотни раз больше всего моего компилятора, как-то неприлично.
Я бы с удовольствием попробовал MIR Макарова. Но, очевидно, проект еще сырой и пришлось бы тесно общаться с разработчиком.
источник

VT

Vasiliy Tereshkov in Compiler Development
Peter Sovietov
Я бы с удовольствием попробовал MIR Макарова. Но, очевидно, проект еще сырой и пришлось бы тесно общаться с разработчиком.
Но ведь он только JIT?
источник

PS

Peter Sovietov in Compiler Development
Vasiliy Tereshkov
Но ведь он только JIT?
Насколько я знаю, там можно выбрать режим обычного компилятора — AOT. Но, кстати, не проще генерировать для Вашего языка целевой Си-код?
источник

VT

Vasiliy Tereshkov in Compiler Development
Peter Sovietov
Насколько я знаю, там можно выбрать режим обычного компилятора — AOT. Но, кстати, не проще генерировать для Вашего языка целевой Си-код?
И об этом тоже думаю. Но сначала хотелось бы приобрести хоть какой-то кругозор по теме лёгких бэкендов, чтобы окончательный выбор был осознанным. Ну и оставшийся с детства предрассудок: компилятор должен давать exe-файл :)
источник

M

MaxGraey in Compiler Development
можно еще libfirm попробовать. Но там с документацией вроде не очень
источник

PS

Peter Sovietov in Compiler Development
Vasiliy Tereshkov
И об этом тоже думаю. Но сначала хотелось бы приобрести хоть какой-то кругозор по теме лёгких бэкендов, чтобы окончательный выбор был осознанным. Ну и оставшийся с детства предрассудок: компилятор должен давать exe-файл :)
Ну вот QBE тоже не генерирует exe, а выдает ассемблерный листинг.
источник

PS

Peter Sovietov in Compiler Development
MaxGraey
можно еще libfirm попробовать. Но там с документацией вроде не очень
Для начинающего в графах там будет сложно разобраться :)
источник

M

MaxGraey in Compiler Development
У них там даже есть онлайн демонстрашка кодогенерации
https://kreacher.isla-de-muerta.de/~matze/online_compiler/index.php
источник

PS

Peter Sovietov in Compiler Development
Я был очень удивлен, когда прочел на HN следующее:

«> - IRs need to be intuitive to the people who work on the compiler. Sea of nodes is more challenging to think about than SSA over CFG.

I worked on V8 for awhile, which uses a sea of nodes representation. This point really resonates with me. I and many of my teammates never completely developed an intuition for the different edges in the graph. There was a lot of trial and error involved.
I remember reading this paper and thinking "wow! this is the solution to all the problems I never knew I had." The generality and simplicity of a single graph that does everything is appealing. But in practice, I think you'd most often be better with SSA over CFG.»
источник

M

MaxGraey in Compiler Development
MaxGraey
У них там даже есть онлайн демонстрашка кодогенерации
https://kreacher.isla-de-muerta.de/~matze/online_compiler/index.php
источник