Matt Godbolt's blog2 days agohttp://xania.org/202512/19-tail-call-optimisation?utm_source=feed&utm_medium=rss尾调用优化(TCO)通过将调用替换为跳转,将递归函数转化为循环,从而节省栈空间并实现进一步优化。Clang 的 [[clang::musttail]] 属性强制启用尾调用优化,确保即使在调试模式下也能优化尾调用。安排函数参数以匹配调用约定,通过减少寄存器重排来提高尾调用优化的效率。在CPU模拟器中,尾调用优化可以用独立的指令处理器替换switch循环,通过为每个处理器提供独立的分支预测状态来改善分支预测。
Quadrupling code performance with a "useless" if16 days agohttps://purplesyringa.moe/blog/quadrupling-code-performance-with-a-useless-if/描述了通过改进关键路径循环来优化特定领域压缩器的过程。强调了依赖链问题会阻碍指令级并行处理。提出利用分支预测来预测稳定值,以打破依赖链。建议使用易变类型转换技巧来防止编译器优化移除分支。提及了潜在的数据结构改进替代方案,但也指出了其中的权衡取舍。