SlideShare une entreprise Scribd logo
1  sur  11
NADAR SARASWATHI COLLEGE
OF ARTS AND SCIENCE
DEPARTMENT OF COMPUTER SCIENCE
COMPILER DESIGN
CODE OPTIMIZATION
BY
S.SAMEENA FATHIMA
I-MSC(CS)
WHAT IS CODE OPTIMIZATION?
Contd...
Code optimization is a program modification strategy
that endeavours to enhance the intermediate code, so a
program utilises the least potential memory, minimises
its CPU time and offers high speed.
The process of code optimization involves-
• Eliminating the unwanted code lines
• Rearranging the statements of the code
Advantages:
• The optimized code has the
following advantages-
• Optimized code has faster
execution speed.
• Optimized code utilizes the
memory efficiently.
• Optimized code gives better
performance.
Code Optimization Techniques-
1. Compile Time Evaluation
2. Common sub-expression
elimination
3. Dead Code Elimination
4. Code Movement
5. Strength Reduction
1. Compile Time Evaluation-
Two techniques that falls under compile time evaluation are-
A) Constant Folding-
• In this technique,
• As the name suggests, it involves folding the constants.
• The expressions that contain the operands having constant
values at compile time are evaluated.
• Those expressions are then replaced with their respective
results.
Example-
Circumference of Circle = (22/7) x Diameter
Here,
This technique evaluates the expression 22/7 at compile time.
The expression is then replaced with its result 3.14.
This saves the time at run time.
B) Constant Propagation-
• In this technique,
• If some variable has been assigned some constant value, then it replaces
that variable with its constant value in the further program during
compilation.
• The condition is that the value of variable must not get alter in between.
Example-
• pi = 3.14
• radius = 10
• Area of circle = pi x radius x radius
• Here,
• This technique substitutes the value of variables ‘pi’ and ‘radius’ at compile
time.
• It then evaluates the expression 3.14 x 10 x 10.
• The expression is then replaced with its result 314.
• This saves the time at run time.
The expression that has been already computed before and appears
again in the code for computation
is called as Common Sub-Expression.
2. Common Sub-Expression Elimination-
In this technique,
•As the name suggests, it involves eliminating the common sub expressions.
•The redundant expressions are eliminated to avoid their re-computation.
•The already computed result is used in the further program when required.
3. Code Movement-
• In this technique,
• As the name suggests, it involves movement of the code.
• The code present inside the loop is moved out if it does not matter whether it is
present inside or outside.
• Such a code unnecessarily gets execute again and again with each iteration of the
loop.
• This leads to the wastage of time at run time.
Code Before Optimization Code After Optimization
for ( int j = 0 ; j < n ; j ++)
{
x = y + z ;
a[j] = 6 x j;
}
x = y + z ;
for ( int j = 0 ; j < n ; j ++)
{
a[j] = 6 x j;
}
4. Dead Code Elimination-
• In this technique,
• As the name suggests, it involves eliminating the dead code.
• The statements of the code which either never executes or are unreachable
or their output is never used are eliminated.
Code Before Optimization Code After Optimization
i = 0 ;
if (i == 1)
{
a = x + 5 ;
}
i = 0 ;
5. Strength Reduction-
• In this technique,
• As the name suggests, it involves reducing the strength of expressions.
• This technique replaces the expensive and costly operators with the
simple and cheaper ones.
Code Before Optimization Code After Optimization
B = A x 2 B = A + A
Here,
• The expression “A x 2” is replaced with the expression “A + A”.
• This is because the cost of multiplication operator is higher than that
of addition operator.
THANK YOU !

Contenu connexe

Similaire à Code optimization

Inline function
Inline functionInline function
Inline function
Tech_MX
 

Similaire à Code optimization (20)

Introduction to C ++.pptx
Introduction to C ++.pptxIntroduction to C ++.pptx
Introduction to C ++.pptx
 
UNIT-2-PPTS-DAA.ppt
UNIT-2-PPTS-DAA.pptUNIT-2-PPTS-DAA.ppt
UNIT-2-PPTS-DAA.ppt
 
Unit 1, ADA.pptx
Unit 1, ADA.pptxUnit 1, ADA.pptx
Unit 1, ADA.pptx
 
VCE Unit 01 (1).pptx
VCE Unit 01 (1).pptxVCE Unit 01 (1).pptx
VCE Unit 01 (1).pptx
 
02 functions, variables, basic input and output of c++
02   functions, variables, basic input and output of c++02   functions, variables, basic input and output of c++
02 functions, variables, basic input and output of c++
 
sCode optimization
sCode optimizationsCode optimization
sCode optimization
 
Basic Elements of C++
Basic Elements of C++Basic Elements of C++
Basic Elements of C++
 
Code Tuning
Code TuningCode Tuning
Code Tuning
 
Algorithm and C code related to data structure
Algorithm and C code related to data structureAlgorithm and C code related to data structure
Algorithm and C code related to data structure
 
Pragmatic Optimization in Modern Programming - Ordering Optimization Approaches
Pragmatic Optimization in Modern Programming - Ordering Optimization ApproachesPragmatic Optimization in Modern Programming - Ordering Optimization Approaches
Pragmatic Optimization in Modern Programming - Ordering Optimization Approaches
 
Introduction to Algorithms Complexity Analysis
Introduction to Algorithms Complexity Analysis Introduction to Algorithms Complexity Analysis
Introduction to Algorithms Complexity Analysis
 
85ec7 session2 c++
85ec7 session2 c++85ec7 session2 c++
85ec7 session2 c++
 
Compiler presention
Compiler presentionCompiler presention
Compiler presention
 
Compiler Design- Machine Independent Optimizations
Compiler Design- Machine Independent OptimizationsCompiler Design- Machine Independent Optimizations
Compiler Design- Machine Independent Optimizations
 
