2. What is compiler optimization ?
compiler optimization = code optimization
transformations, algorithms which take a program and transform it to
an equivalent output program that uses fewer resources.
• minimizing program executing time
• minimizing memory use
• minimizing the power consumed by a program
2
9. Loop Fusion
void f()
{
int i;
for( i = 0; i < 100; i++ )
a[i] += 10;
for( i = 0; i < 100; i++ )
b[i] += 20;
}
void f()
{
int i;
for( i = 0; i < 100; i++ )
{
a[i] += 10;
b[i] += 20;
}
}
9
10. Dead Code Elimination
int global;
void f()
{
int i ;
i = 1; /* dead store */
global = 1; /* dead store */
global = 2;
return;
global = 3; /* unreachable*/
}
int global;
void f()
{
global = 2;
return;
}
10
12. Forward Store
int sum;
void f()
{
int i;
sum = 0;
for( i = 0; i < 100; i++ )
{
sum += a[i];
}
}
int sum;
void f()
{
int i;
register int t;
t = 0;
for( i = 0; i < 100; i++ )
{
t += a[i];
}
sum = t;
}
12
13. If Optimization (1)
void f(int *p)
{
if( p )
g(1);
if( p )
g(2);
}
void f(int *p)
{
if( p )
{
g(1);
g(2);
}
}
13
14. If Optimization (2)
void f(int *p)
{
if( p )
{
g(1);
if( p )
g(2);
g(3);
}
}
void f(int *p)
{
if( p )
{
g(1);
g(2);
g(3);
}
}
14