Skip to content

[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 16 commits into from
Jan 10, 2022
Merged

[pull] swiftwasm from main #4101

merged 16 commits into from
Jan 10, 2022

Conversation

pull[bot]
Copy link

@pull pull bot commented Jan 10, 2022

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

AgranatMarkit and others added 16 commits September 19, 2021 22:32
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 MaxDesiatov enabled auto-merge January 10, 2022 22:05
@MaxDesiatov MaxDesiatov merged commit 6c41d09 into swiftwasm Jan 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants