Download presentation
Presentation is loading. Please wait.
Published byAleah Busby Modified over 9 years ago
1
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT Optimizing Compilers CISC 673 Spring 2011 More Control Flow John Cavazos University of Delaware
2
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 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
3
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 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
4
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 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
5
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 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}
6
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 6 Reducible Loops Reducible: hierarchical, “well-structured” flowgraph reducible iff all loops in it natural reducible graphirreducible graph
7
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 7 Reducible Graph Test Graph is reducible iff … all back edges are ones whose head dominates its tail
8
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 8 Reducible Loops (more examples) Is this a Natural Loop? Why or why not? Back edge Loop Header
9
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 9 Reducible Loops (more examples) Yes, Natural Loop with Multiple Branches Back edge Loop Header
10
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 10 Reducible Loops (more examples) Is this a Natural Loop? Why or why not?
11
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 11 Reducible Loops (more examples) Not a Natural Loop: 4 → 1 is back edge, but 1 (head) does not dominate 4 (tail)
12
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 12 Why is this not a Reducible Graph?
13
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 13 Nonreducible Graph B (head) does not dominate C (tail)
14
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 14 Reducibility Example Some languages only permit procedures with reducible flowgraphs (e.g., Java) “GOTO Considered Harmful”: can introduce irreducibility FORTRAN C C++
15
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 15 Dominance Tree 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 control-flow graphdominator tree
16
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 16 Dominator Tree?
17
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 17 Dominator Tree
18
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 18 Reducible Graph? Construct Spanning Tree to identify back edges. Now check natural back edges property, i.e., head must dominate tail
19
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 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
20
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 20 Find Natural Loops?
21
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 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}
22
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 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.
23
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 23 SCC Example Entry B1 B2 B3 Strongly-connected components (SCC) (B1, B2), (B2, B3), (B1, B2, B3) Maximal SCC (B1, B2, B3)
24
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 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
25
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 25 Next Time Dataflow analysis Read Marlowe and Ryder paper
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.