поведению, как это возможно в C++ с -O3? Например:
opt-level = 'z' # Optimization level.
lto = true # Sets link-time optimization.
codegen-units = 1 # Number of code generation units.
и т.д.
Разумеется, когда в коде нет явного изврата или оптимизаций через UB (хотя для подобного есть явные типы).
теоретически- вполне. просто потому что баги бывают везде - и в самом rustc, и в LLVM. Хз только в каких случаях это можно как UB будет классифицировать
Не. UB определяется спецификацией языка. Это просто баги компилятора.
Ну, у тебя может же получиться, что баг в rustc приводит к генерации кода, вызывающего UB на уровне LLVM, например, нет?
насколько я знаю в релиз раст и так максимально оптимзирует. Я юзаю лто и кодген юнитс, больше ничо особо не надо
вопрос был про то, как не меняя код выжать перфоманс одними флагами. Ответ вроде уже у человека был изначально, новых магических флагов нет, не считая вроде PGO
На проявление багов компилятора может влиять абсолютно что угодно.
я так понимаю, вопрос в том, связана ли вероятность появления багов с уровнем оптимизации
Может. Сборка в релизе отключает проверку арифметического переполнения: в релизе - это two's complement, в дебаг-билде - паника.
Обсуждают сегодня