да хуй там плавал! как раз для low-level оно с этим говном и непригодно. абсолютно. полностью. вообще. о какой, нахуй, эффективности для лов-левела может идти речь, если сраное переполнение целых — не определено? сдвиг отрицательного значения влево — не определён? bitwise and над отрицательным целым не определена? и так далее, далее, далее…
ёбаную жабу (про которую оно там дальше упоминает) ПРОЩЕ скомпилить в эффективный машинный код, чам современную всратосишечку. для всратосишечки надо писать охулиард бесполезных проверок на UB — которые Дохуя Умный Компилятор всё равно выкинет, потому что «UB не бывает и быть не может никогда».
вот, например: «int n; … if (n >= 0) n &= 0x1f;». все в курсе, что компилятор — в принципе — Имеет Право к хуям выкинуть тут проверку? а потому что хуй знает, что будет с таким «&» для отрицательных целых. короче, не может этого быть — а потому и проверка не нужна. да, гоцэцэ ещё не дошёл до такого маразма (по крайней мере, не всегда), но я уверен, что дойдёт.
впрочем, если я верно помню, то «&» с отрицательными целыми — это unspecified, а не undefined. так что есть очень-очень маленькая надежда, что хотя бы это не сломают.
вообще, никакого «undefined» в спецификациях языка быть не должно. никогда-никогда. максимум — «machine-specific». хуже это не сделает (куда уж хуже-то?), но хотя бы отобьёт у говноавторов говнокомпиляторов охоту «аптимизироваеть» то, что трогать нельзя. все машино-специфичные вещи должны оптимизироваться с учётом того, как это работает на целевой архитектуре. хотите переносимый код? тогда не используйте машино-специфичных вещей. и флаг в компиляторе пусть будет, который предупреждает о такой хуйне.
и да: кукареки говноавторов говнокомпиляторов про то, что подобные оптимизации Сильно Ускоряют Код — булшит. разные независимые исследования показывают, что всех ускорений — в районе «1.1» максимум. и даже это можно нивелировать, если чуть-чуть поправить руками исходный код (например, использовать `size_t` для индексов циклов, чтобы не приходилось постоянно делать sign extension). зато сломать вполне рабочую программу такие «оптимизации» могут на ура. и, кстати, сделать программу МЕНЕЕ надёжной: интересующиеся без труда найдут описания разных случаев, когда Дохуя Умный Компилятор убирал проверки, которые считал ненужными, и этим самым делал из надёжной программы сломаную.
да, я знаю, что я об этом писал уже кучу раз. ничего страшного: истина от повторения не тускнеет.