只是出于好奇.如果我有类似的东西:
if(x < 0)
x = 0;
if(x > some_maximum)
x = some_maximum;
return x;
Run Code Online (Sandbox Code Playgroud)
有没有办法不分支?这是c ++.
附录:我的意思是装配中没有分支指令.这是一个MIPS架构.
我正在尝试优化一些打包和解包例程.为了进行打包,我需要计算存储整数值所需的位数.这是当前的代码.
if (n == -1) return 32;
if (n == 0) return 1;
int r = 0;
while (n)
{
++r;
n >>= 1;
}
return r;
Run Code Online (Sandbox Code Playgroud) 我目前正在分析二进制搜索的实现.使用一些特殊指令来衡量这一点,我注意到代码有大约20%的错误预测率.我很好奇是否有任何方法可以检查我可能因此丢失多少个周期.这是一个基于MIPS的架构.