-
Notifications
You must be signed in to change notification settings - Fork 10.6k
[master-next] Merge #29412 #30268
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
[master-next] Merge #29412 #30268
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
LLJIT is a simple LLVM IR JIT. Its interface is similar to MCJIT, but its implementation is based on LLVM's newer ORC APIs. This initial patch does not make use of any of LLJIT/ORC's advanced features, but will provide better diagnostics when JIT'd code fails to link. Once LLJIT has proven usable in this basic configuration we can start experimenting with more advanced features, including lazy compilation.
Co-Authored-By: Nate Cook <natecook@apple.com>
This matches MCJIT's default, and may solve some of the linux test failures seen in swiftlang#29863.
In order for the runtime demangler to be able to find ObjC classes and protocols, it needs to have the runtime name of the declaration be in the mangled name. Only do this for runtime manglings, to minimize the potential ABI impact for symbol names that already have the source-level names of ObjC entities baked in. Fixes SR-12169 | rdar://59306590.
A proof of concept for tools providing this information in more useful forms.
…cognized ones addresses are not used outside of parent object's borrowed lifetime. Currently, we only classify ref_element_addr and ref_tail_addr. But we should expand this to project_box, project_existential_box and open_existential_box as well.
Wherever we have constraints that involve pattern matching, use the PatternMatch locator element. Additionally, don't use the TupleElement locator element for tuple patterns, because it violates assumptions used for diagnostics. The new test was crashing; now it has a terrible diagnostic for which I need to think harder about a fix.
GYB opens its inputs and outputs in text mode. This is a problem because the recommendation in Windows is to check everything out in LF mode to avoid breaking tests, so gybbing a file ends up converting LFs to CRLFs. That broke test/SILGen/magic_identifier_file_conflicting.swift.gyb. Modify GYB to open its files in binary mode instead of text mode. This is a no-op everywhere but Windows. Note that this change is incomplete: it’s somewhat difficult to switch stdin and stdout to binary mode in Python 2. I’ve added FIXME comments about this.
…248d864c54d25e2760a74d0 [ownership] Implement InteriorPointer abstraction/validate current recognized ones addresses are not used outside of parent object's borrowed lifetime.
…ashing [SE-0274] Update concise #file implementation in response to first round of review
…names IRGen: Generate runtime type manglings using ObjC runtime names.
We have (and important!) assertion that our claimed allocation is complete and the breadcrumbs are falling where we expect them to. Something about ASAN changes the allocation behavior. Temporarily disable this assertion until I can figure how to work with ASAN here.
[SE-0263] Add test, rename API, update docs
…-locators [Constraint system] Clean up constraints associated with patterns.
[Immediate] Switch immediate mode from MCJIT to LLJIT.
[test] Disable introspective test in back deployment
[stdlib] Disable assertion tripping up ASAN
# Conflicts: # lib/SILGen/SILGenApply.cpp
@swift-ci please smoke test |
Oops — misread this. Your resolution for the merge conflict looks good. Doing this twice is wrong, but benign — the second call will be a no-op. I can fix the rest up next week. |
@swift-ci please smoke test |
This at least builds on macOS. Merging it. |
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.
This resolves a merge conflict between #29412 and master-next.
To get this to build, I also needed to patch Immediate.cpp to adjust to an upstream change, but I'm not sure that what I've done is correct. I'll tag a couple people who might know for a review.