Skip to content

Implement RSMs reachability algorithm#7

Open
Zestria wants to merge 12 commits into
SparseLinearAlgebra:stablefrom
Zestria:feat/rsm-reach
Open

Implement RSMs reachability algorithm#7
Zestria wants to merge 12 commits into
SparseLinearAlgebra:stablefrom
Zestria:feat/rsm-reach

Conversation

@Zestria
Copy link
Copy Markdown

@Zestria Zestria commented Dec 3, 2025

This patch implements a context-free path query algorithm using recursive state machines (RSMs) over edge-labeled directed graphs. It extends the approach of the previously unified regular path search algorithm by using linear algebra operations on adjacency matrices, as presented in https://arxiv.org/abs/2412.10287.

GRB_TRY(GrB_eWiseAdd(P, GrB_NULL, GrB_NULL, GrB_LOR, P, next_frontier, GrB_NULL));
GRB_TRY(GrB_Matrix_nvals(&states, next_frontier));

if (iteration > 3000)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What?

GRB_TRY(GrB_eWiseAdd(K, GrB_NULL, GrB_NULL, GrB_LOR, K, next_frontier, GrB_NULL));
GRB_TRY(GrB_Matrix_nvals(&states, next_frontier));

if (iteration > 3000)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What?

Comment thread experimental/test/test_RSM_reachability.c Outdated
@Zestria

This comment was marked as outdated.

Zestria added 6 commits April 17, 2026 22:48
Matrix reshape from |V|*|V| to 1*|V*V| triggered 32-bit indexing
overflow when V*V > 2^32. The library correctly detects potential
overflow (Cj_is_32=false), but the in-place reshape operation
(in_place=true) inherits T->j_is_32=true from the original matrix,
causing J_work_is_32 to become true and overflow to occur.

Solution: use matrix_reshape_dup instead of matrix_reshape to create
a new matrix (in_place=false), so J_work_is_32 correctly evaluates
to false and 64-bit indexing is used.
@Zestria
Copy link
Copy Markdown
Author

Zestria commented May 7, 2026

CFPQ_RSM Benchmark Report

Overview

This is a comparative evaluation that focuses on the multiple-sources reachability scenario, where the number of source vertices is significantly smaller that the total number of graph vertices.

Experimental Setup

  • Machine: Laptop running Ubuntu 24.04
  • CPU: AMD Ryzen 7640HS (12 threads)
  • RAM: DDR5 16GB
  • Starting sets: Generated from reachable vertices (computed by the all-pairs version) via random permutation, with sizes |S|=1,10,100
  • Speedup metric: all-pairs avg time / CFPQ_RSM avg time

Experiment 1: Nested Parentheses Grammar

Grammar

Graphs

Graph Vertices Edges
Go Hierarchy 45,007 490,109
Eclass 239,111 360,248
Go 582,929 1,437,437
Taxonomy 5,728,398 14,922,125
Taxonomy Hierarchy 2,112,625 32,876,289

Time Results (avg_time_ms)

Algo Graph Time (ms)
CFL_adv eclass 39.00
CFL_adv go 201.33
CFL_adv go_hierarchy 44.33
CFL_adv taxonomy 359.33
CFL_adv taxonomy_hierarchy 2507.00
Algo Graph 1 src 10 src 100 src
CFL_CFPQ_RSM eclass 0.93 1.80 2.50
CFL_CFPQ_RSM go 11.84 25.74 42.65
CFL_CFPQ_RSM go_hierarchy 0.41 1.24 16.77
CFL_CFPQ_RSM taxonomy 1.75 6.21 53.88
CFL_CFPQ_RSM taxonomy_hierarchy 0.37 2.37 6.21
CFL_multsrc eclass 8.13 8.21 9.20
CFL_multsrc go 13.67 20.57 50.44
CFL_multsrc go_hierarchy 7.62 6.75 29.20
CFL_multsrc taxonomy 74.74 100.02 314.07
CFL_multsrc taxonomy_hierarchy 147.79 157.33 157.35

