Post on 07-Jan-2016
description
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Optimizing CompilersCISC 673
Spring 2009More Data flow analysis
John CavazosUniversity of Delaware
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 2
Overview
Last Time: Avail Expressions Using Sets Using Bit Vectors Additional Data Flow Problem
Constant Propagation Generalization of Data Flow
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 3
Computing Available Expressions
AVAIL(b) = ppred(b) (DEEXPR(p) (AVAIL(p) EXPRKILL(p) ))
AVAIL(n0) = Ø
where preds(b) is the set of b’s predecessors in the CFG
Remember these!
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 4
Avail Expressions Using Bit Vectors
1 = avail; 0 = not Boundary condition
Forward Flow on Entry Backward Flow on Exit
Initial conditions Merge operator
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Avail Expressions Using Bit Vectors
1=avail0=not
(A+B)(X+Y)
10 = (A+B) avail (X+Y) not
11 = both avail
…
Note: Empty entry and exit blocks added to CFGTo save space not pictured here!
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Avail Expressions Using Bit Vectors
1=avail0=not
(A+B)(X+Y)
What is Merge Operator?Remember original equation
…
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Avail Expressions Using Bit Vectors
1=avail0=not
(A+B)(X+Y)
Merge: and
What is Boundary Condition?Remember original algorithm
(⋀)
…
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Avail Expressions Using Bit Vectors
1=avail0=not
(A+B)(X+Y)
Merge: and
Boundary Condition
Now must initializeOUT of blocks.
Initial Condition?(⋀)
00
…
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Initial Conditions?
What is needed so loops work? Needs to be identify for merge function
X ⋀ ? = X
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Initial Conditions?
What is needed so loops work? Needs to be identify for merge function
X ⋀ 1 = X
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Avail Expressions Using Bit Vectors
1=avail0=not
(A+B)(X+Y)
Merge: and(⋀)
00
1111
11
out=gen ⋁ (in ⋀ kill)─1.
2. 3.
4.
11
…
in[b]=⋀p pred(b)out[p]
gen and kill are constants!─
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Avail Expressions Using Bit Vectors
1=avail0=not
(A+B)(X+Y)
Merge: and(⋀)
00
1111
11
out=gen ⋁ (in ⋀ kill)─1.
2. 3.
4.
out1= ??11
…
in[b]=⋀p pred(b)out[p]
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Avail Expressions Using Bit Vectors
1=avail0=not
(A+B)(X+Y)
Merge: and(⋀)
00
1111
11
out=gen ⋁ (in ⋀ kill)─1.
2. 3.
4.
out1= 11out2= ??
11
…
in[b]=⋀p pred(b)out[p]
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Avail Expressions Using Bit Vectors
1=avail0=not
(A+B)(X+Y)
Merge: and(⋀)
00
1111
11
out=gen ⋁ (in ⋀ kill)─1.
2. 3.
4.
out1= 11out2= 00 ⋁ (?? ⋀ ??)
11
…
in[b]=⋀p pred(b)out[p]
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Avail Expressions Using Bit Vectors
1=avail0=not
(A+B)(X+Y)
Merge: and(⋀)
00
1111
11
out=gen ⋁ (in ⋀ kill)─1.
2. 3.
4.
out1= 11out2= 00 ⋁ (11 ⋀ ??)
11
…
in[b]=⋀p pred(b)out[p]
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Avail Expressions Using Bit Vectors
1=avail0=not
(A+B)(X+Y)
Merge: and(⋀)
00
11
11
out=gen ⋁ (in ⋀ kill)─1.
2. 3.
4.
out1= 11out2= 00 ⋁ (11 ⋀ 01)
11
= 01out3= ??01
…
in[b]=⋀p pred(b)out[p]
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Avail Expressions Using Bit Vectors
1=avail0=not
(A+B)(X+Y)
Merge: and(⋀)
00
11
11
out=gen ⋁ (in ⋀ kill)─1.
2. 3.
4.
out1= 11out2= 00 ⋁ (11 ⋀ 01)
11
= 01out3= 01 ⋁ (?? ⋀ ??)01
…
in[b]=⋀p pred(b)out[p]
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Avail Expressions Using Bit Vectors
1=avail0=not
(A+B)(X+Y)
Merge: and(⋀)
00
11
11
out=gen ⋁ (in ⋀ kill)─1.
2. 3.
4.
out1= 11out2= 00 ⋁ (11 ⋀ 01)
11
= 01out3= 01 ⋁ (11 ⋀ 11)01
= 11
…
in[b]=⋀p pred(b)out[p]
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Avail Expressions Using Bit Vectors
1=avail0=not
(A+B)(X+Y)
Merge: and(⋀)
00
11
11
out=gen ⋁ (in ⋀ kill)─1.
2. 3.
4.
out1= 11out2= 00 ⋁ (11 ⋀ 01)
11
= 01out3= 01 ⋁ (11 ⋀ 11)01
= 11out4= ??
…
in[b]=⋀p pred(b)out[p]
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Avail Expressions Using Bit Vectors
1=avail0=not
(A+B)(X+Y)
Merge: and(⋀)
00
11
out=gen ⋁ (in ⋀ kill)─1.
2. 3.
4.
out1= 11out2= 00 ⋁ (11 ⋀ 01)
11
= 01out3= 01 ⋁ (11 ⋀ 11)01
= 11out4= 00 ⋁ (01 ⋀ 11)
= 01 01
…
in[b]=⋀p pred(b)out[p]
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 21
Constant Propagation
Along every path to point p,variable v has same “known” value
Specialize computation at p based on v’s value
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 22
Constant Propagation
Lattice (V, ≤) Top ⊤
Not a Constant Bottom ⊥
Unknown
… -2 -1 0 1 2 ...
The Lattice of CP
Hasse diagram
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 23
Some Lattice Theory
Generalized Meet Operator ⊔ Used at “merge” points Avail Expression:
Least Upper Bound (LUB)
X ⊔ Y = least element Z s.t.
X ≤ Z and Y ≤ Z
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 24
Concrete Example: Available Expressions
{ }
{a+b} {c+d} {e+f} {a+17} {b+18}
{a+b,c+d} {a+b,a+17} {c+d,e+f} {c+d,b+18} {e+f,b+18} {a+b,e+f} {a+b,b+18} {c+d,a+17} {e+f,a+17} {a+17,b+18}
{a+b,c+d,e+f} {a+b,c+d,b+18} {a+b,c+d,a+17} {a+b,e+f,a+17} {a+b,e+f,b+18} {a+b,a+17,b+18} {c+d,e+f,a+17} {c+d,e+f,b+18} {c+d,a+17,b+18} {e+f,a+17,b+18},
{a+b,c+d,e+f,a+17} {a+b,c+d,e+f,b+18} {a+b,c+d,a+17,b+18} {a+b,e+f,a+17,b+18}
{c+d,e+f,a+17,b+18}
{a+b,c+d,e+f,a+17,b+18},
meet
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 25
More Lattice Theory: Const Prop
⊥ ≤ anything ∀x ⊥ ⊔ x = x anything ≤ ⊤ ∀x x ⊔ ⊤= ⊤ ∀x x ⊔ x = x
… -2 -1 0 1 2 ...
The Lattice of CP
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 26
Relate to Constant Prop?!
i and j are integer values i ⊔ i = i i ⊔ j = ⊤ if i ≠ j
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 27
What is X in Block 3?
1. 2.
3.
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 28
What is X in Block 3?
1. 2.
3.
x is ⊤
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 29
Top ⊤ versus Bottom ⊥
⊤ means definitely NOT a constant Inputs are ⊤
⊥ means Undefined Could be constant but we do not
know!
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 30
Constant Propagation Problem
Variable v has constant value c at point p, iff ∀ paths from entry to p, the most recently assigned value for v is c
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 31
Constant Prop Example
Meet Operator = ⊔ Identity= ? X ⊔ ? = X
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 32
Constant Prop Example
Meet Operator = ⊔ Identify= ⊥ X ⊔ ⊥ = X Initial Condition?
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 33
Constant Prop Example
Meet Operator = ⊔ Identify= ⊥ X ⊔ ⊥ = X Initial Condition Boundary Condition?
⊥⊥⊥
⊥⊥⊥⊥⊥⊥
⊥⊥⊥
XYZ
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 34
Constant Prop Example
Meet Operator = ⊔ Identify= ⊥ X ⊔ ⊥ = X Initial Condition Boundary Condition
⊥⊥⊥
⊥⊥⊥⊥⊥⊥
⊥⊥⊥
⊥⊥⊥
1.
2. 3.
4.
XYZ
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 35
Constant Prop Example
⊥⊥⊥
⊥⊥⊥⊥⊥⊥
⊥⊥⊥
1.
2. 3.
4.
out1= ???⊥⊥⊥XYZ
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 36
Constant Prop Example
⊥⊥⊥⊥⊥⊥
⊥⊥⊥
1.
2. 3.
4.
out1= 1⊥⊥out2= ???
⊥⊥⊥
1⊥⊥
XYZ
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 37
Constant Prop Example
⊥⊥⊥
⊥⊥⊥
1.
2. 3.
4.
out1= 1⊥⊥out2= 023out3= ???
⊥⊥⊥
1⊥⊥
023
XYZ
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 38
Constant Prop Example
⊥⊥⊥
1.
2. 3.
4.
out1= 1⊥⊥out2= 023out3= 12⊥out4= ???
⊥⊥⊥
1⊥⊥
023
XYZ
12⊥
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 39
Constant Prop Example
1.
2. 3.
4.
out1= 1⊥⊥out2= 023out3= 12⊥
out4= ⊤23
⊥⊥⊥
1⊥⊥
023
XYZ
12⊥
⊤23
Does this make sense?
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 40
Next Time
Static-Single Assignment (SSA Form)
Read Efficiently computing static single
assignment form and the control dependence graph, Cytron et al.
http://portal.acm.org/citation.cfm?id=115320