поведению, как это возможно в 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, в дебаг-билде - паника.
Обсуждают сегодня