← all workloads

conformance

`n` structs each conforming to a shared interface. Stresses interface conformance checking / witness synthesis in the front end (compiled to a .slang-module so the signal is sema, not codegen).

bucket: sema  ·  compile mode: module  ·  flags: (none)  ·  default N: 600

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.

conformance — full phase breakdown across releases (median ms) conformance 0.96× 0.0 46 91 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 conformance — parseTranslationUnit conformance — SemanticChecking conformance — generateIR conformance — frontEndExecute (self) conformance — generateOutput (self) conformance — 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 = 600); long files show the first 40 lines, the area around computeMain (±40), and the last 40 lines (gaps elided)

conformance.slang

// AUTO-GENERATED by perf-suite/workloads.py — do not edit by hand.
interface IFace { float f(float x); int g(); }

struct C0 : IFace { float f(float x) { return x * 1.0 + 0.0; } int g() { return 0; } }
struct C1 : IFace { float f(float x) { return x * 2.0 + 1.0; } int g() { return 1; } }
struct C2 : IFace { float f(float x) { return x * 3.0 + 2.0; } int g() { return 2; } }
struct C3 : IFace { float f(float x) { return x * 4.0 + 3.0; } int g() { return 3; } }
struct C4 : IFace { float f(float x) { return x * 5.0 + 4.0; } int g() { return 4; } }
struct C5 : IFace { float f(float x) { return x * 6.0 + 5.0; } int g() { return 5; } }
struct C6 : IFace { float f(float x) { return x * 7.0 + 6.0; } int g() { return 6; } }
struct C7 : IFace { float f(float x) { return x * 8.0 + 7.0; } int g() { return 7; } }
struct C8 : IFace { float f(float x) { return x * 9.0 + 8.0; } int g() { return 8; } }
struct C9 : IFace { float f(float x) { return x * 1.0 + 9.0; } int g() { return 9; } }
struct C10 : IFace { float f(float x) { return x * 2.0 + 10.0; } int g() { return 10; } }
struct C11 : IFace { float f(float x) { return x * 3.0 + 11.0; } int g() { return 11; } }
struct C12 : IFace { float f(float x) { return x * 4.0 + 12.0; } int g() { return 12; } }
struct C13 : IFace { float f(float x) { return x * 5.0 + 13.0; } int g() { return 13; } }
struct C14 : IFace { float f(float x) { return x * 6.0 + 14.0; } int g() { return 14; } }
struct C15 : IFace { float f(float x) { return x * 7.0 + 15.0; } int g() { return 15; } }
struct C16 : IFace { float f(float x) { return x * 8.0 + 16.0; } int g() { return 16; } }
struct C17 : IFace { float f(float x) { return x * 9.0 + 17.0; } int g() { return 17; } }
struct C18 : IFace { float f(float x) { return x * 1.0 + 18.0; } int g() { return 18; } }
struct C19 : IFace { float f(float x) { return x * 2.0 + 19.0; } int g() { return 19; } }
struct C20 : IFace { float f(float x) { return x * 3.0 + 20.0; } int g() { return 20; } }
struct C21 : IFace { float f(float x) { return x * 4.0 + 21.0; } int g() { return 21; } }
struct C22 : IFace { float f(float x) { return x * 5.0 + 22.0; } int g() { return 22; } }
struct C23 : IFace { float f(float x) { return x * 6.0 + 23.0; } int g() { return 23; } }
struct C24 : IFace { float f(float x) { return x * 7.0 + 24.0; } int g() { return 24; } }
struct C25 : IFace { float f(float x) { return x * 8.0 + 25.0; } int g() { return 25; } }
struct C26 : IFace { float f(float x) { return x * 9.0 + 26.0; } int g() { return 26; } }
struct C27 : IFace { float f(float x) { return x * 1.0 + 27.0; } int g() { return 27; } }
struct C28 : IFace { float f(float x) { return x * 2.0 + 28.0; } int g() { return 28; } }
struct C29 : IFace { float f(float x) { return x * 3.0 + 29.0; } int g() { return 29; } }
struct C30 : IFace { float f(float x) { return x * 4.0 + 30.0; } int g() { return 30; } }
struct C31 : IFace { float f(float x) { return x * 5.0 + 31.0; } int g() { return 31; } }
struct C32 : IFace { float f(float x) { return x * 6.0 + 32.0; } int g() { return 32; } }
struct C33 : IFace { float f(float x) { return x * 7.0 + 33.0; } int g() { return 33; } }
struct C34 : IFace { float f(float x) { return x * 8.0 + 34.0; } int g() { return 34; } }
struct C35 : IFace { float f(float x) { return x * 9.0 + 35.0; } int g() { return 35; } }
struct C36 : IFace { float f(float x) { return x * 1.0 + 36.0; } int g() { return 36; } }

