Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Conversation

@AndyAyersMS
Copy link
Member

Follow-up from a review comment in #21270.

@AndyAyersMS
Copy link
Member Author

@sandreenko PTAL
cc @dotnet/jit-contrib

No source code changes; a few minor comment edits.

@AndyAyersMS
Copy link
Member Author

Perf test failures are known issues. Fix is #21412.

Copy link

@sandreenko sandreenko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you.

Copy link

@CarolEidt CarolEidt left a 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,

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.

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

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.

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"

@AndyAyersMS AndyAyersMS merged commit 6e9c14e into dotnet:master Dec 6, 2018
@AndyAyersMS AndyAyersMS deleted the MoveIndirectCallTransformToNewFile branch December 6, 2018 20:58
@AndyAyersMS
Copy link
Member Author

@CarolEidt I have another edit in progress up for this file, so will fix the issues you note above there.

AndyAyersMS added a commit to AndyAyersMS/coreclr that referenced this pull request Dec 6, 2018
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.
AndyAyersMS added a commit that referenced this pull request Dec 7, 2018
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.
morganbr pushed a commit that referenced this pull request Dec 14, 2018
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.
picenka21 pushed a commit to picenka21/runtime that referenced this pull request Feb 18, 2022
picenka21 pushed a commit to picenka21/runtime that referenced this pull request Feb 18, 2022
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
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants