← all workloads

inlining

n [ForceInline] functions in bounded-depth groups. The inliner collapses each group into its group-top; the entry sums all group-tops, giving the SSA simplifier large bodies to chew on. Scales by breadth (bounded nesting).

bucket: inlining  ·  compile mode: target  ·  flags: -target spirv -emit-spirv-directly  ·  default N: 400

Phase composition across releases

Full sub-counter decomposition of compileInner — named leaf timers plus (self) residuals (a parent's time not covered by a named child, e.g. the autodiff transform in linkAndOptimizeIR (self)). Topmost band traces compileInner; hover a band for its phase.

inlining — full phase breakdown across releases (median ms) inlining 5.71× 0.0 302 604 daily → 25.14 25.15 25.16 25.17 25.18 25.19 25.20 25.21 25.22 25.23 25.24 26.1 26.2 26.3 26.4 26.5 26.7 26.8 26.9 26.10 26.11 06-25 06-26 inlining — parseTranslationUnit inlining — SemanticChecking inlining — generateIR inlining — frontEndExecute (self) inlining — specializeModule inlining — simplifyIR inlining — linkIR inlining — unrollLoopsInModule inlining — legalizeResourceTypes inlining — legalizeExistentialTypeLayout inlining — performMandatoryEarlyInlining inlining — performForceInlining inlining — linkAndOptimizeIR (self) inlining — generateOutput (self) inlining — compileInner (self) phase buckets parseTranslationUnit SemanticChecking generateIR frontEndExecute (self) specializeModule simplifyIR linkIR unrollLoopsInModule legalizeResourceTypes legalizeExistentialTypeLayout performMandatoryEarlyInlining performForceInlining linkAndOptimizeIR (self) emitEntryPointsSourceFromIR generateOutput (self) compileInner (self)

Compiled Slang source

exact compiled source (N = 400); long files show the first 40 lines, the area around computeMain (±40), and the last 40 lines (gaps elided)

inlining.slang

// AUTO-GENERATED by perf-suite/workloads.py — do not edit by hand.
RWStructuredBuffer<float> outBuf;

[ForceInline] float step_0(float x) { return x * 1.01 + sin(x); }
[ForceInline] float step_1(float x) { float t = step_0(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_2(float x) { float t = step_1(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_3(float x) { float t = step_2(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_4(float x) { float t = step_3(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_5(float x) { float t = step_4(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_6(float x) { float t = step_5(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_7(float x) { float t = step_6(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_8(float x) { return x * 1.01 + sin(x); }
[ForceInline] float step_9(float x) { float t = step_8(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_10(float x) { float t = step_9(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_11(float x) { float t = step_10(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_12(float x) { float t = step_11(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_13(float x) { float t = step_12(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_14(float x) { float t = step_13(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_15(float x) { float t = step_14(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_16(float x) { return x * 1.01 + sin(x); }
[ForceInline] float step_17(float x) { float t = step_16(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_18(float x) { float t = step_17(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_19(float x) { float t = step_18(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_20(float x) { float t = step_19(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_21(float x) { float t = step_20(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_22(float x) { float t = step_21(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_23(float x) { float t = step_22(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_24(float x) { return x * 1.01 + sin(x); }
[ForceInline] float step_25(float x) { float t = step_24(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_26(float x) { float t = step_25(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_27(float x) { float t = step_26(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_28(float x) { float t = step_27(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_29(float x) { float t = step_28(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_30(float x) { float t = step_29(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_31(float x) { float t = step_30(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_32(float x) { return x * 1.01 + sin(x); }
[ForceInline] float step_33(float x) { float t = step_32(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_34(float x) { float t = step_33(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_35(float x) { float t = step_34(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_36(float x) { float t = step_35(x); return t * 1.01 + cos(t) - sin(x * 0.5); }

// … 326 lines omitted …

[ForceInline] float step_363(float x) { float t = step_362(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_364(float x) { float t = step_363(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_365(float x) { float t = step_364(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_366(float x) { float t = step_365(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_367(float x) { float t = step_366(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_368(float x) { return x * 1.01 + sin(x); }
[ForceInline] float step_369(float x) { float t = step_368(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_370(float x) { float t = step_369(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_371(float x) { float t = step_370(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_372(float x) { float t = step_371(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_373(float x) { float t = step_372(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_374(float x) { float t = step_373(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_375(float x) { float t = step_374(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_376(float x) { return x * 1.01 + sin(x); }
[ForceInline] float step_377(float x) { float t = step_376(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_378(float x) { float t = step_377(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_379(float x) { float t = step_378(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_380(float x) { float t = step_379(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_381(float x) { float t = step_380(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_382(float x) { float t = step_381(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_383(float x) { float t = step_382(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_384(float x) { return x * 1.01 + sin(x); }
[ForceInline] float step_385(float x) { float t = step_384(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_386(float x) { float t = step_385(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_387(float x) { float t = step_386(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_388(float x) { float t = step_387(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_389(float x) { float t = step_388(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_390(float x) { float t = step_389(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_391(float x) { float t = step_390(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_392(float x) { return x * 1.01 + sin(x); }
[ForceInline] float step_393(float x) { float t = step_392(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_394(float x) { float t = step_393(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_395(float x) { float t = step_394(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_396(float x) { float t = step_395(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_397(float x) { float t = step_396(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_398(float x) { float t = step_397(x); return t * 1.01 + cos(t) - sin(x * 0.5); }
[ForceInline] float step_399(float x) { float t = step_398(x); return t * 1.01 + cos(t) - sin(x * 0.5); }

[shader("compute")]
[numthreads(1,1,1)]
void computeMain()
{
    float x = outBuf[0]; float acc = 0.0;
    acc += step_7(x);
    acc += step_15(x);
    acc += step_23(x);
    acc += step_31(x);
    acc += step_39(x);
    acc += step_47(x);
    acc += step_55(x);
    acc += step_63(x);
    acc += step_71(x);
    acc += step_79(x);
    acc += step_87(x);
    acc += step_95(x);
    acc += step_103(x);
    acc += step_111(x);
    acc += step_119(x);
    acc += step_127(x);
    acc += step_135(x);
    acc += step_143(x);
    acc += step_151(x);
    acc += step_159(x);
    acc += step_167(x);
    acc += step_175(x);
    acc += step_183(x);
    acc += step_191(x);
    acc += step_199(x);
    acc += step_207(x);
    acc += step_215(x);
    acc += step_223(x);
    acc += step_231(x);
    acc += step_239(x);
    acc += step_247(x);
    acc += step_255(x);
    acc += step_263(x);
    acc += step_271(x);
    acc += step_279(x);
    acc += step_287(x);
    acc += step_295(x);
    acc += step_303(x);
    acc += step_311(x);
    acc += step_319(x);
    acc += step_327(x);
    acc += step_335(x);
    acc += step_343(x);
    acc += step_351(x);
    acc += step_359(x);
    acc += step_367(x);
    acc += step_375(x);
    acc += step_383(x);
    acc += step_391(x);
    acc += step_399(x);
    outBuf[0] = acc;
}