One enormous straight-line function: `n` trivial integer SSA ops, almost no semantic work. Stresses IR instruction construction / dedup / hash-cons and the SSA simplifier (the shared IRBuilder layer PR #9808 touched).
bucket: ir_infra · compile mode: target · flags: -target spirv -emit-spirv-directly · default N: 4000
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.
exact compiled source (N = 4000); long files show the first 40 lines, the area around computeMain (±40), and the last 40 lines (gaps elided)
// AUTO-GENERATED by perf-suite/workloads.py — do not edit by hand.
RWStructuredBuffer<float> outBuf;
[shader("compute")]
[numthreads(1,1,1)]
void computeMain(uint3 tid : SV_DispatchThreadID)
{
int acc = int(tid.x);
acc = acc * 1;
acc = acc + 2;
acc = acc ^ 3;
acc = acc * 4;
acc = acc + 5;
acc = acc ^ 6;
acc = acc * 7;
acc = acc + 8;
acc = acc ^ 9;
acc = acc * 10;
acc = acc + 11;
acc = acc ^ 12;
acc = acc * 13;
acc = acc + 1;
acc = acc ^ 2;
acc = acc * 3;
acc = acc + 4;
acc = acc ^ 5;
acc = acc * 6;
acc = acc + 7;
acc = acc ^ 8;
acc = acc * 9;
acc = acc + 10;
acc = acc ^ 11;
acc = acc * 12;
acc = acc + 13;
acc = acc ^ 1;
acc = acc * 2;
acc = acc + 3;
acc = acc ^ 4;
acc = acc * 5;
acc = acc + 6;
acc = acc ^ 7;
acc = acc * 8;
acc = acc + 9;
acc = acc ^ 10;
acc = acc * 11;
acc = acc + 12;
// … 3924 lines omitted …
acc = acc ^ 11;
acc = acc * 12;
acc = acc + 13;
acc = acc ^ 1;
acc = acc * 2;
acc = acc + 3;
acc = acc ^ 4;
acc = acc * 5;
acc = acc + 6;
acc = acc ^ 7;
acc = acc * 8;
acc = acc + 9;
acc = acc ^ 10;
acc = acc * 11;
acc = acc + 12;
acc = acc ^ 13;
acc = acc * 1;
acc = acc + 2;
acc = acc ^ 3;
acc = acc * 4;
acc = acc + 5;
acc = acc ^ 6;
acc = acc * 7;
acc = acc + 8;
acc = acc ^ 9;
acc = acc * 10;
acc = acc + 11;
acc = acc ^ 12;
acc = acc * 13;
acc = acc + 1;
acc = acc ^ 2;
acc = acc * 3;
acc = acc + 4;
acc = acc ^ 5;
acc = acc * 6;
acc = acc + 7;
acc = acc ^ 8;
acc = acc * 9;
outBuf[0] = float(acc);
}