Битовые маски #1. Разработка компиляторов / LLVM backend для RISC-V / Kotlin компилятор

แชร์
ฝัง
  • เผยแพร่เมื่อ 10 พ.ย. 2024

ความคิดเห็น • 15

  • @IshuckShow
    @IshuckShow ปีที่แล้ว +5

    Еее, респект за контент, бэкенд в массы!

    • @ultimate_engineer
      @ultimate_engineer  ปีที่แล้ว +1

      Спасибо! Скоро будет второй выпуск ;)

  • @Max__O_o
    @Max__O_o ปีที่แล้ว +3

    Спасибо! Было было интересно.

    • @ultimate_engineer
      @ultimate_engineer  ปีที่แล้ว

      Спасибо, нам очень приятно!

  • @vladimiro3059
    @vladimiro3059 ปีที่แล้ว +6

    Том Круз в с++😂😂😂

  • @ГеннадийФомин-л3й
    @ГеннадийФомин-л3й ปีที่แล้ว

    Тоже занимаюсь компиляторами, только не для LLVM, а для виртуальной машины (исполнитель запросов колоночной базы, что-то отдаленно напоминающее интерпретатор SQLite). В свое время случайно узнал про SSA из какой-то статьи - для меня это было настолько неожиданное открытие, что я две недели переписывал генерацию кода в эту форму. Оказалось - мега удобная штука. Я бы послушал про оптимизации, основанные на IR. С dead code и удалением дубликатов - понятно, какие еще оптимизации применяются и как они работают, как определяется момент завершения цикла оптимизации?

    • @ultimate_engineer
      @ultimate_engineer  ปีที่แล้ว +2

      Спасибо за вопрос! SSA - широко известная форма, хотя и не все компиляторы её используют, но она действительно упрощает часть оптимизаций. Про оптимизации, выполняющиеся в middle-end компиляторов можно почитать в классических книгах, помимо широко известного Dragon book, можно еще посоветовать Engineering: A Compiler www.amazon.com/Engineering-Compiler-Keith-Cooper/dp/012088478X (Modern Compiler Design link.springer.com/book/10.1007/978-1-4614-4699-6 еще например).
      Также можно посмотреть на документацию LLVM с описанием базовых оптимизирующих проходов, которые в нем есть llvm.org/docs/Passes.html#transform-passes.
      Завершение каждой оптимизации - очень индивидуальный вопрос, построенный часто на различных эвристиках, поверенных на определенном наборе бенчмарков. Это может быть завершение поиска всех подходящих для данной оптимизации случаев, использование различных thresholdов, анализ того насколько разрослось CFG и т.д.
      Тема оптимизаций очень обширная, и хотя мы ещё, конечно, будем разговаривать про компиляторы, но покрыть всё детально невозможно в таком формате, поэтому если есть заинтересованность, рекомендуем почитать литературу и посмотреть на код LLVM/GCC и других компиляторов (большинство open-source).

  • @DGT67
    @DGT67 ปีที่แล้ว +1

    в каком месте на данный момент находится передовая мысль разработчиков архитектуры? кто займет вершину надолго в ближайшем будущем ? ренессанс cisc возможен?)

    • @DmitryPetrov
      @DmitryPetrov ปีที่แล้ว +3

      Кто займёт вершину - это вопрос не технический, а скорее экономический и политический. RISC-V может сильно потеснить тот же ARM, но если это случится, то, скорее всего, не потому, что он такой замечательный с архитектурной точки зрения.
      Сейчас грань между RISC и CISC довольно сильно размыта. CISC-процессоры внутри имеют RISC-подобные конвейеры, исполняющие микрооперации. RISC-процессоры получают "сложные" инструкции (пример: векторые инструкции в RISC-V), переменную длину команд с особенностями кодирования (примеры из RISC-V: RVC, крипто-расширения) и прочие фичи, которые скорее похожи на CISC. Когда-то память микрокода была важна, и это деление было важным. Сейчас скорее важны кеши, параллелизм уровня инструкций и предсказание переходов.

    • @z140140
      @z140140 ปีที่แล้ว

      пока похоже что apple, amd и intel будут делать перескакивать друг через друга снова как в 90-х. и ещё в этот клуб пытается попасть arm, а может будут и другие претенденты

  • @skobkinru
    @skobkinru ปีที่แล้ว

    Подкаст не нашёлся через AntennaPod. Его нет на подкаст-платформах?

    • @ultimate_engineer
      @ultimate_engineer  ปีที่แล้ว

      Наш подкаст Битовые маски уже доступен на большинстве площадок: bitmask.mave.digital/

    • @skobkinru
      @skobkinru ปีที่แล้ว

      @@ultimate_engineer Благодарю. Вот теперь он нашёлся через AntennaPod. Подписался, послушаем. Спасибо!

  • @IshuckShow
    @IshuckShow ปีที่แล้ว +3

    Правда для бэкендеров они слишком много улыбаются, как-то не натурально получается

    • @ultimate_engineer
      @ultimate_engineer  ปีที่แล้ว +2

      Дмитрий просто только что после отпуска - зарядил коллег своим отдохнувшим видом :)