История изменений
Исправление MOPKOBKA, (текущая версия) :
видя что там одни статики, компилятор заинлайнил функции, понял что случай тривиальный и выбросил весь код
Именно так работает lto, функции превращаются в статические для компилятора, и он проводит глубокую оптимизацию.
ты делаешь ставку на тривиально упрощаемый код, который в нормальной проге и существовать не будет.
Не знаю как ты сделал такой вывод, я просто показываю что компилятор таким простым циклом не запутать, он анализирует очень много, и может еще больше, и если эту тему развить, то fwrapv не будет сказываться на производительности программ в значимых числах.
Конечно, в некоторых местах нельзя будет отказаться от проверок, но я считаю 1) таких мест будет крайне мало, 2) проверкам в таком сложном коде самое место, потому что программист его скорее всего тоже не сможет выполнить в общем случае в голове.
Попробуй лучше предоставить код, где проверка ну прям лишняя, а статически от нее не отказаться.
Исправление MOPKOBKA, :
видя что там одни статики, компилятор заинлайнил функции, понял что случай тривиальный и выбросил весь код
Именно так работает lto, функции превращаются в статические для компилятора, и он проводит глубокую оптимизацию.
ты делаешь ставку на тривиально упрощаемый код, который в нормальной проге и существовать не будет.
Не знаю как ты сделал такой вывод, я просто показываю что компилятор таким простым циклом не запутать, он анализирует очень много, и может еще больше, и если эту тему развить, то fwrapv не будет сказываться на производительности программ в значимых числах.
Конечно, в некоторых местах нельзя будет отказаться от проверок, но я считаю 1) таких мест будет крайне мало, 2) проверкам в таком сложном коде самое место, потому что программист его скорее всего тоже не сможет выполнить в общем случае в голове.
Исходная версия MOPKOBKA, :
видя что там одни статики, компилятор заинлайнил функции, понял что случай тривиальный и выбросил весь код
Именно так работает lto, функции превращаются в статические для компилятора, и он проводит глубокую оптимизацию.
ты делаешь ставку на тривиально упрощаемый код, который в нормальной проге и существовать не будет.
Не знаю как ты сделал такой вывод, я просто показываю что компилятор таким простым циклом не запутать, он анализирует очень много, и может еще больше.
Конечно, в некоторых местах нельзя будет отказаться от проверок, но я считаю 1) таких мест будет крайне мало, 2) проверкам в таком сложном коде самое место, потому что программист его скорее всего тоже не сможет выполнить в общем случае в голове.