7 compiler-construction optimization gcc compiler-optimization
现代优化编译器如何确定何时应用某些优化,例如循环展开和代码内联?
由于这两者都会影响缓存,使用少于X行的天真内联函数或任何其他简单的启发式,可能会产生性能更差的代码.那么,现代编译器如何处理这个呢?
我很难找到相关的信息(特别是那些相当容易理解的信息......),关于我能找到的最好的是维基百科文章.任何细节,书籍/文章/论文链接,非常感谢!
编辑:由于答案主要是关于我提到的两个优化(内联和循环展开),我只是想澄清我对所有和任何编译器优化感兴趣,而不仅仅是那两个.我也对可以在提前编译期间执行的优化更感兴趣,尽管JIT优化也是有意义的(尽管程度稍低).
谢谢!
无论如何,通常是那种天真,并希望它是一种改进.
这就是为什么即时编译是如此成功的策略.收集统计数据然后针对常见情况进行优化.
参考文献:
| 归档时间: |
|
| 查看次数: |
483 次 |
| 最近记录: |