Выбор флагов оптимизации gcc, эквивалентных -O1

У меня есть небольшая программа, которая работает намного лучше при компиляции с-O1 в отличие от без оптимизации. Мне интересно знать, какие оптимизации, выполняемые компилятором, приводят к такому ускорению.

То, что я думал, я бы сделал, это взять список флагов оптимизации, которые-O1 эквивалентно (получено как из справочной страницы, так и изgcc -Q -v), а затем выбрать в списке, чтобы увидеть, как меняется производительность.

Я обнаружил, что даже включение всего списка оптимизаций не дает мне программу, которая работает так же хорошо, как оптимизированная с -O1.

Другими словами

gcc -O0 -fcprop-registers -fdefer-pop -fforward-propagate -fguess-branch-probability \
    -fif-conversion -fif-conversion2 -finline -fipa-pure-const -fipa-reference \
    -fmerge-constants -fsplit-wide-types -ftoplevel-reorder -ftree-ccp -ftree-ch \
    -ftree-copy-prop -ftree-copyrename -ftree-dce -ftree-dominator-opts -ftree-dse \
    -ftree-fre -ftree-sink -ftree-sra -ftree-ter myprogram.c

это не то же самое, что

gcc -O1 myprogram.c

Я использую GCC версии 4.5.3

Есть ли что-то еще, что-O1 не входит ли это в список флагов оптимизации, связанных с-O1 в руководстве?

Ответы на вопрос(2)

Ваш ответ на вопрос