Skip to content

Create checked/release SuperPMI asm diffs AzDO pipeline #49949

@BruceForstall

Description

@BruceForstall

We need a test to ensure there are no differences in codegen between DEBUG and non-DEBUG compilers (e.g., Checked and Release), since we do most of our testing on Checked, and debugging Release is difficult and tedious, at best. One way to do this is run SuperPMI asm diffs between a Checked and Release build of the JIT.

I propose adding an AzDO pipeline to do this.

Notes:

  • Of course, it should be all platform.
  • We only need Checked and Release JIT builds, no builds of the full runtime or tests. The "jitrollingbuild" pipeline already builds just the Checked JITs. We should copy/leverage its logic to build both Checked and Release JITs.
  • The Helix machines need to run, basically:
    • python superpmi.py -base_jit_path <Release JIT> -diff_jit_path <Checked JIT>
  • If the Helix machines can't access Azure Storage to automatically download the MCH files, we can download the files on the build machine, and add them to the test payload (i.e., copy them from the build machine to the Helix machine.)
    • in this case, just pass -mch_files ... to point at the MCH files
  • the job should fail if there are any DEBUG/non-DEBUG asm diffs
  • trigger the job on JIT PRs, or, if that is deemed too expensive, run it weekly (and ensure the results are reviewed).
  • The logic will be very similar to the superpmi-replay pipeline created with Spmi replay pipeline #56871.

@kunalspathak @AndyAyersMS @dotnet/jit-contrib

Metadata

Metadata

Assignees

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions