【发布时间】:2015-09-20 04:47:37
【问题描述】:
我正在C++ 中学习分支预测,并且有一个相当简单的问题。
似乎 __builtin_expect 术语告诉编译器在汇编代码中首先放置哪个子句。
但是,如果这是由程序员手动添加的,这与在 C++ 代码中简单地切换 if/else 子句有何不同?
【问题讨论】:
标签: c++ micro-optimization branch-prediction
我正在C++ 中学习分支预测,并且有一个相当简单的问题。
似乎 __builtin_expect 术语告诉编译器在汇编代码中首先放置哪个子句。
但是,如果这是由程序员手动添加的,这与在 C++ 代码中简单地切换 if/else 子句有何不同?
【问题讨论】:
标签: c++ micro-optimization branch-prediction
允许编译器的优化器重新排序分支。如果编译器出错(或可能)出错,__builtin_expect 很有用。
【讨论】: