Skip to content

X86: enable proper frame lowering for swift async on Win64 #2855

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

Merged

Conversation

compnerd
Copy link
Member

The Swift asynchronous calling convention requires some additional setup
on the frame. In particular, the swift async register needs to be
spilled relative to the frame pointer, which we now accommodate. This
may require some further refinement due to frame setup restrictions on
Windows, but this initial approach should be sufficient to move towards
a working asynchronous support.

The Swift asynchronous calling convention requires some additional setup
on the frame.  In particular, the swift async register needs to be
spilled relative to the frame pointer, which we now accommodate.  This
may require some further refinement due to frame setup restrictions on
Windows, but this initial approach should be sufficient to move towards
a working asynchronous support.
@compnerd
Copy link
Member Author

CC: @TNorthover @DougGregor @rnk

@compnerd
Copy link
Member Author

@swift-ci please test

@compnerd
Copy link
Member Author

CC: @gottesmm

@aschwaighofer
Copy link

@compnerd Can you upstream this patch? Doing so should get rid of the "Check File(s) Changed" failure I think. Also you would get a proper review. @TNorthover has recently upstreamed swiftasync support so I think it should be possible now to upstream this patch.

@compnerd
Copy link
Member Author

@aschwaighofer yes, I do intend to try to upstream the work, but this is needed to get the tests enabled, and Id like to get the test coverage as high as possible to uncover any possible ABI level issues that may be lurking as a result of all the disabled tests.

Copy link

@aschwaighofer aschwaighofer left a comment

Choose a reason for hiding this comment

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

LGTM.

@aschwaighofer
Copy link

@shahmishal Can you merge this PR?

@shahmishal shahmishal merged commit 1cca0e2 into swiftlang:swift/main May 20, 2021
@compnerd compnerd deleted the compnerd/async-frame-lowering branch May 20, 2021 19:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants