Download presentation

Presentation is loading. Please wait.

Published byAleah Busby Modified over 2 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

OK

PSUCS322 HM 1 Languages and Compiler Design II Strongly Connected Components Herbert G. Mayer PSU Spring 2010 rev.: 5/28/2010.

PSUCS322 HM 1 Languages and Compiler Design II Strongly Connected Components Herbert G. Mayer PSU Spring 2010 rev.: 5/28/2010.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on world literacy day Ppt on natural and artificial satellites pictures Ppt on hydrostatic forces on submerged surfaces Ppt on image sensor Ppt on all windows operating system Ppt on edge detection in c Ppt on railway track Download ppt on reaching the age of adolescence for class 8 Ppt on iso 9000 Notebook backgrounds for ppt on social media