code optimization
TRANSCRIPT
![Page 1: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/1.jpg)
CODE OPTIMIZATION
PRSENTED BY:
SANJEEV KUMAR……
DEPT:-IT.
ASSAM UNIVERSITY ,SILCHAR
![Page 2: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/2.jpg)
Design Of a Compiler
Lexical Analysis
Syntax Analysis
Intermediate Code Generation
Code Generation
Code Optimization
Table Mgmt Routine
ErrorHandlingRoutine
Source code
Object code
![Page 3: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/3.jpg)
What is optimization?
In computing, optimization is the process of modifying a system to make some aspect of it work more efficiently or use fewer resources. For instance, a computer program may be optimized so that it executes more rapidly, or is capable of operating with less memory storage or other resources, or draw less power. The system may be a single computer program, a collection of computers or even an entire network such as the internet.
![Page 4: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/4.jpg)
![Page 5: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/5.jpg)
Levels' of optimization
Optimization can occur at a number of 'levels': Design level
At the highest level, the design may be optimized to make best use of the available resources. The implementation of this design will benefit from the use of suitable efficient algorithms and the implementation of these algorithms will benefit from writing good quality code. The architectural design of a system overwhelmingly affects its performance. The choice of algorithm affects efficiency more than any other item of the design.
Compile level
Use of an optimizing compiler tends to ensure that the executable program is optimized at least as much as the compiler can predict.
![Page 6: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/6.jpg)
Assembly level
At the lowest level, writing code using an Assembly language designed for a particular hardware platform will normally produce the most efficient code since the programmer can take advantage of the full repertoire of machine instructions. The operating systems of most machines has been traditionally written in Assembler code for this reason.
Runtime
Just In Time Compiler and assembler programmers are able to perform runtime optimization.
![Page 7: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/7.jpg)
When to optimize ?
Optimization is often performed at the end of the development stage since it
• reduces readability
• adds code that is used to improve the performance.
![Page 8: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/8.jpg)
Criteria For optimization
An optimization must preserve the meaning of a program :
-Cannot change the output produced for any input
-Can not introduce an error
optimization should, on average, speed up programs
Transformation should be worth the effort
![Page 9: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/9.jpg)
Improvements can be made at various phases:Source Code:
-Algorithms transformations can produce spectacular improvements
-Profiling can be helpful to focus a programmer’s attention on important code.
Intermediate Code:
-Compiler can improve loops, procedure calls and address calculations
-Typically only optimizing compilers include this phase
Target Code:
-Compilers can use registers efficiently
-Peephole transformation can be applied
![Page 10: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/10.jpg)
Types of Code optimization
Common Sub-expression Removal
Dead Code Optimization Loop Optimization
![Page 11: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/11.jpg)
Common Sub expression elimination
Common Sub expression elimination is a optimization that searches for instances of identical expressions (i.e they all evaluate the same value), and analyses whether it is worthwhile replacing with a single variable holding the computed value.
a=b * c + g
d=b * c * d
temp=b * c
a=temp + g
d=temp * d
![Page 12: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/12.jpg)
Dead Code elimination is a compiler optimization that removes code that does not affect a program. Removing such code has two benefits It shrinks program size, an important consideration in some contexts. It lets the running program avoid executing irrelevant operations, which reduces its running time.
Dead Code elimination is of two types
Unreachable Code
Redundant statement
Dead code Optimization:
![Page 13: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/13.jpg)
Unreachable Code
In Computer Programming, Unreachable Code or dead code is code that exists in the source code of a program but can never be executed.
Program Code
If (a>b)
m=a
elseif (a<b)
m=b
elseif (a==b)
m=0
else
m=-1
Optimized Code
If (a>b)
m=a
elseif (a<b)
m=b
else
m=0
![Page 14: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/14.jpg)
Redundant Code
Redundant Code is code that is executed but has no effect on the output from a program
main(){
int a,b,c,r;
a=5;
b=6;
c=a + b;
r=2;
r++;
printf(“%d”,c);
}
Adding time & space complexity
![Page 15: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/15.jpg)
Loop optimization
Loop optimization plays an important role in improving the performance of the source code by reducing overheads associated with executing loops.
Loop Optimization can be done by removing:
• Loop invariant
• Induction variables
![Page 16: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/16.jpg)
Loop Invariant
i = 1
s= 0
do{
s= s + i
a =5
i = i + 1
{
while (i < =n)
i = 1
s= 0
a =5
do{
s= s + i
i = i + 1
{
while (i < =n)
Bringing a=5 outside the do while loop, is called code motion.
![Page 17: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/17.jpg)
Induction variables
i = 1
s= 0
S1=0
S2=0
while (i < =n)
{
s= s + a[ i ]
t1 = i * 4
s= s + b[ t1 ]
t2 = t1 +2
s2= s2 + c[ t2 ]
i = i + 1
}
i = 1
s= 0
S1=0
S2=0
t2=0
while (i < =n)
{
s= s + a[ i ]
t1 = t1+ 4
s= s + b[ t1 ]
s2= s2 + c[t1 +2 ]
i = i + 1
}
t1,t2 are induction variables. i is inducing t1 and t1 is inducing t2
“+” replaced “ * ”, t1 was made independent of i
![Page 18: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/18.jpg)
![Page 19: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/19.jpg)
![Page 20: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/20.jpg)
![Page 21: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/21.jpg)
![Page 22: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/22.jpg)
Common Sub-expression Removal
It is used to remove redundant computations which usually improves the execution time of a program.
![Page 23: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/23.jpg)
![Page 24: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/24.jpg)
![Page 25: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/25.jpg)
![Page 26: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/26.jpg)
![Page 27: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/27.jpg)
![Page 28: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/28.jpg)
![Page 29: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/29.jpg)
Three Address Code of Quick Sorti = m - 1i = m - 1
j = nj = n
tt1 1 =4 * n=4 * n
v = a[tv = a[t11]]
i = i + 1i = i + 1
tt22 = 4 * i = 4 * i
tt33 = a[t = a[t22]]
if tif t33 < v goto (5) < v goto (5)
j = j – 1j = j – 1
tt44 = 4 * j = 4 * j
tt55 = a[t = a[t44]]
if tif t55 > v goto (9) > v goto (9)
if i >= j goto (23)if i >= j goto (23)
tt6 6 = 4 * i = 4 * i
x = a[tx = a[t66]]
11
22
33
44
55
66
77
88
99
1010
1111
1212
1313
1414
1515
tt77 = 4 * I = 4 * I
tt88 = 4 * j = 4 * j
tt99 = a[t = a[t88]]
a[ta[t77] = t] = t99
tt1010 = 4 * j = 4 * j
a[ta[t1010] = x] = x
goto (5)goto (5)
tt1111 = 4 * I = 4 * I
x = a[tx = a[t1111]]
tt1212 = 4 * i = 4 * i
tt1313 = 4 * n = 4 * n
tt1414 = a[t = a[t1313]]
a[ta[t1212] = t] = t1414
tt1515 = 4 * n = 4 * n
a[ta[t1515] = x] = x
1616
1717
1818
1919
2020
2121
2222
2323
2424
2525
2626
2727
2828
2929
3030
![Page 30: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/30.jpg)
Find The Basic Blocki = m - 1i = m - 1
j = nj = n
tt1 1 =4 * n=4 * n
v = a[tv = a[t11]]
i = i + 1i = i + 1
tt22 = 4 * i = 4 * i
tt33 = a[t = a[t22]]
if tif t33 < v goto (5) < v goto (5)
j = j – 1j = j – 1
tt44 = 4 * j = 4 * j
tt55 = a[t = a[t44]]
if tif t55 > v goto (9) > v goto (9)
if i >= j goto (23)if i >= j goto (23)
tt6 6 = 4 * i = 4 * i
x = a[tx = a[t66]]
11
22
33
44
55
66
77
88
99
1010
1111
1212
1313
1414
1515
tt77 = 4 * I = 4 * I
tt88 = 4 * j = 4 * j
tt99 = a[t = a[t88]]
a[ta[t77] = t] = t99
tt1010 = 4 * j = 4 * j
a[ta[t1010] = x] = x
goto (5)goto (5)
tt1111 = 4 * i = 4 * i
x = a[tx = a[t1111]]
tt1212 = 4 * i = 4 * i
tt1313 = 4 * n = 4 * n
tt1414 = a[t = a[t1313]]
a[ta[t1212] = t] = t1414
tt1515 = 4 * n = 4 * n
a[ta[t1515] = x] = x
1616
1717
1818
1919
2020
2121
2222
2323
2424
2525
2626
2727
2828
2929
3030
![Page 31: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/31.jpg)
Flow Graphi = m - 1i = m - 1
j = nj = n
tt1 1 =4 * n=4 * n
v = a[tv = a[t11]]
i = i + 1i = i + 1
tt22 = 4 * i = 4 * i
tt33 = a[t = a[t22]]
if tif t33 < v goto B < v goto B22
j = j – 1j = j – 1
tt44 = 4 * j = 4 * j
tt55 = a[t = a[t44]]
if tif t55 > v goto B > v goto B33
if i >= j goto B6
tt6 6 = 4 * i = 4 * i
x = a[tx = a[t66]]
tt77 = 4 * i = 4 * i
tt88 = 4 * j = 4 * j
tt99 = a[t = a[t88]]
a[ta[t77] = t] = t99
tt1010 = 4 * j = 4 * j
a[ta[t1010] = x] = x
goto Bgoto B22
tt1111 = 4 * i = 4 * i
x = a[tx = a[t1111]]
tt1212 = 4 * i = 4 * i
tt1313 = 4 * n = 4 * n
tt1414 = a[t = a[t1313]]
a[ta[t1212] = t] = t1414
tt1515 = 4 * n = 4 * n
a[ta[t1515] = x] = x
B1
B2
B3
B4
B5 B6
![Page 32: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/32.jpg)
Common Subexpression Eliminationi = m - 1i = m - 1
j = nj = n
tt1 1 =4 * n=4 * n
v = a[tv = a[t11]]
i = i + 1i = i + 1
tt22 = 4 * i = 4 * i
tt33 = a[t = a[t22]]
if tif t33 < v goto B < v goto B22
j = j – 1j = j – 1
tt44 = 4 * j = 4 * j
tt55 = a[t = a[t44]]
if tif t55 > v goto B > v goto B33
if i >= j goto B6
tt6 6 = 4 * i = 4 * i
x = a[tx = a[t66]]
tt77 = 4 * i = 4 * i
tt88 = 4 * j = 4 * j
tt99 = a[t = a[t88]]
a[ta[t77] = t] = t99
tt1010 = 4 * j = 4 * j
a[ta[t1010] = x] = x
goto Bgoto B22
tt1111 = 4 * i = 4 * i
x = a[tx = a[t1111]]
tt1212 = 4 * i = 4 * i
tt1313 = 4 * n = 4 * n
tt1414 = a[t = a[t1313]]
a[ta[t1212] = t] = t1414
tt1515 = 4 * n = 4 * n
a[ta[t1515] = x] = x
B1
B2
B3
B4
B5 B6
![Page 33: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/33.jpg)
Common Subexpression Eliminationi = m - 1i = m - 1
j = nj = n
tt1 1 =4 * n=4 * n
v = a[tv = a[t11]]
i = i + 1i = i + 1
tt22 = 4 * i = 4 * i
tt33 = a[t = a[t22]]
if tif t33 < v goto B < v goto B22
j = j – 1j = j – 1
tt44 = 4 * j = 4 * j
tt55 = a[t = a[t44]]
if tif t55 > v goto B > v goto B33
if i >= j goto B6
tt6 6 = 4 * i = 4 * i
x = a[tx = a[t66]]
tt88 = 4 * j = 4 * j
tt99 = a[t = a[t88]]
a[a[tt66] = t] = t99
tt1010 = 4 * = 4 *
jj
a[ta[t1010] = x] = x
goto Bgoto B22
tt1111 = 4 * i = 4 * i
x = a[tx = a[t1111]]
tt1212 = 4 * i = 4 * i
tt1313 = 4 * n = 4 * n
tt1414 = a[t = a[t1313]]
a[ta[t1212] = t] = t1414
tt1515 = 4 * n = 4 * n
a[ta[t1515] = x] = x
B1
B2
B3
B4
B5 B6
![Page 34: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/34.jpg)
Common Subexpression Eliminationi = m - 1i = m - 1
j = nj = n
tt1 1 =4 * n=4 * n
v = a[tv = a[t11]]
i = i + 1i = i + 1
tt22 = 4 * i = 4 * i
tt33 = a[t = a[t22]]
if tif t33 < v goto B < v goto B22
j = j – 1j = j – 1
tt44 = 4 * j = 4 * j
tt55 = a[t = a[t44]]
if tif t55 > v goto B > v goto B33
if i >= j goto B6
tt6 6 = 4 * i = 4 * i
x = a[tx = a[t66]]
tt88 = 4 * j = 4 * j
tt99 = a[t = a[t88]]
a[a[tt66] = t] = t99
a[a[tt88] = x] = x
goto Bgoto B22
tt1111 = 4 *i = 4 *i
x = a[tx = a[t1111]]
tt1212 = 4 * i = 4 * i
tt1313 = 4 * n = 4 * n
tt1414 = a[t = a[t1313]]
a[ta[t1212] = t] = t1414
tt1515 = 4 * n = 4 * n
a[ta[t1515] = x] = x
B1
B2
B3
B4
B5 B6
![Page 35: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/35.jpg)
Common Subexpression Eliminationi = m - 1i = m - 1
j = nj = n
tt1 1 =4 * n=4 * n
v = a[tv = a[t11]]
i = i + 1i = i + 1
tt22 = 4 * i = 4 * i
tt33 = a[t = a[t22]]
if tif t33 < v goto B < v goto B22
j = j – 1j = j – 1
tt44 = 4 * j = 4 * j
tt55 = a[t = a[t44]]
if tif t55 > v goto B > v goto B33
if i >= j goto B6
tt6 6 = 4 * i = 4 * i
x = a[tx = a[t66]]
tt88 = 4 * j = 4 * j
tt99 = a[t = a[t88]]
a[a[tt66] = t] = t99
a[a[tt88] = x] = x
goto Bgoto B22
tt1111 = 4 * i = 4 * i
x = a[tx = a[t1111]]
tt1212 = 4 * i = 4 * i
tt1313 = 4 * n = 4 * n
tt1414 = a[t = a[t1313]]
a[ta[t1212] = t] = t1414
tt1515 = 4 * n = 4 * n
a[ta[t1515] = x] = x
B1
B2
B3
B4
B5 B6
![Page 36: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/36.jpg)
Common Subexpression Eliminationi = m - 1i = m - 1
j = nj = n
tt1 1 =4 * n=4 * n
v = a[tv = a[t11]]
i = i + 1i = i + 1
tt22 = 4 * i = 4 * i
tt33 = a[t = a[t22]]
if tif t33 < v goto B < v goto B22
j = j – 1j = j – 1
tt44 = 4 * j = 4 * j
tt55 = a[t = a[t44]]
if tif t55 > v goto B > v goto B33
if i >= j goto B6
tt6 6 = 4 * i = 4 * i
x = a[tx = a[t66]]
tt88 = 4 * j = 4 * j
tt99 = a[t = a[t88]]
a[a[tt66] = t] = t99
a[a[tt88] = x] = x
goto Bgoto B22
tt1111 = 4 * i = 4 * i
x = a[tx = a[t1111]]
tt1313 = 4 * n = 4 * n
tt1414 = a[t = a[t1313]]
a[a[tt1111] = t] = t1414
tt1515 = 4 * n = 4 * n
a[ta[t1515] = x] = x
B1
B2
B3
B4
B5 B6
![Page 37: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/37.jpg)
Common Subexpression Eliminationi = m - 1i = m - 1
j = nj = n
tt1 1 =4 * n=4 * n
v = a[tv = a[t11]]
i = i + 1i = i + 1
tt22 = 4 * i = 4 * i
tt33 = a[t = a[t22]]
if tif t33 < v goto B < v goto B22
j = j – 1j = j – 1
tt44 = 4 * j = 4 * j
tt55 = a[t = a[t44]]
if tif t55 > v goto B > v goto B33
if i >= j goto B6
tt6 6 = 4 * i = 4 * i
x = a[tx = a[t66]]
tt88 = 4 * j = 4 * j
tt99 = a[t = a[t88]]
a[a[tt66] = t] = t99
a[a[tt88] = x] = x
goto Bgoto B22
tt1111 = 4 * i = 4 * i
x = a[tx = a[t1111]]
tt1313 = 4 * n = 4 * n
tt1414 = a[t = a[t1313]]
a[a[tt1111] = t] = t1414
a[a[tt1313] = x] = x
B1
B2
B3
B4
B5 B6
![Page 38: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/38.jpg)
Common Subexpression Eliminationi = m - 1i = m - 1
j = nj = n
tt1 1 =4 * n=4 * n
v = a[tv = a[t11]]
i = i + 1i = i + 1
tt22 = 4 * i = 4 * i
tt33 = a[t = a[t22]]
if tif t33 < v goto B < v goto B22
j = j – 1j = j – 1
tt44 = 4 * j = 4 * j
tt55 = a[t = a[t44]]
if tif t55 > v goto B > v goto B33
if i >= j goto B6
tt6 6 = 4 * i = 4 * i
x = a[tx = a[t66]]
tt88 = 4 * j = 4 * j
tt99 = a[t = a[t88]]
a[a[tt66] = t] = t99
a[a[tt88] = x] = x
goto Bgoto B22
tt1111 = 4 * i = 4 * i
x = a[tx = a[t1111]]
tt1313 = 4 * n = 4 * n
tt1414 = a[t = a[t1313]]
a[a[tt1111] = t] = t1414
a[a[tt1313] = x] = x
B1
B2
B3
B4
B5 B6
![Page 39: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/39.jpg)
Common Subexpression Eliminationi = m - 1i = m - 1
j = nj = n
tt1 1 =4 * n=4 * n
v = a[tv = a[t11]]
i = i + 1i = i + 1
tt22 = 4 * i = 4 * i
tt33 = a[t = a[t22]]
if tif t33 < v goto B < v goto B22
j = j – 1j = j – 1
tt44 = 4 * j = 4 * j
tt55 = a[t = a[t44]]
if tif t55 > v goto B > v goto B33
if i >= j goto B6
x = a[x = a[tt22]]
tt88 = 4 * j = 4 * j
tt99 = a[t = a[t88]]
a[a[tt22] = t] = t99
a[a[tt88] = x] = x
goto Bgoto B22
tt1111 = 4 * i = 4 * i
x = a[tx = a[t1111]]
tt1313 = 4 * n = 4 * n
tt1414 = a[t = a[t1313]]
a[a[tt1111] = t] = t1414
a[a[tt1313] = x] = x
B1
B2
B3
B4
B5 B6
![Page 40: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/40.jpg)
Common Subexpression Eliminationi = m - 1i = m - 1
j = nj = n
tt1 1 =4 * n=4 * n
v = a[tv = a[t11]]
i = i + 1i = i + 1
tt22 = 4 * i = 4 * i
tt33 = a[t = a[t22]]
if tif t33 < v goto B < v goto B22
j = j – 1j = j – 1
tt44 = 4 * j = 4 * j
tt55 = a[t = a[t44]]
if tif t55 > v goto B > v goto B33
if i >= j goto B6
x = tx = t3 3
tt88 = 4 * j = 4 * j
tt99 = a[t = a[t88]]
a[a[tt22] = t] = t99
a[a[tt88] = x] = x
goto Bgoto B22
tt1111 = 4 * i = 4 * i
x = a[tx = a[t1111]]
tt1313 = 4 * n = 4 * n
tt1414 = a[t = a[t1313]]
a[a[tt1111] = t] = t1414
a[a[tt1313] = x] = x
B1
B2
B3
B4
B5 B6
![Page 41: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/41.jpg)
Common Subexpression Eliminationi = m - 1i = m - 1
j = nj = n
tt1 1 =4 * n=4 * n
v = a[tv = a[t11]]
i = i + 1i = i + 1
tt22 = 4 * i = 4 * i
tt33 = a[t = a[t22]]
if tif t33 < v goto B < v goto B22
j = j – 1j = j – 1
tt44 = 4 * j = 4 * j
tt55 = a[t = a[t44]]
if tif t55 > v goto B > v goto B33
if i >= j goto B6
x = tx = t3 3
a[a[tt22] = t] = t55
a[a[tt44] = x] = x
goto Bgoto B22
tt1111 = 4 * i = 4 * i
x = a[tx = a[t1111]]
tt1313 = 4 * n = 4 * n
tt1414 = a[t = a[t1313]]
a[a[tt1111] = t] = t1414
a[a[tt1313] = x] = x
B1
B2
B3
B4
B5 B6
![Page 42: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/42.jpg)
Common Subexpression Eliminationi = m - 1i = m - 1
j = nj = n
tt1 1 =4 * n=4 * n
v = a[tv = a[t11]]
i = i + 1i = i + 1
tt22 = 4 * i = 4 * i
tt33 = a[t = a[t22]]
if tif t33 < v goto B < v goto B22
j = j – 1j = j – 1
tt44 = 4 * j = 4 * j
tt55 = a[t = a[t44]]
if tif t55 > v goto B > v goto B33
if i >= j goto B6
x = tx = t3 3
a[a[tt22] = t] = t55
a[a[tt44] = x] = x
goto Bgoto B22
x = tx = t33
tt1414 = a[t = a[t11]]
a[a[tt22] = t] = t1414
a[a[tt11] = x] = x
B1
B2
B3
B4
B5 B6
Similarly for B6
![Page 43: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/43.jpg)
Dead Code Eliminationi = m - 1i = m - 1
j = nj = n
tt1 1 =4 * n=4 * n
v = a[tv = a[t11]]
i = i + 1i = i + 1
tt22 = 4 * i = 4 * i
tt33 = a[t = a[t22]]
if tif t33 < v goto B < v goto B22
j = j – 1j = j – 1
tt44 = 4 * j = 4 * j
tt55 = a[t = a[t44]]
if tif t55 > v goto B > v goto B33
if i >= j goto B6
x = tx = t3 3
a[a[tt22] = t] = t55
a[a[tt44] = x] = x
goto Bgoto B22
x = tx = t33
tt1414 = a[t = a[t11]]
a[a[tt22] = t] = t1414
a[a[tt11] = x] = x
B1
B2
B3
B4
B5 B6
![Page 44: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/44.jpg)
Dead Code Eliminationi = m - 1i = m - 1
j = nj = n
tt1 1 =4 * n=4 * n
v = a[tv = a[t11]]
i = i + 1i = i + 1
tt22 = 4 * i = 4 * i
tt33 = a[t = a[t22]]
if tif t33 < v goto B < v goto B22
j = j – 1j = j – 1
tt44 = 4 * j = 4 * j
tt55 = a[t = a[t44]]
if tif t55 > v goto B > v goto B33
if i >= j goto B6
a[a[tt22] = t] = t55
a[a[tt44] = t] = t33
goto Bgoto B22
tt1414 = a[t = a[t11]]
a[a[tt22] = t] = t1414
a[a[tt11] = t] = t33
B1
B2
B3
B4
B5 B6
![Page 45: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/45.jpg)
Reduction in Strengthi = m - 1i = m - 1
j = nj = n
tt1 1 =4 * n=4 * n
v = a[tv = a[t11]]
i = i + 1i = i + 1
tt22 = 4 * i = 4 * i
tt33 = a[t = a[t22]]
if tif t33 < v goto B < v goto B22
j = j – 1j = j – 1
tt44 = 4 * j = 4 * j
tt55 = a[t = a[t44]]
if tif t55 > v goto B > v goto B33
if i >= j goto B6
a[a[tt22] = t] = t55
a[a[tt44] = t] = t33
goto Bgoto B22
tt1414 = a[t = a[t11]]
a[a[tt22] = t] = t1414
a[a[tt11] = t] = t33
B1
B2
B3
B4
B5 B6
![Page 46: code optimization](https://reader030.vdocument.in/reader030/viewer/2022032620/55c6a341bb61ebc2168b4588/html5/thumbnails/46.jpg)
Reduction in Strengthi = m - 1i = m - 1
j = nj = n
tt1 1 =4 * n=4 * n
v = a[tv = a[t11]]
tt2 2 = 4 * i= 4 * i
tt44 = 4 * j = 4 * j
tt22 = t = t22 + 4 + 4
tt33 = a[t = a[t22]]
if tif t33 < v goto B < v goto B22
tt44 = t = t44 - 4 - 4
tt55 = a[t = a[t44]]
if tif t55 > v goto B > v goto B33
if i >= j goto B6
a[a[tt22] = t] = t55
a[a[tt44] = t] = t33
goto Bgoto B22
tt1414 = a[t = a[t11]]
a[a[tt22] = t] = t1414
a[a[tt11] = t] = t33
B1
B2
B3
B4
B5 B6