Skip to content

Conversation

@davidwrighton
Copy link
Member

  • Enhance InterpMode flag to autoimply various other flags like ReadyToRun=0 EnableHWIntrinsic=0 consistently, so that InterpMode can be used on its own to control interpretation behavior
    • The comments around InterpMode are now accurate as to what they imply
  • Enhance CI to allow testing of various interpreter scenarios (The existing model + InterModes 1, 2, and 3)

- Enhance InterpMode flag to autoimply various other flags like ReadyToRun=0 EnableHWIntrinsic=0 consistently, so that InterpMode can be used on its own to control interpretation behavior
  - The comments around InterpMode are now accurate as to what they imply
- Enhance CI to allow testing of various interpreter scenarios (The existing model + InterModes 1, 2, and 3)
Copilot AI review requested due to automatic review settings October 21, 2025 22:16
@github-actions github-actions bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Oct 21, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR enhances the InterpMode configuration flag to automatically imply related settings (ReadyToRun=0, EnableHWIntrinsic=0) and expands CI testing to cover multiple interpreter scenarios (InterpMode 1, 2, and 3) in addition to the existing test model.

Key Changes:

  • InterpMode now auto-configures dependent flags (ReadyToRun, EnableHWIntrinsic, vector widths) based on mode value
  • CI infrastructure updated to test InterpMode scenarios 1-3 with various tiered compilation settings
  • Test execution scripts enhanced to detect and skip interpreter-incompatible tests when DOTNET_InterpMode is set

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/tests/Common/testenvironment.proj Adds InterpMode to environment variables and defines six new test scenarios for interpreter modes 1-3 with/without tiered compilation
src/tests/Common/CLRTest.Execute.Batch.targets Adds Windows batch script logic to skip interpreter-incompatible tests when DOTNET_InterpMode is set and conditionally sets DOTNET_Interpreter
src/tests/Common/CLRTest.Execute.Bash.targets Adds Bash script logic to skip interpreter-incompatible tests when DOTNET_InterpMode is set and conditionally sets DOTNET_Interpreter
src/coreclr/vm/jitinterface.cpp Simplifies interpreter loading logic by consolidating config checks into EnableInterpreter()
src/coreclr/vm/jithost.cpp Adds special handling for EnableHWIntrinsic config queries to respect EEConfig settings
src/coreclr/vm/eeconfig.h Declares enableInterpreter and enableHWIntrinsic fields and their accessor methods
src/coreclr/vm/eeconfig.cpp Implements InterpMode auto-configuration logic: sets enableInterpreter, disables ReadyToRun for modes 2+, and disables HWIntrinsic for mode 3
src/coreclr/vm/codeman.cpp Updates CPU info setup to respect EnableHWIntrinsic config and constrains vector widths to 128 bits for InterpMode 3
src/coreclr/interpreter/eeinterp.cpp Updates comments describing InterpMode values to accurately reflect implied settings
eng/pipelines/common/templates/runtimes/run-test-job.yml Configures CI to run interpreter test scenarios, with reduced coverage for PRs

@am11 am11 added area-CodeGen-Interpreter-coreclr and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Oct 22, 2025
@dotnet-policy-service
Copy link
Contributor

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

Copy link
Member

@janvorli janvorli left a comment

Choose a reason for hiding this comment

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

LGTM, thank you!

@davidwrighton
Copy link
Member Author

/ba-g Libraries_NET481 build failure is fixed by #120991 and is not related to this change.

@davidwrighton davidwrighton merged commit b835f0c into dotnet:main Oct 22, 2025
154 of 158 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants