summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [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
* [LoopUnroll] Fix use after poison.Benjamin Kramer2017-09-281-1/+3
| | | | llvm-svn: 314418
* [X86] Add overflow intrinsic test in preparation for D38161.Amara Emerson2017-09-281-0/+186
| | | | | | | This commit adds the test file before codegen changes as requested in D38161 to make it easier to see the difference. llvm-svn: 314416
* [asan] Unpoison global metadata on dlclose.Benjamin Kramer2017-09-281-0/+3
| | | | | | | | dlclose itself might touch it, so better return it to the state it was before. I don't know how to create a test for this as it would require chaning dlclose itself. llvm-svn: 314415
* [DebugInfo] Do not extend range for physreg in LiveDebugVariablesBjorn Pettersson2017-09-283-6/+327
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: A DBG_VALUE that is referring to a physical register is valid up until the next def of the register, or the end of the basic block that it belongs to. LiveDebugVariables is computing live intervals (slot index ranges) for DBG_VALUE instructions, before regalloc, in order to be able to re-insert DBG_VALUE instructions again after regalloc. When the DBG_VALUE is mapping a variable to a physical register we do not need to compute the range. We should simply re-insert the DBG_VALUE at the start position. The problem that was found, resulting in this patch, was a situation when the DBG_VALUE was the last real use of the physical register. The computeIntervals/extendDef methods extended the range to cover the whole basic block, even though the physical register very well could be allocated to some virtual register inside the basic block. So the extended range could not be trusted. This patch is a preparation for https://reviews.llvm.org/D38229, where the goal is to insert DBG_VALUE after each new definition of a variable, even if the virtual registers that the variable was connected to has been coalesced into using the same physical register (e.g. due to two address instructions). For more info see https://bugs.llvm.org/show_bug.cgi?id=34545 Reviewers: aprantl, rnk, echristo Reviewed By: aprantl Subscribers: Ka-Ka, llvm-commits Differential Revision: https://reviews.llvm.org/D38140 llvm-svn: 314414
* [LoopInfo] Don't poison random memory regions.Benjamin Kramer2017-09-281-1/+1
| | | | | | | | | The second argument for Allocator::Deallocate is the number of elements, not the size of a single element. In asan mode specifying a large number of elements poisoned random memory regions, leading to crashes everywhere. llvm-svn: 314413
* Fix the build after r314375Philip Pfaffe2017-09-283-3/+3
| | | | | | r314375 privatized Loop's constructor and replaced it with an Allocator. llvm-svn: 314412
* [LVI] Move LVILatticeVal class to separate header file (NFC).Florian Hahn2017-09-286-347/+559
| | | | | | | | | | | | | | | | | Summary: This allows sharing the lattice value code between LVI and SCCP (D36656). It also adds a `satisfiesPredicate` function, used by D36656. Reviewers: davide, sanjoy, efriedma Reviewed By: sanjoy Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D37591 llvm-svn: 314411
* [x86][AsmParser] Allow some more MS size directivesCoby Tayree2017-09-282-0/+10
| | | | | | | MS allows the following size directives: float/double and long as synonymous to dword/qword and dword, respectively. Differential Revision: https://reviews.llvm.org/D37190 llvm-svn: 314410
* [llvm-cov] Create directory structure when filtering using -name*= optionsSean Eveson2017-09-2819-64/+215
| | | | | | | | | | | Before this change using any of the -name*= command line options with an output directory would result in a single file (functions.txt/functions.html) containing the coverage for those specific functions. Now you get the same directory structure as when not using any -name*= options. Differential Revision: https://reviews.llvm.org/D38280 llvm-svn: 314396
* [Support] Force instantiation of isl dump() methods. NFC.Michael Kruse2017-09-281-0/+57
| | | | | | | | | | | | | | | | In order for debuggers to be able to call an inline method, it must have been instantiated somewhere. The dump() methods are usually not used, so add an instantiation in debug builds. This allows to call .dump() on any isl++ object from the gcc/gdb and Visual Studio debugger in debug builds with assertions enabled. In optimized builds, even with assertions enabled, the dump() methods are also inlined in GICHelper.cpp, so no externally visible symbols will be available either. Differential Revision: https://reviews.llvm.org/D38198 llvm-svn: 314395
OpenPOWER on IntegriCloud