Optimizing Compilers CISC 673 Spring 2011 Yet More Data flow analysis
-
Upload
germane-meyer -
Category
Documents
-
view
30 -
download
0
description
Transcript of Optimizing Compilers CISC 673 Spring 2011 Yet More Data flow analysis
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Optimizing CompilersCISC 673
Spring 2011
Yet More Data flow analysis
John CavazosUniversity of Delaware
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 2
Overview
Additional Data Flow Problem Constant Propagation Generalization of Data Flow
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 3
Constant Propagation
Along every path to point p, variable v has same “known” value
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 4
Constant Propagation
Specialize computation at p based on v’s value
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 5
Constant Propagation Lattice
Lattice is a poset with (V, ≤) V meet (or join)
operator ≤ ordering operator
… -2 -1 0 1 2 ...
The Lattice of Constant Prop
Hasse diagram
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 6
Two Special Elements in Lattice
⊤ (called top) Not a Constant
⊥ (called bottom) Unknown
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 7
Some Lattice Theory
Generalized Meet Operator ⊔ Used at “merge” points
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 8
Some Lattice Theory (cont’d)
Meet Operator (⊔) for Avail Expressions Avail Expression (w/ sets): Avail Expression (w/ Bit Vectors): ⋀
Produces 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 9
Iterative Data Flow Analysis
Initialize non-entry nodes to identify element Identity element for meet function
Remember last time:
X ⋀ 1 = X
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 10
Iterative Data Flow Analysis (cont’d)
If node function is monotone: Each re-evaluation of node moves
up the lattice, if it moves at all If height of lattice is finite, must
terminate
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 11
Top ⊤ versus Bottom ⊥
⊤ means definitely NOT a constant Inputs are ⊤
⊥ means Unknown or Undefined Could be constant but we do not
know!
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 12
More Lattice Theory: Ordering Op
≤ ordering operator ⊥ ≤ anything ∀x ⊥ ⊔ x = x anything ≤ ⊤ ∀x x ⊔ ⊤= ⊤ ∀x x ⊔ x = x
… -2 -1 0 1 2 ...
The Lattice of Constant Prop
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 13
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 14
What is X in Block 3?
1. 2.
3.
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 15
What is X in Block 3?
1. 2.
3.
x is ⊤
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 16
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 17
Constant Prop Example
Meet Operator = ⊔ Identity= ? X ⊔ ? = X
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 18
Constant Prop Example
Meet Operator = ⊔ Identify= ⊥ X ⊔ ⊥ = X Initial Condition?
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 19
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 20
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 21
Constant Prop Example
⊥⊥⊥
⊥⊥⊥⊥⊥⊥
⊥⊥⊥
1.
2. 3.
4.
out1= ???⊥⊥⊥XYZ
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 22
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 23
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 24
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 25
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 26
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
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 27
Next Time
Intelligent Compilation