【发布时间】:2012-11-12 07:54:06
【问题描述】:
在这个问题中,我将重点关注 Visual Studio 2012 和 GCC 4.7
一方面,配置文件引导编译通过在运行时检测代码,然后在第二次编译期间使用此信息来优化分支预测。另一方面,许多编译器提供扩展来提示编译器最有可能采用哪个分支:GCC 提供__builtin_expect,Visual Studio 提供__assume。
有没有办法提取配置文件引导信息(任一编译器的),以便能够使用两个编译器扩展重写代码?目标是为愿意重新编译自己的二进制版本的人们提供“优化”的源代码。
【问题讨论】:
-
请注意,
__assume不会告诉编译器“这个表达式很可能是真的”,它会告诉编译器“这个表达式总是真的”。有很大的不同。 -
@JamesMcNellis 我不知道!谢谢
标签: visual-studio optimization gcc compilation branch-prediction