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.
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.
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.
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.
- It is useful for register allocation.
- 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.
It is used for performing code movement optimization.
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Semantic Analysis in Compiler Design
- Introduction to Syntax Analysis in Compiler Design
- Multidimensional data analysis in Python
- Difference between Native compiler and Cross compiler
- CSS | flex-flow Property
- Difference between Data Scientist, Data Engineer, Data Analyst
- Compiler Theory | Set 2
- Compiler Theory | Set 1
- Phases of a Compiler
- Three address code in Compiler
- Difference between Compiler and Interpreter
- Introduction of Compiler Design
- Symbol Table in Compiler
- Why FIRST and FOLLOW in Compiler Design?
- Compiler construction tools
- Difference between Compiler and Assembler
- Bootstrapping in Compiler Design
- Loop Optimization in Compiler Design
- Error Handling in Compiler Design
- Error detection and Recovery in Compiler
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.