CS232 Instruction sets, RISC vs. CISC, Compilers, Assemblers
Optimizing Compilers CISC 673 Spring 2009 More Data flow analysis
description
Transcript of Optimizing Compilers CISC 673 Spring 2009 More Data flow analysis
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