C alias analysis#
- Release:
6.1.2
- Date:
Oct 28, 2026
Points-to (alias) graphs for a suite of C programs, built by demand-driven alias analysis as in “Demand-driven alias analysis for C”. Nodes are program entities and edges are the aliasing and flow relations discovered for each program.
Graph |
Num Nodes |
Num Edges |
Reachable pairs |
Size (MB) |
Download |
332 |
269 |
156 |
0.003 |
||
632 |
556 |
315 |
0.005 |
||
815 |
692 |
385 |
0.006 |
||
1687 |
1453 |
854 |
0.011 |
||
2687 |
2293 |
1458 |
0.017 |
||
1721418 |
1510411 |
92806768 |
9.05 |
||
2446224 |
2112809 |
3783769 |
12.84 |
||
2538243 |
2191079 |
3990305 |
13.33 |
||
3401022 |
2931498 |
5249389 |
18.01 |
||
3401355 |
2931880 |
5276303 |
18.01 |
||
3423234 |
2951393 |
5351409 |
18.14 |
||
3448422 |
2970242 |
5339563 |
18.25 |
||
3464970 |
2988387 |
5428237 |
18.38 |
||
3479982 |
3003326 |
5593387 |
18.47 |
||
3528861 |
3049732 |
6085269 |
18.77 |
||
4039470 |
3500141 |
8833403 |
21.66 |
||
4177416 |
3609373 |
9646475 |
22.34 |
||
4273803 |
3707769 |
18825025 |
22.99 |
||
5203419 |
4678543 |
90661446 |
29.37 |
||
11254434 |
9484213 |
16747731 |
59.99 |
Canonical grammars#
Note
In order to get the original graph you must apply function change_edges with mapping={"a": "A", "d": "D"} to this graph. In this case these grammars must be updated.
Grammars for the alias analysis of C programs introduced in “Demand-driven alias analysis for C”. Template for these grammars is described on the C Alias page.
S -> d_r V d
V -> V1 V2 V3
V1 -> epsilon
V1 -> V2 a_r V1
V2 -> epsilon
V2 -> S
V3 -> epsilon
V3 -> a V2 V3
S -> d_r V d
V -> ((S|epsilon) a_r)* (S|epsilon) (a (S|epsilon))*
Optimized variant#
An equivalent WCNF grammar introduced as optimization (5) in “Optimization of the Context-Free Language Reachability Matrix-Based Algorithm” (Fig. 2(b)) is stored in each archive as c_alias_muravev2024.cnf. It generates the same language and returns identical reachable-pair counts (verified with FastMatrixCFPQ on small graphs).
M N1 N3
M N2 N3
N1 d_r
N1 N1 a_r
N1 N2 a_r
N2 N1 M
N3 d
N3 a N3
N3 AM N3
AM a M
Count:
M