Size: a a a

Compiler Development

2020 January 01

PS

Peter Sovietov in Compiler Development
FORTRAN ONE LOVE
У интела очень хорошие оптимизирующие компиляторы
На тему очень хороших компиляторов советую серию заметок :) https://pharr.org/matt/blog/2018/04/18/ispc-origins.html
источник

FO

FORTRAN ONE LOVE in Compiler Development
Berkus Decker
В смысле каждый порт - написано заново?
Просто директивы препроцессора нужные юзаются
источник

FO

FORTRAN ONE LOVE in Compiler Development
Только препроцессор уровня убери комментарии тут, тут и еще здесь
источник

МБ

Михаил Бахтерев in Compiler Development
Peter Sovietov
1. Я не понимаю такого пиетета пред Intel и GPP. Есть embedded/mobile, есть ускорители (GPU, TPU...), даже в HPC все больше на ARM переходить стали. У Intel-то не так уж и велика ниша.
2. Но ведь все зависит опять от предметной области. Вы читали про берклиевских дварфов?
Ну это не пиетет. Люди решают реальные оборонные задачи. И они не против экспериментов. Прям рабочие группы создают по переписыванию одного кода в 100500 различных вариантах. Потом выбирают наилучшие. И там реально битва титанов. Оптимизации чуть ли не в машинных кодах в runtime (для gpu тоже). Процессоры они тоже не только Intel используют.
источник

МБ

Михаил Бахтерев in Compiler Development
Да и FPGA тоже используют. Как раз Таганрогские. Но о них ничего публично не говорят. Может, там и кодизайн есть. А может не получается.
источник

PS

Peter Sovietov in Compiler Development
Группа Каляева? Статьи-то есть, книги и на конференциях они выступают. Интересно у них поспрашивать, что мешает на СБИС перейти.
источник

МБ

Михаил Бахтерев in Compiler Development
А как? У них же идея в том, что машина универсальная
источник

PS

Peter Sovietov in Compiler Development
Так еще в советское времена идеи Евреинова подразумевали целый спектр архитектур: однородные среды, однородные структуры, однородные системы. И я намекаю на переход от сред к структурам. В современной терминологии — к своим CGRA.
источник

I

Ilmir in Compiler Development
Alexander Tchitchigin
GCC stands for GNU Compiler Collection - туда не то что C, C++, Objective-C и Fortran входят, принципиально есть поддержка и Go, и D, и даже Java. Так что... 🙂
Java уже все же.
источник

I

Ilmir in Compiler Development
Alexander Tchitchigin
Ага, в Go всё прекрасно - и рантайм, и компилятор, и тулинг, и библиотеки, и даже комьюнити неплохое. Одна проблемка - язык говно. 😂
Спасибо! Утащил в цитатник и уже процитировал зятю-гоферу. Он, к сожалению, не разделяет моих взглядов о языках программирования. Не оценил.
источник

M

MaxGraey in Compiler Development
Ilmir
Спасибо! Утащил в цитатник и уже процитировал зятю-гоферу. Он, к сожалению, не разделяет моих взглядов о языках программирования. Не оценил.
Go это как Java только наоборот) И у обоих девеловеры почти что фанатики
источник

I

Ilmir in Compiler Development
Peter Sovietov
Вообще забавно. В интернете все друг другу советуют "книгу дракона", а в коде реальных компиляторов — ссылки на Купера :)
источник

PS

Peter Sovietov in Compiler Development
Судя по коду, ссылка ведет на самое первое издание, из 70-х? :) Алгоритм-то настолько азбучный, что сноска выглядит несколько странно.
источник

PS

Peter Sovietov in Compiler Development
Любопытно, что классический вариант от Гэри Килдалла из далекого 1973 года уже являлся более продвинутым. Скорее всего, в книге дракона о worklist-вариантах вообще не упоминалось. А вот у Клика на них очень многое построено.

Любителям истории (как я) будет любопытно узнать, что Килдалл не первым предложил саму идею итеративного анализа потоков данных: "Its origins go back to at least 1961, when it was used by Vyssotsky in a Fortran compiler".

Но на самом деле простейший вариант backward-анализа я встречал еще в советском сборнике  "Проблемы кибернетики" из 50-х.
источник

IT

Ilya Tarasov in Compiler Development
Михаил Бахтерев
Да и FPGA тоже используют. Как раз Таганрогские. Но о них ничего публично не говорят. Может, там и кодизайн есть. А может не получается.
У них COLAMO - собственная разработка для ЯВУ->RTL
источник

PS

Peter Sovietov in Compiler Development
А там действительно backward-анализ? По коду возникли сомнения. Оно, конечно, работать будет в любом случае, но...
источник

I

Ilmir in Compiler Development
Peter Sovietov
А там действительно backward-анализ? По коду возникли сомнения. Оно, конечно, работать будет в любом случае, но...
Да. Там действительно задом наперед. Массив фреймов заполняется финальными значениями задом наперед.
источник

PS

Peter Sovietov in Compiler Development
Ilmir
Да. Там действительно задом наперед. Массив фреймов заполняется финальными значениями задом наперед.
А сам массив узлов CFG отсортирован? Это должно быть сделано в соответствии с тем, как в данном виде анализа идет распространение информации.
источник

I

Ilmir in Compiler Development
Peter Sovietov
А сам массив узлов CFG отсортирован? Это должно быть сделано в соответствии с тем, как в данном виде анализа идет распространение информации.
Спасибо! Завтра посмотрю подробно этот алгоритм в других источниках и, если нужно, оптимизирую. Хотя он пока и не хотспот.
источник

МБ

Михаил Бахтерев in Compiler Development
Вот честно, не понимаю лучей презрения в сторону Go. Знаю множество отличных приложений, написанных на нём. Вечно задаюсь вопросом: почему это не критерий качества?
источник