Интерполяция между флагами оптимизации ifort -O2 и -O3

Я пытаюсь отладить ошибку сегментации, которая проявляется, когда я компилирую один из моих исходных файлов, используя iort 13.1.3 с флагом оптимизации -O3. Если я использую -O2 для этого конкретного файла и -O3 для остальной части моего кода, все работает нормально. В результате я не могу скомпилировать с отладочными символами, так как проблема просто исчезает.

Чтобы попытаться определить, какая конкретная операция оптимизации вызывает это, я хотел бы, если возможно, добавить некоторые из более агрессивных оптимизаций, выполняемых с -O3, но не с -O2. Из ссылки 13.1.3:

https://software.intel.com/sites/products/documentation/doclib/stdxe/2013/composerxe/compiler/fortran-mac/

Дополнительные оптимизации высокого уровня, по-видимому, включают:

  • Слияние
  • Заблокировать-развернуть-и-джем
  • Свертывание операторов IF

Вероятно, есть еще несколько, но я не могу идентифицировать их как эксклюзивные для -O3 по ссылке. Есть ли флаги, которые я мог бы использовать с -O2, чтобы включить некоторые из этих более агрессивных опций по отдельности или отключить их, начиная с -O3?


person Chris Whittleston    schedule 03.07.2014    source источник
comment
Какие варианты проверки ошибок вы пробовали?   -  person Vladimir F    schedule 04.07.2014
comment
Вы пытались скомпилировать с помощью -opt-report 3? Он должен предоставить вам более подробную информацию о том, что именно компилятор пытается оптимизировать.   -  person sigma    schedule 04.07.2014


Ответы (1)


В общем, нет, нет отдельных опций для включения и отключения определенных оптимизаций. Иногда мы добавляли опции для отключения определенных оптимизаций, когда они помогают определенным тестам, но это необычно. Если вам по-прежнему нужна помощь, обратитесь в поддержку Intel — у нас есть инструменты для дальнейшего уточнения причину, которая иногда является ошибкой компилятора. Однако перед этим я бы посоветовал вам сначала попробовать программу с более новым компилятором. 14.0.3 актуальна.

person Steve Lionel    schedule 25.07.2014