Флаги множественной оптимизации GCC

У меня есть устаревший код, который компилируется как с -02, так и с -03. . Из man-файла GCC я могу гарантировать, что:

-O3 включает все оптимизации, указанные в -O2, а также включает -finline-functions, -funswitch-loops, -fpredictive-commoning, options.

Итак, на первый взгляд может показаться вероятным, что включение обоих этих флагов будет таким же, как и просто -O3. Однако это заставило меня задуматься, что в этом случае правильнее всего поступить, поскольку -O2, вероятно, является «более безопасным» вариантом. Очевидно, это простой вопрос: скомпилировать какой-то код со всеми перестановками и посмотреть, что происходит в каждом случае, но мне было интересно, знает ли кто-нибудь, есть ли у GCC конкретная политика в отношении указания нескольких уровней оптимизации, и если да, то какие? в чем причина этого?

18
задан ltc 5 April 2011 в 19:18
поделиться