Существует три уровня понимания того, как работает SIMD (ну, по крайней мере, на данный момент я нахожусь на 3-м уровне): Компиляторы умны! Они автоматически векторизуют весь код! Компиляторы тупы, автоматическая векторизация хрупка, ее очень легко нарушить несвязанными…
PSA (Project Specific Autocomplete) — плагин для продуктов IntelliJХочу представить Вашему вниманию плагин для продуктов IntelliJ, который позволяет создавать:Автокомплит на основе кода Вашего проектаПереходы к определению элемента синтаксического дерева (на основе кода Вашего проекта)Шаблоны кода, состоящие из одного файла (на основе кода Вашего проекта)Шаблоны кода. состоящие из нескольких файлов (на основе кода Вашего проекта)//Ссылка на репорзиторий здесь. Для подробностей, прошу под кат. Читать далее
Как часто вы слышали: «Не доверяй компилятору, пиши вручную»? Похоже, эту идеологию пора сдавать в архив.Автор специально собрал примеры, в которых «умный» код современного C++ либо проигрывает наивному, либо не даёт выигрыша, но при этом ухудшает читаемость и мешает оптимизатору.
Компиляторы то и дело удивляют меня очень хитрыми трюками. Когда я впервые увидел эту оптимизацию, то едва смог поверить в её реальность. Я изучал оптимизацию циклов и написал простую функцию, суммирующую все числа до заданного значения... Читать далее