-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Use BBF_IMPORTER for new blocks in helperexpansion.cpp #116359
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: @JulieLeeMSFT, @jakobbotsch |
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 updates the flag conversion logic in helperexpansion.cpp to use BBF_IMPORTED for new blocks, addressing the issue raised in #116143.
- Removed an unused variable (sigNode) in fgExpandRuntimeLookupsForCall.
- Updated BBF_INTERNAL flag conversion to BBF_IMPORTED in both runtime lookup and static initializer expansion paths.
|
PTAL @jakobbotsch @noahfalk I only touched the phases that may introduce internal blocks for Tier0/MinOpts - there are a few more places for optimized code, do we need to handle them as well? |
|
@EgorBo, Thank you for working on that! I checked with this commit, unfortunately Attached a piece of |
For optimized code the long-standing convention has been the JIT would make "best effort" to produce good mapping information in optimized code, but there is no guarantee on it. My preference would be that we fix it in optimized code too assuming it isn't particularly onerous or risky to do. |
ad68b1f to
3b3532f
Compare
|
@eterekhin sorry, this fell off my radar, I've just updated it. @dotnet/jit-contrib @AndyAyersMS PTAL It seems like for optimized codegen we have tons of places where we don't propagate the flag properly. Since we're late in the cycle, I've pushed the fix for this particular problem for Debug codegen (since we expand runtime lookups pretty much always regardless of opts). We also do static cctor initialization expansion always (on NativeAOT at least). |
|
@EgorBo, I can confirm, the fix is working, thank you! |
Fixes #116143
Both "Expand runtime lookup" and "Expand static cctors" (NativeAOT) may run in Tier0/MinOpts (Debug). Convert BBF_INTERNAL to BBF_IMPORTER for new blocks (as was suggested by @eterekhin)