📅  最后修改于: 2020-12-06 08:09:30             🧑  作者: Mango
代码优化可以通过以下不同方式执行:
(a)z = 5 *(45.0 / 5.0)* r
在编译时执行5 *(45.0="" 5.0)*="" p="" r。<="">
(b)x = 5.7
3.6
在编译时将x="" 3.6。<="" 3.6评估为5.7="" p="" y="x">
在优化之前,代码为:
c = a * b
x = a
till
d = x * b + 4
优化后的代码是:
c = a * b
x = a
till
d = a * b + 4
在此,在变量传播之后,a * b和x * b被标识为公共子表达式。
消除之前的代码是:
c = a * b
x = b
till
d = a * b + 4
消除后的代码是:
c = a * b
till
d = a * b + 4
在此,x = b是无效状态,因为它将永远不会在程序中使用。因此,我们可以消除这种状态。
do
{
item = 10;
value = value + item;
} while(value<100);
//This code can be further optimized as
item = 10;
do
{
value = value + item;
} while(value<100);
减少之前的代码是:
i = 1;
while(i<10)
{
y = i * 4;
}
减少后的代码是:
i = 1
t = 4
{
while( t<40)
y = t;
t = t + 4;
}