Memory Results (avg_max_memory_kb)

Algo Graph Memory (KB)
CFL_adv eclass 67,139
CFL_adv go 189,571
CFL_adv go_hierarchy 44,404
CFL_adv taxonomy 1,465,636
CFL_adv taxonomy_hierarchy 1,647,780
Algo Graph 1 src 10 src 100 src
CFL_CFPQ_RSM eclass 24,552 24,584 24,690
CFL_CFPQ_RSM go 55,223 55,442 56,214
CFL_CFPQ_RSM go_hierarchy 16,525 17,084 25,206
CFL_CFPQ_RSM taxonomy 342,162 342,275 350,046
CFL_CFPQ_RSM taxonomy_hierarchy 282,968 283,963 286,314
CFL_multsrc eclass 40,814 50,175 59,602
CFL_multsrc go 105,072 126,335 150,302
CFL_multsrc go_hierarchy 23,420 25,321 32,798
CFL_multsrc taxonomy 681,838 913,361 1,138,862
CFL_multsrc taxonomy_hierarchy 1,449,708 1,530,673 1,614,969

Time Speedup (All-Pairs / CFPQ_RSM)

Graph 1 src 10 src 100 src
eclass 41.9× 20.6× 14.2×
go 16.1× 7.1× 4.4×
go_hierarchy 119.8× 36.0× 2.4×
taxonomy 207.7× 49.4× 6.3×
taxonomy_hierarchy 6963.9× 990.9× 331.6×

Memory Speedup (All-Pairs / CFPQ_RSM)

Graph 1 src 10 src 100 src
eclass 2.8× 2.8× 2.7×
go 3.4× 3.4× 3.4×
go_hierarchy 2.7× 2.6× 1.9×
taxonomy 4.3× 4.3× 4.2×
taxonomy_hierarchy 5.8× 5.8× 5.8×

Time Speedup (CFL_multsrc / CFL_CFPQ_RSM)

Graph 1 src 10 src 100 src
eclass 8.7× 4.6× 3.7×
go 1.2× 0.8× 1.2×
go_hierarchy 18.6× 5.4× 1.7×
taxonomy 42.7× 16.1× 5.8×
taxonomy_hierarchy 399.4× 66.4× 25.3×

Memory Speedup (CFL_multsrc / CFL_CFPQ_RSM)

Graph 1 src 10 src 100 src
eclass 1.7× 2.0× 2.4×
go 1.9× 2.3× 2.7×
go_hierarchy 1.4× 1.5× 1.3×
taxonomy 2.0× 2.7× 3.3×
taxonomy_hierarchy 5.1× 5.4× 5.6×

Experiment 2: Java Points-To Analysis Grammar

Grammar

Graphs

Graph Vertices Edges
avrora 24,690 25,196
batik 60,175 63,089
commons_lang3 40,970 48,427
fop 86,183 83,016
h2 44,717 56,683
junit5 59,818 74,685
jython 191,895 260,034
mockito 25,436 31,194
pmd 54,444 59,329
tomcat 111,327 110,884
xalan 58,476 62,758

Time Results (avg_time_ms)

