UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Optimizing CompilersCISC 673
Spring 2011More Control Flow
John CavazosUniversity of Delaware
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 2
Overview
Introduced control-flow analysis Basic blocks Control-flow graphs
Discuss application of graph algorithms: loops Spanning trees, depth-first spanning trees Dominators Reducibility Dominator tree Strongly-connected components
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 3
Dominance
Node d dominates node i (“d dom i” )if every path from Entry to i includes d
Properties of Dominators Reflexive: a dom a Transitive: if a dom b and b dom c
then a dom c Antisymmetric: if a dom b and b
dom a then b=a
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 4
Immediate Dominance
a idom b iff a dom b there is no c such that a dom c, c dom b (c a, c b)
Idom’s: each node has unique idom relation forms a dominator tree
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 5
Natural loops
Single entry node (d) no jumps into middle of loop d dominates all nodes in loop
Requires back edge into loop header (n→
d) n is tail, d is head single entry point
Natural loop of back edge (n→ d) d + {all nodes that can reach n with
touching d}
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 6
Reducible Loops
Reducible: hierarchical, “well-structured” flowgraph reducible iff
all loops in it natural
A
B
C
D
E
F G
Entry
A
B
C
D
E
F G
Entry
reducible graph irreducible graph
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 7
Reducible Graph Test
Graph is reducible iff …all back edges are ones whose
head dominates its tail
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 8
Reducible Loops (more examples)
Is this a Natural Loop? Why or why not?
Back edge
Loop Header
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 9
Reducible Loops (more examples)
Yes, Natural Loop with Multiple Branches
Back edge
Loop Header
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 10
Reducible Loops (more examples)
Is this a Natural Loop? Why or why not?
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 11
Reducible Loops (more examples)
Not a Natural Loop: 4→ 1 is back edge, but 1 (head) does not dominate 4 (tail)
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 12
Why is this not a Reducible Graph?
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 13
Nonreducible Graph
B (head) does not dominate C (tail)
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 14
Reducibility Example
Some languages only permit procedures with reducible flowgraphs (e.g., Java)
“GOTO Considered Harmful”: can introduce irreducibility FORTRAN C C++
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 15
Dominance Tree
A
B
C
D
E
F G
Entry
Immediate and other dominators:(excluding Entry) a idom b; a dom a, b, c,
d, e, f, g b idom c; b dom b, c,
d, e, f, g c idom d; c dom c, d, e,
f, g d idom e; d dom d, e, f,
g e idom f, e idom g; e
dom e, f, g
A
B
C
D
E
F G
Entry
control-flow graph dominator tree
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 16
Dominator Tree?
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 17
Dominator Tree
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 18
Reducible Graph?
Construct Spanning Tree to identify back edges. Now check natural back edges property, i.e., head must dominate tail
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 19
Natural Loops
Now we can find natural loops Given back edge m → n, natural
loop is n (loop header) and nodes that can reach m without passing through n
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 20
Find Natural Loops?
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 21
Natural Loops
Back Edge Natural Loop J → G {G,H,J} G → D {D,E,F,G,H,J} D → C {C,D,E,F,G,H,J} H → C {C,D,E,F,G,H,J} I → A {A,B,C,D,E,F,G,H,I,J}
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 22
Strongly-Connected Components
What about irreducible flowgraphs? Most general loop form = strongly-
connected component (SCC): subgraph S such that every node in S
reachable from every other node by path including only edges in S
Maximal SCC: S is maximal SCC if it is the largest SCC
that contains S.
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 23
SCC Example
Entry
B1
B2
B3
Strongly-connected components (SCC)(B1, B2), (B2, B3),
(B1, B2, B3)
Maximal SCC(B1, B2, B3)
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 24
Computing Maximal SCCs
Tarjan’s algorithm: Computes all maximal SCCs Linear-time (in number of nodes and
edges) CLR algorithm:
Also linear-time Simpler:
Two depth-first searches and one “transpose”:reverse all graph edge
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT 25
Next Time
Dataflow analysis Read Marlowe and Ryder paper
Top Related