[NativeAOT] Do not suppress inlining of random threadstatics #90055
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.
Fixes: #89993
When we did not have a way to disable inlining of threadstatic storage, suppressing inlining of a fraction of threadstatic variables in Checked/Debug builds made sense from code coverage and testing point of view.
Now that we have a compiler switch to disable inlining and have entire platform combinations that do not inline, the value of such instrumentation is not high.
On the other hand, it could result in issues like #89993
The culprit is that there is at least one variable
ThreadStatics.t_inlinedThreadStaticBasethat we assume to always participate in inlining (if there is inlining at all). The variable caches inlined threadstatic storage and assumes that mere accessing the variable will initiaize the cache. That will not be guaranteed if the variable itself is not on inlined plan.We could, in theory, just ensure that we do not bump
t_inlinedThreadStaticBaseoff the inlining plan as a part of random selection, but it seems better to stop doing that entirely.