海湾合作委员会是否有传统的"likely"路径



您可以提示GCC使用__builtin_expect进行特定分支的可能性。如果没有这一点,它是否有任何默认假设。也就是说,代码会像一样吗

if(error) { /*unlikely path*/ return FAILURE;}
return SUCCESS;

表现优于

if(!error) {/*likely path*/ return SUCCESS;}
return FAILURE;

与任何现代编译器一样,gcc也将执行代码分析。如果代码分析产生任何可用/可证明的信息,它会选择一些优化(参见基本块重新排序(。gcc至少会执行静态代码分析,而clang(可能使用扩展(也会分析执行流图。

最新更新