Field-Sensitive Alias#
- Release:
6.1.2
- Date:
Oct 28, 2026
Field-sensitive alias graphs for C programs: memory locations are
distinguished by the struct field they occupy, so aliasing is tracked per
field (the f_i family), as in “Taming Transitive Redundancy for Context-Free Language Reachability”.
Graph |
Num Nodes |
Num Edges |
Reachable pairs |
Size (MB) |
Download |
2808 |
6604 |
205164 |
0.536 |
||
3444 |
7982 |
262566 |
0.677 |
||
8090 |
19888 |
3968276 |
9.92 |
||
15137 |
38886 |
27219043 |
0.080 |
||
18051 |
44780 |
5246565 |
13.02 |
||
22350 |
56636 |
37625324 |
0.112 |
||
29788 |
64528 |
49415038 |
0.145 |
||
38091 |
110874 |
851737865 |
0.223 |
||
41652 |
111550 |
369956094 |
0.223 |
||
49962 |
119064 |
158255766 |
0.260 |
Canonical grammars#
Productions with index \(i\) are duplicated for each field number from the analyzed program classes.
The start nonterminal is \(V\).
Reversed edges (a_r, d_r, f_r_i) are auto-generated from forward edges.
RSM (stored as vf.rsm in each archive):
start: V
[box M]
start: 0
final: 3
0 --d_r--> 1
1 --V--> 2
2 --d--> 3
[box V]
start: 0
final: 0, 1, 2, 3, 4
0 --V--> 1
0 --M--> 4
0 --a_r--> 5
4 --a_r--> 5
5 --V--> 1
1 --a--> 2
2 --M--> 3
0 --f_r_i--> p_i
p_i --V--> q_i
q_i --f_i--> 3