-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Use proper context in initClass for GDV #87847
Changes from all commits
81df161
145f1b2
9c6343f
c8e0dd0
bee352f
fa14183
c35c337
6716059
8babb27
7ef4563
05d2660
632efc9
5347598
6ee9280
39478fa
848d4ff
671e7a6
fdc390a
19b8e25
7ee1d65
3d68462
0d4fddb
83462ac
c49687b
be7b14d
361d9dd
8ff5b0a
bb7009d
254a843
fbee1a6
a7ee0bf
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -862,7 +862,7 @@ class IndirectCallTransformer | |
|
||
JITDUMP("Direct call [%06u] in block " FMT_BB "\n", compiler->dspTreeID(call), block->bbNum); | ||
|
||
CORINFO_METHOD_HANDLE methodHnd = call->gtCallMethHnd; | ||
CORINFO_METHOD_HANDLE methodHnd = inlineInfo->guardedMethodHandle; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think this isn't strictly necessary...? Consider leaving as is and then asserting that the method that There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'll check with recent David's VM changes, but last time I checked this was an important part to fix asserts. Basically, There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Just checked - we still assert in both VMs for that. The problem that we pass the base |
||
CORINFO_CONTEXT_HANDLE context = inlineInfo->exactContextHnd; | ||
if (clsHnd != NO_CLASS_HANDLE) | ||
{ | ||
|
@@ -872,7 +872,8 @@ class IndirectCallTransformer | |
unsigned methodFlags = compiler->info.compCompHnd->getMethodAttribs(methodHnd); | ||
const bool isLateDevirtualization = true; | ||
const bool explicitTailCall = (call->AsCall()->gtCallMoreFlags & GTF_CALL_M_EXPLICIT_TAILCALL) != 0; | ||
compiler->impDevirtualizeCall(call, nullptr, &methodHnd, &methodFlags, &context, nullptr, | ||
CORINFO_CONTEXT_HANDLE contextInput = context; | ||
compiler->impDevirtualizeCall(call, nullptr, &methodHnd, &methodFlags, &contextInput, &context, | ||
isLateDevirtualization, explicitTailCall); | ||
} | ||
else | ||
|
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.
Is this ever
NULL
?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.
afair, it's null for method-profiling (delegates)