Открыть список
Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

[CppCon 2017] Matt Godbolt: Что мой компилятор сделал для меня?

ПрограммированиеC++КомпиляторыОтладка
Tutorial

Продолжение цикла обзорных статей с конференции CppCon 2017.



На этот раз очень интересное выступление от автора Compiler Explorer (godbolt.org). Обязательно читать всем, кто для быстроты умножает на 2 с помощью сдвига (по крайней мере, на x86-64). Если вы знакомы с ассемблером x86-64, то можете перемотать до разделов с примерами ("Умножение", "Деление" и т.д). Далее слова автора. Мои комментарии в квадратных скобках курсивом.


Моя цель сделать так, чтобы вы не боялись ассемблер, это полезная вещь. И использовали его. Не обязательно все время. И я не говорю, что вы должны все бросить и учить ассемблер. Но вы должны уметь просмотреть результат работы компилятора. И когда вы это сделаете, то оцените, как много работы проделал компилятор, и какой он умный.


Читать дальше →
Всего голосов 31: ↑31 и ↓0 +31
Просмотры14.7K
Комментарии 3

О некоторых проблемах микрооптимизаций

ПрограммированиеC++Компиляторы
Из песочницы

Предыстория


Как-то раз у меня с коллегой завязался разговор по поводу улучшения инструментария для работы с битовыми флагами в перечислениях C++. На тот момент у нас уже была функция IsEnumFlagSet, принимающая на вход первым аргументом тестируемую переменную, вторым — набор флагов для проверки. Чем же она лучше старого доброго побитового И?

if (IsEnumFlagSet(state, flag)) 
{

}
// vs
if (state & flag) 
{

}
Читать дальше →
Всего голосов 20: ↑19 и ↓1 +18
Просмотры6K
Комментарии 70