在使用启用了优化的编译器进行C++应用或库的编译时,例如使用
-O3
参数的gcc,是否有一种方法可以列出所应用的优化?我的意思是,不需要比较实际的字节码。这将是一个有趣的学习方式。-O3
参数的gcc,是否有一种方法可以列出所应用的优化?我的意思是,不需要比较实际的字节码。这将是一个有趣的学习方式。来自http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html
-fopt-info
系列开关会导致优化器将信息转储到stderr
(或者您喜欢的文件)。特别是,-fopt-info-missed
可以用于查看为什么无法应用优化。
有相当多的不同组合可用。从链接的页面中:
For example,
gcc -O3 -fopt-info-missed=missed.all
outputs missed optimization report from all the passes into missed.all.
As another example,
gcc -O3 -fopt-info-inline-optimized-missed=inline.txt
will output information about missed optimizations as well as optimized locations from all the inlining passes into inline.txt.
如果您真的想知道给定优化级别应用了哪些标志,请在手册页面中查找:http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html