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

Set flag in comp info to signal that a caller has >8 byte struct args #22775

Merged
merged 5 commits into from
Feb 28, 2019

Conversation

jashook
Copy link

@jashook jashook commented Feb 22, 2019

This will be used by fgCanFastTailCall to correctly determine whether an arm64
or x64 linux caller/callee can fastTailCall.

It is also a workaround to #12468 to catch early any slot shuffling that would happen in LowerFastTailCall. Which currently assumes all parameters are one slot size.

Fixes #22330.

This will be used by fgCanFastTailCall to correctly determine whether an arm64
or x64 linux caller/callee can fastTailCall.
It is also a workaround to #12468 to catch early any slot shuffling that would happen in LowerFastTailCall. Which currently assumes all parameters are one slot size.
@jashook
Copy link
Author

jashook commented Feb 22, 2019

/cc @dotnet/jit-contrib

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.

LGTM other than the comparing of a bool to 0

src/jit/compiler.h Outdated Show resolved Hide resolved
src/jit/morph.cpp Outdated Show resolved Hide resolved
@jashook
Copy link
Author

jashook commented Feb 22, 2019

@dotnet-bot test Windows_NT arm Cross Checked Innerloop Build and Test

@jashook
Copy link
Author

jashook commented Feb 26, 2019

I believe this change is good to be merged

@jashook jashook closed this Feb 27, 2019
@jashook jashook reopened this Feb 27, 2019
Copy link

@briansull briansull left a comment

Choose a reason for hiding this comment

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

Looks Good

@jashook jashook merged commit 0a29aaf into dotnet:master Feb 28, 2019
@jashook jashook deleted the fix_gh22330 branch May 28, 2019 21:08
jashook pushed a commit to jashook/coreclr that referenced this pull request May 30, 2019
…dotnet#22775)

* Set flag in comp info to signal that a caller has >8 byte struct args

This will be used by fgCanFastTailCall to correctly determine whether an arm64
or x64 linux caller/callee can fastTailCall.
It is also a workaround to #12468 to catch early any slot shuffling that would happen in LowerFastTailCall. Which currently assumes all parameters are one slot size.

* Address feedback

* Apply format patch

* Add comment

* apply new format patch
jashook pushed a commit that referenced this pull request Jun 4, 2019
* Set flag in comp info to signal that a caller has >8 byte struct args (#22775)

* Set flag in comp info to signal that a caller has >8 byte struct args

This will be used by fgCanFastTailCall to correctly determine whether an arm64
or x64 linux caller/callee can fastTailCall.
It is also a workaround to #12468 to catch early any slot shuffling that would happen in LowerFastTailCall. Which currently assumes all parameters are one slot size.

* Address feedback

* Apply format patch

* Add comment

* apply new format patch

* Address feedback and add header
jashook pushed a commit that referenced this pull request Jun 6, 2019
* Set flag in comp info to signal that a caller has >8 byte struct args (#22775)

* Set flag in comp info to signal that a caller has >8 byte struct args

This will be used by fgCanFastTailCall to correctly determine whether an arm64
or x64 linux caller/callee can fastTailCall.
It is also a workaround to #12468 to catch early any slot shuffling that would happen in LowerFastTailCall. Which currently assumes all parameters are one slot size.

* Address feedback

* Apply format patch

* Add comment

* apply new format patch

* Address feedback and add header
@daniel-white
Copy link

did this not ship with .net core 2.1.12?

@AndyAyersMS
Copy link
Member

This fix should be in 2.1.12 (and in 2.2.6), but doesn't seem to be called out in the release notes for either.

@vivmishra can you check if #24858 (2.1) and #24954 (2.2) was included in the releases but overlooked in the notes?

@vivmishra
Copy link

Those two PRs did not have correct label or milestone set. I have fixed that now and added CoreCLR to rel notes.

Cc: @leecow ; @RussKeldorph

picenka21 pushed a commit to picenka21/runtime that referenced this pull request Feb 18, 2022
…dotnet/coreclr#22775)

* Set flag in comp info to signal that a caller has >8 byte struct args

This will be used by fgCanFastTailCall to correctly determine whether an arm64
or x64 linux caller/callee can fastTailCall.
It is also a workaround to dotnet/coreclr#12468 to catch early any slot shuffling that would happen in LowerFastTailCall. Which currently assumes all parameters are one slot size.

* Address feedback

* Apply format patch

* Add comment

* apply new format patch


Commit migrated from dotnet/coreclr@0a29aaf
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.

Bug: incorrect parameters passed only in release build linux-x64
6 participants