optimizing compilers cisc 673 spring 2011 yet more data flow analysis
DESCRIPTION
Optimizing Compilers CISC 673 Spring 2011 Yet More Data flow analysis. John Cavazos University of Delaware. Overview. Additional Data Flow Problem Constant Propagation Generalization of Data Flow. Constant Propagation. Along every path to point p, variable v has same “known” value. - PowerPoint PPT PresentationTRANSCRIPT
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