Introduction: Data Flow Analysis Notes | EduRev

Compiler Design

Computer Science Engineering (CSE) : Introduction: Data Flow Analysis Notes | EduRev

The document Introduction: Data Flow Analysis Notes | EduRev is a part of the Computer Science Engineering (CSE) Course Compiler Design.
All you need of Computer Science Engineering (CSE) at this link: Computer Science Engineering (CSE)

Data flow analysis in Compiler

It is the analysis of flow of data in control flow graph, i.e., the analysis that determines the information regarding the definition and use of data in program. With the help of this analysis optimization can be done. In general, its process in which values are computed using data flow analysis. The data flow property represents information which can be used for optimization.

➤ Basic Terminologies –

  • Definition Point: a point in a program containing some definition.
  • Reference Point: a point in a program containing a reference to a data item.
  • Evaluation Point: a point in a program containing evaluation of expression.
    Introduction: Data Flow Analysis Notes | EduRev

➤ Data Flow Properties –

  • Available Expression – A expression is said to be available at a program point x iff along paths its reaching to x. A Expression is available at its evaluation point.
    A expression a+b is said to be available if none of the operands gets modified before their use.
    Example –
    Introduction: Data Flow Analysis Notes | EduRevAdvantage – It is used to eliminate common sub expressions.
  • Reaching Definition – A definition D is reaches a point x if there is path from D to x in which D is not killed, i.e., not redefined.
    Example –
    Introduction: Data Flow Analysis Notes | EduRev
    D1 is reaching definition for B2 but not for B3 since it is killed by D2
    Advantage – It is used in constant and variable propagation.
  • Live variable – A variable is said to be live at some point p if from p to end the variable is used before it is redefined else it becomes dead.
    Example –
    Introduction: Data Flow Analysis Notes | EduRevAdvantage –
    (i) It is useful for register allocation.
    (ii) It is used in dead code elimination.
  • Busy Expression – An expression is busy along a path iff its evaluation exists along that path and none of its operand definition exists before its evaluation along the path.
    Advantage –
    It is used for performing code movement optimization.
Offer running on EduRev: Apply code STAYHOME200 to get INR 200 off on our premium plan EduRev Infinity!

Related Searches

pdf

,

mock tests for examination

,

past year papers

,

MCQs

,

Viva Questions

,

study material

,

Introduction: Data Flow Analysis Notes | EduRev

,

Previous Year Questions with Solutions

,

video lectures

,

Objective type Questions

,

Sample Paper

,

Summary

,

Semester Notes

,

Introduction: Data Flow Analysis Notes | EduRev

,

Exam

,

shortcuts and tricks

,

practice quizzes

,

Introduction: Data Flow Analysis Notes | EduRev

,

Important questions

,

ppt

,

Extra Questions

,

Free

;