Presentation is loading. Please wait.

Presentation is loading. Please wait.

Iterative Dataflow Problems Taken largely from notes of Alex Aiken (UC Berkeley) and Martin Rinard (MIT) Dataflow information used in optimization Several.

Similar presentations


Presentation on theme: "Iterative Dataflow Problems Taken largely from notes of Alex Aiken (UC Berkeley) and Martin Rinard (MIT) Dataflow information used in optimization Several."— Presentation transcript:

1 Iterative Dataflow Problems Taken largely from notes of Alex Aiken (UC Berkeley) and Martin Rinard (MIT) Dataflow information used in optimization Several different problems fit into a common framework

2 Notation s is a statement succ(s) = { successor statements of s } pred(s) = { predecessor statements of s } write(s) = { variables written by s } read(s) = { variables read by s }

3 Liveness Analysis For each program point p, which of the variables defined at that point are used on some execution path? if y > a + b a := a + 1 x := a + b y := a * b x := a + b Optimization: If a variable is not live, no need to keep it in a register. x is not live here

4 Dataflow Equations

5 Live Variables: Schematic May analysis: property holds on some path Backwards analysis: from outputs to inputs Transfer function:

6 Available Expressions For each program point p, which expressions must have already been computed, and not later modified, on all paths to p. if y > a + b a := a + 1 x := a + b y := a * b x := a + b Optimization: Where available, expressions need not be recomputed. a+b is available here

7 Example if y > a + b a := a + 1 x := a + b y := a * b x := a + ba+ba+b, a*ba+b, a*b, y > a+ba+b a+b, y > a+b

8 Example if y > a + b a := a + 1 x := a + b y := a * b x := a + bx,a,bx,y,a,by,a,b x,y,a,ba,bx

9 Available Expressions Again

10 Available Expressions: Schematic Must analysis: property holds on all paths Forwards analysis: from inputs to outputs Transfer function:

11 Very Busy Expressions An expression e is very busy at program point p if every path from p must evaluate e before any variable in e is redefined Optimization: hoisting expressions A must-analysis A backwards analysis

12 Reaching Definitions For a program point p, which assignments made on paths reaching p have not been overwritten Connects definitions with uses –use-def chains A may-analysis A forwards analysis

13 One Cut at the Dataflow Design Space MayMust ForwardsReaching definitions Available expressions BackwardsLive variablesVery busy expressions

14 The Literature Vast literature of dataflow analyses 90+% can be described by –Forwards or backwards –May or must Some oddballs, but not many –Bidirectional analyses

15 Terminology Must vs. May Forwards vs. Backwards Flow-sensitive vs. Flow-insensitive Lattice Theory --- look at the mathematical definition

16 Partial Orders Set P Partial order  such that  x,y,z  P –x  x (reflexive) –x  y and y  x implies x  y (asymmetric) –x  y and y  z implies x  z(transitive)

17 Upper Bounds If S  P then –x  P is an upper bound of S if  y  S, y  x –x  P is the least upper bound of S if x is an upper bound of S, and x  y for all upper bounds y of S –  - join, least upper bound, lub, supremum, sup  S is the least upper bound of S x  y is the least upper bound of {x,y}

18 Lower Bounds If S  P then –x  P is a lower bound of S if y  S, x  y –x  P is the greatest lower bound of S if x is a lower bound of S, and y  x for all lower bounds y of S –  - meet, greatest lower bound, glb, infimum, inf  S is the greatest lower bound of S x  y is the greatest lower bound of {x,y}

19 Covering x  y if x  y and x  y x is covered by y (y covers x) if –x  y, and –x  z  y implies x  z Conceptually, y covers x if there are no elements between x and y

20 Example P = { 000, 001, 010, 011, 100, 101, 110, 111} (standard boolean lattice, also called hypercube) x  y if (x bitwise and y) = x 111 011 101 110 010 001 000 100 Hasse Diagram If y covers x Line from y to x y above x in diagram

21 Lattices If x  y and x  y exist for all x,y  P, then P is a lattice. If  S and  S exist for all S  P, then P is a complete lattice. All finite lattices are complete Example of a lattice that is not complete –Integers I –For any x, y  I, x  y = max(x,y), x  y = min(x,y) –But  I and  I do not exist –I  { ,  } is a complete lattice

22 Top and Bottom Greatest element of P (if it exists) is top Least element of P (if it exists) is bottom (  )

23 Connection Between , , and  The following 3 properties are equivalent: –x  y –x  y  y –x  y  x Will (well, we could, anyway) prove: –x  y implies x  y  y and x  y  x –x  y  y implies x  y –x  y  x implies x  y Then by transitivity, can obtain –x  y  y implies x  y  x –x  y  x implies x  y  y

24 Connecting Lemma Proofs Proof of x  y  y implies x  y –y is an upper bound of {x,y} implies x  y Proof of x  y  x implies x  y –x is a lower bound of {x,y} implies x  y

25 Lattices as Algebraic Structures Have defined  and  in terms of  Will now define  in terms of  and  –Start with  and  as arbitrary algebraic operations that satisfy associative, commutative, idempotence, and absorption laws –Will define  using  and  –Will show that  is a partial order

26 Algebraic Properties of Lattices Assume arbitrary operations  and  such that –(x  y)  z  x  (y  z)(associativity of  ) –(x  y)  z  x  (y  z)(associativity of  ) –x  y  y  x(commutativity of  ) –x  y  y  x(commutativity of  ) –x  x  x(idempotence of  ) –x  x  x(idempotence of  ) –x  (x  y)  x(absorption of  over  ) –x  (x  y)  x(absorption of  over  )

27 Connection Between  and  x  y  y if and only if x  y  x Proof of x  y  y implies x = x  y x = x  (x  y) (by absorption) = x  y(by assumption) Proof of x  y  x implies y = x  y y = y  (y  x)(by absorption) = y  (x  y)(by commutativity) = y  x (by assumption) = x  y (by commutativity)

28 Chains A set S is a chain if  x,y  S, y  x or x  y P has no infinite chains if every chain in P is finite P satisfies the ascending chain condition if for all sequences x 1  x 2  …there exists n such that x n = x n+1 = …

29 Application to Dataflow Analysis Dataflow information will be lattice values –Transfer functions operate on lattice values –Solution algorithm will generate increasing sequence of values at each program point –Ascending chain condition will ensure termination Will use  to combine values at control-flow join points


Download ppt "Iterative Dataflow Problems Taken largely from notes of Alex Aiken (UC Berkeley) and Martin Rinard (MIT) Dataflow information used in optimization Several."

Similar presentations


Ads by Google