Optimization
OptimizationOptimization
Optimization
 
Optimization
OptimizationOptimization
Optimization
 
Analysis and Design of Algorithms
Analysis and Design of AlgorithmsAnalysis and Design of Algorithms
Analysis and Design of Algorithms
 
Building source code level profiler for C++.pdf
Building source code level profiler for C++.pdfBuilding source code level profiler for C++.pdf
Building source code level profiler for C++.pdf
 
Design & Analysis of Algorithm course .pptx
Design & Analysis of Algorithm course .pptxDesign & Analysis of Algorithm course .pptx
Design & Analysis of Algorithm course .pptx
 
Inline function
Inline functionInline function
Inline function
 

Plus de Sameenafathima4 (15)

ai.pptx
ai.pptxai.pptx
ai.pptx
 
dip.pptx
dip.pptxdip.pptx
dip.pptx
 
iot.pptx
iot.pptxiot.pptx
iot.pptx
 
women empowerment.pptx
women empowerment.pptxwomen empowerment.pptx
women empowerment.pptx
 
CLOUD COMPUTING.pptx
CLOUD COMPUTING.pptxCLOUD COMPUTING.pptx
CLOUD COMPUTING.pptx
 
crypto.pptx
crypto.pptxcrypto.pptx
crypto.pptx
 
crypto.pptx
crypto.pptxcrypto.pptx
crypto.pptx
 
nosql.pptx
nosql.pptxnosql.pptx
nosql.pptx
 
Features of Android OS.pptx
Features of Android OS.pptxFeatures of Android OS.pptx
Features of Android OS.pptx
 
python p.pptx
python p.pptxpython p.pptx
python p.pptx
 
Creating windows
Creating windowsCreating windows
Creating windows
 
Swing components
Swing components Swing components
Swing components
 
dsa.pptx
dsa.pptxdsa.pptx
dsa.pptx
 
anatomy of a jsp page & jsp syntax.pptx
anatomy of a jsp page & jsp syntax.pptxanatomy of a jsp page & jsp syntax.pptx
anatomy of a jsp page & jsp syntax.pptx
 
JAVA SERVER PAGE
JAVA SERVER PAGEJAVA SERVER PAGE
JAVA SERVER PAGE
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Dernier (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 

Code optimization

  • 1. NADAR SARASWATHI COLLEGE OF ARTS AND SCIENCE DEPARTMENT OF COMPUTER SCIENCE COMPILER DESIGN CODE OPTIMIZATION BY S.SAMEENA FATHIMA I-MSC(CS)
  • 2. WHAT IS CODE OPTIMIZATION? Contd... Code optimization is a program modification strategy that endeavours to enhance the intermediate code, so a program utilises the least potential memory, minimises its CPU time and offers high speed. The process of code optimization involves- • Eliminating the unwanted code lines • Rearranging the statements of the code
  • 3. Advantages: • The optimized code has the following advantages- • Optimized code has faster execution speed. • Optimized code utilizes the memory efficiently. • Optimized code gives better performance.
  • 4. Code Optimization Techniques- 1. Compile Time Evaluation 2. Common sub-expression elimination 3. Dead Code Elimination 4. Code Movement 5. Strength Reduction
  • 5. 1. Compile Time Evaluation- Two techniques that falls under compile time evaluation are- A) Constant Folding- • In this technique, • As the name suggests, it involves folding the constants. • The expressions that contain the operands having constant values at compile time are evaluated. • Those expressions are then replaced with their respective results. Example- Circumference of Circle = (22/7) x Diameter Here, This technique evaluates the expression 22/7 at compile time. The expression is then replaced with its result 3.14. This saves the time at run time.
  • 6. B) Constant Propagation- • In this technique, • If some variable has been assigned some constant value, then it replaces that variable with its constant value in the further program during compilation. • The condition is that the value of variable must not get alter in between. Example- • pi = 3.14 • radius = 10 • Area of circle = pi x radius x radius • Here, • This technique substitutes the value of variables ‘pi’ and ‘radius’ at compile time. • It then evaluates the expression 3.14 x 10 x 10. • The expression is then replaced with its result 314. • This saves the time at run time.
  • 7. The expression that has been already computed before and appears again in the code for computation is called as Common Sub-Expression. 2. Common Sub-Expression Elimination- In this technique, •As the name suggests, it involves eliminating the common sub expressions. •The redundant expressions are eliminated to avoid their re-computation. •The already computed result is used in the further program when required.
  • 8. 3. Code Movement- • In this technique, • As the name suggests, it involves movement of the code. • The code present inside the loop is moved out if it does not matter whether it is present inside or outside. • Such a code unnecessarily gets execute again and again with each iteration of the loop. • This leads to the wastage of time at run time. Code Before Optimization Code After Optimization for ( int j = 0 ; j < n ; j ++) { x = y + z ; a[j] = 6 x j; } x = y + z ; for ( int j = 0 ; j < n ; j ++) { a[j] = 6 x j; }
  • 9. 4. Dead Code Elimination- • In this technique, • As the name suggests, it involves eliminating the dead code. • The statements of the code which either never executes or are unreachable or their output is never used are eliminated. Code Before Optimization Code After Optimization i = 0 ; if (i == 1) { a = x + 5 ; } i = 0 ;
  • 10. 5. Strength Reduction- • In this technique, • As the name suggests, it involves reducing the strength of expressions. • This technique replaces the expensive and costly operators with the simple and cheaper ones. Code Before Optimization Code After Optimization B = A x 2 B = A + A Here, • The expression “A x 2” is replaced with the expression “A + A”. • This is because the cost of multiplication operator is higher than that of addition operator.