8 Qs · since 2014 · 14 marks · 0.5 marks/paperStandard yield
Data flow analysis in GATE Compiler Design primarily evaluates an understanding of live variable analysis both conceptually and computationally on Control Flow Graphs (CFGs). Testi… Guide
a = b + c;
e = a + 1;
d = b + c;
f = d + 1;
g = e + f;
In a compiler, this code segment is represented internally as a directed acyclic graph (DAG). The number of nodes in the DAG is ________.Topic guide
Data flow analysis in GATE Compiler Design primarily evaluates an understanding of live variable analysis both conceptually and computationally on Control Flow Graphs (CFGs). Testing ranges from 1-mark recall questions on the compiler optimizations that rely on data-flow facts (like register allocation) to 2-mark CFG tracing questions tracking variable uses and definitions across program points.
Liveness Analysis on Control Flow Graphs
common · MCQ · 2 marks · 2015
Given a CFG with basic blocks containing 3-address statements, determine which variables are live at specific program points or find the intersection/set of live variables across designated blocks.
Applications of Data Flow Frameworks
common · MCQ · 1 marks · 2025
Conceptual identification of which backend optimization or code generation task (e.g., register allocation/assignment, dead-code elimination) depends on specific data flow analyses (like liveness analysis).
Global Available Expression Analysis on CFGs
common · MCQ · 2 marks · 2026
Candidates are given a Control Flow Graph with several basic blocks (including branching and join nodes) and must determine which evaluated expressions are redundant (available from all incoming paths without being killed) within specific target basic blocks.
Sequential Data-Flow In/Out Relationships
occasional · MCQ · 2 marks · 2021
Evaluating theoretical relationships between IN, OUT, USE, and DEF sets across adjacent statements within a straight-line basic block.
CFG Liveness Fixed-Point Computation
common · MCQ · 2 marks · 2026, 2023
Given a CFG with 3 to 4 basic blocks containing branches and loops/back-edges, compute the precise set of live variables at the exit point (OUT set) or entry point (IN set) of every block.
DAG Node Counting for a Basic Block
occasional · NAT · 2 marks · 2021
Given a sequence of three-address assignments or C-style statements within a single basic block, construct its internal Directed Acyclic Graph (DAG) by reusing nodes for common subexpressions and identical operands, then find the total number of nodes (leaves plus interior operator nodes).
Conceptual / Definitional Truth Verification
rare · MCQ · 1 marks · 2014
A set of four statements testing core definitions of basic blocks, data-flow analysis applications (e.g., liveness analysis for dead code elimination, available expressions for CSE), and specific transformation examples to identify the TRUE/FALSE statement.
Live Variable Condition
Used when determining if variable holds a value at statement that is read downstream before any intervening reassignment.
Simultaneous Liveness across Program Points
Used when finding variables that are simultaneously live at two different basic block statements or program points.
Available Expressions Confluence (Meet) Operator
Used at CFG join points to compute the set of expressions available at the entry of basic block from all its predecessors.
Dataflow Transfer Function for Available Expressions
Used to compute expressions available at the exit of basic block after accounting for newly generated expressions and killed expressions.
Liveness Analysis Transfer Function
Computing the live variables at the entry of basic block from its used/defined variables and exit live set.
Liveness Analysis Confluence / Meet Operator
Gathering incoming backward data-flow information from all immediate successor blocks of block .
Sequential Statement Composition in Basic Block
Relating boundary sets of two consecutive statements and within the same basic block.
Total DAG Nodes
Used when computing the total number of nodes in a basic block DAG representation after applying common subexpression elimination.
Questions alternate between structural CFG path tracing with formal liveness conditions (2015) and direct conceptual mapping of analysis frameworks to optimization passes (2025).
2025, 2015
Emphasis is placed on global dataflow properties where confluence at join points requires intersection (all-paths availability) and careful tracking of operand redefinitions that kill previously computed expressions.
2026
Shift from purely theoretical statement-level transfer equation identities to full CFG-based iterative fixed-point computations involving cycles.
2026, 2023, 2021
Consistent presentation as 2-mark graphical/CFG-based MCQs requiring multi-pass iterative analysis until convergence.
2026, 2023
Questions on local optimization have moved toward exact NAT numerical queries asking for structural properties (e.g., node count) of DAG intermediate representations.
2021
Appeared as a 1-mark conceptual MCQ focusing on identifying standard definitions and matching optimization techniques to their underlying data-flow analyses.
2014
Easy: Direct theoretical classification identifying the purpose of a data-flow analysis (e.g., linking liveness analysis to register allocation). Medium: Tracing CFG paths with multiple branches/loops to compute exact live sets at one or more basic block entries/exits.