Skip to content

Modernize JIT Directed merged runners - #132101

Merged
jkoritzinsky merged 8 commits into
mainfrom
dev/jkoritzinsky/modernize-directed-runners
Aug 12, 2026
Merged

jkoritzinsky merged 8 commits into
mainfrom
dev/jkoritzinsky/modernize-directed-runners

Conversation

@jkoritzinsky

@jkoritzinsky jkoritzinsky commented Aug 10, 2026 •

Copy link
Copy Markdown
Member

The Directed JIT tests were grouped into merged runners through broad globs, which prevented eligible sources from being incrementally merged into their runners and obscured the compilation settings that determine which tests can run together.

This change:

  • replaces the Directed_1, Directed_2, and Directed_3 projects with explicit source and project lists
  • consolidates the tests into five canonical build variants: Directed_1, Directed_d, Directed_do, Directed_r, and Directed_ro
  • treats empty or disabled Optimize as an unoptimized d/r variant and maps DebugType=PdbOnly tests to the corresponding r/ro variant
  • marks priority-1, non-process-isolated [Fact] tests as [OuterLoop]
  • merges eligible C# sources directly into their runners while retaining projects that require process isolation, SkipLocalsInit, or assembly/module metadata
  • preserves PhysicalPromotion JIT environment isolation where out-of-process tests are supported and compiles those sources directly on mobile targets that cannot run them out of process

The merged runners do not infer or propagate platform metadata.

Validation

  • src\tests\build.cmd -Dir JIT\Directed x64 Checked -Priority 1
  • all five merged runners passed

Note

This pull request description was generated by GitHub Copilot.

jkoritzinsky and others added 4 commits August 9, 2026 14:04
Replace the glob-based Directed runners with explicit partitions grouped by DebugType and Optimize properties.

Co-authored-by: Copilot App <[email protected]>
Compile merge-safe C# tests directly in the property-grouped runners while preserving isolated project references and PhysicalPromotion environment settings.

Co-authored-by: Copilot App <[email protected]>
Use one merged runner for each explicit DebugType/Optimize combination. Preserve process-isolated PhysicalPromotion projects where supported and compile their sources directly on mobile targets that cannot run out of process.

Co-authored-by: Copilot App <[email protected]>
Copilot AI lite review requested due to automatic review settings August 10, 2026 23:52

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@github-actions github-actions Bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Aug 10, 2026
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).
13 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

Normalize empty and disabled optimization into the unoptimized variants and PdbOnly debug information into the release variants, leaving five merged runners while preserving item metadata and process isolation.

Co-authored-by: Copilot App <[email protected]>
Copilot AI review requested due to automatic review settings August 11, 2026 02:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@jkoritzinsky

Copy link
Copy Markdown
Member Author

@EgorBo this model should be easier to add new projects to than the Regression test suite (no need to balance between the different numbered projects other than for the default config).

Restore the omitted F# tailcall test, keep mixed-priority source variants in the inner loop, and retain optimized coverage for sources normalized into the unoptimized runner.

Co-authored-by: Copilot App <[email protected]>
Copilot AI review requested due to automatic review settings August 11, 2026 23:59

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@jkoritzinsky

Copy link
Copy Markdown
Member Author

/azp run

[!NOTE] This CI rerun command was posted by GitHub Copilot after a transient macOS job timeout.

@azure-pipelines

Copy link
Copy Markdown
Command 'run

' is not supported by Azure Pipelines.


Supported commands
  • help:
    • Get descriptions, examples and documentation about supported commands
    • Example: help "command_name"
  • list:
    • List all pipelines for this repository using a comment.
    • Example: "list"
  • run:
    • Run all pipelines or specific pipelines for this repository using a comment. Use this command by itself to trigger all related pipelines, or specify specific pipelines to run.
    • Example: "run" or "run pipeline_name, pipeline_name, pipeline_name"
  • where:
    • Report back the Azure DevOps orgs that are related to this repository and org
    • Example: "where"

See additional documentation.

jkoritzinsky and others added 2 commits August 11, 2026 20:01

@EgorBo EgorBo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Is there a plan to do the same for regressions tests? We mostly touch those 🙂
PS: should we kick off some outerloop to validate that this PR didn't expose some incompatible test to jit/gc stress?

@jkoritzinsky

Copy link
Copy Markdown
Member Author

@EgorBo Thanks! I expect consolidating the Regression tests to be a separate follow-up; this PR establishes the explicit configuration-based pattern under Directed.

I ran all five merged Directed runners locally on Windows x64 Checked under both DOTNET_JitStress=2 and DOTNET_GCStress=0xC. Every runner passed in both configurations, with no test requiring additional isolation.

Note

This response was generated by GitHub Copilot.

@jkoritzinsky

Copy link
Copy Markdown
Member Author

/ba-g unrelated wasm test failures

@jkoritzinsky
jkoritzinsky enabled auto-merge (squash) August 12, 2026 16:53
@jkoritzinsky
jkoritzinsky merged commit f452281 into main Aug 12, 2026
81 of 84 checks passed
@jkoritzinsky
jkoritzinsky deleted the dev/jkoritzinsky/modernize-directed-runners branch August 12, 2026 16:53
@github-project-automation github-project-automation Bot moved this to Done in AppModel Aug 12, 2026
@dotnet-milestone-bot dotnet-milestone-bot Bot added this to the 11.0-rc1 milestone Aug 13, 2026
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 13, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

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

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants