Базовый курс C++ (MIPT, ILab). Lecture 21. LLVM, часть 1

แชร์
ฝัง
  • เผยแพร่เมื่อ 16 ม.ค. 2025

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

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

    Тема - супер! Спасибо большое! ))

  • @Юлий-ы5г
    @Юлий-ы5г 2 ปีที่แล้ว +4

    LLVM реально проектировало ОПГ, которых боялись все. Одно только то, что они не только не осуждают дружбу классов, но и насаждают ее, заставляет задуматься о многом....

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

    Здравствуйте.
    На слайде "GEP: униформность доступа" (примерно 32:30)
    Синтаксис такой:
    = getelementptr ,....
    А использование такое:
    %fst = i32* getelementptr.... (указан тип i32* перед GEP, хотя в описании синтаксиса нет никакого типа до GEP).
    А на следующем слайде "GEP для структуры" (33:57), использование уже такое:
    %eltpt = getptrelement... (один в один как в описании синтаксиса).
    Вопрос:
    Откуда взялся тип i32* и, что он означает?

  • @kmeaw
    @kmeaw 2 หลายเดือนก่อน

    55:28 Точка входа в программу, использующую glibc, называется _start (с одним подчёркиванем).
    1:01:24 false последним аргументом FunctionType::get означает "нет varargs".
    1:05:52 В Google принято писать конструкторы, которые не могут сломаться. Когда так сделать не получается, пишут метод Init(), который нужно вызвать, чтобы довести объект до готовности, а затем позвать на том, что он вернул, метод ok() - он должен вернуть true. Виртуальные вызовы в конструкторе запрещены. Рекомендуется писать статические фабричные методы вместо конструкторов.
    1:27:07 😄

    • @tilir
      @tilir  2 หลายเดือนก่อน

      1. Она называется start. Подчёркивание впереди это манглирование конвенцией вызова.
      2. Очень смешно
      3. Конструктор который не может сломаться это оксюморон. Вероятно ещё и перегруженные операторы не могут сломаться? Топовые инженеры Гугл, например Т. Винтерс признавали неоднократно, что запрет исключений это чудовищная легаси ошибка, которая просто засохла в кодовой базе.

  • @frest4070
    @frest4070 3 หลายเดือนก่อน

    было бы супер выделить моменты, которые были висячими с предыдущей лекции, и те, которые понадобятся после окончания лекций по llvm. я понимаю, что для общего развития полезно, но нет никаких сил просмотреть всё, когда это не встречается в жизни(на работе)

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

    57:36 - хотя мы и точно знаем что рано или поздно последовательность Коллатца сойдется к 1 для любого инта, результат в данной программе для больших чисел скорее всего не будет правильный из-за переполнения в процессе)

    • @tilir
      @tilir  2 ปีที่แล้ว

      К слову это же отличное упражнение для математически настроенной аудитории: оценить такое максимальное стартовое число Коллатца, до которого переполнения знаковых четырех байт (условно инта) точно не произойдёт. И оценить вероятность переполнения в диапазоне от него до INT_MAX.

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

      Ещё важное замечание. А не существует ли таких чисел при которых из-за переполнения происходило бы зацикливание?

  • @volodiaagadjanov7087
    @volodiaagadjanov7087 2 ปีที่แล้ว

    LLVM IR❤️

  • @demokraken
    @demokraken 11 หลายเดือนก่อน +1

    Еще один датчанин - Anders Hejlsberg, отец C#, Typescript, Delphi, Turbo Pascal

  • @leonid998
    @leonid998 2 ปีที่แล้ว

    36:55
    +100500.