Ivannikov Institute for System Programming of the RAS
Symbolic Memory Graphs invariant and corresponding
- ptimizations for SMGCPA
Symbolic Memory Graphs invariant and corresponding optimizations - - PowerPoint PPT Presentation
Symbolic Memory Graphs invariant and corresponding optimizations for SMGCPA Anton Vasilyev Ivannikov Institute for System Programming of the RAS Symbolic Memory Graph void main() { S t a c k void *array; # 1 : v o i d m a i n
Ivannikov Institute for System Programming of the RAS
L
a t i
: v
d * a r r a y ; S t a c k # 1 : v
d m a i n ( ) ; R E G I O N ( a r r a y , 4 B ) l e v e l =
L
a t i
: l
g b = 2 ; S t a c k # 1 : v
d m a i n ( ) ; R E G I O N ( b , 4 B ) l e v e l = R E G I O N ( a r r a y , 4 B ) l e v e l = # 1 : 2 [ B
B ]
L
a t i
: l
g c = 3 ; S t a c k # 1 : v
d m a i n ( ) ; R E G I O N ( b , 4 B ) l e v e l = R E G I O N ( c , 4 B ) l e v e l = R E G I O N ( a r r a y , 4 B ) l e v e l = # 1 : 2 [ B
B ] # 2 : 3 [ B
B ]
L
a t i
: a r r a y = c a l l
( 1 , 1 6 ) ; S t a c k # 1 : v
d m a i n ( ) ; R E G I O N ( b , 4 B ) l e v e l = R E G I O N ( c , 4 B ) l e v e l = R E G I O N ( a r r a y , 4 B ) l e v e l = # 1 : 2 [ B
B ] # 2 : 3 [ B
B ] # 4 [ B
B ] R E G I O N ( c a l l
_ I D 3 _ L i n e : 1 2 , 1 6 B ) l e v e l = N U L L [ B
6 B ] + B , r e g
L
a t i
: m e m c p y ( & ( a r r a y [ 4 ] ) , & b , 4 U L ) ; S t a c k # 1 : v
d m a i n ( ) ; R E G I O N ( b , 4 B ) l e v e l = R E G I O N ( c , 4 B ) l e v e l = R E G I O N ( a r r a y , 4 B ) l e v e l = # 1 : 2 [ B
B ] # 2 : 3 [ B
B ] # 4 [ B
B ] R E G I O N ( c a l l
_ I D 3 _ L i n e : 1 2 , 1 6 B ) l e v e l = [ 4 B
B ] N U L L [ 8 B
6 B ] N U L L [ B
B ] + B , r e g
L
a t i
: m e m c p y ( & ( a r r a y [ 5 ] ) , & c , 4 U L ) ; S t a c k # 1 : v
d m a i n ( ) ; R E G I O N ( b , 4 B ) l e v e l = R E G I O N ( c , 4 B ) l e v e l = R E G I O N ( a r r a y , 4 B ) l e v e l = # 1 : 2 [ B
B ] # 2 : 3 [ B
B ] # 4 [ B
B ] R E G I O N ( c a l l
_ I D 3 _ L i n e : 1 2 , 1 6 B ) l e v e l = [ 5 B
B ] N U L L [ B
B ] N U L L [ 9 B
6 B ] + B , r e g
L
a t i
: m e m c p y ( & ( a r r a y [ 5 ] ) , & c , 4 U L ) ; S t a c k # 1 : v
d m a i n ( ) ; R E G I O N ( b , 4 B ) l e v e l = R E G I O N ( c , 4 B ) l e v e l = R E G I O N ( a r r a y , 4 B ) l e v e l = # 1 : 2 [ B
B ] # 2 : 3 [ B
B ] # 4 [ B
B ] R E G I O N ( c a l l
_ I D 3 _ L i n e : 1 2 , 1 6 B ) l e v e l = [ 5 B
B ] N U L L [ B
B ] N U L L [ 9 B
6 B ] + B , r e g
L
a t i
: m e m c p y ( & ( a r r a y [ 5 ] ) , & c , 4 U L ) ; S t a c k # 1 : v
d m a i n ( ) ; R E G I O N ( b , 4 B ) l e v e l = R E G I O N ( c , 4 B ) l e v e l = R E G I O N ( a r r a y , 4 B ) l e v e l = # 1 : 2 [ B
B ] # 2 : 3 [ B
B ] # 4 [ B
B ] R E G I O N ( c a l l
_ I D 3 _ L i n e : 1 2 , 1 6 B ) l e v e l = [ 5 B
B ] N U L L [ B
B ] N U L L [ 9 B
6 B ] + B , r e g
L
a t i
: m e m c p y ( & ( a r r a y [ 5 ] ) , & c , 4 U L ) ; S t a c k # 1 : v
d m a i n ( ) ; R E G I O N ( b , 4 B ) l e v e l = R E G I O N ( c , 4 B ) l e v e l = R E G I O N ( a r r a y , 4 B ) l e v e l = # 1 : 2 [ B
B ] # 2 : 3 [ B
B ] # 4 [ B
B ] R E G I O N ( c a l l
_ I D 3 _ L i n e : 1 2 , 1 6 B ) l e v e l = [ 5 B
B ] N U L L [ B
B ] N U L L [ 9 B
6 B ] + B , r e g
L
a t i
: m e m c p y ( & ( a r r a y [ 5 ] ) , & c , 4 U L ) ; S t a c k # 1 : v
d m a i n ( ) ; R E G I O N ( b , 4 B ) l e v e l = R E G I O N ( c , 4 B ) l e v e l = R E G I O N ( a r r a y , 4 B ) l e v e l = # 1 : 2 [ B
B ] # 2 : 3 [ B
B ] # 4 [ B
B ] R E G I O N ( c a l l
_ I D 3 _ L i n e : 1 2 , 1 6 B ) l e v e l = [ 5 B
B ] N U L L [ B
B ] N U L L [ 9 B
6 B ] + B , r e g
+
+
Trunk Trunk soundness Branch Correct true 147 76 69 Correct false 115 108 100 Incorrect true 6 1 Incorrect false 28 22 83 Timeouts 81 147 108 Exceptions 4 26 1