← all workloads

serialize

A large module of `n` public functions, compiled to a .slang-module. Stresses IR/AST serialization (writeSerializedModule*) — the write side of the cost whose read side (readSerializedModule*) the `minimal` floor test and module loading exercise. Scaling null: n scales function count; ideal serialization cost is O(n).

bucket: ir_infra  ·  mode: module  ·  flags: (none)

Phase composition vs N (stacked sub-counters)

compileInner split into phase buckets (named leaves + (self) residuals) stacked across the sweep sizes — the top edge is compileInner, so you can see which phase drives the scaling.

serialize — phase composition vs N (v2026.5, median ms) serialize 6.2× over N 375→3000 0.0 191 383 375 750 1500 3000 N serialize — parseTranslationUnit serialize — SemanticChecking serialize — generateIR serialize — frontEndExecute (self) serialize — generateOutput (self) serialize — compileInner (self) phase buckets parseTranslationUnit SemanticChecking generateIR frontEndExecute (self) specializeModule simplifyIR linkIR unrollLoopsInModule legalizeResourceTypes legalizeExistentialTypeLayout performMandatoryEarlyInlining performForceInlining linkAndOptimizeIR (self) emitEntryPointsSourceFromIR generateOutput (self) compileInner (self)

Scaling analysis

floor-subtracted power-law fit (t − floor) = a·Nk; floor = the minimal workload (fixed per-compile cost), k the global exponent, top-2× the local high-end doubling ratio.

N rangefloor (ms)k (work)fit R²t(Nmin)t(Nmax)top-2×
375–300090.950.999573551.96×

Growth attribution (N=375 → N=3000)

compileInner grows by 297 ms across the sweep; the mutually-exclusive phase buckets below partition that growth exactly (no nested-timer double counting). × lin is the same metric as the top-level panels, per bucket: the end point vs a linear expectation anchored to the bucket's share of the minimal floor and fitted on the low-N half — 1.0 = grew exactly linearly, >1 bends up. The super-linearity lives where × lin (and k) are red.

buckett@N=375t@N=3000Δ msshare× lin∝Nk
SemanticChecking40236+19666%0.90×0.90
generateIR1065+5619%0.96×0.94
generateOutput (self)538+3311%1.22×1.16
parseTranslationUnit215+134%1.11×1.06

Near-constant (≤2% of growth each): frontEndExecute (self) (0→0 ms), compileInner (self) (0→0 ms).

Sweep numbers (median ms)

NcompileInnerwriteSerializedModuleAST
375572
750985
15001819
300035519