Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 CS 201 Compiler Construction Lecture 9 Static Single Assignment Form.

Similar presentations


Presentation on theme: "1 CS 201 Compiler Construction Lecture 9 Static Single Assignment Form."— Presentation transcript:

1 1 CS 201 Compiler Construction Lecture 9 Static Single Assignment Form

2 Program Representations Why develop Advanced Program Representations? -To develop faster algorithms -To develop more powerful algorithms Superior representation for Data Flow Static Single Assignment Form (SSA Form) superior to def-use chains Superior representation for Control Flow Control Dependence Graph superior to control flow graph 2

3 SSA-Form A program in SSA-form satisfies the following two properties: 1. A use of a variable is reached by exactly one definition of that variable. 1. The program is augmented with ϕ –nodes that distinguish values of variables transmitted on distinct incoming control flow edges. 3

4 Example K  1 L  1 Repeat if (P) then if (Q) then L  2 else L  3 K  K+1 else K  K+2 Until (T) 4 K1  1 L1  1 Repeat K2  ϕ (K1,K5) L2  ϕ (L1,L6) if (P) then if (Q) then L3  2 else L4  3 L5  ϕ (L3,L4) K3  K2+1 else K4  K2+2 K5  ϕ (K3,K4) L6  ϕ (L2,L5) Until (T)

5 SSA-Form Observations: 1. SSA-form has def-use information textually embedded in it. Given a use, we know where the definition comes from. 1. SSA-form is more compact representation of def-use chains. –Def-use chains: #defs x #uses – O(n 2 ) –SSA-form: 2 x #defs or #uses – O(n) 5

6 Constructing SSA-Form Step 1: Introduce functions at certain points in the program -- v  ϕ (v,v,….) where of operands equals number of control predecessors and i th operand corresponds to i th predecessor. 6

7 Contd.. Step 2: Each variable v is given several new names v 1, v 2, …. Such that every name appears exactly once on the left hand side of an assignment. 7

8 Step 1: Introducing ϕ -functions Node Z needs a ϕ -function for variable V if Z is the first node common to two non-null paths that originate at two different nodes each containing: an assignment to V; or a ϕ -function for V. 8

9 Step 1 Contd.. Definition: X strictly dominates Y ≅ X dominates Y & X != Y. Definition: Immediate dominator of a node is its closest strict dominator. Notation: X = idom(Y). Definition: Dominance Frontier DF(X) = {Y: there exists P εpred(Y) such that X dominates P & X does not strictly dominate Y} ϕ -functions are placed at nodes in DF nodes of nodes with assignments. 9

10 Step 1 Contd.. Strict Domination Does Not Strictly Domination Dominate 10 Y ε DF(X)

11 Step 1 Contd.. Observation: if Y εDF(X) then there may or may not be a direct edge from X to Y. 11

12 Step 1 Contd.. 12 Computing Dominance Frontier: for each Y εsucc(X) do if idom(Y) != X then DF(X) = DF(X) U {Y} for each Z εChidren(X) in the dominator tree do for each Y εDF(Z) do if idom(Y) != X then DF(X) = DF(X) U {Y} Compute bottom-up order According to dominator tree

13 Step 1 Contd.. 13 Dominator Tree

14 Step 1 Contd.. Dominance Frontier of a Set of Nodes S DF(S) = DF(X) Iterated Dominance Frontier DF + (S): DF 1 = DF(S) DF i+ 1 = DF(S U DF i ) S – set of nodes which assign to variable V DF + (S) – set of nodes including those where ϕ -functions must be placed. 14

15 Step 2: Rename the Variables Step 2: For each variable v rename its left hand side occurrences as v 1, v 2, …. Perform reaching definition analysis to identify names to use in the right hand side occurrences of v. 15


Download ppt "1 CS 201 Compiler Construction Lecture 9 Static Single Assignment Form."

Similar presentations


Ads by Google