onq*_*tam 4 compiler-construction gcc clang icc visual-c++
我读过"整个程序优化"(wpo)和"链接时间代码生成"(ltcg).
我想知道如果我一次性将所有源代码从cli传递给编译器(例如"g ++ a.cpp b.cpp"),是否会有更多的模块间分析?或者只是要启用其中一个标志?
编译器之间有区别吗?例如,英特尔编译器可以从这种做法中受益,而其他编译器却没有吗?
我想知道如果我一次性将所有源代码从cli传递给编译器(例如"g ++ a.cpp b.cpp"),是否会有更多的模块间分析?
对于GCC,不,这样做不会启用任何WPO,每个翻译单元都是单独处理的.我99%肯定Clang也是如此,90%肯定对大多数其他编译器都是如此.
使用GCC,要启用模块间优化,您需要通过-flto交换机显式请求它,交换机仍然隔离处理每个转换单元,但是附加信息被写入目标文件,然后当它们链接在一起时,进一步优化传递到产生最终输出.
| 归档时间: |
|
| 查看次数: |
148 次 |
| 最近记录: |