Size: a a a

Compiler Development

2021 April 03

KR

K R in Compiler Development
Alexander Tchitchigin
Так можно начать жаловаться, что нужно знать семантику языка, на котором пишешь. Как будто для C/C++ знать что там UB, а что -- нет, не обязательно.

Мне непонятно, зачем заново договариваться с новой версией компилятора, если можно сохранить (закешировать) оптимизированную версию?
Как известно, семантику С++ знать невозможно. И да, программисты с 95% знанием где там UB, а где - нет стоят 300к вечнозелёных в год.
источник

[

[BRM]White Rabbit in Compiler Development
Alexander Tchitchigin
Нет, Вам в @procxx 😄
был там, но те приняли раст
источник

DF

Dollar Føølish in Compiler Development
Я смотрю Александр задел за больное ) ладно не буду офтопить
источник

IK

Ivan Kochurkin in Compiler Development
smthidk
у меня такой довольно нубский вопрос:
есть тестовое задание, в нем нужно ручками написать парсер языка по заданной грамматике
грамматика эта леворекурсивная, поэтому не хочется выдумывать костыли и писать для нее рекурсивный спуск, но при этом писать LR - еще хуже
скажите по своему опыту (возможно, по опыту проверки тестовых заданий): будет ли ок, если я видоизменю изначальную грамматику так, чтобы в ней не было левой рекурсии? или корректнее работать с тем, что дали изначально?
Почему бы не спросить у потенциальных работодателей? По идее обратная связь, какие вопросы вы зададите тоже там должно учитываться.
источник

AT

Alexander Tchitchigi... in Compiler Development
K R
Как известно, семантику С++ знать невозможно. И да, программисты с 95% знанием где там UB, а где - нет стоят 300к вечнозелёных в год.
Это считается аргументом ЗА ручные оптимизации на Языке Ассемблера? 😂
источник

kO

kikimych O_O in Compiler Development
Alexander Tchitchigin
Тогда непонятно, почему Вы уверены, что это "хрупко" -- раз, и для низкоуровневой неинтерактивной оптимизации квалификация нужна ещё выше -- это два. 🤷‍♀
Ну запускаете шланг м —vectorize-loop, а дальше objdump
источник

kO

kikimych O_O in Compiler Development
И тут два варианта, или векторизовал то, что нам надо или не т
источник

M

MrSmith in Compiler Development
K R
То есть, да, диалог есть уже сейчас. 😊
Проблемы особой апи написать для диалога нет
источник

M

MrSmith in Compiler Development
Что нужно - установить пайплан, установить id конкретных оптимизаций
источник

M

MaxGraey in Compiler Development
Alexander Tchitchigin
Это считается аргументом ЗА ручные оптимизации на Языке Ассемблера? 😂
у ассемдлерописателей, которые пишут на асме ради производительности аргументы обычно проще - я мол, знаю как надо оптимизировать, а эти компиляторы тупые и  кроме свертки констант ничерта не умеют
источник

M

MrSmith in Compiler Development
Уже хватает для чего то интересного - НО, вполне было бы довольно интересно поупражнятся и составить такое апи более подробно с учетом всех хотелок
источник

M

MrSmith in Compiler Development
Alexander Tchitchigin
Так можно начать жаловаться, что нужно знать семантику языка, на котором пишешь. Как будто для C/C++ знать что там UB, а что -- нет, не обязательно.

Мне непонятно, зачем заново договариваться с новой версией компилятора, если можно сохранить (закешировать) оптимизированную версию?
Изменится дерево оптимизаций
источник

M

MrSmith in Compiler Development
Может получится так что желаемый результат окажется другим
источник

DF

Dollar Føølish in Compiler Development
Предлагаете иметь компилер как single source of truth?
источник

M

MrSmith in Compiler Development
Если расшифруете то чего нибудь предложу
источник

M

MrSmith in Compiler Development
Ну или нет немного не понимаю о чем вы
источник

M

MrSmith in Compiler Development
Я давно для этого ишу себе интересуюшихся людей, мне очень нравится что тут пошел диалог о управляемых компиляторах
источник

DF

Dollar Føølish in Compiler Development
Ну чтобы не соваться в то что делает компилятор поскольку например у него дерево может измениться
источник

M

MrSmith in Compiler Development
Нет
источник

M

MrSmith in Compiler Development
Я говорю о том что вы хотите иметь гарантированный анролинг вы в конфигурацию копиляции добавляете что то вроде disable: id. которое открючает луп сплитинг и в результате у вас проиходит для конкретной функции только анролинг, в следуюший версии оптимизации немного меняют и у вас помимо сплита еше и луп фьюжен а он не нужен в итоге вы получаете другой результат сборки
источник