# 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.

## Presentation on theme: "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."— Presentation transcript:

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

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

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

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

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}

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

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

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

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

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?

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)

U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 12 Why is this not a Reducible Graph?

U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 13 Nonreducible Graph B (head) does not dominate C (tail)

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++

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

U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 16 Dominator Tree?

U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 17 Dominator Tree

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

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

U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 20 Find Natural Loops?

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}

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.

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)

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

U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT 25 Next Time Dataflow analysis Read Marlowe and Ryder paper

Download ppt "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."

Similar presentations