summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [clang-tidy] Don't run misc-definitions-in-headers check in failing TUs.Haojian Wu2016-06-271-0/+4
| | | | | | | | | | Reviewers: alexfh Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D21470 llvm-svn: 273849
* [X86][AVX] Peek through bitcasts to find the source of broadcastsSimon Pilgrim2016-06-273-12/+12
| | | | | | | | | | | | 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
* Define -v and -V as aliases to --version.Rui Ueyama2016-06-271-0/+2
| | | | | | This is for GNU compatibility. llvm-svn: 273847
* Fix library search order.Rui Ueyama2016-06-272-4/+15
| | | | | | | | 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
* [ConstantFolding] Fix bitcast vector of i1.Igor Breger2016-06-272-1/+8
| | | | | | Differential Revision: http://reviews.llvm.org/D21735 llvm-svn: 273845
* Move -ldl to the correct compiler invocationRyan Govostes2016-06-271-2/+2
| | | | llvm-svn: 273844
* Mips: Fix access to private functions.Rafael Espindola2016-06-272-1/+15
| | | | llvm-svn: 273843
* Ignore --sort-common.Rui Ueyama2016-06-271-0/+1
| | | | | | Because we always sort common symbols, we can ignore the option. llvm-svn: 273842
* [clang-cl] Implement support for /stdDavid Majnemer2016-06-273-4/+27
| | | | | | | /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
* Fix UB in uses_alloc_types.hppEric Fiselier2016-06-271-2/+2
| | | | llvm-svn: 273840
* Implement P0163r0. Add shared_ptr::weak_type.Eric Fiselier2016-06-274-2/+12
| | | | | | | | | | 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
* Implement p0337r0. Delete operator= for polymorphic_allocator.Eric Fiselier2016-06-273-14/+14
| | | | llvm-svn: 273838
* Implement P0358r1. Fixes for not_fn.Eric Fiselier2016-06-272-30/+86
| | | | llvm-svn: 273837
* Fix C++03 failure in enable_shared_from_this testEric Fiselier2016-06-271-1/+2
| | | | llvm-svn: 273836
* Fix PR27115 - enable_shared_from_this does not work as a virtual base class.Eric Fiselier2016-06-262-24/+39
| | | | | | | | | | | | | 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
* clang-tools-extra/test/clang-tidy/modernize-use-using.cpp: Satisfy thiscall.NAKAMURA Takumi2016-06-261-3/+3
| | | | llvm-svn: 273834
* add tests for potential select transformsSanjay Patel2016-06-261-0/+117
| | | | llvm-svn: 273833
* Fix C++03 buildEric Fiselier2016-06-262-0/+6
| | | | llvm-svn: 273832
* Fix PR28079 - std::wstring_convert move constructor broken.Eric Fiselier2016-06-263-1/+61
| | | | | | | | | | | | | 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
* Use isPositionIndependent predicate. NFC.Rafael Espindola2016-06-261-1/+1
| | | | llvm-svn: 273830
* Use isPositionIndependent. NFC.Rafael Espindola2016-06-261-1/+1
| | | | llvm-svn: 273829
* Use isPositionIndependent predicate.Rafael Espindola2016-06-261-1/+1
| | | | llvm-svn: 273828
* Use isPositionIndependent predicate. NFC.Rafael Espindola2016-06-261-9/+8
| | | | llvm-svn: 273827
* Refactor a duplicated predicate. NFC.Rafael Espindola2016-06-266-10/+6
| | | | llvm-svn: 273826
* [lit] Add SANITIZER_IGNORE_CVE_2016_2143 to pass_vars.Marcin Koscielnicki2016-06-261-1/+2
| | | | | | | | | | | | | | | 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
* Implement LWG 2488 - Make the placeholders constexpr.Eric Fiselier2016-06-264-21/+63
| | | | | | | | | | | | | | | | | | | 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
* Make default_noexcept.pass.cpp container tests more portable. Patch from ↵Eric Fiselier2016-06-2615-27/+42
| | | | | | STL@microsoft.com llvm-svn: 273823
* Work around MSVC bug in atomics.types.generic/address.pass.cpp test. Patch ↵Eric Fiselier2016-06-261-1/+1
| | | | | | from STL@microsoft.com llvm-svn: 273822
* Use L"cat" L"dog" when concatenating string literals. Patch from ↵Eric Fiselier2016-06-261-8/+8
| | | | | | STL@microsoft.com llvm-svn: 273821
* Add array bounds assertions to satisfy MSVC's /analyze flag. Patch from ↵Eric Fiselier2016-06-263-0/+11
| | | | | | STL@microsoft.com llvm-svn: 273820
* Add [[noreturn]] attribute to throw_bad_alloc_helper().Eric Fiselier2016-06-262-3/+8
| | | | llvm-svn: 273819
* Avoid narrowing conversions in quoted test. Patch from STL@microsoft.comEric Fiselier2016-06-261-6/+6
| | | | llvm-svn: 273818
* [LinkerScript] Spell 'character' correctly. NFC.Davide Italiano2016-06-261-1/+1
| | | | llvm-svn: 273817
* Apply clang-tidy's modernize-loop-convert to lib/Analysis.Benjamin Kramer2016-06-2619-121/+105
| | | | | | Only minor manual fixes. No functionality change intended. llvm-svn: 273816
* Revert r273807 (and r273809, r273810), it caused PR28311Nico Weber2016-06-262-240/+3
| | | | llvm-svn: 273815
* Apply clang-tidy's modernize-loop-convert to lib/MC.Benjamin Kramer2016-06-266-67/+56
| | | | | | Only minor manual fixes. No functionality change intended. llvm-svn: 273814
* Apply clang-tidy's modernize-loop-convert to most of lib/IR.Benjamin Kramer2016-06-2610-70/+61
| | | | | | Only minor manual fixes. No functionality change intended. llvm-svn: 273813
* [X86] add _mm_loadu_si64Asaf Badouh2016-06-262-0/+19
| | | | | | Differential Revision: http://reviews.llvm.org/D21504 llvm-svn: 273812
* [CodeExtractor] Merge DEBUG statements in an attempt to fix the msvcBenjamin Kramer2016-06-261-4/+6
| | | | | | | | | build. There's a known bug in msvc 2013 that fails to compile do-while loops inside of ranged for loops. llvm-svn: 273811
* Fixed build failure (due to unused variable error) in r273807.Amjad Aboud2016-06-261-0/+1
| | | | llvm-svn: 273810
* Fixed build failure (due to unused variable error) in r273807.Amjad Aboud2016-06-261-3/+1
| | | | llvm-svn: 273809
* Apply clang-tidy's modernize-loop-convert to most of lib/Transforms.Benjamin Kramer2016-06-2653-519/+398
| | | | | | Only minor manual fixes. No functionality change intended. llvm-svn: 273808
* [codeview] Improved array type support.Amjad Aboud2016-06-262-2/+240
| | | | | | | | | | | 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
* [tsan] Intercept libcxx __release_shared to avoid false positive with ↵Kuba Brecka2016-06-265-0/+209
| | | | | | | | | | 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
* [RSForGC] Appease MSVCSanjoy Das2016-06-261-2/+4
| | | | llvm-svn: 273805
* [X86] Rewrite lowerVectorShuffleWithPSHUFB to not require a ZeroableMask to ↵Craig Topper2016-06-261-39/+21
| | | | | | 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
* [X86] Replace calls to isSingleInputShuffleMask with just checking if V2 is ↵Craig Topper2016-06-261-25/+25
| | | | | | UNDEF. Canonicalization and creation of shuffle vector ensures this is equivalent. llvm-svn: 273803
* [SelectionDAG] Use DAG.getCommutedVectorShuffle instead of reimplementing it.Craig Topper2016-06-261-15/+2
| | | | llvm-svn: 273802
* [LoopUnswitch] Unswitch on conditions feeding into guardsSanjoy Das2016-06-262-7/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* [RSForGC] Bring the BDVState struct up to code; NFCSanjoy Das2016-06-261-25/+33
| | | | llvm-svn: 273800
OpenPOWER on IntegriCloud