summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [asan] Re-enable the use-after-scope-types.cc test on Darwin, now that ↵Kuba Brecka2016-11-151-3/+0
| | | | | | | | r287028 fixed the llvm-symbolizer issue that broke this test. Differential Revision: https://reviews.llvm.org/D26537 llvm-svn: 287029
* Fix llvm-symbolizer to correctly sort a symbol array and calculate symbol sizesKuba Brecka2016-11-155-12/+59
| | | | | | | | Sometimes, llvm-symbolizer gives wrong results due to incorrect sizes of some symbols. The reason for that was an incorrectly sorted array in computeSymbolSizes. The comparison function used subtraction of unsigned types, which is incorrect. Let's change this to return explicit -1 or 1. Differential Revision: https://reviews.llvm.org/D26537 llvm-svn: 287028
* GlobalISel: remove unused variable to silence warning.Tim Northover2016-11-152-2/+1
| | | | llvm-svn: 287027
* [tsan] Call pthread interceptors directly in TSan RTL unit testsKuba Brecka2016-11-153-79/+114
| | | | | | | | On Darwin, we're running the TSan unit tests without interceptors. To make sure TSan observes all the pthread events (thread creating, thread join, condvar signal, etc.) in tsan_posix.cc, we should call the pthread interceptors directly, as we already do in tsan_test_util_posix.cc. This fixes some flaky failures on Darwin bots. Differential Revision: https://reviews.llvm.org/D26639 llvm-svn: 287026
* [OPENMP] Fix stack use after delete, NFC.Alexey Bataev2016-11-151-5/+4
| | | | | | Fixed possible use of stack variable after deletion. llvm-svn: 287025
* [libclang] Generalize clang_getNumTemplateArguments and ↵Argyrios Kyrtzidis2016-11-153-21/+22
| | | | | | | | | clang_getTemplateArgumentAsType to other kind of specializations. Patch by Emilio Cobos Álvarez! https://reviews.llvm.org/D26663 llvm-svn: 287024
* llvm-objdump: deal with unexpected object files more gracefully.Tim Northover2016-11-153-8/+23
| | | | | | | Specifically, we don't want to segfault on release builds, so print the problem instead. llvm-svn: 287022
* AMDGPU: Enable store clusteringMatt Arsenault2016-11-154-6/+26
| | | | | | | Also respect the TII hook for these like the generic code does in case we want a flag later to disable this. llvm-svn: 287021
* Add .clang-format to libc++Eric Fiselier2016-11-151-0/+1
| | | | | | | | | | | | | | | Adding a Clang Format file to libc++ and which style it should use has been discussed a couple of times. This patch finally adds a .clang-format file which specifies LLVM styles. Personally I dislike how the LLVM style handles much of the meta-programming in libc++. However the general consensus was that libc++ should prefer the LLVM style and make adjustments where needed. Note that using clang-format on changes is not required, especially for changes within the headers. However formatting tests should be encouraged. llvm-svn: 287020
* [AArch64] Lower multiplication by a constant int to shl+add+shlHaicheng Wu2016-11-152-10/+281
| | | | | | | | | | | Lower a = b * C where C = (2^n + 1) * 2^m to add w0, w0, w0, lsl n lsl w0, w0, m Differential Revision: https://reviews.llvm.org/D229245 llvm-svn: 287019
* AMDGPU: Analyze mubuf with immediate soffsetMatt Arsenault2016-11-152-1/+40
| | | | | | | Fixes giving up on clustering common addr64 accesses with constant 0 soffset. llvm-svn: 287018
* Make some code not manipulate the underlying string of a StreamString.Zachary Turner2016-11-151-32/+34
| | | | | | Differential Revision: https://reviews.llvm.org/D26618 llvm-svn: 287017
* One more fix for Printf. Apparently I fail at incremental builds.Zachary Turner2016-11-151-2/+2
| | | | llvm-svn: 287016
* AMDGPU: Fix return after elseMatt Arsenault2016-11-151-8/+14
| | | | llvm-svn: 287015
* Revert r286999 which caused buildbot test failures. Some testcases need to ↵Wei Mi2016-11-153-71/+7
| | | | | | be made target specific. llvm-svn: 287014
* AMDGPU: Replace assert(false) with unreachableMatt Arsenault2016-11-153-11/+17
| | | | llvm-svn: 287013
* [CUDA] Mark __libcpp_{isnan,isinf,isfinite} as constexpr.Justin Lebar2016-11-152-6/+35
| | | | | | | | | | | | | | Summary: This makes these functions available on host and device, which is necessary to compile <complex> for the device. Reviewers: hfinkel, EricWF Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25403 llvm-svn: 287012
* [ELF] Rewrite isMips64EL() using isMipsELF64(). NFCI.Davide Italiano2016-11-151-2/+1
| | | | llvm-svn: 287011
* Partially revert r287009: Remove trailing whitespace.Rui Ueyama2016-11-158-1/+0
| | | | | | This reverts part of r287009 because I accidentally changed binary files. llvm-svn: 287010
* Remove trailing whitespace.Rui Ueyama2016-11-159-7/+8
| | | | llvm-svn: 287009
* Add comments on how to print error retuned by tooling::Replacements::add().Eric Liu2016-11-151-2/+3
| | | | llvm-svn: 287008
* [AMDGPU] Add wave barrier builtinStanislav Mekhanoshin2016-11-155-0/+39
| | | | | | | | | | | The wave barrier represents the discardable barrier. Its main purpose is to carry convergent attribute, thus preventing illegal CFG optimizations. All lanes in a wave come to convergence point simultaneously with SIMT, thus no special instruction is needed in the ISA. The barrier is discarded during code generation. Differential Revision: https://reviews.llvm.org/D26585 llvm-svn: 287007
* [AMDGPU] Add wave barrier builtinStanislav Mekhanoshin2016-11-152-0/+8
| | | | | | | | | | | The wave barrier represents the discardable barrier. Its main purpose is to carry convergent attribute, thus preventing illegal CFG optimizations. All lanes in a wave come to convergence point simultaneously with SIMT, thus no special instruction is needed in the ISA. The barrier is discarded during code generation. Differential Revision: https://reviews.llvm.org/D26584 llvm-svn: 287006
* [Modules] Replace arrays with init lists.Benjamin Kramer2016-11-151-9/+5
| | | | | | | Thi way the compiler can pick the optimal storage duration. It's also more readable. No functional change intended. llvm-svn: 287005
* Revert "P0503R0, adopted in Issaquah, rewords some requirements on nullptr_t ↵Vedant Kumar2016-11-154-46/+6
| | | | | | | | | | | | | and istream_iterator. No code changes were needed, but I updated a few tests. Also resolved P0509 and P0521, which required no changes to the library or tests." This reverts commit r286884, because it breaks the Xcode 7 builders: http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-expensive/1583 Here is a PR that tracks the issue: https://llvm.org/bugs/show_bug.cgi?id=31016 llvm-svn: 287004
* [x86] auto-generate checks; NFCSanjay Patel2016-11-151-103/+110
| | | | | | | | Also, fix the test params to use an attribute rather than a CPU model and remove the AVX run because that does nothing but check for a 'v' prefix in all of these tests. llvm-svn: 287003
* Refactor symbol version assignmnt code.Rui Ueyama2016-11-152-55/+65
| | | | | | | | | | | | | | | | The code to handle symbol versions is getting tricky and hard to understand, so it is probably time to simplify it. This patch does the following. - Add `DemangledSyms` variable to SymbolTable so that we don't need to pass it around to findDemangled. - Define `initDemangledSyms` to initialize the variable lazily. - hasExternCpp is removed because we no longer have to initialize the map eagerly. - scanScriptVersion is split. - Comments are updated. llvm-svn: 287002
* [analyzer] Add check for when block is called with too few arguments.Devin Coughlin2016-11-155-13/+27
| | | | | | | | | The CallAndMessageChecker has an existing check for when a function pointer is called with too few arguments. Extend this logic to handle the block case, as well. While we're at it, do a drive-by grammar correction ("less" --> "fewer") on the diagnostic text. llvm-svn: 287001
* [asan] Reduce prototype duplication with decltypeReid Kleckner2016-11-151-11/+11
| | | | | | NFC llvm-svn: 287000
* [LSR] Allow formula containing Reg for SCEVAddRecExpr related with outerloop.Wei Mi2016-11-153-7/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In RateRegister of existing LSR, if a formula contains a Reg which is a SCEVAddRecExpr, and this SCEVAddRecExpr's loop is an outerloop, the formula will be marked as Loser and dropped. Suppose we have an IR that %for.body is outerloop and %for.body2 is innerloop. LSR only handle inner loop now so only %for.body2 will be handled. Using the logic above, formula like reg(%array) + reg({1,+, %size}<%for.body>) + 1*reg({0,+,1}<%for.body2>) will be dropped no matter what because reg({1,+, %size}<%for.body>) is a SCEVAddRecExpr type reg related with outerloop. Only formula like reg(%array) + 1*reg({{1,+, %size}<%for.body>,+,1}<nuw><nsw><%for.body2>) will be kept because the SCEVAddRecExpr related with outerloop is folded into the initial value of the SCEVAddRecExpr related with current loop. But in some cases, we do need to share the basic induction variable reg{0 ,+, 1}<%for.body2> among LSR Uses to reduce the final total number of induction variables used by LSR, so we don't want to drop the formula like reg(%array) + reg({1,+, %size}<%for.body>) + 1*reg({0,+,1}<%for.body2>) unconditionally. From the existing comment, it tries to avoid considering multiple level loops at the same time. However, existing LSR only handles innermost loop, so for any SCEVAddRecExpr with a loop other than current loop, it is an invariant and will be simple to handle, and the formula doesn't have to be dropped. Differential Revision: https://reviews.llvm.org/D26429 llvm-svn: 286999
* Integer legalization: fix MUL expansionPawel Bylica2016-11-154-3841/+4363
| | | | | | | | | | | | | | | Summary: This fixes the runtime results produces by the fallback multiplication expansion introduced in r270720. For tests I created a fuzz tester that compares the results with Boost.Multiprecision. Reviewers: hfinkel Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D26628 llvm-svn: 286998
* [asan] Don't assert that a target is within 2GB on 32-bit WindowsReid Kleckner2016-11-153-6/+32
| | | | | | | | | | | | | | | | Summary: In a 32-bit address space, PC-relative jump targets are wrapped, so a direct branch at 0x90000001 can reach address 0x10000000 with a displacement of 0x7FFFFFFFF. This can happen in applications, such as Chrome, that are linked with /LARGEADDRESSAWARE. Reviewers: etienneb Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D26650 llvm-svn: 286997
* Fixed spelling in comments. NFCI.Simon Pilgrim2016-11-153-3/+3
| | | | llvm-svn: 286996
* vector load store with length (left justified) clang portionZaara Syeda2016-11-154-9/+393
| | | | llvm-svn: 286994
* vector load store with length (left justified) llvm portionZaara Syeda2016-11-153-4/+74
| | | | llvm-svn: 286993
* Rename variables of type SymbolVersion.Rui Ueyama2016-11-151-21/+21
| | | | | | | In this file, `sym` was used for both SymbolBody and SymbolVersion although the two are completely different. llvm-svn: 286992
* Rename function to avoid function overloading.Rui Ueyama2016-11-151-3/+3
| | | | | | | We had two functions with the same name to read completely different things. That was confusing. llvm-svn: 286991
* [clang-tidy] Change readability-redundant-member-init to get base type from ↵Malcolm Parsons2016-11-152-1/+19
| | | | | | | | | | | | | | constructor Summary: Fixes PR30835 Reviewers: alexfh, hokein, aaron.ballman Subscribers: Prazek, cfe-commits Differential Revision: https://reviews.llvm.org/D26118 llvm-svn: 286990
* fix formatting; NFCSanjay Patel2016-11-151-1/+1
| | | | llvm-svn: 286989
* [IndVars] Change the order to compute WidenAddRec in widenIVUse.Wei Mi2016-11-153-4/+65
| | | | | | | | | | | | | | | | When both WidenIV::getWideRecurrence and WidenIV::getExtendedOperandRecurrence return non-null but different WideAddRec, if getWideRecurrence is called before getExtendedOperandRecurrence, we won't bother to call getExtendedOperandRecurrence again. But As we know it is possible that after SCEV folding, we cannot prove the legality using the SCEVAddRecExpr returned by getWideRecurrence. Meanwhile if getExtendedOperandRecurrence returns non-null WideAddRec, we know for sure that it is legal to do widening for current instruction. So it is better to put getExtendedOperandRecurrence before getWideRecurrence, which will increase the chance of successful widening. Differential Revision: https://reviews.llvm.org/D26059 llvm-svn: 286987
* [libcxx] [test] D26627: Fix ordering assumptions in unordered container tests.Stephan T. Lavavej2016-11-153-32/+17
| | | | llvm-svn: 286984
* [libcxx] [test] D26625: future_error::what() is implementation-defined.Stephan T. Lavavej2016-11-151-4/+6
| | | | llvm-svn: 286983
* [libcxx] [test] D26624: Fix bucket_count() assumptions.Stephan T. Lavavej2016-11-158-96/+96
| | | | | | | | | With a max_load_factor of 1.0, the only guarantee is that bucket_count() >= size(). (Note: setting max_load_factor without rehashing isn't supposed to affect this, because setting max_load_factor is currently specified to be constant time.) llvm-svn: 286982
* [ARM] GlobalISel: Remove unused members. NFCIDiana Picus2016-11-153-8/+4
| | | | | | This silences some warnings that I didn't see with my host compiler. llvm-svn: 286981
* [AVX-512] Add AVX-512 vector shift intrinsics to memory santitizer.Craig Topper2016-11-152-0/+82
| | | | | | Just needed to add the intrinsics to the exist switch. The code is generic enough to support the wider vectors with no changes. llvm-svn: 286980
* [X86][SSE] Improve SINT_TO_FP of boolean vector results (signum)Simon Pilgrim2016-11-153-109/+19
| | | | | | | | | | | | This patch helps avoids poor legalization of boolean vector results (e.g. 8f32 -> 8i1 -> 8i16) that feed into SINT_TO_FP by inserting an early SIGN_EXTEND and so help improve the truncation logic. This is not necessary for AVX512 targets where boolean vectors are legal - AVX512 manages to lower ( sint_to_fp vXi1 ) into some form of ( select mask, 1.0f , 0.0f ) in most cases. Fix for PR13248 Differential Revision: https://reviews.llvm.org/D26583 llvm-svn: 286979
* [InstCombine] add tests for bitcasted selects; NFCSanjay Patel2016-11-151-0/+84
| | | | llvm-svn: 286978
* test commmitZaara Syeda2016-11-151-1/+0
| | | | llvm-svn: 286977
* Revert "[JumpThreading] Unfold selects that depend on the same condition"Pablo Barrio2016-11-153-124/+38
| | | | | | This reverts commit ac54d0066c478a09c7cd28d15d0f9ff8af984afc. llvm-svn: 286976
* Revert "[JumpThreading] Prevent non-deterministic use lists"Pablo Barrio2016-11-151-7/+8
| | | | | | This reverts commit f2c2f5354070469dac253373c66527ca971ddc66. llvm-svn: 286975
OpenPOWER on IntegriCloud