Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 分支预测器是否处理间接函数调用,如虚拟函数调用?_C++_Assembly_X86_X86 64_Branch Prediction - Fatal编程技术网

C++ 分支预测器是否处理间接函数调用,如虚拟函数调用?

C++ 分支预测器是否处理间接函数调用,如虚拟函数调用?,c++,assembly,x86,x86-64,branch-prediction,C++,Assembly,X86,X86 64,Branch Prediction,我想知道这件事。我认为分支预测器通常可以处理二进制间接分支——分支可以采用两条立即可见的可能路径。然而,我在想,分支预测器能够预测间接函数调用,就像C++中的虚函数调用吗?比如说,如果程序中某个位置的某个间接函数调用99%甚至100%的时间调用一个函数,分支预测器是否会记录并优化该函数?我问的是一般的体系结构,但主要对x86和x86-64感兴趣。查找分支预测器和分支目标预测器之间的区别。可能会有所帮助。

我想知道这件事。我认为分支预测器通常可以处理二进制间接分支——分支可以采用两条立即可见的可能路径。然而,我在想,分支预测器能够预测间接函数调用,就像C++中的虚函数调用吗?比如说,如果程序中某个位置的某个间接函数调用99%甚至100%的时间调用一个函数,分支预测器是否会记录并优化该函数?我问的是一般的体系结构,但主要对x86和x86-64感兴趣。

查找分支预测器和分支目标预测器之间的区别。可能会有所帮助。