optimizing compilers cisc 673 spring 2011 yet more data flow analysis

27
UNIVERSITY NIVERSITY OF OF D DELAWARE ELAWARE C COMPUTER & OMPUTER & INFORMATION NFORMATION SCIENCES CIENCES DEPARTMENT EPARTMENT Optimizing Compilers CISC 673 Spring 2011 Yet More Data flow analysis John Cavazos University of Delaware

Upload: germane-meyer

Post on 01-Jan-2016

24 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: 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

Page 2: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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

Page 3: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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

Page 4: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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

Page 5: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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

Page 6: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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

Page 7: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 7

Some Lattice Theory

Generalized Meet Operator ⊔ Used at “merge” points

Page 8: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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

Page 9: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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

Page 10: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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

Page 11: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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!

Page 12: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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

Page 13: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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

Page 14: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 14

What is X in Block 3?

1. 2.

3.

Page 15: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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 ⊤

Page 16: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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

Page 17: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 17

Constant Prop Example

Meet Operator = ⊔ Identity= ? X ⊔ ? = X

Page 18: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 18

Constant Prop Example

Meet Operator = ⊔ Identify= ⊥ X ⊔ ⊥ = X Initial Condition?

Page 19: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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

Page 20: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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

Page 21: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 21

Constant Prop Example

⊥⊥⊥

⊥⊥⊥⊥⊥⊥

⊥⊥⊥

1.

2. 3.

4.

out1= ???⊥⊥⊥XYZ

Page 22: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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

Page 23: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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

Page 24: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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⊥

Page 25: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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?

Page 26: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

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

Page 27: Optimizing Compilers CISC 673 Spring 2011 Yet  More Data flow analysis

UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 27

Next Time

Intelligent Compilation