Существует множество настроек оптимизации , начиная с tree. Некоторые из них:
tree
-ftree-builtin-call-dce -ftree-ccp -ftree-ch -ftree-copyrename -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-ter
Что особенного в этих флагах?
Все они работают с древовидным представлением вашего исходного кода.
Не совсем точно, как GCC это делает, но в целом компилятор проанализирует ваш код и превратит его в абстрактное синтаксическое дерево , дерево разбора или похожая структура. Эти оптимизации работают на этом дереве. Позже дерево будет использоваться для генерации машинного кода.