Algo Graph Time (ms)
CFL_adv avrora 328.70
CFL_adv batik 556.60
CFL_adv commons_io 717.00
CFL_adv commons_lang3 1795.80
CFL_adv eclipse 315.00
CFL_adv fop 969.60
CFL_adv gson 2456.90
CFL_adv h2 1899.60
CFL_adv junit5 20156.90
CFL_adv jython 24231.10
CFL_adv luindex 198.10
CFL_adv lusearch 141.70
CFL_adv mockito 1550.20
CFL_adv pmd 2617.00
CFL_adv sunflow 148.50
CFL_adv tomcat 1309.40
CFL_adv xalan 1126.30
Algo Graph 1 src 10 src 100 src
CFL_CFPQ_RSM avrora 244.84 3370.98 7854.79
CFL_CFPQ_RSM batik 336.47 2455.07 5665.47
CFL_CFPQ_RSM commons_lang3 561.01 6544.28 6397.32
CFL_CFPQ_RSM fop 243.38 5241.20 12210.13
CFL_CFPQ_RSM h2 5807.02 7395.89 6280.70
CFL_CFPQ_RSM junit5 14478.42 41952.04 46789.01
CFL_CFPQ_RSM jython 2505.60 28332.64 32124.62
CFL_CFPQ_RSM mockito 1496.30 5567.72 5412.23
CFL_CFPQ_RSM pmd 467.73 4881.70 8823.24
CFL_CFPQ_RSM tomcat 329.37 8341.10 22361.04
CFL_CFPQ_RSM xalan 284.35 7485.41 17360.13
CFL_multsrc avrora 3717.70 60244.62 138324.06
CFL_multsrc batik 16432.01 148432.67 350283.10
CFL_multsrc commons_lang3 28534.06 180295.80 153203.80
CFL_multsrc fop 12012.24 231595.41 489769.62
CFL_multsrc h2 151133.61 183162.92 235413.87
CFL_multsrc mockito 47145.47 191137.46 264756.08
CFL_multsrc tomcat 21265.98 552349.13 1136236.49

Memory Results (avg_max_memory_kb)

Algo Graph Memory (KB)
CFL_adv avrora 39,999
CFL_adv batik 51,939
CFL_adv commons_io 71,492
CFL_adv commons_lang3 363,048
CFL_adv eclipse 34,553
CFL_adv fop 136,092
CFL_adv gson 436,123
CFL_adv h2 248,289
CFL_adv junit5 5,201,661
CFL_adv jython 6,151,510
CFL_adv luindex 25,372
CFL_adv lusearch 20,395
CFL_adv mockito 226,253
CFL_adv pmd 210,907
CFL_adv sunflow 21,206
CFL_adv tomcat 139,444
CFL_adv xalan 101,232
Algo Graph 1 src 10 src 100 src
CFL_CFPQ_RSM avrora 35,383 42,396 50,855
CFL_CFPQ_RSM batik 85,158 93,417 103,582
CFL_CFPQ_RSM commons_lang3 130,204 199,519 208,634
CFL_CFPQ_RSM fop 77,370 89,750 108,952
CFL_CFPQ_RSM h2 36,403 47,417 54,002
CFL_CFPQ_RSM junit5 328,655 958,301 998,764
CFL_CFPQ_RSM jython 213,764 313,056 331,058
CFL_CFPQ_RSM mockito 46,479 63,023 79,803
CFL_CFPQ_RSM pmd 131,128 154,825 186,122
CFL_CFPQ_RSM tomcat 38,083 56,542 82,375
CFL_CFPQ_RSM xalan 95,559 109,441 138,373
CFL_multsrc avrora 25,226 40,346 80,345
CFL_multsrc batik 70,606 84,552 121,243
CFL_multsrc commons_lang3 118,922 192,221 213,322
CFL_multsrc fop 59,501 85,130 195,123
CFL_multsrc h2 97,729 150,891 335,997
CFL_multsrc mockito 46,579 109,188 234,705
CFL_multsrc tomcat 91,400 134,720 295,350

Time Speedup (All-Pairs / CFPQ_RSM)

Graph 1 src 10 src 100 src
avrora 1.3× 0.1× 0.04×
batik 1.7× 0.2× 0.1×
commons_lang3 3.2× 0.3× 0.3×
fop 4.0× 0.2× 0.1×
h2 0.3× 0.3× 0.3×
junit5 1.4× 0.5× 0.4×
jython 9.7× 0.9× 0.8×
mockito 1.0× 0.3× 0.3×
pmd 5.6× 0.5× 0.3×
tomcat 4.0× 0.2× 0.1×
xalan 4.0× 0.2× 0.1×

