Skip to content

Conversation

beccadax
Copy link
Contributor

@beccadax beccadax commented Mar 6, 2020

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.

lhames and others added 26 commits February 14, 2020 17:59
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
@beccadax beccadax requested review from lhames and ributzka March 6, 2020 21:55
@beccadax
Copy link
Contributor Author

beccadax commented Mar 6, 2020

@lhames @ributzka Can one of you take a look at 8c2aeb3 and tell me if it's correct? Doing this twice seems rather strange.

@beccadax
Copy link
Contributor Author

beccadax commented Mar 6, 2020

@swift-ci please smoke test

@lhames
Copy link
Contributor

lhames commented Mar 7, 2020

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.

@beccadax
Copy link
Contributor Author

beccadax commented Mar 9, 2020

@swift-ci please smoke test

@beccadax
Copy link
Contributor Author

beccadax commented Mar 9, 2020

This at least builds on macOS. Merging it.

@beccadax beccadax merged commit 0687092 into swiftlang:master-next Mar 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants