0 Error(s) Block #1 def = {} use = {} visited = 1 DS: $y null DS: $x null Second Block #1 def = {$y=(1)5, $x=(1)6} use = {} Block #2 def = {$y=(1)5, $x=(1)6} use = {} visited = 1 2 DS: $y $q DSS: $z $y null DS: $w $x --> false <-- --> 2,2,6,1 <-- --> 1,2,0,2 <-- DSS: $x $x $z --> false <-- --> 6,1,3,2 <-- --> 5,1,0,2 <-- ANTI ADDED: (2)2 -> (2)3 --> false <-- --> 2,2,3,2 <-- --> 1,2,0,2 <-- --> false <-- --> 2,2,3,2 <-- --> 2,2,6,1 <-- BLOCK #2 1 -> 2 -> ------------------------------ 0: MOV $y $q; 1: DIV $z $y (i)2; true: 0 2: MOV $w $x; true: (1)6 anti: 3 3: ADD $x $x $z; // dwloop condition $x < (i)10 ------------------------------ -> 2 -> 3 --> false <-- --> 3,2,6,1 <-- --> 1,2,0,2 <-- --> false <-- --> 3,2,6,1 <-- --> 2,2,6,1 <-- --> false <-- --> 3,2,6,1 <-- --> 2,2,3,2 <-- --> false <-- --> 3,2,1,2 <-- --> 1,2,0,2 <-- --> false <-- --> 3,2,1,2 <-- --> 2,2,6,1 <-- --> false <-- --> 3,2,1,2 <-- --> 2,2,3,2 <-- --> false <-- --> 3,2,1,2 <-- --> 3,2,6,1 <-- SS: $x null --> false <-- --> 5,2,3,2 <-- --> 1,2,0,2 <-- --> false <-- --> 5,2,3,2 <-- --> 2,2,6,1 <-- --> false <-- --> 5,2,3,2 <-- --> 2,2,3,2 <-- --> false <-- --> 5,2,3,2 <-- --> 3,2,6,1 <-- --> false <-- --> 5,2,3,2 <-- --> 3,2,1,2 <-- Second Block #2 def = {$z=(2)1, $y=(2)0, $x=(2)3, $w=(2)2} use = {$q=(2)0, $z=(2)3, $y=(2)1, $x=(2)5} Block #3 def = {$z=(2)1, $y=(2)0, $x=(2)3, $w=(2)2} use = {$q=(2)0, $z=(2)3, $y=(2)1, $x=(2)5} visited = 1 2 3 DSS: $q $q null ANTI ADDED: (2)0 -> (3)0 --> false <-- --> 0,2,0,3 <-- --> 1,2,0,2 <-- --> false <-- --> 0,2,0,3 <-- --> 2,2,6,1 <-- --> false <-- --> 0,2,0,3 <-- --> 2,2,3,2 <-- --> false <-- --> 0,2,0,3 <-- --> 3,2,6,1 <-- --> false <-- --> 0,2,0,3 <-- --> 3,2,1,2 <-- --> false <-- --> 0,2,0,3 <-- --> 5,2,3,2 <-- BLOCK #2 1 -> 2 -> ------------------------------ 0: MOV $y $q; anti: (3)0 1: DIV $z $y (i)2; true: 0 2: MOV $w $x; true: (1)6 anti: 3 3: ADD $x $x $z; true: (1)6, 1 // dwloop condition $x < (i)10 true: 3 ------------------------------ -> 2 -> 3 Second Block #3 def = {$q=(3)0, $z=(2)1, $y=(2)0, $x=(2)3, $w=(2)2} use = {$q=(3)0, $z=(2)3, $y=(2)1, $x=(2)5} Block #2 def = {$z=(2)1, $y=(2)0, $x=(2)3, $w=(2)2} use = {$q=(2)0, $z=(2)3, $y=(2)1, $x=(2)5} visited = 1 2 2 DS: $y $q --> false <-- --> 0,2,0,2 <-- --> 1,2,0,2 <-- --> false <-- --> 0,2,0,2 <-- --> 2,2,6,1 <-- --> false <-- --> 0,2,0,2 <-- --> 2,2,3,2 <-- --> false <-- --> 0,2,0,2 <-- --> 3,2,6,1 <-- --> false <-- --> 0,2,0,2 <-- --> 3,2,1,2 <-- --> false <-- --> 0,2,0,2 <-- --> 5,2,3,2 <-- --> false <-- --> 0,2,0,2 <-- --> 0,2,0,3 <-- dep1: 8 ANTI ADDED: (2)1 -> (2)0 --> true <-- --> 1,2,0,2 <-- --> 1,2,0,2 <-- dep2: 8 --> BLOCK #2 1 -> 2 -> ------------------------------ 0: MOV $y $q; anti: (3)0 1: DIV $z $y (i)2; true: 0 2: MOV $w $x; true: (1)6 anti: 3 3: ADD $x $x $z; true: (1)6, 1 // dwloop condition $x < (i)10 true: 3 ------------------------------ -> 2 -> 3 DSS: $z $y null --> false <-- --> 1,2,1,2 <-- --> 1,2,0,2 <-- --> false <-- --> 1,2,1,2 <-- --> 2,2,6,1 <-- --> false <-- --> 1,2,1,2 <-- --> 2,2,3,2 <-- --> false <-- --> 1,2,1,2 <-- --> 3,2,6,1 <-- --> false <-- --> 1,2,1,2 <-- --> 3,2,1,2 <-- --> false <-- --> 1,2,1,2 <-- --> 5,2,3,2 <-- --> false <-- --> 1,2,1,2 <-- --> 0,2,0,3 <-- --> false <-- --> 1,2,1,2 <-- --> 0,2,0,2 <-- ANTI ADDED: (2)3 -> (2)1 --> false <-- --> 3,2,1,2 <-- --> 1,2,0,2 <-- --> false <-- --> 3,2,1,2 <-- --> 2,2,6,1 <-- --> false <-- --> 3,2,1,2 <-- --> 2,2,3,2 <-- --> false <-- --> 3,2,1,2 <-- --> 3,2,6,1 <-- --> true <-- --> 3,2,1,2 <-- --> 3,2,1,2 <-- BLOCK #2 1 -> 2 -> ------------------------------ 0: MOV $y $q; anti: (3)0 1: DIV $z $y (i)2; true: 0 2: MOV $w $x; true: (1)6 anti: 3 3: ADD $x $x $z; true: (1)6, 1 // dwloop condition $x < (i)10 true: 3 ------------------------------ -> 2 -> 3 --> true <-- --> 1,2,0,2 <-- --> 1,2,0,2 <-- DS: $w $x --> false <-- --> 2,2,2,2 <-- --> 1,2,0,2 <-- --> false <-- --> 2,2,2,2 <-- --> 2,2,6,1 <-- --> false <-- --> 2,2,2,2 <-- --> 2,2,3,2 <-- --> false <-- --> 2,2,2,2 <-- --> 3,2,6,1 <-- --> false <-- --> 2,2,2,2 <-- --> 3,2,1,2 <-- --> false <-- --> 2,2,2,2 <-- --> 5,2,3,2 <-- --> false <-- --> 2,2,2,2 <-- --> 0,2,0,3 <-- --> false <-- --> 2,2,2,2 <-- --> 0,2,0,2 <-- --> false <-- --> 2,2,2,2 <-- --> 1,2,1,2 <-- --> false <-- --> 2,2,3,2 <-- --> 1,2,0,2 <-- --> false <-- --> 2,2,3,2 <-- --> 2,2,6,1 <-- --> true <-- --> 2,2,3,2 <-- --> 2,2,3,2 <-- DSS: $x $x $z --> false <-- --> 3,2,3,2 <-- --> 1,2,0,2 <-- --> false <-- --> 3,2,3,2 <-- --> 2,2,6,1 <-- --> false <-- --> 3,2,3,2 <-- --> 2,2,3,2 <-- --> false <-- --> 3,2,3,2 <-- --> 3,2,6,1 <-- --> false <-- --> 3,2,3,2 <-- --> 3,2,1,2 <-- --> false <-- --> 3,2,3,2 <-- --> 5,2,3,2 <-- --> false <-- --> 3,2,3,2 <-- --> 0,2,0,3 <-- --> false <-- --> 3,2,3,2 <-- --> 0,2,0,2 <-- --> false <-- --> 3,2,3,2 <-- --> 1,2,1,2 <-- --> false <-- --> 3,2,3,2 <-- --> 2,2,2,2 <-- ANTI ADDED: (2)2 -> (2)3 --> false <-- --> 2,2,3,2 <-- --> 1,2,0,2 <-- --> false <-- --> 2,2,3,2 <-- --> 2,2,6,1 <-- --> true <-- --> 2,2,3,2 <-- --> 2,2,3,2 <-- BLOCK #2 1 -> 2 -> ------------------------------ 0: MOV $y $q; anti: (3)0 1: DIV $z $y (i)2; true: 0 2: MOV $w $x; true: (1)6 anti: 3 3: ADD $x $x $z; true: (1)6, 1 // dwloop condition $x < (i)10 true: 3 ------------------------------ -> 2 -> 3 --> false <-- --> 3,2,3,2 <-- --> 1,2,0,2 <-- --> false <-- --> 3,2,3,2 <-- --> 2,2,6,1 <-- --> false <-- --> 3,2,3,2 <-- --> 2,2,3,2 <-- --> false <-- --> 3,2,3,2 <-- --> 3,2,6,1 <-- --> false <-- --> 3,2,3,2 <-- --> 3,2,1,2 <-- --> false <-- --> 3,2,3,2 <-- --> 5,2,3,2 <-- --> false <-- --> 3,2,3,2 <-- --> 0,2,0,3 <-- --> false <-- --> 3,2,3,2 <-- --> 0,2,0,2 <-- --> false <-- --> 3,2,3,2 <-- --> 1,2,1,2 <-- --> false <-- --> 3,2,3,2 <-- --> 2,2,2,2 <-- --> true <-- --> 3,2,3,2 <-- --> 3,2,3,2 <-- --> false <-- --> 3,2,1,2 <-- --> 1,2,0,2 <-- --> false <-- --> 3,2,1,2 <-- --> 2,2,6,1 <-- --> false <-- --> 3,2,1,2 <-- --> 2,2,3,2 <-- --> false <-- --> 3,2,1,2 <-- --> 3,2,6,1 <-- --> true <-- --> 3,2,1,2 <-- --> 3,2,1,2 <-- SS: $x null --> false <-- --> 5,2,3,2 <-- --> 1,2,0,2 <-- --> false <-- --> 5,2,3,2 <-- --> 2,2,6,1 <-- --> false <-- --> 5,2,3,2 <-- --> 2,2,3,2 <-- --> false <-- --> 5,2,3,2 <-- --> 3,2,6,1 <-- --> false <-- --> 5,2,3,2 <-- --> 3,2,1,2 <-- --> true <-- --> 5,2,3,2 <-- --> 5,2,3,2 <-- Second Block #2 def = {$z=(2)1, $y=(2)0, $x=(2)3, $w=(2)2} use = {$q=(2)0, $z=(2)3, $y=(2)1, $x=(2)5} Block #3 def = {$z=(2)1, $y=(2)0, $x=(2)3, $w=(2)2} use = {$q=(2)0, $z=(2)3, $y=(2)1, $x=(2)5} visited = 1 2 2 3 DSS: $q $q null ANTI ADDED: (2)0 -> (3)0 --> false <-- --> 0,2,0,3 <-- --> 1,2,0,2 <-- --> false <-- --> 0,2,0,3 <-- --> 2,2,6,1 <-- --> false <-- --> 0,2,0,3 <-- --> 2,2,3,2 <-- --> false <-- --> 0,2,0,3 <-- --> 3,2,6,1 <-- --> false <-- --> 0,2,0,3 <-- --> 3,2,1,2 <-- --> false <-- --> 0,2,0,3 <-- --> 5,2,3,2 <-- --> true <-- --> 0,2,0,3 <-- --> 0,2,0,3 <-- BLOCK #2 1 -> 2 -> ------------------------------ 0: MOV $y $q; anti: (3)0 1: DIV $z $y (i)2; true: 0 2: MOV $w $x; true: (1)6 anti: 3 3: ADD $x $x $z; true: (1)6, 1 // dwloop condition $x < (i)10 true: 3 ------------------------------ -> 2 -> 3 Second Block #3 def = {$q=(3)0, $z=(2)1, $y=(2)0, $x=(2)3, $w=(2)2} use = {$q=(3)0, $z=(2)3, $y=(2)1, $x=(2)5}