Memory Speedup (All-Pairs / CFPQ_RSM)

Graph 1 src 10 src 100 src
avrora 1.1× 0.9× 0.8×
batik 0.6× 0.6× 0.5×
commons_lang3 2.8× 1.8× 1.7×
fop 1.8× 1.5× 1.2×
h2 6.8× 5.2× 4.6×
junit5 15.8× 5.4× 5.2×
jython 28.8× 19.6× 18.6×
mockito 4.9× 3.6× 2.8×
pmd 1.6× 1.4× 1.1×
tomcat 3.7× 2.5× 1.7×
xalan 1.1× 0.9× 0.7×

Time Speedup (CFL_multsrc / CFL_CFPQ_RSM)

Graph 1 src 10 src 100 src
avrora 15.2× 17.9× 17.6×
batik 48.8× 60.5× 61.8×
commons_lang3 50.9× 27.6× 23.9×
fop 49.4× 44.2× 40.1×
h2 26.0× 24.8× 37.5×
mockito 31.5× 34.3× 48.9×
tomcat 64.6× 66.2× 50.8×

Memory Speedup (CFL_multsrc / CFL_CFPQ_RSM)

Graph 1 src 10 src 100 src
avrora 0.7× 1.0× 1.6×
batik 0.8× 0.9× 1.2×
commons_lang3 0.9× 1.0× 1.0×
fop 0.8× 0.9× 1.8×
h2 2.7× 3.2× 6.2×
mockito 1.0× 1.7× 2.9×
tomcat 2.4× 2.4× 3.6×

Experiment 3: C Alias Analysis Grammar

Grammar

Graphs

Graph Vertices Edges
init 2,446,224 2,112,809
mm 2,538,243 2,191,079
ipc 3,401,022 2,931,498
lib 3,401,355 2,931,880
block 3,423,234 2,951,393
arch 3,448,422 2,970,242
crypto 3,464,970 2,988,387
security 3,479,982 3,003,326
sound 3,528,861 3,049,732
fs 4,177,416 3,609,373
net 4,039,470 3,500,141
drivers 4,273,803 3,707,769
kernel 11,254,434 9,484,213
apache 1,721,418 1,510,411
postgre 5,203,419 4,678,543

Time Results (avg_time_ms)

Algo Graph Time (ms)
CFL_adv apache 24909.40
CFL_adv arch 3768.60
CFL_adv block 3786.40
CFL_adv crypto 3884.80
CFL_adv drivers 10260.50
CFL_adv fs 6888.60
CFL_adv init 2802.30
CFL_adv ipc 3659.80
CFL_adv kernel 11092.10
CFL_adv lib 3725.50
CFL_adv mm 3110.80
CFL_adv net 7506.20
CFL_adv postgre 31571.00
CFL_adv security 4232.80
CFL_adv sound 4855.10
Algo Graph 1 src 10 src 100 src
CFL_CFPQ_RSM apache 2.17 84.88 453.19
CFL_CFPQ_RSM arch 1.72 6.83 12.76
CFL_CFPQ_RSM block 1.16 5.27 14.23
CFL_CFPQ_RSM crypto 1.17 3.60 12.67
CFL_CFPQ_RSM drivers 1.72 4.17 23.53
CFL_CFPQ_RSM fs 1.27 6.09 21.07
CFL_CFPQ_RSM init 2.28 4.29 11.90
CFL_CFPQ_RSM ipc 2.01 5.64 11.48
CFL_CFPQ_RSM kernel 1.20 3.34 14.51
CFL_CFPQ_RSM lib 0.78 5.81 14.40
CFL_CFPQ_RSM mm 1.02 3.27 12.71
CFL_CFPQ_RSM net 1.58 4.14 16.54
CFL_CFPQ_RSM postgre 0.84 8.17 72.93
CFL_CFPQ_RSM security 1.80 4.45 16.51
CFL_CFPQ_RSM sound 2.11 9.00 18.09
CFL_multsrc apache 270.53 1548.78 4523.62
CFL_multsrc arch 439.39 1269.47 1631.68
CFL_multsrc block 340.06 956.65 1562.36
CFL_multsrc crypto 364.95 729.70 1633.46
CFL_multsrc drivers 524.30 941.93 2588.51
CFL_multsrc fs 450.00 1185.07 2393.06
CFL_multsrc init 386.01 570.88 1059.23
CFL_multsrc ipc 482.73 1016.90 1427.24
CFL_multsrc kernel 1765.07 3411.33 9381.01
CFL_multsrc lib 278.39 1041.96 1798.71
CFL_multsrc mm 245.56 498.35 1210.02
CFL_multsrc net 480.87 945.94 1908.53
CFL_multsrc postgre 425.38 1836.64 3551.22
CFL_multsrc security 448.70 865.34 1846.75
CFL_multsrc sound 524.81 1529.14 2041.37

