-
Notifications
You must be signed in to change notification settings - Fork 2.6k
JIT: move indirect call transformations to a new source file #21414
JIT: move indirect call transformations to a new source file #21414
Conversation
Follow-up from a review comment in dotnet#21270.
|
@sandreenko PTAL No source code changes; a few minor comment edits. |
|
Perf test failures are known issues. Fix is #21412. |
sandreenko
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, thank you.
CarolEidt
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.
I have some comments on the comments. I realize it's all pre-existing, but I'd never reviewed this before.
| // The IndirectCallTransformer transforms indirect calls that involve fat pointers | ||
| // or guarded devirtualization candidates. | ||
| // | ||
| // A fat function pointer is pointer with the second least significant bit set, |
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.
Typo: "a pointer"
| // | ||
| // Jit is responsible for the checking the bit, do the regular call if it is not set | ||
| // or load hidden argument, fix the pointer and make a call with the fixed pointer and | ||
| // the instantiation argument. |
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.
It would be nice if the above paragraph was consistent with the use of imperative (fix the pointer) vs. present participle (checking the bit)
| // previous statements | ||
| // transforming statement | ||
| // { | ||
| // call with GTF_CALL_M_FAT_POINTER_CHECK flag set in function ptr |
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.
I think that this should say GTF_CALL_M_FAT_POINTER_CHECK flag set on the call node.
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.
What I meant was "FAT_POINTER_MASK"
|
@CarolEidt I have another edit in progress up for this file, so will fix the issues you note above there. |
Follow-up from dotnet#21270 and dotnet#21414. Block general cloning from inadvertently cloning a candidate call. Add a separate path for cloning calls that are inline and guarded devirtualization candidates for use by guarded devirtualization. Callers need to take extra steps after cloning one of these calls to properly fix everything up. Also fix up some issues in the large comment for the fat calli transformation.
Follow-up from #21270 and #21414. Block general cloning from inadvertently cloning a candidate call. Add a separate path for cloning calls that are inline and guarded devirtualization candidates for use by guarded devirtualization. Callers need to take extra steps after cloning one of these calls to properly fix everything up. Also fix up some issues in the large comment for the fat calli transformation.
Follow-up from #21270 and #21414. Block general cloning from inadvertently cloning a candidate call. Add a separate path for cloning calls that are inline and guarded devirtualization candidates for use by guarded devirtualization. Callers need to take extra steps after cloning one of these calls to properly fix everything up. Also fix up some issues in the large comment for the fat calli transformation.
…coreclr#21414) Follow-up from a review comment in dotnet/coreclr#21270. Commit migrated from dotnet/coreclr@6e9c14e
Follow-up from dotnet/coreclr#21270 and dotnet/coreclr#21414. Block general cloning from inadvertently cloning a candidate call. Add a separate path for cloning calls that are inline and guarded devirtualization candidates for use by guarded devirtualization. Callers need to take extra steps after cloning one of these calls to properly fix everything up. Also fix up some issues in the large comment for the fat calli transformation. Commit migrated from dotnet/coreclr@08be98c
Follow-up from a review comment in #21270.