|
优化过程中如果遇到有多个出口的函数,即有多个return,尽量在逻辑上将提改为仅有一个return;将变量的读入和计算放在使用之前,减少变量的生存周期和变量对寄存器的占用时间。编译器在变量声明的时候是不会给变量分配寄存器的,只有在变量使用的时候才会给变量分配寄存器。如:
{
int a;
//…
a=val;
if(…)
return 0;
//…
ret=a;
return a;
}
上面的代码中有两个return,变量a在第一个return之前已经赋值,但是在第一个return之后才用到了变量a,应该将a的赋值放在第一个return之后:
{
int a;
//…
if(…)
return 0;
a=val;
//…
ret=a;
return a;
}
这样会在一定程度上减小代码需要的指令数。
|
|