LLVM реально проектировало ОПГ, которых боялись все. Одно только то, что они не только не осуждают дружбу классов, но и насаждают ее, заставляет задуматься о многом....
Здравствуйте. На слайде "GEP: униформность доступа" (примерно 32:30) Синтаксис такой: = getelementptr ,.... А использование такое: %fst = i32* getelementptr.... (указан тип i32* перед GEP, хотя в описании синтаксиса нет никакого типа до GEP). А на следующем слайде "GEP для структуры" (33:57), использование уже такое: %eltpt = getptrelement... (один в один как в описании синтаксиса). Вопрос: Откуда взялся тип i32* и, что он означает?
55:28 Точка входа в программу, использующую glibc, называется _start (с одним подчёркиванем). 1:01:24 false последним аргументом FunctionType::get означает "нет varargs". 1:05:52 В Google принято писать конструкторы, которые не могут сломаться. Когда так сделать не получается, пишут метод Init(), который нужно вызвать, чтобы довести объект до готовности, а затем позвать на том, что он вернул, метод ok() - он должен вернуть true. Виртуальные вызовы в конструкторе запрещены. Рекомендуется писать статические фабричные методы вместо конструкторов. 1:27:07 😄
1. Она называется start. Подчёркивание впереди это манглирование конвенцией вызова. 2. Очень смешно 3. Конструктор который не может сломаться это оксюморон. Вероятно ещё и перегруженные операторы не могут сломаться? Топовые инженеры Гугл, например Т. Винтерс признавали неоднократно, что запрет исключений это чудовищная легаси ошибка, которая просто засохла в кодовой базе.
было бы супер выделить моменты, которые были висячими с предыдущей лекции, и те, которые понадобятся после окончания лекций по llvm. я понимаю, что для общего развития полезно, но нет никаких сил просмотреть всё, когда это не встречается в жизни(на работе)
57:36 - хотя мы и точно знаем что рано или поздно последовательность Коллатца сойдется к 1 для любого инта, результат в данной программе для больших чисел скорее всего не будет правильный из-за переполнения в процессе)
К слову это же отличное упражнение для математически настроенной аудитории: оценить такое максимальное стартовое число Коллатца, до которого переполнения знаковых четырех байт (условно инта) точно не произойдёт. И оценить вероятность переполнения в диапазоне от него до INT_MAX.
Тема - супер! Спасибо большое! ))
LLVM реально проектировало ОПГ, которых боялись все. Одно только то, что они не только не осуждают дружбу классов, но и насаждают ее, заставляет задуматься о многом....
Здравствуйте.
На слайде "GEP: униформность доступа" (примерно 32:30)
Синтаксис такой:
= getelementptr ,....
А использование такое:
%fst = i32* getelementptr.... (указан тип i32* перед GEP, хотя в описании синтаксиса нет никакого типа до GEP).
А на следующем слайде "GEP для структуры" (33:57), использование уже такое:
%eltpt = getptrelement... (один в один как в описании синтаксиса).
Вопрос:
Откуда взялся тип i32* и, что он означает?
55:28 Точка входа в программу, использующую glibc, называется _start (с одним подчёркиванем).
1:01:24 false последним аргументом FunctionType::get означает "нет varargs".
1:05:52 В Google принято писать конструкторы, которые не могут сломаться. Когда так сделать не получается, пишут метод Init(), который нужно вызвать, чтобы довести объект до готовности, а затем позвать на том, что он вернул, метод ok() - он должен вернуть true. Виртуальные вызовы в конструкторе запрещены. Рекомендуется писать статические фабричные методы вместо конструкторов.
1:27:07 😄
1. Она называется start. Подчёркивание впереди это манглирование конвенцией вызова.
2. Очень смешно
3. Конструктор который не может сломаться это оксюморон. Вероятно ещё и перегруженные операторы не могут сломаться? Топовые инженеры Гугл, например Т. Винтерс признавали неоднократно, что запрет исключений это чудовищная легаси ошибка, которая просто засохла в кодовой базе.
было бы супер выделить моменты, которые были висячими с предыдущей лекции, и те, которые понадобятся после окончания лекций по llvm. я понимаю, что для общего развития полезно, но нет никаких сил просмотреть всё, когда это не встречается в жизни(на работе)
57:36 - хотя мы и точно знаем что рано или поздно последовательность Коллатца сойдется к 1 для любого инта, результат в данной программе для больших чисел скорее всего не будет правильный из-за переполнения в процессе)
К слову это же отличное упражнение для математически настроенной аудитории: оценить такое максимальное стартовое число Коллатца, до которого переполнения знаковых четырех байт (условно инта) точно не произойдёт. И оценить вероятность переполнения в диапазоне от него до INT_MAX.
Ещё важное замечание. А не существует ли таких чисел при которых из-за переполнения происходило бы зацикливание?
LLVM IR❤️
Еще один датчанин - Anders Hejlsberg, отец C#, Typescript, Delphi, Turbo Pascal
36:55
+100500.