Memory Results (avg_max_memory_kb)

Algo Graph Memory (KB)
CFL_adv apache 9,496,944
CFL_adv arch 1,295,434
CFL_adv block 1,289,323
CFL_adv crypto 1,313,695
CFL_adv drivers 2,877,343
CFL_adv fs 1,879,333
CFL_adv init 908,373
CFL_adv ipc 1,275,460
CFL_adv kernel 4,039,184
CFL_adv lib 1,264,306
CFL_adv mm 947,902
CFL_adv net 1,809,694
CFL_adv postgre 9,375,922
CFL_adv security 1,316,891
CFL_adv sound 1,391,514
Algo Graph 1 src 10 src 100 src
CFL_CFPQ_RSM apache 61,286 67,180 83,646
CFL_CFPQ_RSM arch 108,239 108,241 108,430
CFL_CFPQ_RSM block 107,502 107,504 107,859
CFL_CFPQ_RSM crypto 108,772 108,770 108,918
CFL_CFPQ_RSM drivers 131,555 131,546 132,083
CFL_CFPQ_RSM fs 128,653 128,707 129,134
CFL_CFPQ_RSM init 80,178 80,326 80,538
CFL_CFPQ_RSM ipc 106,756 106,762 106,967
CFL_CFPQ_RSM kernel 322,126 322,115 322,340
CFL_CFPQ_RSM lib 106,835 106,842 107,078
CFL_CFPQ_RSM mm 82,935 82,929 83,166
CFL_CFPQ_RSM net 124,969 124,958 125,444
CFL_CFPQ_RSM postgre 158,706 158,832 163,846
CFL_CFPQ_RSM security 109,269 109,255 109,580
CFL_CFPQ_RSM sound 110,699 110,774 111,002
CFL_multsrc apache 4,351,562 4,427,636 4,520,193
CFL_multsrc arch 2,222,332 2,383,853 2,519,050
CFL_multsrc block 1,813,737 1,976,346 2,112,667
CFL_multsrc crypto 2,620,465 2,785,766 2,929,541
CFL_multsrc drivers 4,912,094 5,105,342 5,281,832
CFL_multsrc fs 3,936,114 4,127,918 4,304,920
CFL_multsrc init 312,068 426,774 517,197
CFL_multsrc ipc 1,017,645 1,168,965 1,311,863
CFL_multsrc kernel 6,240,974 6,680,696 7,120,449
CFL_multsrc lib 1,403,562 1,565,216 1,708,962
CFL_multsrc mm 603,054 718,230 832,104
CFL_multsrc net 4,416,062 4,607,942 4,775,598
CFL_multsrc postgre 4,532,450 4,796,902 4,995,506
CFL_multsrc security 3,037,954 3,201,059 3,325,514
CFL_multsrc sound 3,445,270 3,614,025 3,760,545

Time Speedup (All-Pairs / CFPQ_RSM)

