如何知道我的编译器自动完成哪些优化

时间:2010-07-23 10:46:08

标签: c++ c

我正在浏览此链接Will it optimize,并想知道我们怎么知道特定编译器做了哪些优化。

就像VC8.0将if-else语句转换为switch-case一样? 这些信息是否可以在msdn上找到?

7 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

这取决于您为编译器选择的优化级别。

你可以找到一篇关于它的非常好的文章here

答案 2 :(得分:0)

首先,如果进行了优化,那么您的程序通常应该更快地运行。之后,您可以检查反汇编代码以找出执行了哪种优化。

答案 3 :(得分:0)

我对VC8.0一无所知,所以我不确定你将如何访问这些信息。但是,如果您通常对正在进行并希望进行实验的各种优化感兴趣,建议您使用LLVM。您可以查看从默认C前端生成的未经优化的,反汇编的字节代码,然后在其上运行各种优化器传递以查看每次的效果。因为它是一个更好的,抽象的汇编代码,所以通过代码以及什么是机器特定的优化,可以更容易地弄清楚什么是可导出的优化。

答案 4 :(得分:0)

答案 5 :(得分:0)

答案 6 :(得分:0)