| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
Reviewers: alexfh
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D21470
llvm-svn: 273849
|
|
|
|
|
|
|
|
|
|
|
|
| |
AVX1 can only broadcast vectors as floats/doubles, so for 256-bit vectors we insert bitcasts if we are shuffling v8i32/v4i64 types. Unfortunately the presence of these bitcasts prevents the current broadcast lowering code from peeking through cases where we have concatenated / extracted vectors to create the 256-bit vectors.
This patch allows us to peek through bitcasts as long as the number of elements doesn't change (i.e. element bitwidth is the same) so the broadcast index is not affected.
Note this bitcast peek is different from the stage later on which doesn't care about the type and is just trying to find a load node.
Differential Revision: http://reviews.llvm.org/D21660
llvm-svn: 273848
|
|
|
|
|
|
| |
This is for GNU compatibility.
llvm-svn: 273847
|
|
|
|
|
|
|
|
| |
Previously, we searched for a .so file from all library paths and
then searched for a .a file. That logic is wrong. What we need to
do is to look for a .so and a .a for each library path.
llvm-svn: 273846
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D21735
llvm-svn: 273845
|
|
|
|
| |
llvm-svn: 273844
|
|
|
|
| |
llvm-svn: 273843
|
|
|
|
|
|
| |
Because we always sort common symbols, we can ignore the option.
llvm-svn: 273842
|
|
|
|
|
|
|
| |
/std: supports two arguments, c++14 and c++latest. Currently, c++latest
maps to c++1z but this might change down the road.
llvm-svn: 273841
|
|
|
|
| |
llvm-svn: 273840
|
|
|
|
|
|
|
|
|
|
| |
This patch adds the weak_type typedef in shared_ptr. It is available in
C++17 and newer.
This patch also updates the _LIBCPP_STD_VER and TEST_STD_VER macros to
have the value of 16, since 2016 is the current year.
llvm-svn: 273839
|
|
|
|
| |
llvm-svn: 273838
|
|
|
|
| |
llvm-svn: 273837
|
|
|
|
| |
llvm-svn: 273836
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
See https://llvm.org/bugs/show_bug.cgi?id=27115
The problem was that the conversion from
'const enable_shared_from_this<T>*' to 'const T*' didn't work if
T inherited enable_shared_from_this as a virtual base class. The fix
is to take the original pointer passed to shared_ptr's constructor in the
__enable_weak_this method and perform an upcast to 'const T*' instead of
performing a downcast from the enable_shared_from_this base.
llvm-svn: 273835
|
|
|
|
| |
llvm-svn: 273834
|
|
|
|
| |
llvm-svn: 273833
|
|
|
|
| |
llvm-svn: 273832
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The move constructor for wstring_convert accidentally copied the state member
into the converted count member in the move constructor. This patch fixes
the typo.
While working on this I discovered that wstring_convert doesn't actually
provide a move constructor according to the standard and therefore this
constructor is a libc++ extension. I'll look further into whether libc++ should
provide this constructor at all. Neither libstdc++ or MSVC's STL provide it.
llvm-svn: 273831
|
|
|
|
| |
llvm-svn: 273830
|
|
|
|
| |
llvm-svn: 273829
|
|
|
|
| |
llvm-svn: 273828
|
|
|
|
| |
llvm-svn: 273827
|
|
|
|
| |
llvm-svn: 273826
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This variable is used by ASan (and other sanitizers in the future)
on s390x-linux to override a check for CVE-2016-2143 in the running
kernel (see revision 267747 on compiler-rt). Since the check simply
checks if the kernel version is in a whitelist of known-good versions,
it may miss distribution kernels, or manually-patched kernels - hence
the need for this variable. To enable running the ASan testsuite on
such kernels, this variable should be passed from the environment
down to the testcases.
Differential Revision: http://reviews.llvm.org/D19888
llvm-svn: 273825
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch makes the bind placeholders in std::placeholders both (1) const and
(2) constexpr (See below).
This is technically a breaking change for any code using the placeholders
outside of std::bind and depending on them being non-const. However I don't
think this will break any real world code.
(1) Previously the placeholders were non-const extern globals in all
dialects. This patch changes these extern globals to be const in all dialects.
Since the cv-qualifiers don't participate in name mangling for globals this
is an ABI compatible change.
(2) Make the placeholders constexpr in C++11 and beyond. Although LWG 2488 only
applies to C++17 I don't see any reason not to backport this change.
llvm-svn: 273824
|
|
|
|
|
|
| |
STL@microsoft.com
llvm-svn: 273823
|
|
|
|
|
|
| |
from STL@microsoft.com
llvm-svn: 273822
|
|
|
|
|
|
| |
STL@microsoft.com
llvm-svn: 273821
|
|
|
|
|
|
| |
STL@microsoft.com
llvm-svn: 273820
|
|
|
|
| |
llvm-svn: 273819
|
|
|
|
| |
llvm-svn: 273818
|
|
|
|
| |
llvm-svn: 273817
|
|
|
|
|
|
| |
Only minor manual fixes. No functionality change intended.
llvm-svn: 273816
|
|
|
|
| |
llvm-svn: 273815
|
|
|
|
|
|
| |
Only minor manual fixes. No functionality change intended.
llvm-svn: 273814
|
|
|
|
|
|
| |
Only minor manual fixes. No functionality change intended.
llvm-svn: 273813
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D21504
llvm-svn: 273812
|
|
|
|
|
|
|
|
|
| |
build.
There's a known bug in msvc 2013 that fails to compile do-while loops
inside of ranged for loops.
llvm-svn: 273811
|
|
|
|
| |
llvm-svn: 273810
|
|
|
|
| |
llvm-svn: 273809
|
|
|
|
|
|
| |
Only minor manual fixes. No functionality change intended.
llvm-svn: 273808
|
|
|
|
|
|
|
|
|
|
|
| |
Added support for:
1. Multi dimension array.
2. Array of structure type, which previously was declared incompletely.
3. Dynamic size array.
Differential Revision: http://reviews.llvm.org/D21526
llvm-svn: 273807
|
|
|
|
|
|
|
|
|
|
| |
weak_ptrs and destructors in C++
There is a "well-known" TSan false positive when using C++ weak_ptr/shared_ptr and code in destructors, e.g. described at <https://llvm.org/bugs/show_bug.cgi?id=22324>. The "standard" solution is to build and use a TSan-instrumented version of libcxx, which is not trivial for end-users. This patch tries a different approach (on OS X): It adds an interceptor for the specific function in libc++.dylib, which implements the atomic operation that needs to be visible to TSan.
Differential Revision: http://reviews.llvm.org/D21609
llvm-svn: 273806
|
|
|
|
| |
llvm-svn: 273805
|
|
|
|
|
|
| |
be created. We can do everything with the starting mask and zeroable bit vector. This removes the last usage of isSingleInputShuffleMask. NFC
llvm-svn: 273804
|
|
|
|
|
|
| |
UNDEF. Canonicalization and creation of shuffle vector ensures this is equivalent.
llvm-svn: 273803
|
|
|
|
| |
llvm-svn: 273802
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This is a straightforward extension of what LoopUnswitch does to
branches to guards. That is, we unswitch
```
for (;;) {
...
guard(loop_invariant_cond);
...
}
```
into
```
if (loop_invariant_cond) {
for (;;) {
...
// There is no need to emit guard(true)
...
}
} else {
for (;;) {
...
guard(false);
// SimplifyCFG will clean this up by adding an
// unreachable after the guard(false)
...
}
}
```
Reviewers: majnemer
Subscribers: mcrosier, llvm-commits, mzolotukhin
Differential Revision: http://reviews.llvm.org/D21725
llvm-svn: 273801
|
|
|
|
| |
llvm-svn: 273800
|