forked from llvm/llvm-project
-
Notifications
You must be signed in to change notification settings - Fork 351
Merge 2020-07-28 into swift/tensorflow #1559
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
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
<rdar://problem/64913338> (cherry picked from commit 64c3adf)
…n variable materialization
Implement TypeSystemSwiftTypeRef::IsDefined (NFC)
This was happening because the BLR didn't have a use of the X0 arg register, which would end up being re-used in high reg pressure situations. The change also avoids hard coding the use of X0 for the sequence except to copy the value for the call. ld64 should still be able to optimize it. rdar://65438258
Remove custom Make rule. (NFC)
[AArch64][GlobalISel] Fix TLS accesses clobbering registers incorrectly.
This allows skipping a test when running the testsuite on macOS under the Rosetta translation layer. Differential Revision: https://reviews.llvm.org/D83600 (cherry picked from commit 341ec56)
the form that takes func as an argument isn't compatible with the optional bugnumber argument. This means that only correct for to use it is now @skipIfRosetta(bugnumber='url') (cherry picked from commit 74c8d01)
Cherry-pick "[lldb] Fix missing characters when autocompleting LLDB commands in REPL" to swift/master
Conflicts: lldb/test/API/lang/swift/clangimporter/objcmain_conflicting_dylibs/Makefile
dd a decorator to skip tests when running under Rosetta
…heck-materialization Remove bypass of GetAddressOf when dealing with dynamic class types in variable materialization
…iable (cherry picked from commit fea5ac2)
Disable loading scalars as addresses when materializing an entity var…
Rename SerializedModuleLoader to match Swift compiler's new API.
Since we include <cstdlib> instead of <stdlib.h>, it makes sense to use std::free.
…C++ headers Most of the code in compiler_rt is C code. However, clang_rt.profile contains the InstrProfilingRuntime.cpp file, which builds as C++. This means that including e.g. <stdint.h> will actually include libc++'s <stdint.h> and then #include_next the system's <stdint.h>. However, if the target we're building compiler-rt for isn't supported by libc++, this will lead to a failure since libc++'s <stdint.h> includes <__config>, which performs various checks. Since the goal seems to *not* be including any header from the C++ Standard Library in clang_rt.profile, using -nostdinc++ to ensure that doesn't happen unknowingly seems to make sense. rdar://65852694 Differential Revision: https://reviews.llvm.org/D84205
Summary: If bitcode reader gets an invalid branch weight, drop that from the inputs. This allows us to read the broken modules we generated before the verifier was able to catch this. rdar://64870641 Reviewers: yrouban, t.p.northover, dexonsmith, arphaman, aprantl Reviewed By: aprantl Subscribers: aprantl, hiraditya, jkorous, ributzka, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D83699 (cherry picked from commit 7870934)
Summary: The upgrading path from old ModuleFlag based linker options to the new NamedMetadata based linker option in in materializeMetadata() which gets called once for the module and once for every GV. The linker options are getting dup'ed every time and it can create massive amount of the linker options in the object file that gets created from old bitcode. Fix the problem by checking if the new option exists or not before upgrade again. rdar://64543389 Reviewers: pcc, t.p.northover, dexonsmith, arphaman Reviewed By: arphaman Subscribers: hiraditya, jkorous, ributzka, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D83688 (cherry picked from commit ac375c2)
Currently popFromQueueImpl iterates over all candidates to find the best one. While the candidate queue is small, this is not a problem. But it becomes a problem once the queue gets larger. For example, the snippet below takes 330s to compile with llc -O0, but completes in 3s with this patch. define void @test(i4000000* %ptr) { entry: store i4000000 0, i4000000* %ptr, align 4 ret void } This patch limits the number of candidates to check to 1000. This limit ensures that it never triggers for test-suite/SPEC2000/SPEC2006 on X86 and AArch64 with -O3, while still drastically limiting the compile-time in case of very large queues. It would be even better to use a binary heap to manage to queue (D83335), but some heuristics change the score of a node in the queue after another node has been scheduled. I plan to address this for backends that use the MachineScheduler in the future, but that requires a more careful evaluation. In the meantime, the limit should help users impacted by this issue. The patch includes a slightly smaller version of the motivating example as test case, to guard against the issue. Reviewers: efriedma, paquette, niravd Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D84328
On systems where size() doesn't return unsigned long, this leads to an overloading mismatch. Convert the constant to whatever type is used for Q.size() on the system.
Refactor clang extra args addition
Make lit TestRunner.py work in Python 3
Revert "[libcxx] use __builtin_isnan in std::isnan."
[ This is only a spiritual cherry-pick of the bellow commit. The simulator platforms have gotten more changes upstream htat we don't want to take at this point. ] Summary: This commit is somewhat NFC-ish today as the environment of triples is not considered when comparing s if one of them is not set (I plan to change that). We have made simulator triples unambiguous these days, but the simulator platforms still advertise triples without the environment. This wasn't an issue when the sims ran only on a very different architecure than the real device, but this has changed with Apple Silicon. This patch simplifies the way GetSupportedArchitectureAtIndex is implemented for the sim platforms and adds the environment. It also trivially adds support for Apple Silicon to those platforms. Reviewers: aprantl Subscribers: lldb-commits (cherry picked from commit 4c6eebf)
Summary: The resolver addresses stored in the dyld trie are relative to the base of the __TEXT segment. This is usually 0 in a dylib, so this was never noticed, but it is not 0 for most dylibs integrated in the shared cache. As we started using the shared cache images recently as symbol source, this causes LLDB to fail to resolve symbols which go through a runtime resolver. Reviewers: jasonmolenda, jingham Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D84083 (cherry picked from commit 22c1636)
Summary: Initially, Apple simulator binarie triples didn't use a `-simulator` environment and were just differentiated based on the architecture. For example, `x86_64-apple-ios` would obviously be a simualtor as iOS doesn't run on x86_64. With Catalyst, we made the disctinction explicit and today, all simulator triples (even the legacy ones) are constructed with an environment. This is especially important on Apple Silicon were the architecture is not different from the one of the simulated device. This change makes the simulator part of the environment always part of the criteria to detect whether 2 `ArchSpec`s are equal or compatible. Reviewers: aprantl Subscribers: inglorion, dexonsmith, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D84716 (cherry picked from commit 8120eba)
... when detecting platforms. The previous code could result in the remote tvOS platform being selected for a tvOS simulator binary because the ArchSpecs are compatible.
Cherry-pick fixes for simulator support
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.
No description provided.