You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
add dotnet-pgo create-mibc-from-method-list for constructing deterministic profile root sets from JSON
resolve assembly-qualified declaring, parameter, and generic argument types through an Ecma-backed type-system context
reject invalid JSON, missing references, unresolved or ambiguous methods, wrong generic arity, duplicate entries, open generic types, and non-.mibc output
document the JSON format and add focused end-to-end tests, including MIBC dump round-tripping and input-order determinism
This is an exploratory, general-purpose profile-rooting tool motivated by the scenarios discussed in #132825. It does not claim to resolve that issue.
The tool supports controlled differential ReadyToRun investigations without collecting a trace or hand-authoring MIBC IL. It has already been used to:
root MemoryExtensions.Contains<int> through PublishReadyToRunPgoFiles, proving the profile was accepted and the compiled body was emitted while live execution still entered WasmR2RToInterpreterThunk; this isolated the problem to closed-generic dispatch/adapter behavior rather than missing rooting
Azure Pipelines:
Successfully started running 4 pipeline(s).
12 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.
MakeInstantiatedMethod only creates an instantiated descriptor; it does not validate generic constraints (the type system explicitly calls CheckConstraints() after instantiation in src/coreclr/tools/Common/TypeSystem/IL/UnsafeAccessors.cs:407-414). As written, a method list can pass an invalid class/struct/new()/interface argument and this command will accept and emit an invalid MIBC root. Reject candidates whose instantiated method fails CheckConstraints() and add a regression case for an invalid method generic argument.
This issue also appears on line 226 of the same file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
dotnet-pgo create-mibc-from-method-listfor constructing deterministic profile root sets from JSON.mibcoutputThis is an exploratory, general-purpose profile-rooting tool motivated by the scenarios discussed in #132825. It does not claim to resolve that issue.
The tool supports controlled differential ReadyToRun investigations without collecting a trace or hand-authoring MIBC IL. It has already been used to:
MemoryExtensions.Contains<int>throughPublishReadyToRunPgoFiles, proving the profile was accepted and the compiled body was emitted while live execution still enteredWasmR2RToInterpreterThunk; this isolated the problem to closed-generic dispatch/adapter behavior rather than missing rootingDelegate.CtorOpenandDelegate.CtorClosed, proving that adding the compiled bodies did not change delegate construction dispatch or timing and ruling out missing bodies as the cause of [wasm][coreclr][R2R] Delegate construction skips alternate-constructor lowering and remains interpreted #134564This tool is not needed as a workaround for automatic hardware-intrinsic rooting in partial no-JIT compilations; #134030 fixed that behavior.
Validation
./dotnet.sh test src/coreclr/tools/dotnet-pgo/tests/dotnet-pgo.Tests.csproj -c Debug— 7 passed./dotnet.sh test src/coreclr/tools/dotnet-pgo/tests/dotnet-pgo.Tests.csproj -c Release— 7 passedNote
This pull request description was generated with GitHub Copilot.