summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [llvm-rc] Fix-up for r314468 (argument-dependent lookup in make_unique).Marek Sokolowski2017-09-281-4/+4
| | | | llvm-svn: 314472
* ARM: Fix cases where CSI Restored bit is not clearedMatthias Braun2017-09-285-11/+21
| | | | | | | | | | LR is an untypical callee saved register in that it is restored into a different register (PC) and thus does not live-out of the return block. This case requires the `Restored` flag in CalleeSavedInfo to be cleared. This fixes a number of cases where this wasn't handled correctly yet. llvm-svn: 314471
* [clang] Add getUnsignedPointerDiffType methodAlexander Shaposhnikov2017-09-287-5/+79
| | | | | | | | | | | | | | | | | C11 standard refers to the unsigned counterpart of the type ptrdiff_t in the paragraph 7.21.6.1p7 where it defines the format specifier %tu. In Clang (in PrintfFormatString.cpp, lines 508-510) there is a FIXME for this case, in particular, Clang didn't diagnose %tu issues at all, i.e. it didn't emit any warnings on the code printf("%tu", 3.14). In this diff we add a method getUnsignedPointerDiffType for getting the corresponding type similarly to how it's already done in the other analogous cases (size_t, ssize_t, ptrdiff_t etc) and fix -Wformat diagnostics for %tu plus the emitted fix-it as well. Test plan: make check-all Differential revision: https://reviews.llvm.org/D38270 llvm-svn: 314470
* bpf: fix a bug for disassembling ld_pseudo instYonghong Song2017-09-281-1/+2
| | | | | Signed-off-by: Yonghong Song <yhs@fb.com> llvm-svn: 314469
* [llvm-rc] Add VERSIONINFO parsing ability. [6/8]Marek Sokolowski2017-09-2812-0/+376
| | | | | | | | | | | | | This extends the set of llvm-rc parser's available resources by another one, VERSIONINFO. Ref: msdn.microsoft.com/en-us/library/windows/desktop/aa381058.aspx Thanks to Nico Weber for his original work in this area. Differential Revision: https://reviews.llvm.org/D37021 llvm-svn: 314468
* [Hexagon] Fix some Clang-tidy modernize and Include What You Use warnings; ↵Eugene Zelenko2017-09-2814-313/+398
| | | | | | other minor fixes (NFC). llvm-svn: 314467
* [x86] add tests for possible insertelement to shuffle transform; NFCSanjay Patel2017-09-281-0/+178
| | | | | | See PR34716 and D38316 for more discussion. llvm-svn: 314466
* [SystemZ] Fix fall-out from r314428Ulrich Weigand2017-09-283-2/+10
| | | | | | | | | | | The expensive-checks build bot found a problem with the r314428 commit: if CC is live after a ATOMIC_CMP_SWAPW instruction, it needs to be marked as live-in to the block after the loop the pseudo gets expanded to. This actually fixes a code-gen bug as well, since if the CC isn't live, the CR and JLH are merged to a CRJLH which doesn't actually set the condition code any more. llvm-svn: 314465
* Properly parse a postfix expression following a Boolean literal. Fixes PR34273.Aaron Ballman2017-09-282-2/+10
| | | | | | Patch by Nicolas Lesser. llvm-svn: 314463
* [Sema] Correct nothrow inherited by noexceptErich Keane2017-09-282-0/+29
| | | | | | | | | | | | | | | As reported in https://bugs.llvm.org/show_bug.cgi?id=33235, a noexcept function was unable to inherit from a nothrow defaulted constructor. Attribute "nothrow" is supposed to be semantically identical to noexcept, and in fact, a number of other places in the code treat them identically. This patch simply checks the RecordDecl for the correct attribute in the case where no other exception specifier was set. Differential Revision: https://reviews.llvm.org/D38209 llvm-svn: 314462
* [Sema] Warn on attribute nothrow conflicting with language specifiersErich Keane2017-09-283-1/+48
| | | | | | | | | | | | | | I discovered it was possible to create a 'nothrow' noexcept(false) function, which is both non-sensical as well as seemingly breaking. This patch warns if attribute nothrow is used with anything besides "noexcept". "noexcept(true)" isn't possible, because the noexcept decl isn't parsed until later. Differential Revision: https://reviews.llvm.org/D38205 llvm-svn: 314461
* Fix test change missed in r314456Erich Keane2017-09-281-1/+1
| | | | llvm-svn: 314460
* [test] forwardlist.cons/move_noexcept.pass.cppCasey Carter2017-09-281-1/+1
| | | | | | * Don't forbid non-libc++ implementations from strengthening noexcept on forward_list's move constructor. llvm-svn: 314459
* [Expression parser] Setting to enable use of ExternalASTMergerSean Callanan2017-09-2813-116/+588
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This setting can be enabled like this at the target level: (lldb) settings set target.experimental.use-modern-type-lookup true This causes several new behaviors in the Clang expression parser: - It completely disables use of ClangASTImporter. None are created at all, and all users of it are now conditionalized on its presence. - It instead constructs a per-expression ExternalASTMerger, which exists inside Clang and contains much of the type completion logic that hitherto lived in ExternalASTSource, ClangExpressionDeclMap, and ClangASTImporter. - The expression parser uses this Merger as a backend for copying and completing types. - It also constructs a persistent ExternalASTMerger which is connected to the Target's persistent AST context. This is a major chunk of LLDB functionality moved into Clang. It can be tested in two ways: 1. For an individual debug session, enable the setting before running a target. 2. For the testsuite, change the option to be default-true. This is done in Target.cpp's g_experimental_properties. The testsuite is not yet clean with this, so I have not committed that switch. I have filed a Bugzilla for extending the testsuite to allow custom settings for all tests: https://bugs.llvm.org/show_bug.cgi?id=34771 I have also filed a Bugzilla for fixing the remaining testsuite failures with this setting enabled: https://bugs.llvm.org/show_bug.cgi?id=34772 llvm-svn: 314458
* [X86] Make use of vpmovwb when possible in LowerMULHCraig Topper2017-09-285-64/+80
| | | | | | | | If we have BWI, we can truncate in a much simpler way by using vpmovwb. This even works without VLX by using the wider zmm->ymm truncate with a subvector extract. Differential Revision: https://reviews.llvm.org/D38375 llvm-svn: 314457
* Add Documentation to attribute-nothrow. Additionally, limit to functions.Erich Keane2017-09-283-1/+15
| | | | | | | | | Attribute nothrow is only allowed on functions, so I added that. Additionally, it lacks any documentation, so I added some. Differential Revision: https://reviews.llvm.org/D38202 llvm-svn: 314456
* Add a few missing newlines in lldb-server messagesStephane Sezer2017-09-281-8/+8
| | | | | | | | | | Reviewers: fjricci, clayborg Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D38373 llvm-svn: 314455
* Fix -Werror build.Evgeniy Stepanov2017-09-281-5/+5
| | | | | | | /code/llvm-project/llvm/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.cpp:260:38: error: lambda capture 'this' is not used [-Werror,-Wunused-lambda-capture] [this](decltype(ObjLayer)::ObjHandleT, llvm-svn: 314454
* Revert "Add support for custom loaders to the sanitizer symbolizer"Francis Ricci2017-09-289-80/+33
| | | | | | | | This causes the gcc sanitizer buildbot to timeout. This reverts commit 81f388fe570e5b6460dd5bc9b9a36b72714eeb68. llvm-svn: 314453
* [AMDGPU] Allow flexible register names in inline asm constraintsYaxun Liu2017-09-282-8/+137
| | | | | | | | | | | | | | | | | | | | | | | | Currently AMDGPU inline asm only allow v and s as register names in constraints. This patch allows the following register names in constraints: (n, m is unsigned integer, n < m) v s {vn} or {v[n]} {sn} or {s[n]} {S} , where S is a special register name {v[n:m]} {s[n:m]} Differential Revision: https://reviews.llvm.org/D37568 llvm-svn: 314452
* [ARM] Restore the right frame pointer register in Int_eh_sjlj_longjmpMartin Storsjo2017-09-282-14/+70
| | | | | | | | | | | | | | | | | | | | | | In setupEntryBlockAndCallSites in CodeGen/SjLjEHPrepare.cpp, we fetch and store the actual frame pointer, but on return via the longjmp intrinsic, it always was restored into the r7 variable. On windows, the frame pointer should be restored into r11 instead of r7. On Darwin (where sjlj exception handling is used by default), the frame pointer is always r7, both in arm and thumb mode, and likewise, on windows, the frame pointer always is r11. On linux however, if sjlj exception handling is enabled (which it isn't by default), libcxxabi and the user code can be built in differing modes using different registers as frame pointer. Therefore, when restoring registers on a platform where we don't always use the same register depending on code mode, restore both r7 and r11. Differential Revision: https://reviews.llvm.org/D38253 llvm-svn: 314451
* [ARM] Fix SJLJ exception handling when manually chosen on a platform where ↵Martin Storsjo2017-09-282-1/+10
| | | | | | | | it isn't default Differential Revision: https://reviews.llvm.org/D38252 llvm-svn: 314450
* MIR: Serialize CaleeSavedInfo Restored flagMatthias Braun2017-09-2813-39/+56
| | | | llvm-svn: 314449
* [AVX512] Add avx512bw command lines to 128-bit idiv tests.Craig Topper2017-09-282-51/+96
| | | | | | The multiply lowering on some of the tests can take advantage of the vpmovwb to simplify the truncate. llvm-svn: 314448
* [X86] Use target independent ZERO_EXTEND/SIGN_EXTEND nodes were possible in ↵Craig Topper2017-09-281-9/+10
| | | | | | | | LowerMULH We aren't do any in register extends here so we should be able to just the target independent nodes directly and allow them to be lowered as necessary. llvm-svn: 314447
* [X86] Move a setOperation action for ISD::TRUNCATE near another one in the ↵Craig Topper2017-09-281-2/+1
| | | | | | same if. Remove one that is redundant with another subtarget features. llvm-svn: 314446
* [clangd] Skip informative qualifier chunks.Ilya Biryukov2017-09-282-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | Summary: Completion results look much nicer without them. Informative qualifiers are stored for every method from a base class, even when calling those methods does not require any qualifiers. For example, struct Foo { int foo(); }; struct Bar : Foo { }; void test() { Bar(). // Completion item label was 'Foo::foo' before, // but inserted text was simply 'foo'. // We now simply show 'foo' in completion item label. They effectively cluttered the completion list without providing much value. Reviewers: bkramer, krasimir, rwols Reviewed By: rwols Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D38083 llvm-svn: 314445
* [DWARF] Allow forward declarations of a class template instantiationPaul Robinson2017-09-286-0/+37
| | | | | | | | | to have child entries describing the template parameters. This will be on by default for SCE tuning. Differential Revision: https://reviews.llvm.org/D14358 llvm-svn: 314444
* Address further review feedback. (NFC)Adrian Prantl2017-09-281-2/+2
| | | | llvm-svn: 314443
* try and appease gccAdrian Prantl2017-09-281-1/+1
| | | | llvm-svn: 314442
* [asan] Fix the bug number in the error message.Evgeniy Stepanov2017-09-281-1/+1
| | | | | | | The link in the "Shadow memory range interleaves with an existing memory mapping" error message was pointing to the wrong bug. llvm-svn: 314441
* Fix header location with PHDR.Rafael Espindola2017-09-282-2/+14
| | | | | | | | | We were not subtracting its size, causing it to overlap with section data. Fixes PR34750. llvm-svn: 314440
* llvm-dwarfdump: implement --find for .apple_namesAdrian Prantl2017-09-2810-13/+201
| | | | | | | | | | | | This patch implements the dwarfdump option --find=<name>. This option looks for a DIE in the accelerator tables and dumps it if found. This initial patch only adds support for .apple_names to keep the review small, adding the other sections and pubnames support should be trivial though. Differential Revision: https://reviews.llvm.org/D38282 llvm-svn: 314439
* [ORC] Fix the type of RTDyldObjectLinkingLayer::NotifyLoadedFtor.Lang Hames2017-09-283-3/+12
| | | | | | Bug found by Stefan Granitz. Thanks Stefan! llvm-svn: 314436
* [JumpThreading] Preserve DT and LVI across the passEvandro Menezes2017-09-286-72/+270
| | | | | | | | | | | | | | | | | JumpThreading now preserves dominance and lazy value information across the entire pass. The pass manager is also informed of this preservation with the goal of DT and LVI being recalculated fewer times overall during compilation. This change prepares JumpThreading for enhanced opportunities; particularly those across loop boundaries. Patch by: Brian Rzycki <b.rzycki@samsung.com>, Sebastian Pop <s.pop@samsung.com> Differential revision: https://reviews.llvm.org/D37528 llvm-svn: 314435
* Add a test.Rafael Espindola2017-09-282-0/+15
| | | | | | | | | | This would have found the issues with r313697. The problem was that that commit mixed the content of different .eh_frame sections. Unfortunately we had no tests looking inside the fdes. llvm-svn: 314433
* [X86] Use BWI instructions to improve lowering of v32i8 MULHU/SCraig Topper2017-09-283-65/+108
| | | | | | | | | | | | | | Summary: If we have BWI instructions we can widen to v32i16 to do the multiply instead of splitting. Reviewers: RKSimon, spatel, zvi Reviewed By: zvi Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D38305 llvm-svn: 314432
* Add support for custom loaders to the sanitizer symbolizerFrancis Ricci2017-09-289-33/+80
| | | | | | | | | | | | | | | | | Summary: Adds a fallback mode to procmaps when the symbolizer fails to locate a module for a given address by using dl_iterate_phdr. Reviewers: kubamracek, rnk, vitalybuka, eugenis Reviewed By: eugenis Subscribers: srhines, llvm-commits Differential Revision: https://reviews.llvm.org/D37269 llvm-svn: 314431
* [X86] Remove dead code from X86ISelDAGToDAG.cpp multiply handlingCraig Topper2017-09-281-1/+1
| | | | | | | | | | | | | | | | | Summary: Lowering never creates X86ISD::UMUL for 8-bit types. X86ISD::UMUL8 is used instead. If X86ISD::UMUL 8-bit were ever used it would crash. DAGCombiner replaces UMUL_LOHI/SMUL_LOHI with a wider MUL and a shift if the type twice as wide is legal. So we should never see i8 UMUL_LOHI/SMUL_LOHI. In fact I think there was a bug in part of the i8 code. Similar is true for i16 though without the bug. Reviewers: RKSimon, spatel, zvi Reviewed By: zvi Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D38276 llvm-svn: 314430
* [X86] Use correct subvector index when combining two insert subvectors ↵Craig Topper2017-09-282-1/+12
| | | | | | | | | | featuring zero vectors. Previously we were using one of the subvector indices twice. The included test case causes an assert without this change. Thanks to Simon Pilgrim for catching this. llvm-svn: 314429
* [SystemZ] Custom-expand ATOMIC_CMP_AND_SWAP_WITH_SUCCESSUlrich Weigand2017-09-2810-47/+180
| | | | | | | | The SystemZ compare-and-swap instructions already provide the "success" indication via a condition-code value, so the default expansion of those operations generates an unnecessary extra comparsion. llvm-svn: 314428
* Consolidate std::move() detection code. No behavior change.Nico Weber2017-09-286-31/+19
| | | | llvm-svn: 314427
* [dwarfdump] Verify that CUs have a unit DIE.Jonas Devlieghere2017-09-282-3/+29
| | | | | | | | | This patch adds a check to the DWARF verifier to detect CUs without a unit DIE. Differential revision: https://reviews.llvm.org/D38363 llvm-svn: 314426
* Use SDValue::getConstantOperandVal helper. NFCI.Simon Pilgrim2017-09-281-3/+3
| | | | llvm-svn: 314425
* Fix -Wcast-qual warning after r314336.Nico Weber2017-09-281-1/+1
| | | | llvm-svn: 314424
* [Docs] Replace 0-byte incorrect GEMM_double image with the one from www/imagesSiddharth Bhat2017-09-281-0/+0
| | | | llvm-svn: 314423
* [Docs] fix rendering of alpha and betaSiddharth Bhat2017-09-281-1/+1
| | | | llvm-svn: 314422
* [mips] Remove codegen support for branch likely instructions.Simon Dardis2017-09-283-36/+66
| | | | | | | | | | | | | | | | | | This patch disables codegen support for branch likely instructions to address a potential bug. These branches were unselectable as they had the same patterns as the normal branches but came after them when ISel was concerned. The branch likely instructions were marked as having no delay slots when they have annulling delay slots. The delay slot filler does not currently handle annulling delay slot branches, so this would lead to wrong codegen if these branches were generated. Reviewers: atanasyan, nitesh.jain Differential Revision: https://reviews.llvm.org/D38169 llvm-svn: 314421
* Docs: fix link to Debugger intrinsic functionsHans Wennborg2017-09-281-2/+2
| | | | llvm-svn: 314420
* [Docs] Add a performance document.Siddharth Bhat2017-09-283-0/+58
| | | | | | | | | | | | | | Summary: Add a document which describes: - GEMM performance comparison. - An experiment that measures the compile time impact of enabling Polly when compiling LLVM+Clang+Polly. Contributed-by: Theodoros Theodoridis<theodoros.theodoridis@inf.ethz.ch> Differential Revision: https://reviews.llvm.org/D38330 llvm-svn: 314419
OpenPOWER on IntegriCloud