我对GCC还很陌生,我想知道我究竟如何使用某些分析开关。
我已经阅读了-ftree-loop-ivcanon
和-fivopts
的GCC手册条目(-fprofiled-generate/use
都没有暗示这些条目),而且我对他们所做的事情有一个(相对)好的想法我不知道应该在哪里使用它们,或者我是否应该使用它们。
我应该在合并编辑中使用标志吗?
g++ Example.cxx -o Example.exe -Wall -ftree-loop-ivcanon -fivopts
仅限编辑?
g++ Example.cxx -o Example.o -c -Wall -ftree-loop-ivcanon -fivopts
或只是链接?
g++ Example.o -o Example.exe -Wall -ftree-loop-ivcanon -fivopts
启用性能分析时是否应该只使用这些标志,还是可以将它们与-On一起使用?
最后,如果我在分析时使用它们,我应该将它们与generate开关或use开关一起使用,还是两者兼而有之?
答案 0 :(得分:1)
据我所知,您只能在编译中使用这些。
答案 1 :(得分:0)
-ftree-loop-ivcanon
和-fivopts
只会影响编译,而不会影响链接,但我很确定除非您启用优化,否则它们不会执行任何操作,至少-O
。
您可能不需要使用它们,只需使用-O
或-O2
或-O3
而不是调整个别或更具体的选项,除非您确切知道自己是什么试图实现并正在测量精确的效果。
如果您尝试使用配置文件引导优化,那么您肯定希望使用-O
或更高的优化级别 - 如果您甚至不启用基本配置数据,则完全浪费时间优化基于配置文件数据优化,如内联和不断传播。