Graph 1 src 10 src 100 src
apache 11479.0× 293.5× 55.0×
arch 2191.0× 551.8× 295.3×
block 3264.1× 718.5× 266.1×
crypto 3320.3× 1079.1× 306.6×
drivers 5965.4× 2460.6× 436.1×
fs 5424.1× 1131.1× 326.9×
init 1229.1× 653.2× 235.5×
ipc 1820.8× 648.9× 318.8×
kernel 9243.4× 3321.0× 764.4×
lib 4776.3× 641.2× 258.7×
mm 3049.8× 951.3× 244.8×
net 4750.8× 1813.1× 453.8×
postgre 37584.5× 3864.3× 432.9×
security 2351.6× 951.2× 256.4×
sound 2301.0× 539.5× 268.4×

Memory Speedup (All-Pairs / CFPQ_RSM)

Graph 1 src 10 src 100 src
apache 155.0× 141.4× 113.5×
arch 12.0× 12.0× 11.9×
block 12.0× 12.0× 12.0×
crypto 12.1× 12.1× 12.1×
drivers 21.9× 21.9× 21.8×
fs 14.6× 14.6× 14.6×
init 11.3× 11.3× 11.3×
ipc 11.9× 11.9× 11.9×
kernel 12.5× 12.5× 12.5×
lib 11.8× 11.8× 11.8×
mm 11.4× 11.4× 11.4×
net 14.5× 14.5× 14.4×
postgre 59.1× 59.0× 57.2×
security 12.1× 12.1× 12.0×
sound 12.6× 12.6× 12.5×

Time Speedup (CFL_multsrc / CFL_CFPQ_RSM)

Graph 1 src 10 src 100 src
apache 124.7× 18.2× 10.0×
arch 255.5× 185.9× 127.9×
block 293.2× 181.5× 109.8×
crypto 311.9× 202.7× 128.9×
drivers 304.8× 225.9× 110.0×
fs 354.3× 194.6× 113.6×
init 169.3× 133.1× 89.0×
ipc 240.2× 180.3× 124.3×
kernel 1470.9× 1021.4× 646.5×
lib 356.9× 179.3× 124.9×
mm 240.7× 152.4× 95.2×
net 304.3× 228.5× 115.4×
postgre 506.4× 224.8× 48.7×
security 249.3× 194.5× 111.9×
sound 248.7× 169.9× 112.8×

Memory Speedup (CFL_multsrc / CFL_CFPQ_RSM)

Graph 1 src 10 src 100 src
apache 71.0× 65.9× 54.0×
arch 20.5× 22.0× 23.2×
block 16.9× 18.4× 19.6×
crypto 24.1× 25.6× 26.9×
drivers 37.3× 38.8× 40.0×
fs 30.6× 32.1× 33.3×
init 3.9× 5.3× 6.4×
ipc 9.5× 10.9× 12.3×
kernel 19.4× 20.7× 22.1×
lib 13.1× 14.6× 16.0×
mm 7.3× 8.7× 10.0×
net 35.3× 36.9× 38.1×
postgre 28.6× 30.2× 30.5×
security 27.8× 29.3× 30.3×
sound 31.1× 32.6× 33.9×

@Zestria
Copy link
Copy Markdown
Author

Zestria commented May 11, 2026

Algorithm CFPQ_RSM(rsm, graph, start_nonterm, start_vertex)

Input:

  • rsm: Recursive State Machine (states Q, terminal / nonterminal / call / return matrices)
  • graph: Input graph with V vertices
  • start_nonterm: Index of the starting nonterminal
  • start_vertex: Starting vertex in the graph

Output:

  • reachable: Boolean vector of vertices reachable from start_vertex via start_nonterm
// ------------------- INITIALIZATION -------------------
P := zero matrix of size Q x V^2        // Visited configurations
M := zero matrix of size Q x V^2        // Current frontier

for each nonterminal i do
    graph_nt[i] := zero matrix of size V x V

