-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[Wasm][IRGen] Add initial support for unconditional absolute function pointer #42094
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
kateinoigakukun
merged 1 commit into
swiftlang:main
from
kateinoigakukun:katei/wasm-uncond-abs-func-ptr
Mar 31, 2022
Merged
[Wasm][IRGen] Add initial support for unconditional absolute function pointer #42094
kateinoigakukun
merged 1 commit into
swiftlang:main
from
kateinoigakukun:katei/wasm-uncond-abs-func-ptr
Mar 31, 2022
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
@swift-ci Please test |
On some Harvard architectures like WebAssembly that allow sliding code and data address space offsets independently, it's impossible to make direct relative reference to code from data because the relative offset between them is not representable. Use absolute function references instead of relative ones on such targets.
c93ca42
to
43a25e8
Compare
@swift-ci Please test |
This was referenced Mar 30, 2022
@swift-ci Please test macOS platform |
1 similar comment
@swift-ci Please test macOS platform |
All code paths added in this change don't affect targets other than Wasm |
beccadax
added a commit
to beccadax/swift
that referenced
this pull request
Mar 31, 2022
swiftlang#42094 added a new `IRGenOptions::CompactAbsoluteFunctionPointer` field, but did not initialize it. We subsequently started seeing flaky test failures in LLDB tests that tried to resolve relocations in metadata, so we think this may have resulted in the option sometimes being set to `true` in the REPL.
kateinoigakukun
added a commit
to swiftwasm/swift
that referenced
this pull request
Apr 2, 2022
I added an assertion to catch new relative function pointers in swiftlang#42094, so we should enable assertions to utilize it while building stdlib and corelibs
This was referenced Apr 3, 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.
I discussed this with @rjmccall and @jckarter on a forum thread,
and we've got a consensus on how to upstream the relative pointer
support for Wasm.
The runtime part and id resolution of KeyPath will come in another PR.
On some Harvard architectures like WebAssembly that allow sliding code
and data address space offsets independently, it's impossible to make
direct relative reference to code from data because the relative offset
between them is not representable.
Use absolute function references instead of relative ones on such targets.