优化级-fdevirtualize
,-fdevirtualize-speculatively
和-O2
都启用了-O3
和-Os
标记。
-fdevirtualize
尝试将呼叫转换为虚拟功能以直接呼叫。这是在程序内和程序间作为一部分完成的 间接内联(-findirect-inlining)和过程间常量 传播(-fipa-cp)。在-O2,-O3,-Os等级启用。
-fdevirtualize-speculatively
尝试将对虚拟功能的呼叫转换为推测性直接呼叫。基于类型继承图的分析, 为给定的调用确定可能的目标集合。如果是的话 较小的,最好是1号,将呼叫改为有条件的 决定直接和间接呼叫。投机电话 启用更多优化,例如内联。当它们似乎毫无用处 经过进一步优化后,它们将转换回原始版本 形式。
我想知道在我们使用这些标志时,使用final
说明符是否使程序更有效率?