1 / 16

CS 201 Compiler Construction

CS 201 Compiler Construction. Lecture 4 Data Flow Framework. Data Flow Framework. The various problems considered have things in common: Transfer functions Confluence Operator Direction of Propagation

tavia
Download Presentation

CS 201 Compiler Construction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS 201Compiler Construction Lecture 4 Data Flow Framework

  2. Data Flow Framework The various problems considered have things in common: • Transfer functions • Confluence Operator • Direction of Propagation These problems can be treated in a unified way  data flow framework is an algebraic structure used to encode and solve data flow problems.

  3. Monotone Data Flow Framework Components of the framework: Information Set: L Effect of joining paths: ∧ (meet operator) Effect of basic blocks: fn (monotone transfer func.) Iterative Solution: can be shown to terminate (L,∧) is a semilattice st ∨ a,b,c εL a ∧ a = a (idempotent) a ∧ b = b ∧ a (commutative) a ∧ (b ∧ c) = (a ∧ b) ∧ c (assocative) Bottom Element st ∨ a ε L, a ∧ = Top Element Τ st ∨ a ε L, a ∧ Τ = a If top & bottom elements exist, they are unique.

  4. Contd.. Max ca Relation ≤ is a partial order on L a ≤ b ≅ a ∧ b = a Can similarly define <, >, ≥ relations A semilattice is bounded iff ∨ a εL there exists a constant ca st length of chain beginning at a is at most ca.

  5. Monotonic Functions Effect of each basic block is modeled by a transfer function f: L  L. Function f must be monotonic. A total function f: LL is monotonic iff ∨ a,b ε L f(a∧b) ≤ f(a) ∧ f(b) Distributive function: f(a∧b) = f(a) ∧ f(b) For monotonic functions: a ≤ b => f(a) ≤ f(b)

  6. Contd.. For monotonic functions: a ≤ b => f(a) ≤ f(b) Proof: f(a∧b) ≤ f(a) ∧ f(b) Defn. of Monotonicity f(a∧b)∧f(a)∧f(b) = f(a∧b) Defn. of ≤:(a∧b=a) f(a)∧f(a)∧f(b)= f(a) Given a ≤ b: a ∧ b = a f(a) ∧ f(b) = f(a) f(a)∧f(a) = f(a) idempotence f(a) ≤ f(b) Defn. of ≤

  7. Fixpoint A fixpoint of a monotonic function f: L  L is a value a ε L such that f(a) = a Τ > f (Τ) > f ( f (Τ) ) > f ( f ( f (Τ) ) ) …….. There exists t such that f ( ft (Τ) ) = ft (Τ) ft (Τ) is the greatest fixpoint of f.

  8. Monotone Function Space • A monotone function space for a semilattice is a set F of monotonic functions which: • Contains the identity function (id) • -- basic blocks may not modify information • Is closed under function composition • -- to model the effects of paths • For each a ε L, there exists fεF st f( ) = a • -- to model gen functions • A distributive function space is a monotone function space in which all functions are distributive.

  9. A Monotone Data Flow System A monotone data flow system is a tuple < L, ∧, F, G, FM > (L,∧) is a bounded semilattice with Τ & F is the monotone function space G = (N, E, s) is the program flow graph FM: N  F is a total function that associates a function from F with each basic block.

  10. Meet Over All Paths Solution Meet over all paths solution (MOP) of a data flow system – MOP: N  L MOP(s) = NULL (NULL is the element in L which represents “no information”) F fπ is composition of functions from nodes along path π excluding node n. n1n2n3….nk-1nk  fnk o fnk-1 o….o fn2 o fn1

  11. MOP Solution Finding MOP solution is undecidable, i.e. there does not exist a general algorithm that computes MOP solution for all monotone data flow systems. Let X: N  L denote a total function that associates nodes with lattice elements. X is conservative or safe iff ∨n εN, X(n) ≤ MOP(n) Iterative algorithm computes conservative approximation of MOP. For distributive data flow systems, it computes solution that is identical to MOP solution.

  12. Iterative Algorithm

  13. Reaching Definitions

  14. Contd…

  15. Dominators

  16. Constant Propagation f (X)={(a,2),(b,3),(c,5)} f (Y)={(a,3),(b,2),(c,5)} f (X) ∧ f (Y) = {(a,not-const), (b, not-const), (c,5)} X ∧ Y = {(a,not-const),(b,not-const),(c,undef)} f (X∧ Y) = {(a,not-const),(b,not-const),(c,not-const)} f (X ∧ Y) ≤ f(X) ∧ f(Y)

More Related