












Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
An iterative algorithm proposed by das and ramakrishna for computing φ-functions in the context of static single assignment (ssa) form. The algorithm uses a dominator tree with j-edges (dj graph) and top-down merge set computation. The document also covers related work and provides complexity analysis.
Typology: Assignments
1 / 20
This page cannot be seen from the preview
Don't miss anything!
Top Down Merge Set Computation-I 01: RequireAnotherPass = False; 02: while (in B(readth) F(irst) S(earch) order) do 03: Let n = Next Node in the BFS list 04: for (all incoming edges to n )^ do 05: Let e = Incoming edge 06: if ( e^ is a J-edge && e not visited) then 07: Visit ( e ) 08: Let snode = Source Node of e 09: Let tnode = Target Node of e 10: Let tmp = snode 11: Let lnode = NULL 12: while ( level ( tmp )^ ≥ level ( tnode )) do 13: Merge ( tmp ) = Merge ( tmp ) U Merge ( tnode ) U { tnode } 14: lnode = tmp 15: tmp = parent ( tmp ) // dominator tree parent 16: end while 17: for (all incoming edges to lnode )^ do // lnode ancestor of snode 18: Let e = Incoming edge 19: if ( e is a J-edge && e visited) then 20: Let snode = Source Node of e 21: if ( Merge ( snode )!(Subset) Merge ( lnode )) then // Check inconsistency 22: RequireAnotherPass = True 23: end if 24: end if 25: end for 26: end if 27: end for 28: end while 29: return RequireAnotherPass
Complete Top Down Merge SetComputation 1: do 2: RequireAnotherPass = TDMSC-I( GDJ ) 3: while (RequireAnotherPass)
avg
avg
Improvements to the Iterative MergeSet Computation Algorithm 01: RequireAnotherPas s^ = False; 02: while (in BFS order) do 03: Let n = Next Node in the BFS list 04: for (all incoming edges to n )^ do 05: Let e = Incoming edge 06: if^ ( e is a J-edge & &^ e^ not visited) then 07: Visit ( e ) 08: Let snode = Source Node of e 09: Let tnode = Target Node of e 10: Let tmp = snode 11: Let lnode = NULL 12: while ( level ( tmp )^ ≥ level ( tnode ))^ do 13: Merge ( tmp ) = Merge ( tmp ) U Merge ( tnode ) U { tnode } 14: lnode = tmp 15: tmp = parent ( tmp ) // dominator t ree parent 16: end while 17: for (all incoming edges to lnode )^ do 18: Let e = Incoming edge 19: if^ ( e is a J-edge && e visited) then 20: Let snode = Source Node of e 21: if^ ( Merge ( snode ) !(Subset) Merge ( lnode ))^ then 22: Let node = snode 23: Let lnode = NULL 24: while ( level ( node )^ ≥ level ( lnode ))^ do 25: // Local Cor rection for Shadow (( snode ,^ lnode )) 26: Merge ( node ) = Merge ( node ) U Merge ( lnode ) 27: lnode = node 28: node = parent ( node ) 29: end while 30: if^ ( An Incoming J Edge Inconsistent ( lnode ))^ then 31: RequireAnotherPas s^ = True 32: end if 33: end if 34: end if 35: end for 36: end if 37: end for 38: end while 39: return RequireAnotherPass 01: RequireAnotherPass = False; 02: while (in B(readth) F(irst) S(earch) order) do 03: Let n = Next Node in the BFS list 04: for (all incoming edges to n )^ do 05: Let e = Incoming edge 06: if^ ( e is a J-edge && e not visited) then 07: Visit ( e ) 08: Let snode = Source Node of e 09: Let tnode = Target Node of e 10: Let tmp = snode 11: Let lnode = NULL 12: while ( level ( tmp )^ ≥ level ( tnode )) do 13: Merge ( tmp ) = Merge ( tmp ) U Merge ( tnode ) U { tnode } 14: lnode = tmp 15: tmp = parent ( tmp ) // dominator tree parent 16: end while 17: for (all incoming edges to lnode )^ do // lnode ancestor of snode 18: Let e = Incoming edge 19: if^ ( e is a J-edge && e visited) then 20: Let snode = Source Node of e 21: if ( Merge ( snode )!(Subset) Merge ( lnode )) then // Check inconsistency 22: RequireAnotherPass = True 23: end if 24: end if 25: end for 26: end if 27: end for 28: end while 29: return RequireAnotherPass