@ -1,172 +1,176 @@
digraph iCFG {
digraph iCFG {
57 [label="57: BinaryOperatorStmt: Assign \n n$6=*&SIL_temp_conditional___51:int [line 23]\n NULLIFY(&SIL_temp_conditional___51 ,true); [line 23]\n *&y:int =n$6 [line 23]\n REMOVE_TEMPS(n$6); [line 23]\n NULLIFY(&y,false); [line 23]\n " shape="box"]
58 [label="58: BinaryOperatorStmt: Assign \n n$6=*&SIL_temp_conditional___52:int [line 23]\n NULLIFY(&SIL_temp_conditional___52 ,true); [line 23]\n *&y:int =n$6 [line 23]\n REMOVE_TEMPS(n$6); [line 23]\n NULLIFY(&y,false); [line 23]\n " shape="box"]
57 -> 41 ;
58 -> 42 ;
57 -> 42 ;
58 -> 43 ;
56 [label="56: UnaryOperator \n n$5=*&x:int [line 23]\n *&x:int =(n$5 - 1) [line 23]\n DECLARE_LOCALS(&SIL_temp_conditional___51); [line 23]\n *&SIL_temp_conditional___51 :int =n$5 [line 23]\n REMOVE_TEMPS(n$5); [line 23]\n NULLIFY(&x,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"]
57 [label="57: ConditinalStmt Branch \n n$5=*&x:int [line 23]\n *&x:int =(n$5 - 1) [line 23]\n DECLARE_LOCALS(&SIL_temp_conditional___52); [line 23]\n *&SIL_temp_conditional___52 :int =n$5 [line 23]\n REMOVE_TEMPS(n$5); [line 23]\n NULLIFY(&x,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"]
56 -> 51 ;
57 -> 52 ;
55 [label="55: UnaryOperator \n n$4=*&x:int [line 23]\n *&x:int =(n$4 + 1) [line 23]\n DECLARE_LOCALS(&SIL_temp_conditional___51); [line 23]\n *&SIL_temp_conditional___51 :int =(n$4 + 1) [line 23]\n REMOVE_TEMPS(n$4); [line 23]\n NULLIFY(&x,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"]
56 [label="56: ConditinalStmt Branch \n n$4=*&x:int [line 23]\n *&x:int =(n$4 + 1) [line 23]\n DECLARE_LOCALS(&SIL_temp_conditional___52); [line 23]\n *&SIL_temp_conditional___52 :int =(n$4 + 1) [line 23]\n REMOVE_TEMPS(n$4); [line 23]\n NULLIFY(&x,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"]
55 -> 51 ;
56 -> 52 ;
54 [label="54: Prune (false branch) \n PRUNE(((n$3 > 1) == 0), false); [line 23]\n REMOVE_TEMPS(n$3); [line 23]\n " shape="invhouse"]
55 [label="55: Prune (false branch) \n PRUNE(((n$3 > 1) == 0), false); [line 23]\n REMOVE_TEMPS(n$3); [line 23]\n " shape="invhouse"]
55 -> 57 ;
54 [label="54: Prune (true branch) \n PRUNE(((n$3 > 1) != 0), true); [line 23]\n REMOVE_TEMPS(n$3); [line 23]\n " shape="invhouse"]
54 -> 56 ;
54 -> 56 ;
53 [label="53: Prune (true branch) \n PRUNE(((n$3 > 1) != 0), true); [line 23]\n REMOVE_TEMPS(n$3); [line 23]\n " shape="invhouse"]
53 [label="53: BinaryOperatorStmt: GT \n *&x:int =1 [line 23]\n n$3=*&x:int [line 23]\n " shape="box "]
53 -> 54 ;
53 -> 55 ;
53 -> 55 ;
52 [label="52: BinaryOperatorStmt: GT \n *&x:int =1 [line 23]\n n$3=*&x:int [line 23]\n " shape="box" ]
52 [label="52: + \n " ]
52 -> 53 ;
52 -> 58 ;
52 -> 54 ;
51 [label="51: Return Stmt \n n$2=*&SIL_temp_conditional___40:int [line 24]\n NULLIFY(&SIL_temp_conditional___40,true); [line 24]\n *&return:int =(0 + n$2) [line 24]\n REMOVE_TEMPS(n$2); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"]
51 [label="51: + \n " ]
51 -> 57 ;
51 -> 39 ;
50 [label="50: Return Stmt \n n$2=*&SIL_temp_conditional___39:int [line 24]\n NULLIFY(&SIL_temp_conditional___39,true); [line 24]\n *&return:int =(0 + n$2) [line 24]\n REMOVE_TEMPS(n$2); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"]
50 [label="50: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___40); [line 24]\n *&SIL_temp_conditional___40:int =0 [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"]
50 -> 38 ;
50 -> 40 ;
49 [label="49: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___39); [line 24]\n *&SIL_temp_conditional___39:int =0 [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"]
49 [label="49: ConditinalStmt Branch \n *&x:int =1 [line 24]\n n$1=*&x:int [line 24]\n DECLARE_LOCALS(&SIL_temp_conditional___40); [line 24]\n *&SIL_temp_conditional___40:int =n$1 [line 24]\n REMOVE_TEMPS(n$1); [line 24]\n NULLIFY(&x,false); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"]
49 -> 39 ;
49 -> 40 ;
48 [label="48: BinaryOperatorStmt: Assign \n *&x:int =1 [line 24]\n n$1=*&x:int [line 24]\n DECLARE_LOCALS(&SIL_temp_conditional___39); [line 24]\n *&SIL_temp_conditional___39:int =n$1 [line 24]\n REMOVE_TEMPS(n$1); [line 24]\n NULLIFY(&x,false); [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box "]
48 [label="48: Prune (false branch) \n PRUNE(((n$0 > 1) == 0), false); [line 24]\n REMOVE_TEMPS(n$0); [line 24]\n " shape="invhouse "]
48 -> 39 ;
48 -> 50 ;
47 [label="47: Prune (false branch) \n PRUNE(((n$0 > 1) == 0), fals e); [line 24]\n REMOVE_TEMPS(n$0); [line 24]\n " shape="invhouse"]
47 [label="47: Prune (true branch) \n PRUNE(((n$0 > 1) != 0), tru e); [line 24]\n REMOVE_TEMPS(n$0); [line 24]\n " shape="invhouse"]
47 -> 49 ;
47 -> 49 ;
46 [label="46: Prune (true branch) \n PRUNE(((n$0 > 1) != 0), true); [line 24]\n REMOVE_TEMPS(n$0); [line 24]\n " shape="invhouse "]
46 [label="46: BinaryOperatorStmt: GT \n n$0=*&SIL_temp_conditional___41:int [line 24]\n NULLIFY(&SIL_temp_conditional___41,true); [line 24]\n " shape="box "]
46 -> 47 ;
46 -> 48 ;
46 -> 48 ;
45 [label="45: BinaryOperatorStmt: GT \n n$0=*&SIL_temp_conditional___40:int [line 24]\n NULLIFY(&SIL_temp_conditional___40,true) ; [line 24]\n " shape="box"]
45 [label="45: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___41); [line 24]\n *&SIL_temp_conditional___41:int =2 [line 24]\n APPLY_ABSTRACTION ; [line 24]\n " shape="box"]
45 -> 46 ;
45 -> 41 ;
45 -> 47 ;
44 [label="44: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___41); [line 24]\n *&SIL_temp_conditional___41:int =1 [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"]
44 [label="44: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___40); [line 24]\n *&SIL_temp_conditional___40:int =2 [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box"]
44 -> 40 ;
44 -> 41 ;
43 [label="43: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___40); [line 24]\n *&SIL_temp_conditional___40:int =1 [line 24]\n APPLY_ABSTRACTION; [line 24]\n " shape="box "]
43 [label="43: Prune (false branch) \n PRUNE(((3 > 4) == 0), false); [line 24]\n " shape="invhouse "]
43 -> 40 ;
43 -> 45 ;
42 [label="42: Prune (false branch) \n PRUNE(((3 > 4) == 0), fals e); [line 24]\n " shape="invhouse"]
42 [label="42: Prune (true branch) \n PRUNE(((3 > 4) != 0), tru e); [line 24]\n " shape="invhouse"]
42 -> 44 ;
42 -> 44 ;
41 [label="41: Prune (true branch) \n PRUNE(((3 > 4) != 0), true); [line 24]\n " shape="invhouse" ]
41 [label="41: + \n " ]
41 -> 43 ;
41 -> 46 ;
40 [label="40: + \n " ]
40 [label="40: + \n " ]
40 -> 4 5 ;
40 -> 51 ;
39 [label="39: + \n " ]
39 [label="39: Exit bar \n " color=yellow style=filled ]
39 -> 50 ;
38 [label="38: Start bar\nFormals: \nLocals: y:int x:int \n DECLARE_LOCALS(&return,&y,&x); [line 21]\n NULLIFY(&x,false); [line 21]\n NULLIFY(&y,false); [line 21]\n " color=yellow style=filled]
38 [label="38: Exit bar \n " color=yellow style=filled]
37 [label="37: Start bar\nFormals: \nLocals: y:int x:int \n DECLARE_LOCALS(&return,&y,&x); [line 21]\n NULLIFY(&x,false); [line 21]\n NULLIFY(&y,false); [line 21]\n " color=yellow style=filled]
38 -> 53 ;
37 [label="37: DeclStmt \n *&x:int =5 [line 12]\n " shape="box"]
37 -> 52 ;
37 -> 31 ;
36 [label="36: DeclStmt \n *&x:int =5 [line 12]\n " shape="box"]
37 -> 32 ;
36 [label="36: BinaryOperatorStmt: Assign \n NULLIFY(&x,false); [line 13]\n *&x:int =0 [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"]
36 -> 30 ;
36 -> 30 ;
36 -> 31 ;
35 [label="35: Prune (false branch) \n PRUNE(((7 < n$6) == 0), false); [line 13]\n REMOVE_TEMPS(n$6); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="invhouse"]
35 [label="35: BinaryOperatorStmt: Assign \n NULLIFY(&x,false); [line 13]\n *&x:int =0 [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="box"]
35 -> 29 ;
35 -> 30 ;
34 [label="34: Prune (false branch) \n PRUNE(((7 < n$7) == 0), false); [line 13]\n REMOVE_TEMPS(n$7 ); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="invhouse"]
34 [label="34: Prune (true branch) \n PRUNE(((7 < n$6) != 0), true); [line 13]\n REMOVE_TEMPS(n$6 ); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="invhouse"]
34 -> 29 ;
34 -> 36 ;
33 [label="33: Prune (true branch) \n PRUNE(((7 < n$7) != 0), true); [line 13]\n REMOVE_TEMPS(n$7); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="invhouse "]
33 [label="33: BinaryOperatorStmt: LT \n n$6=*&x:int [line 13]\n *&x:int =(n$6 + 1) [line 13]\n " shape="box "]
33 -> 34 ;
33 -> 35 ;
33 -> 35 ;
32 [label="32: BinaryOperatorStmt: LT \n n$7=*&x:int [line 13]\n *&x:int =(n$7 + 1) [line 13]\n " shape="box "]
32 [label="32: Prune (false branch) \n PRUNE(((3 < 4) == 0), false); [line 13]\n " shape="invhouse "]
32 -> 33 ;
32 -> 33 ;
32 -> 34 ;
31 [label="31: Prune (true branch) \n PRUNE(((3 < 4) != 0), true); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="invhouse"]
31 [label="31: Prune (false branch) \n PRUNE(((3 < 4) == 0), false); [line 13]\n " shape="invhouse"]
31 -> 32 ;
31 -> 36 ;
30 [label="30: Prune (true branch) \n PRUNE(((3 < 4) != 0), true); [line 13]\n APPLY_ABSTRACTION; [line 13]\n " shape="invhouse" ]
30 [label="30: + \n " ]
30 -> 35 ;
30 -> 29 ;
29 [label="29: + \n " ]
29 [label="29: DeclStmt \n *&y:int =19 [line 14]\n " shape="box" ]
29 -> 28 ;
29 -> 21 ;
28 [label="28: DeclStmt \n *&y:int =19 [line 14]\n " shape="box"]
29 -> 22 ;
28 [label="28: DeclStmt \n n$5=*&SIL_temp_conditional___20:int [line 15]\n NULLIFY(&SIL_temp_conditional___20,true); [line 15]\n *&n:int =n$5 [line 15]\n REMOVE_TEMPS(n$5); [line 15]\n NULLIFY(&n,false); [line 15]\n " shape="box"]
28 -> 2 0 ;
28 -> 1 0 ;
28 -> 2 1 ;
28 -> 1 1 ;
27 [label="27: DeclStmt \n n$6=*&SIL_temp_conditional___19:int [line 15]\n NULLIFY(&SIL_temp_conditional___19,true); [line 15]\n *&n:int =n$6 [line 15]\n REMOVE_TEMPS(n$6); [line 15]\n NULLIFY(&n,false) ; [line 15]\n " shape="box"]
27 [label="27: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___20); [line 15]\n *&SIL_temp_conditional___20:int =2 [line 15]\n APPLY_ABSTRACTION ; [line 15]\n " shape="box"]
27 -> 10 ;
27 -> 20 ;
27 -> 11 ;
26 [label="26: ConditinalStmt Branch \n NULLIFY(&x,false); [line 15]\n NULLIFY(&y,false); [line 15]\n DECLARE_LOCALS(&SIL_temp_conditional___20); [line 15]\n *&SIL_temp_conditional___20:int =1 [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"]
26 [label="26: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___19); [line 15]\n *&SIL_temp_conditional___19:int =2 [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"]
26 -> 19 ;
26 -> 20 ;
25 [label="25: ConditinalStmt Branch \n NULLIFY(&x,false); [line 15]\n NULLIFY(&y,false); [line 15]\n DECLARE_LOCALS(&SIL_temp_conditional___19); [line 15]\n *&SIL_temp_conditional___19:int =1 [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box "]
25 [label="25: Prune (false branch) \n PRUNE(((7 < (n$3 - n$4)) == 0), false); [line 15]\n REMOVE_TEMPS(n$3,n$4); [line 15]\n " shape="invhouse "]
25 -> 19 ;
25 -> 27 ;
24 [label="24: Prune (false branch) \n PRUNE(((7 < (n$4 - n$5)) == 0), false); [line 15]\n REMOVE_TEMPS(n$4,n$5) ; [line 15]\n " shape="invhouse"]
24 [label="24: Prune (true branch) \n PRUNE(((7 < (n$3 - n$4)) != 0), true); [line 15]\n REMOVE_TEMPS(n$3,n$4); [line 15]\n APPLY_ABSTRACTION ; [line 15]\n " shape="invhouse"]
24 -> 26 ;
24 -> 26 ;
23 [label="23: Prune (true branch) \n PRUNE(((7 < (n$4 - n$5)) != 0), true); [line 15]\n REMOVE_TEMPS(n$4,n$5); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="invhouse "]
23 [label="23: BinaryOperatorStmt: LT \n n$3=*&x:int [line 15]\n *&x:int =(n$3 + 1) [line 15]\n n$4=*&y:int [line 15]\n NULLIFY(&x,false); [line 15]\n NULLIFY(&y,false); [line 15]\n " shape="box "]
23 -> 24 ;
23 -> 25 ;
23 -> 25 ;
22 [label="22: BinaryOperatorStmt: LT \n n$4=*&x:int [line 15]\n *&x:int =(n$4 + 1) [line 15]\n n$5=*&y:int [line 15]\n NULLIFY(&x,false); [line 15]\n NULLIFY(&y,false); [line 15]\n " shape="box "]
22 [label="22: Prune (false branch) \n PRUNE(((3 < 4) == 0), false); [line 15]\n " shape="invhouse "]
22 -> 23 ;
22 -> 23 ;
22 -> 24 ;
21 [label="21: Prune (true branch) \n PRUNE(((3 < 4) != 0), true); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="invhouse"]
21 [label="21: Prune (false branch) \n PRUNE(((3 < 4) == 0), false); [line 15]\n " shape="invhouse"]
21 -> 22 ;
21 -> 26 ;
20 [label="20: Prune (true branch) \n PRUNE(((3 < 4) != 0), true); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="invhouse" ]
20 [label="20: + \n " ]
20 -> 25 ;
20 -> 28 ;
19 [label="19: + \n " ]
19 [label="19: BinaryOperatorStmt: Assign \n n$2=*&SIL_temp_conditional___9:int [line 16]\n NULLIFY(&SIL_temp_conditional___9,true); [line 16]\n *&n:int =n$2 [line 16]\n REMOVE_TEMPS(n$2); [line 16]\n NULLIFY(&n,false); [line 16]\n " shape="box" ]
19 -> 27 ;
19 -> 4 ;
18 [label="18: BinaryOperatorStmt: Assign \n n$3=*&SIL_temp_conditional___9:int [line 16]\n NULLIFY(&SIL_temp_conditional___9,true); [line 16]\n *&n:int =n$3 [line 16]\n REMOVE_TEMPS(n$3); [line 16]\n NULLIFY(&n,false); [line 16]\n " shape="box"]
19 -> 5 ;
18 [label="18: ConditinalStmt Branch \n n$1=*&SIL_temp_conditional___13:int [line 16]\n NULLIFY(&SIL_temp_conditional___13,true); [line 16]\n DECLARE_LOCALS(&SIL_temp_conditional___9); [line 16]\n *&SIL_temp_conditional___9:int =n$1 [line 16]\n REMOVE_TEMPS(n$1); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"]
18 -> 4 ;
18 -> 9 ;
18 -> 5 ;
17 [label="17: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___13); [line 16]\n *&SIL_temp_conditional___13:int =2 [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"]
17 [label="17: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___13); [line 16]\n *&SIL_temp_conditional___13:int =2 [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"]
@ -183,10 +187,10 @@ digraph iCFG {
14 -> 16 ;
14 -> 16 ;
13 [label="13: Temp Join Node \n n$1=*&SIL_temp_conditional___13:int [line 16]\n DECLARE_LOCALS(&SIL_temp_conditional___9); [line 16]\n *&SIL_temp_conditional___9:int =n$1 [line 16]\n NULLIFY(&SIL_temp_conditional___13,true); [line 16]\n REMOVE_TEMPS(n$1); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box" ]
13 [label="13: + \n " ]
13 -> 9 ;
13 -> 18 ;
12 [label="12: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___9); [line 16]\n *&SIL_temp_conditional___9:int =1 [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"]
12 [label="12: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___9); [line 16]\n *&SIL_temp_conditional___9:int =1 [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"]
@ -203,7 +207,7 @@ digraph iCFG {
9 [label="9: + \n " ]
9 [label="9: + \n " ]
9 -> 18 ;
9 -> 19 ;
8 [label="8: Return Stmt \n n$0=*&SIL_temp_conditional___3:int [line 17]\n NULLIFY(&SIL_temp_conditional___3,true); [line 17]\n *&return:int =(0 + n$0) [line 17]\n REMOVE_TEMPS(n$0); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"]
8 [label="8: Return Stmt \n n$0=*&SIL_temp_conditional___3:int [line 17]\n NULLIFY(&SIL_temp_conditional___3,true); [line 17]\n *&return:int =(0 + n$0) [line 17]\n REMOVE_TEMPS(n$0); [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"]
@ -234,5 +238,5 @@ digraph iCFG {
1 [label="1: Start foo\nFormals: \nLocals: n:int y:int x:int \n DECLARE_LOCALS(&return,&n,&y,&x); [line 10]\n NULLIFY(&n,false); [line 10]\n NULLIFY(&x,false); [line 10]\n NULLIFY(&y,false); [line 10]\n " color=yellow style=filled]
1 [label="1: Start foo\nFormals: \nLocals: n:int y:int x:int \n DECLARE_LOCALS(&return,&n,&y,&x); [line 10]\n NULLIFY(&n,false); [line 10]\n NULLIFY(&x,false); [line 10]\n NULLIFY(&y,false); [line 10]\n " color=yellow style=filled]
1 -> 36 ;
1 -> 37 ;
}
}