// Seed initial frontier and visited
q_start = start_states[start_nonterm]
for each start_vertex in sources do
    diag_col := start_vertex * V + start_vertex
    M[q, diag_col] := true
    P[q, diag_col] := true

// ------------------- MAIN FIXED-POINT LOOP -------------------
while M is not empty do

    // Phase 1: TERMINAL TRANSITIONS
    M_term := zero matrix Q x V^2
    for each terminal a do
        M_term |= rsm_term[a]^T @ M @ graph_term[a]

    // Phase 2: NONTERMINAL TRANSITIONS
    M_nonterm := zero matrix Q x V^2
    for each nonterminal i do
        M_nonterm |= rsm_nonterm[i] @ M @ graph_nt[i]

    // Phase 3: CALL TRANSITIONS
    M_call := zero matrix Q x V^2
    for each nonterminal i do
        mask_call := rsm.call[i]^T @ M
        mask_call := reshape(mask_call, Q*V x V)
        entry_vec := column_OR(mask_call)  // Boolean vector of size V
        diag_entry := diag(entry_vec) // VxV
        diag_entry := reshape(diag_entry, 1 x V^2)
        outer_result := rsm_start[i] @ diag_entry  // |Q|x1 @ 1x|V^2| -> |Q|x|V^2|
        M_call |= outer_result

    // Phase 4: RETURN TRANSITIONS
    M_return := zero matrix Q x V^2
    for each nonterminal i do
        // Collect new completed edges for this nonterminal
        new_edges := final_states[i] @ M            // 1x|Q| @ |Q|x|V^2| -> 1x|V^2|
        new_edges := reshape(new_edges, V x V)
        graph_nt[i] |= new_edges
        
        // Restore callers from stack and advance them
        M_return |= rsm_nonterm[i] @ P @ new_edges

    // Phase 5: MERGE & MARK VISITED
    M_new := (M_term | M_nonterm | M_call | M_return) & ~P
    P |= M_new
    M := M_new

end while

// ------------------- RESULT -------------------
return row start_vertex of graph_nt[start_nonterm]

@Zestria
Copy link
Copy Markdown
Author

Zestria commented May 12, 2026

Config Graph Source Size Avg Iterations Max nvals(M)
c_alias apache 1 20.4 95
c_alias apache 10 47.0 5,752
c_alias apache 100 78.6 15,126
c_alias arch 1 16.2 56
c_alias arch 10 34.6 66
c_alias arch 100 42.0 596
c_alias block 1 8.2 5
c_alias block 10 23.4 60
c_alias block 100 44.4 1,100
c_alias crypto 1 8.2 8
c_alias crypto 10 26.8 235
c_alias crypto 100 47.0 373
c_alias drivers 1 10.2 12
c_alias drivers 10 30.4 332
c_alias drivers 100 57.8 1,177
c_alias fs 1 9.2 8
c_alias fs 10 27.4 96
c_alias fs 100 43.2 572
c_alias init 1 14.4 9
c_alias init 10 22.8 85
c_alias init 100 41.6 442
c_alias ipc 1 12.4 36
c_alias ipc 10 28.8 68
c_alias ipc 100 41.2 435
c_alias kernel 1 9.0 18
c_alias kernel 10 24.4 36
c_alias kernel 100 45.2 468
c_alias lib 1 5.8 2
c_alias lib 10 29.6 79
c_alias lib 100 51.8 502
c_alias mm 1 7.0 5
c_alias mm 10 18.2 97
c_alias mm 100 45.4 512
c_alias net 1 9.4 15
c_alias net 10 24.8 96
c_alias net 100 50.4 602
c_alias postgre 1 24.2 4,216
c_alias postgre 10 39.0 4,216
c_alias postgre 100 86.8 9,478
c_alias security 1 9.2 18
c_alias security 10 20.8 54
c_alias security 100 54.4 502
c_alias sound 1 12.2 41
c_alias sound 10 24.6 61
c_alias sound 100 42.4 536

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants