swift
734f057c - [concurrency] Fix optimize_hop_to_executor so that we take advantage of the new nonisolated(nonsending) ABI in post 6.2.

Commit
35 days ago
[concurrency] Fix optimize_hop_to_executor so that we take advantage of the new nonisolated(nonsending) ABI in post 6.2. Specifically: 1. We assume in nonisolated(nonsending) that we are already on the relevant actor. This lets us always eliminate the initial hop_to_executor. 2. We stopped treating nonisolated(nonsending) functions as suspension points since we are guaranteed to always be on the same actor when we enter/return. 3. Now that nonisolated(nonsending) is no longer a suspension point, I could sink the needs executor nonisolated(nonsending) specific code into the needs executor code. For those unfamiliar it is that we: a. treat a nonisolated(nonsending) callee as a needs executor since we are no longer guaranteed to hop in callees and b. treat returns from nonisolated(nonsending) functions as being a needs executor instruction since we are no longer guaranteed to hop in the caller after such a function returns. rdar://155465878
Author
Committer
Parents
Loading