summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert "Use pthreads for thread-local lsan allocator cache on darwin"Francis Ricci2017-02-174-56/+44
| | | | | | | | This caused a failure in Linux-x86_64 stack-use-after-return This reverts commit 1f9563141e999016d13ac3fc6a50fde690381e82. llvm-svn: 295449
* Add static. NFC.Rafael Espindola2017-02-171-1/+1
| | | | llvm-svn: 295448
* [DAGCombiner] improve readability; NFCISanjay Patel2017-02-171-44/+32
| | | | llvm-svn: 295447
* [ARM] GlobalISel: Clean up some helpersDiana Picus2017-02-171-19/+24
| | | | | | | Return invalid opcodes when some of the helpers in the instruction selection pass can't handle a given combination. llvm-svn: 295446
* Fix compiler warnings for missing switch cases in lldb.Pavel Labath2017-02-174-87/+10
| | | | | | | | | | | | | | | | | | | Summary: There have been a few new values added to a few LLVM enums this change makes sure that LLDB code handles them correctly. Reviewers: labath Reviewed By: labath Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D30005 Author: Eugene Zemtsov <ezemtsov@google.com> llvm-svn: 295445
* Drop leftover debug statementTobias Grosser2017-02-171-1/+0
| | | | llvm-svn: 295444
* Fix VASprintfTest on darwinPavel Labath2017-02-171-2/+2
| | | | | | | | | The way of injecting an error into the printf call was not working on darwin - the C library still happily format the character. It only returns an error after we use a wide character that does not fit into a single byte, so switch the test to use that. llvm-svn: 295443
* Reapply "Refactor log channel registration mechanism"Pavel Labath2017-02-1711-492/+339
| | | | | | | | | Changes wrt. previous version: - add #include <atomic>: fix build on windows - add extra {} around the string literals used to initialize llvm::StringLiteral: fix gcc build llvm-svn: 295442
* [ARM] GlobalISel: Check mappings used by reg bank selectDiana Picus2017-02-171-21/+120
| | | | | | | | Add some asserts to make sure we're using the mappings that we think we're using. This is to keep us from accidentally breaking functionality while moving to TableGen'erated mappings. llvm-svn: 295441
* NPL: Fix one more bug in the single step workaroundPavel Labath2017-02-173-6/+10
| | | | | | | | | | | | | | | | | In the case we are stepping over the thread creation instruction, we will end up calling Thread::SingleStep back-to-back twice (because of the intermediate PTRACE_EVENT_CLONE stop). This will cause the cpu mask to be set inappropriately (because the old SingleStepCheck object will be destroyed after we create the new one), and the single-step will fail. Before the refactor the code was still incorrect in this case, but in a different way (the thread was left with the incorrect mask after the stepping was complete), so this was not easy to spot. This fixes TestCreateDuringInstructionStep on the affected devices. llvm-svn: 295440
* [ARM] GlobalISel: Use Subtarget in LegalizerDiana Picus2017-02-174-16/+16
| | | | | | | | Start using the Subtarget to make decisions about what's legal. In particular, we only mark floating point operations as legal if we have VFP2, which is something we should've done from the very start. llvm-svn: 295439
* [ARM] GlobalISel: Add end-to-end tests for doubleDiana Picus2017-02-171-0/+21
| | | | | | Test some really basic functionality through the whole GlobalISel pipeline. llvm-svn: 295438
* clang-format: Don't remove existing spaces between identifier and ::.Daniel Jasper2017-02-172-3/+9
| | | | | | | | | | | | | | | | | | | | This can lead to bad behavior with macros that are used to annotate functions (e.g. ALWAYS_INLINE). Before, this: ALWAYS_INLINE ::std::string getName() ... was turned into: ALWAYS_INLINE::std::string getName() ... If it turns out that clang-format is failing to clean up a lot of the existing spaces now, we can add more analyses of the identifier. It should not currently. Cases where clang-format breaks nested name specifiers should be fine as clang-format wraps after the "::". Thus, a line getting longer and then shorter again should lead to the same original code. llvm-svn: 295437
* Fix breakage caused by r295368Pavel Labath2017-02-174-3/+4
| | | | | | | Also move the ErrorTest into the Utility package, to follow the class it is testing. llvm-svn: 295436
* [clang-tidy] Add cert-dcl58-cpp (do not modify the 'std' namespace) check.Gabor Horvath2017-02-179-0/+207
| | | | | | Differential Revision: https://reviews.llvm.org/D23421 llvm-svn: 295435
* Update all bug URL's to point to https://bugs.llvm.org/...Eric Fiselier2017-02-1740-46/+46
| | | | llvm-svn: 295434
* Update Bugzilla URLs in docsIsmail Donmez2017-02-171-3/+3
| | | | llvm-svn: 295433
* Update Bugzilla URLs in docsIsmail Donmez2017-02-175-6/+6
| | | | llvm-svn: 295432
* [ScopInfo] Add statistics to count loops after scop modelingTobias Grosser2017-02-174-22/+302
| | | | llvm-svn: 295431
* [ScopDetection] Compute the maximal loop depth correctlyTobias Grosser2017-02-172-1/+250
| | | | | | | Before this change, we obtained loop depth numbers that were deeper then the actual loop depth. llvm-svn: 295430
* InstCombine: fix extraction when performing vector/array punningEugene Leviant2017-02-172-1/+17
| | | | | | Differential revision: https://reviews.llvm.org/D29491 llvm-svn: 295429
* Use inline namespaces with GCC instead of __attribute__((__strong__)).Eric Fiselier2017-02-171-4/+3
| | | | | | | | | | | | | | GCC 7.0.1 started warning that __attribute__((__strong__)) is depricated. This patch switches to using inline namespace with GCC instead. I believe this wasn't done originally in order to support older GCC versions w/o support for inline namespaces, or because earlier versions of GCC warned users that the STL was using an inline namespace (even though it shouldn't affect users). However I believe all of the above problems are gone for GCC 4.9 and greater. Therefore switching to using inline namespaces instead of using __strong__ is the most correct behavior. llvm-svn: 295428
* Revert r295421, new ODR checker for modules, to fix build bot.Richard Trieu2017-02-1714-3045/+97
| | | | llvm-svn: 295427
* [IR][X86] Simplify some AutoUpgrade code slightly. NFCCraig Topper2017-02-171-3/+2
| | | | llvm-svn: 295426
* [IR][X86] Rename an AutoUpgrade helper function to more accurately match ↵Craig Topper2017-02-171-6/+6
| | | | | | what intrinsics it handles. NFC llvm-svn: 295425
* [IR][X86] Move X86 specific portions of UpgradeIntrinsicFunction1 to a ↵Craig Topper2017-02-171-233/+248
| | | | | | | | couple helper functions. NFC This enables some early outs to avoid repeatedly using IsX86 check to qualify. I hope to continue to improve this to shorten the lengths of some of the string comparisons. llvm-svn: 295424
* Remove dead code in testEric Fiselier2017-02-171-2/+0
| | | | llvm-svn: 295423
* add implicit deduction guide tests for string_viewEric Fiselier2017-02-171-0/+71
| | | | llvm-svn: 295422
* Add better ODR checking for modules.Richard Trieu2017-02-1714-97/+3045
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A slightly weaker form of ODR checking than previous attempts, but hopefully won't break the modules build bot. Future work will be needed to catch all cases. When objects are imported for modules, there is a chance that a name collision will cause an ODR violation. Previously, only a small number of such violations were detected. This patch provides a stronger check based on AST nodes. The information needed to uniquely identify an object is taken from the AST and put into a one-dimensional byte stream. This stream is then hashed to give a value to represent the object, which is stored with the other object data in the module. When modules are loaded, and Decl's are merged, the hash values of the two Decl's are compared. Only Decl's with matched hash values will be merged. Mismatch hashes will generate a module error, and if possible, point to the first difference between the two objects. The transform from AST to byte stream is a modified depth first algorithm. Due to references between some AST nodes, a pure depth first algorithm could generate loops. For Stmt nodes, a straight depth first processing occurs. For Type and Decl nodes, they are replaced with an index number and only on first visit will these nodes be processed. As an optimization, boolean values are saved and stored together in reverse order at the end of the byte stream to lower the ammount of data that needs to be hashed. Compile time impact was measured at 1.5-2.0% during module building, and negligible during builds without module building. Differential Revision: https://reviews.llvm.org/D21675 llvm-svn: 295421
* Go binding: Add methods for missing PassManagerBuilder C APIsAndrew Wilkins2017-02-171-0/+20
| | | | | | | | Patch by Ryuichi Hayashida! Differential Revision: http://reviews.llvm.org/D30042 llvm-svn: 295420
* Updated isl to isl-0.18-254-g6bc184dTobias Grosser2017-02-17101-1749/+2506
| | | | | | | This update includes a couple more coalescing changes as well as a large number of isl-internal code cleanups (dead assigments, ...). llvm-svn: 295419
* Work around Clang assertion when testing C++17 deduction guides with '-g'.Eric Fiselier2017-02-171-0/+4
| | | | llvm-svn: 295417
* [index] Improvde how we handle synthesized ObjC properties and the ↵Argyrios Kyrtzidis2017-02-175-47/+165
| | | | | | | | | | | | associated ivars. Related synthesized properties with the ivar they use with the 'accessor' relation, and make sure we mark them 'implicit' when appropriate. Patch by Nathan Hawes! https://reviews.llvm.org/D30012 llvm-svn: 295416
* [ScopInfo] Do not try to fold array dimensions of size zeroTobias Grosser2017-02-172-0/+63
| | | | | | | | | | Trying to fold such kind of dimensions will result in a division by zero, which crashes the compiler. As such arrays are likely to invalidate the scop anyhow (but are not illegal in LLVM-IR), there is no point in trying to optimize the array layout. Hence, we just avoid the folding of constant dimensions of size zero. llvm-svn: 295415
* Revert "Upgrade ios min version to 8"Francis Ricci2017-02-171-1/+1
| | | | | | | | Accidental commit This reverts commit f21d4a6836ea159e95e5042ba8383f20d4899cda. llvm-svn: 295414
* Use pthreads for thread-local lsan allocator cache on darwinFrancis Ricci2017-02-174-44/+56
| | | | | | | | | | | | | | | Summary: This patch allows us to move away from using __thread on darwin, which is requiring for building lsan for darwin on ios version 7 and on iossim i386. Reviewers: kubamracek, kcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29994 llvm-svn: 295413
* Upgrade ios min version to 8Francis Ricci2017-02-171-1/+1
| | | | | | | | | | | | | | | Summary: Version 8 is the first version to support the __thread keyword, which is required for building lsan for 64-bit ios. Reviewers: kubamracek, kcc, glider Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D29787 llvm-svn: 295412
* Fix test_exception_storage.pass.cpp in C++17 my re-enabling the unexpected ↵Eric Fiselier2017-02-171-0/+4
| | | | | | handlers llvm-svn: 295411
* [JumpThreading] Re-enable JumpThreading for guardsSanjoy Das2017-02-176-15/+440
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: JumpThreading for guards feature has been reverted at https://reviews.llvm.org/rL295200 due to the following problem: the feature used the following algorithm for detection of diamond patters: 1. Find a block with 2 predecessors; 2. Check that these blocks have a common single parent; 3. Check that the parent's terminator is a branch instruction. The problem is that these checks are insufficient. They may pass for a non-diamond construction in case if those two predecessors are actually the same block. This may happen if parent's terminator is a br (either conditional or unconditional) to a block that ends with "switch" instruction with exactly two branches going to one block. This patch re-enables the JumpThreading for guards and fixes this issue by adding the check that those found predecessors are actually different blocks. This guarantees that parent's terminator is a conditional branch with exactly 2 different successors, which is now ensured by assertions. It also adds two more tests for this situation (with parent's terminator being a conditional and an unconditional branch). Patch by Max Kazantsev! Reviewers: anna, sanjoy, reames Reviewed By: sanjoy Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D30036 llvm-svn: 295410
* Fix build breakage from moving kInvalidTid to lsan_commonFrancis Ricci2017-02-171-0/+1
| | | | llvm-svn: 295409
* Rename getAliases -> getSymbolsAt.Rui Ueyama2017-02-171-3/+3
| | | | | | | The previous name caused a little confusion because the function not only returns aliases but a given symbol itself too. llvm-svn: 295408
* Add doc for _LIBCPP_ENABLE_CXX17_DISABLED_AUTO_PTR and make it work under ↵Eric Fiselier2017-02-173-2/+9
| | | | | | _LIBCPP_ENABLE_CXX17_REMOVED_FEATURES llvm-svn: 295407
* [libcxx] Remove unexpected handlers in C++17Eric Fiselier2017-02-1713-1/+179
| | | | | | | | | | | | | | | | | | | Summary: This patch implements [P0003R5](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0003r5.html) which removes exception specifications from C++17. The only changes to the library are removing `set_unexpected`, `get_unexpected`, `unexpected`, and `unexpected_handler`. These functions can be re-enabled in C++17 using `_LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS`. @mclow.lists what do you think about removing stuff is this way? Reviewers: mclow.lists Reviewed By: mclow.lists Subscribers: mclow.lists, cfe-commits Differential Revision: https://reviews.llvm.org/D28172 llvm-svn: 295406
* Use pthreads to store current thread id on darwinFrancis Ricci2017-02-174-26/+24
| | | | | | | | | | | | | | Summary: __thread is not supported by all darwin versions and architectures, use pthreads instead to allow for building darwin lsan on iossim. Reviewers: kubamracek, kcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29993 llvm-svn: 295405
* Added doxygen comments to smmintrin.h's intrinsics.Ekaterina Romanova2017-02-172-1/+2012
| | | | | | | | | | Note: The doxygen comments are automatically generated based on Sony's intrinsic s document. I got an OK from Eric Christopher to commit doxygen comments without prior code review upstream. llvm-svn: 295404
* Mark a couple for basic_string member templates as inline. no ABI change ↵Eric Fiselier2017-02-171-3/+3
| | | | | | this time. llvm-svn: 295403
* Revert "[Hexagon] Start using regmasks on calls"Rafael Espindola2017-02-1720-272/+118
| | | | | | | | | | This reverts commit r295371. It broke windows bots: http://bb.pgr.jp/builders/ninja-clang-i686-msc19-R/builds/11402/steps/test-llvm/logs/stdio llvm-svn: 295402
* Retry: [ubsan] Reduce null checking of C++ object pointers (PR27581)Vedant Kumar2017-02-177-30/+249
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch teaches ubsan to insert exactly one null check for the 'this' pointer per method/lambda. Previously, given a load of a member variable from an instance method ('this->x'), ubsan would insert a null check for 'this', and another null check for '&this->x', before allowing the load to occur. Similarly, given a call to a method from another method bound to the same instance ('this->foo()'), ubsan would a redundant null check for 'this'. There is also a redundant null check in the case where the object pointer is a reference ('Ref.foo()'). This patch teaches ubsan to remove the redundant null checks identified above. Testing: check-clang and check-ubsan. I also compiled X86FastISel.cpp with -fsanitize=null using patched/unpatched clangs based on r293572. Here are the number of null checks emitted: ------------------------------------- | Setup | # of null checks | ------------------------------------- | unpatched, -O0 | 21767 | | patched, -O0 | 10758 | ------------------------------------- Changes since the initial commit: don't rely on IRGen of C labels in the test. Differential Revision: https://reviews.llvm.org/D29530 llvm-svn: 295401
* Add myself to CODE_OWNERS.txt for NetBSDKamil Rytarowski2017-02-171-0/+4
| | | | llvm-svn: 295400
* update revision in CHANGELOG.TXT and fix python errorEric Fiselier2017-02-172-3/+3
| | | | llvm-svn: 295399
OpenPOWER on IntegriCloud