История изменений
Исправление hateyoufeel, (текущая версия) :
Есть пруфы того, что это реально увеличивает производительность где-то кроме синтетических тестов?
Знаковая арифметика без UB - это gmplib, и то условно. Сравнивай.
Знаковая арифметика без UB включается в gcc/clang ключиком -fwrapv
, и он включен у большой части впопенсорцного софта, включая ядро.
-fwrapv
This option instructs the compiler to assume that signed arithmetic overflow of addition, subtraction and multiplication wraps around using twos-complement representation. This flag enables some optimizations and disables others.
Вопрос в том, почему не сделать это документированным дефолтом в стандарте. Потому что кроме twos-complement арифметики сейчас нигде и нет, другие платформы давно сдохли и Си на них не работает.
Исправление hateyoufeel, :
Есть пруфы того, что это реально увеличивает производительность где-то кроме синтетических тестов?
Знаковая арифметика без UB - это gmplib, и то условно. Сравнивай.
Знаковая арифметика без UB включается в gcc/clang ключиком -fwrapv
, и он включен у большей части впопенсорцного софта, включая ядро.
-fwrapv
This option instructs the compiler to assume that signed arithmetic overflow of addition, subtraction and multiplication wraps around using twos-complement representation. This flag enables some optimizations and disables others.
Вопрос в том, почему не сделать это документированным дефолтом в стандарте. Потому что кроме twos-complement арифметики сейчас нигде и нет, другие платформы давно сдохли и Си на них не работает.
Исходная версия hateyoufeel, :
Есть пруфы того, что это реально увеличивает производительность где-то кроме синтетических тестов?
Знаковая арифметика без UB - это gmplib, и то условно. Сравнивай.
Знаковая арифметика без UB включается в gcc/clang ключиком -fwrapv
, и он включен у большей части впопенсорцного софта, включая ядро.
-fwrapv
This option instructs the compiler to assume that signed arithmetic overflow of addition, subtraction and multiplication wraps around using twos-complement representation. This flag enables some optimizations and disables others.