标签: c++ micro-optimization branch-prediction
我正在C++学习分支预测,并且有一个相当简单的问题。
C++
似乎 __builtin_expect 术语告诉编译器哪个子句首先放在汇编代码中。
__builtin_expect
但是,如果这是程序员手动添加的,那么除了简单地在C++代码中切换 if / else 子句之外,它有什么不同?
答案 0 :(得分:1)
允许编译器的优化器重新排序分支。如果编译器得到(或很可能)错误,__ builtin_expect很有用。