-
Notifications
You must be signed in to change notification settings - Fork 5.2k
[clr-interp] Enable building clr-interp on Release, via build flag #121850
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Tagging subscribers to this area: @BrzVlad, @janvorli, @kg |
|
Tested build on win-x64, osx-arm64 and ubuntu-arm64. This should make it easier to use when doing performance testing, which has to be done on release build. This could also facilitate adding release pipelines on desktop and also doing automated perf runs. |
There was a problem hiding this 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 enables the CoreCLR interpreter to be built on Release configurations for desktop platforms where it was previously a Debug-only feature. The interpreter remains enabled by default on platforms that require it (WASM/iOS) and on Debug desktop builds, but can now be explicitly enabled on Release desktop builds using the new --clrinterp build flag.
Key Changes
- Added a new
--clrinterpbuild flag to enable the interpreter in Release configurations - Updated platform-specific assembly offsets to support interpreter in Release builds
- Configured CMake to pass the FeatureInterpreter flag when the build option is specified
Reviewed Changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| eng/build.sh | Added -clrinterp command-line flag and help text for bash build script |
| eng/build.ps1 | Added -clrinterp parameter and help text for PowerShell build script |
| src/coreclr/runtime.proj | Added conditional CMake argument to enable FEATURE_INTERPRETER when requested |
| src/coreclr/vm/amd64/asmconstants.h | Added Release-specific Thread offset for interpreter context on non-UNIX AMD64 platforms |
| src/coreclr/System.Private.CoreLib/src/System/Runtime/ExceptionServices/AsmOffsets.cs | Added platform-specific StackFrameIterator offsets for interpreter in Release builds |
janvorli
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM modulo the nit
Interpreter is enabled on targets using it wasm/ios. Interpreter is enabled on debug desktop build. Interpreter is disabled on release desktop build. This commit makes it possible to enable it on desktop release build. Ex: ./build.sh -subset clr -c Release --clrinterpreter
8be7a07 to
4f8d4df
Compare
Interpreter is enabled on targets needing it: wasm/ios.
Interpreter is enabled on debug desktop build.
Interpreter is disabled on release desktop build.
This commit makes it possible to enable it on desktop release build. Ex: