Я пытаюсь отладить ошибку сегментации, которая проявляется, когда я компилирую один из моих исходных файлов, используя iort 13.1.3 с флагом оптимизации -O3. Если я использую -O2 для этого конкретного файла и -O3 для остальной части моего кода, все работает нормально. В результате я не могу скомпилировать с отладочными символами, так как проблема просто исчезает.
Чтобы попытаться определить, какая конкретная операция оптимизации вызывает это, я хотел бы, если возможно, добавить некоторые из более агрессивных оптимизаций, выполняемых с -O3, но не с -O2. Из ссылки 13.1.3:
Дополнительные оптимизации высокого уровня, по-видимому, включают:
- Слияние
- Заблокировать-развернуть-и-джем
- Свертывание операторов IF
Вероятно, есть еще несколько, но я не могу идентифицировать их как эксклюзивные для -O3 по ссылке. Есть ли флаги, которые я мог бы использовать с -O2, чтобы включить некоторые из этих более агрессивных опций по отдельности или отключить их, начиная с -O3?
-opt-report 3
? Он должен предоставить вам более подробную информацию о том, что именно компилятор пытается оптимизировать. - person sigma   schedule 04.07.2014