нагуглили. А посмотреть пытались? Там рассматриваются оптимизации довольно редкие типа loop fusion и adce. Уважаемый автор отличный профессионал я с ним лично знаком. Скрести на это выступление ему (я полагаю) пришлось, что называется, по сусекам. Но не спрашивал.
Эм вы уверены что смотрели? Не хочу заниматься бессмысленным таканием в секунды в видео, но вы согласны же с тем что существует два типа инструкций call/invoke, и чтобы сделать call компилятор должен доказать для функции некоторые свойства, чего он может не сделать и это повлияет на большой класс оптимизаций, в том числе инлайн, который оказывает большое влияние на перф
В LLVM действительно есть поддержка call и invoke. Второе служит для вызова с возможными исключениями. Большого влияния на перф и на инлайн этого всего я лично не видел. Допускаю что бывает, но что называется и что. Проверка кода ошибки это вообще лишний бранч всегда.
Во-первых не всегда, во вторых процессоры достаточно хорошо справляются со спекулятивным исполнением таких бранчей. В принципе вы можете привести пример бенчмарков где в конкретной задаче код на эксепшенах даёт преимущество по перфу Если говорить об областях с которыми я знаком (базы данных, распределенные системы, рендер) ситуации практически всегда обратная, вероятно причина в том, что код возврата явен и прост, а эксепшены обладают множеством подводных камней, и в совокупности имеют довольно печальную картину
Ну да в четыре утра я вам полезу за бенчмарками, это смешно. Вы мне и так спать не даёте этой бессмысленной и утомительной пикировкой.
Обсуждают сегодня