forked from swiftlang/swift
-
Notifications
You must be signed in to change notification settings - Fork 30
[pull] swiftwasm from main #4101
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
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
We do not have the `llvm/Config/config.h` header available in the forked LLVMSupport library in our standard library packaging. This removes that dependency by using the standard macro `_POSIX_THREADS` to detect if we should use pthreads.
Allow jumping around via matching parens by adding omitted matches.
Previously, the body--of the loop that iterated the instructions in the block--contained the check that the instruction over which hoisting might be done is the introducer. Here, that check is moved into tryHoistOverInstruction. Now that function and its other caller, canHoistOverInstruction, will return the right value (false) if they are ever called with the introducer (though that could not happen without this change).
Previously, hoisting was done over applies that were users of the borrowed value. Here, that is no longer done. That hoisting was done on the theory that multiple distinct lexical scopes were equivalent to a single enclosing lexical scope. Dead borrow elimination, however, means that they are not in fact the same, however: If a callee takes an object as an argument, and in that callee that argument is dead, FSO and inliniing (even with approaches to maintain lexical borrow scopes when the value that is borrowed comes from an owned argument) can result in a dead borrow scope in the caller which could then be eliminated which would then enable the destroy_value to be hoisted over the inlined body, including over barriers.
Remove duplicated import in Metada unit test
Currently, when trying to build with the latest stable Xcode, you get this error: ``` using unsupported Xcode version: Xcode 13.2.1 Build version 13C100 ``` Xcode 13.2.1 can successfully build the toolchain and should be marked as supported.
…n/shrink-borrow-scope/dont-hoist-over-any-applies [ShrinkBorrowScope] Don't hoist over any applies.
…aded libswift: reimplement `AssumeSingleThreaded` pass I don't think that `AssumeSingleThreaded` is widely used, certainly doesn't look like a mandatory pass, and it seemed trivial enough for a first try of rewriting passes in Swift.
Concurrency: avoid unnecessary dependency on LLVMSupport
MaxDesiatov
approved these changes
Jan 10, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )