Skip to content

Re-branch swift/master from swift/master-rebranch (apple/stable/20200108) #760

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 10,000 commits into from
Feb 11, 2020

Conversation

shahmishal
Copy link
Member

No description provided.

git apple-llvm automerger and others added 30 commits January 23, 2020 15:42
…17cba63b421fcf313003b5b8

🍒/20200108/6672a4f5b64f6b5a17cba63b421fcf313003b5b8
…eda22f4d235f2ba

[lldb/Test] Disallow using substituted binaries in shell test.
Currently we fail to lower non-termporal stores for 256+ bit vectors
to STNPQ, because type legalization will split them up to 128 bit stores
and because there are no single non-temporal stores, creating STPNQ
in the Load/Store optimizer would be quite tricky.

This patch adds custom lowering for 256 bit non-temporal vector stores
to improve the generated code.

Reviewers: dmgreen, samparker, t.p.northover, ab

Reviewed By: dmgreen

Differential Revision: https://reviews.llvm.org/D72919

(Cherry-picked from 535ed62)
…a Class

Sending a message to `self` when it is const and within a class method
is safe because we know that `self` is the Class itself.

We can only relax this warning in ARC.

Signed-off-by: Pierre Habouzit <phabouzit@apple.com>
Radar-Id: rdar://problem/58581965
Differential Revision: https://reviews.llvm.org/D72747
(cherry picked from commit 7596d3c)
If we do, then the property_list_t length is wrong
and class_getProperty gets very sad.

Signed-off-by: Pierre Habouzit <phabouzit@apple.com>
Radar-Id: rdar://problem/58804805
Differential Revision: https://reviews.llvm.org/D73219
(cherry picked from commit 52311d0)
This commit renames ClangASTContext to TypeSystemClang to better reflect what this class is actually supposed to do
(implement the TypeSystem interface for Clang). It also gets rid of the very confusing situation that we have both a
`clang::ASTContext` and a `ClangASTContext` in clang (which sometimes causes Clang people to think I'm fiddling
with Clang's ASTContext when I'm actually just doing LLDB work).

I also have plans to potentially have multiple clang::ASTContext instances associated with one ClangASTContext so
the ASTContext naming will then become even more confusing to people.

Reviewers: #lldb, aprantl, shafik, clayborg, labath, JDevlieghere, davide, espindola, jdoerfert, xiaobai

Reviewed By: clayborg, labath, xiaobai

Subscribers: wuzish, emaste, nemanjai, mgorny, kbarton, MaskRay, arphaman, jfb, usaxena95, jingham, xiaobai, abidh, JDevlieghere, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D72684
Clang added a new feature to the ObjC compiler that will translate me…
macOS/PPC support was dropped in 10.6 (Snow Leopard).

Differential Revision: https://reviews.llvm.org/D69524

(cherry picked from commit 9aba2ce)
…uctions

Previously LiveDebugValues pass would consider meta instructions that 'fiddle' with liveness of registers as register definitions when transfering register defs. This would mean that, for example, a KILL instruction would cause LiveDebugValues to terminate the range of an earlier DBG_VALUE instruction resulting in the none propogation of said DBG_VALUE instructions into later blocks.

This patch adds the check and a helpful comment, fixes a test that previously tested for the broken behaviour by coincidence and adds a test specifically for this.

reviewers: vsk, dstenb, djtodoro

Differential Revision: https://reviews.llvm.org/D73210

(cherry picked from commit f514776)
Adding the test for the call site encoding in DWARF5 vs GNU extensions.
Some of the attributes were not covered by any test.

Differential Revision: https://reviews.llvm.org/D73266

(cherry picked from commit 035c106)
…8_swift/master-rebranch' into HEAD

 Conflicts:
	lldb/include/lldb/Target/ThreadPlanStepInRange.h
…o20200108

[lldb][NFC] Rename ClangASTContext to TypeSystemClang
…sts.

Adds 22 distinct tests that exercise the live-debug-values passes
expected behaviour.

reviewers: aprantl, vsk

Differential revision: https://reviews.llvm.org/D72515

(cherry picked from commit e7b2d9f)
Cherry-pick LiveDebugValues test additions and debugserver cleanups
Since 2009 (in r63846) we've been `#define`-ing OBJC_NEW_PROPERTIES all
the time on Darwin, but this macro only makes sense for `-x objective-c`
and `-x objective-c++`.  Restrict it to those cases (for which there is
already separate logic).

https://reviews.llvm.org/D72970
rdar://problem/10050342
(cherry picked from commit 1e487e4)
These are always copies because llvm::zip returns a tuple (of
references) by value.  Make -Wrange-loop-analysis happy by
making that clear in the source.
Remove an explicit copy constructor, which was triggering
-Wdeprecated-copy where the copy assignment operator was being
implicitly generated.  The implicit ones do the right thing.
… (NFCI)

More specifically the ones on parameters: use a generic lambda that
is capable of handling both CXXMethodDecl and ObjCMethodDecl.

ObjCMethodDecl ODR support will come next.

rdar://problem/56792586
rdar://problem/56792286
Only implemented as part of checks for `@interface`. Should apply
to `@protocol`s when ODR support for that is implemented.

- Mismatching names
- Mismatching return types
- Class vs instance methods
- Mismatching parameters (number, names and type)
- Mismatching designated initializers
- Mismatching direct methods

rdar://problem/56792286
rdar://problem/56792586
Bigcheese and others added 25 commits February 7, 2020 16:38
rdar://58857443
(cherry picked from commit 74b01d9)
This adds an experimental C API for clang-scan-deps. It provides both
the full module dependency graph along with a flattened list of
dependencies.

See clang/include/clang-c/Dependencies.h for the API and documentation.

You can test it out using:
c-index-test core --scan-deps <working-directory> -- clang --cc1 <args>

This will output a list of modules and then the direct dependencies of
the main translation unit.

(cherry picked from commit 3e60b06)
This function returns the equivalent of -###

<rdar://problem/49928458>
<rdar://problem/49396121>

(cherry picked from commit 1fdae62)
…e-options

Removes any arguments before this one that would be incompatible with
explicitly building a module. This includes things like -o and input
files. This option can be used to append arguments to convert a build of
a translation unit with implicit modules into an explicit build of a
specific module.

(cherry picked from commit 5286f37)
This assert fires for ObjectiveC id, SEL, and Class declarations when
the module is explicitly built. For implicit builds it works fine.

This reproduces with:

  typedef struct objc_class Class;
  struct objc_class;

As a module imported into another module, and both the above and that
module imported into a third TU.

Changing the name (`Class`) or reordering the declarations does not
assert.

rdar://58552906
(cherry picked from commit 9327c60)
Gives the last of -f{no-}implicit-module-maps precedence.

rdar://58883354
(cherry picked from commit 2d28507)
Building the actual module still fails, but make sure it fails for the
right reason.

(cherry picked from commit 1815e24)
The `UmbrellaAsWritten` and `NameAsWritten` fields in `clang::Module`
are a lie for framework modules. For those they actually are the path to
the header or umbrella relative to the `clang::Module::Directory`.

The exception to this case is for inferred modules. Here it actually is
the name as written, because we print out the module and read it back in
when implicitly building modules. This causes a problem when explicitly
building an inferred module, as we skip the printing out step.

In order to fix this issue this patch adds a new field for the path we
want to use in `getInputBufferForModule`. It also makes `NameAsWritten`
actually be the name written in the module map file (or that would be,
in the case of an inferred module).

rdar://58619519
(cherry picked from commit 0672a6a)
This shows up with inferred modules, but it doesn't exist on disk, so
don't report it as a dependency.

(cherry picked from commit 21c4c10)
(cherry picked from commit 499404c)
Do this instead of ODR hashing the protocols in the list (which might be
unaccurate since there could be protocols without definitions).

rdar://problem/59271523
Cherry-pick ([Clang][ScanDeps] Add C API and implement enough to build Foundation.) and follow up fixes into stable 20200108
…objc-protocol-no-referenced-list-odrhash

[ODRHash] Check references protocols as part of MergeDefintionData
This reverts commit 8bd683f, reversing
changes made to fe07d64.
D73303 was failing on Fedora Linux and so it was disabled by Skip the
AssertFrameRecognizer test for Linux.

I find no easy way how to find out if it gets recognized as
`__assert_fail` or `__GI___assert_fail` as during `Process` ctor
libc.so.6 is not yet loaded by the debuggee.

DWARF symbol `__GI___assert_fail` overrides the ELF symbol `__assert_fail`.
While external debug info (=DWARF) gets disabled for testsuite (D55859)
that sure does not apply for real world usage.

Differential Revision: https://reviews.llvm.org/D74252
[lldb] Fix+re-enable Assert StackFrame Recognizer on Linux
@hyp
Copy link

hyp commented Feb 10, 2020

LGTM. Can't approve it with UI cause I get the GitHub unicorn.

@shahmishal shahmishal merged commit 090f2ee into swift/master Feb 11, 2020
@shahmishal shahmishal deleted the shahmishal/merge-master-rebranch branch July 15, 2020 23:16
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.