// … 523 lines omitted …

struct C560 : IFace { float f(float x) { return x * 3.0 + 560.0; } int g() { return 560; } }
struct C561 : IFace { float f(float x) { return x * 4.0 + 561.0; } int g() { return 561; } }
struct C562 : IFace { float f(float x) { return x * 5.0 + 562.0; } int g() { return 562; } }
struct C563 : IFace { float f(float x) { return x * 6.0 + 563.0; } int g() { return 563; } }
struct C564 : IFace { float f(float x) { return x * 7.0 + 564.0; } int g() { return 564; } }
struct C565 : IFace { float f(float x) { return x * 8.0 + 565.0; } int g() { return 565; } }
struct C566 : IFace { float f(float x) { return x * 9.0 + 566.0; } int g() { return 566; } }
struct C567 : IFace { float f(float x) { return x * 1.0 + 567.0; } int g() { return 567; } }
struct C568 : IFace { float f(float x) { return x * 2.0 + 568.0; } int g() { return 568; } }
struct C569 : IFace { float f(float x) { return x * 3.0 + 569.0; } int g() { return 569; } }
struct C570 : IFace { float f(float x) { return x * 4.0 + 570.0; } int g() { return 570; } }
struct C571 : IFace { float f(float x) { return x * 5.0 + 571.0; } int g() { return 571; } }
struct C572 : IFace { float f(float x) { return x * 6.0 + 572.0; } int g() { return 572; } }
struct C573 : IFace { float f(float x) { return x * 7.0 + 573.0; } int g() { return 573; } }
struct C574 : IFace { float f(float x) { return x * 8.0 + 574.0; } int g() { return 574; } }
struct C575 : IFace { float f(float x) { return x * 9.0 + 575.0; } int g() { return 575; } }
struct C576 : IFace { float f(float x) { return x * 1.0 + 576.0; } int g() { return 576; } }
struct C577 : IFace { float f(float x) { return x * 2.0 + 577.0; } int g() { return 577; } }
struct C578 : IFace { float f(float x) { return x * 3.0 + 578.0; } int g() { return 578; } }
struct C579 : IFace { float f(float x) { return x * 4.0 + 579.0; } int g() { return 579; } }
struct C580 : IFace { float f(float x) { return x * 5.0 + 580.0; } int g() { return 580; } }
struct C581 : IFace { float f(float x) { return x * 6.0 + 581.0; } int g() { return 581; } }
struct C582 : IFace { float f(float x) { return x * 7.0 + 582.0; } int g() { return 582; } }
struct C583 : IFace { float f(float x) { return x * 8.0 + 583.0; } int g() { return 583; } }
struct C584 : IFace { float f(float x) { return x * 9.0 + 584.0; } int g() { return 584; } }
struct C585 : IFace { float f(float x) { return x * 1.0 + 585.0; } int g() { return 585; } }
struct C586 : IFace { float f(float x) { return x * 2.0 + 586.0; } int g() { return 586; } }
struct C587 : IFace { float f(float x) { return x * 3.0 + 587.0; } int g() { return 587; } }
struct C588 : IFace { float f(float x) { return x * 4.0 + 588.0; } int g() { return 588; } }
struct C589 : IFace { float f(float x) { return x * 5.0 + 589.0; } int g() { return 589; } }
struct C590 : IFace { float f(float x) { return x * 6.0 + 590.0; } int g() { return 590; } }
struct C591 : IFace { float f(float x) { return x * 7.0 + 591.0; } int g() { return 591; } }
struct C592 : IFace { float f(float x) { return x * 8.0 + 592.0; } int g() { return 592; } }
struct C593 : IFace { float f(float x) { return x * 9.0 + 593.0; } int g() { return 593; } }
struct C594 : IFace { float f(float x) { return x * 1.0 + 594.0; } int g() { return 594; } }
struct C595 : IFace { float f(float x) { return x * 2.0 + 595.0; } int g() { return 595; } }
struct C596 : IFace { float f(float x) { return x * 3.0 + 596.0; } int g() { return 596; } }
struct C597 : IFace { float f(float x) { return x * 4.0 + 597.0; } int g() { return 597; } }
struct C598 : IFace { float f(float x) { return x * 5.0 + 598.0; } int g() { return 598; } }
struct C599 : IFace { float f(float x) { return x * 6.0 + 599.0; } int g() { return 599; } }