summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* AMDGPU: Remove v16i8 from register classesMatt Arsenault2019-01-071-3/+3
| | | | llvm-svn: 350518
* AMDGPU: Remove VS/SV mappings from selectMatt Arsenault2019-01-072-117/+69
| | | | | | These would violate the constant bus restriction llvm-svn: 350517
* clang-format: [JS] support goog.requireType.Martin Probst2019-01-072-0/+3
| | | | | | | | | | | | | | Summary: It's a new primitive for importing symbols, and should be treated like the (previously handled) `goog.require` and `goog.forwardDeclare`. Reviewers: krasimir Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D56385 llvm-svn: 350516
* [clangd] Fix a regression issue caused by r348365.Haojian Wu2019-01-072-5/+18
| | | | | | | | | | | | | | | | | | | | | Summary: With r348365, we now detect libc++ dir using the actual compiler path (from the compilation command), rather than the resource-dir. This new behavior will cause clangd couldn't find libc++ dir (even the libc++ is built from the source) when using a fallback compilation command (`clang xxx`) The fix is to use `<clangd_install_dir>/clang` as the actual compiler path. Reviewers: ilya-biryukov Reviewed By: ilya-biryukov Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D56380 llvm-svn: 350515
* Regenerate test.Simon Pilgrim2019-01-071-13/+44
| | | | | | Prep work towards enabling SimplifyDemandedBits vector support for TRUNCATE as discussed on D56118. llvm-svn: 350514
* Regenerate test.Simon Pilgrim2019-01-071-64/+390
| | | | | | Prep work towards enabling SimplifyDemandedBits vector support for TRUNCATE as discussed on D56118. llvm-svn: 350513
* [clangd] Disable BackgroundIndexTest.PeriodicalIndexIlya Biryukov2019-01-071-1/+3
| | | | | | It sometimes fails on AArch64. llvm-svn: 350512
* ObjectFileBreakpad: Implement sectionsPavel Labath2019-01-078-2/+238
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch allows ObjectFileBreakpad to parse the contents of Breakpad files into sections. This sounds slightly odd at first, but in essence its not too different from how other object files handle things. For example in elf files, the symtab section consists of a number of "records", where each record represents a single symbol. The same is true for breakpad's PUBLIC section, except in this case, the records will be textual instead of binary. To keep sections contiguous, I create a new section every time record type changes. Normally, the breakpad processor will group all records of the same type in one block, but the format allows them to be intermixed, so in general, the "object file" may contain multiple sections with the same record type. Reviewers: clayborg, zturner, lemo, markmentovai, amccarth Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D55434 llvm-svn: 350511
* ProcessLaunchInfo: remove Debugger referencePavel Labath2019-01-078-22/+14
| | | | | | | | | | | | | | | | | | | | | | Summary: The Debuffer object was being used in "GetListenerForProcess" to provide a default listener object if one was not specified in the launch_info object. Since all the callers of this function immediately passed the result to Target::CreateProcess, it was easy to move this logic there instead. This brings us one step closer towards being able to move the LaunchInfo classes to the Host layer (which is there the launching code that consumes them lives). Reviewers: zturner, jingham, teemperor Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D56174 llvm-svn: 350510
* [CallSite removal] Move the rest of IR implementation code away fromChandler Carruth2019-01-076-54/+56
| | | | | | | | | | | | | | `CallSite`. With this change, the remaining `CallSite` usages are just for implementing the wrapper type itself. This does update the C API but leaves the names of that API alone and only updates their implementation. Differential Revision: https://reviews.llvm.org/D56184 llvm-svn: 350509
* [CallSite removal] Port `IndirectCallSiteVisitor` to use `CallBase` andChandler Carruth2019-01-077-50/+62
| | | | | | | | | | | update client code. Also rename it to use the more generic term `call` instead of something that could be confused with a praticular type. Differential Revision: https://reviews.llvm.org/D56183 llvm-svn: 350508
* [CallSite removal] Move the verifier to use `CallBase` instead of theChandler Carruth2019-01-071-284/+284
| | | | | | | | | | | `CallSite` wrapper. Mostly mechanical, but I've tried to tidy up code where it made sense to do so. Differential Revision: https://reviews.llvm.org/D56143 llvm-svn: 350507
* [X86] Update VBMI2 vshld/vshrd tests to use an immediate that doesn't ↵Craig Topper2019-01-072-31/+31
| | | | | | | | require a modulo. Planning to replace these with funnel shift intrinsics which would mask out the extra bits. This will help minimize test diffs. llvm-svn: 350506
* DR674, PR38883, PR40238: Qualified friend lookup should look for aRichard Smith2019-01-0717-107/+169
| | | | | | | | | | | | | | | | | | template specialization if there is no matching non-template function. This exposed a couple of related bugs: - we would sometimes substitute into a friend template instead of a suitable non-friend declaration; this would now crash because we'd decide the specialization of the friend is a redeclaration of itself - ADL failed to properly handle the case where an invisible local extern declaration redeclares an invisible friend Both are fixed herein: in particular, we now never make invisible friends or local extern declarations visible to name lookup unless they are the only declaration of the entity. (We already mostly did this for local extern declarations.) llvm-svn: 350505
* [X86] Update VBMI2 vshld/vshrd tests to use an immediate that doesn't ↵Craig Topper2019-01-076-162/+162
| | | | | | | | require a modulo. Planning to replace these with funnel shift intrinsics which would mask out the extra bits. This will help minimize test diffs. llvm-svn: 350504
* [CallSite removal] Migrate all Alias Analysis APIs to use the newlyChandler Carruth2019-01-0732-477/+444
| | | | | | | | | | | | | | | | | | | | | | | | | | minted `CallBase` class instead of the `CallSite` wrapper. This moves the largest interwoven collection of APIs that traffic in `CallSite`s. While a handful of these could have been migrated with a minorly more shallow migration by converting from a `CallSite` to a `CallBase`, it hardly seemed worth it. Most of the APIs needed to migrate together because of the complex interplay of AA APIs and the fact that converting from a `CallBase` to a `CallSite` isn't free in its current implementation. Out of tree users of these APIs can fairly reliably migrate with some combination of `.getInstruction()` on the `CallSite` instance and casting the resulting pointer. The most generic form will look like `CS` -> `cast_or_null<CallBase>(CS.getInstruction())` but in most cases there is a more elegant migration. Hopefully, this migrates enough APIs for users to fully move from `CallSite` to the base class. All of the in-tree users were easily migrated in that fashion. Thanks for the review from Saleem! Differential Revision: https://reviews.llvm.org/D55641 llvm-svn: 350503
* [CallSite removal] Add `CallBase` support to the `InstVisitor` in suchChandler Carruth2019-01-071-8/+14
| | | | | | | | | | | | | a way that it still supports `CallSite` but users can be ported to rely on `CallBase` instead. This will unblock the ports across the analysis and transforms libraries (and out-of-tree users) and once done we can clean this up by removing the `CallSite` layer. Differential Revision: https://reviews.llvm.org/D56182 llvm-svn: 350502
* [SemaCXX] Fix ICE for unexpanded parameter packBrian Gesiak2019-01-072-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The documentation for RecursiveASTVisitor::TraverseDecl states that the Decl being traversed may be null. In fact, this is the case when a CXXCatchStmt with no exception decl is traversed. Because the visitor for diagnosing unexpanded parameter packs does not check for null, it ends up crashing when it attempts to call the Decl::isParameterPack method on a null Decl pointer. Add a null check to prevent an ICE, and a test case that would crash otherwise. Also, because the test requires C++ exceptions and C++14, change the test parameters for the entire test file. (Alternatively, I thought about adding a new test file, but went with this approach for my own convenience.) Co-authored-by: Andreas Molzer <andreas.molzer@gmx.de> Co-authored-by: Mara Bos <m-ou.se@m-ou.se> Reviewers: rsmith Reviewed By: rsmith Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D56271 llvm-svn: 350501
* [gn build] Add build files for llvm/lib/Target/ARM + testsNico Weber2019-01-0710-5/+338
| | | | | | | | | | | | The ARM target itself is similar to the X86 target in https://reviews.llvm.org/rL348903 The llvm-exegesis unittests ARM bits are similar to the X86 bits in https://reviews.llvm.org/rL350413 Both are similar to the corresponding AArch64 bits in https://reviews.llvm.org/rL350499 too After this, everything in my local GN branch is upstreamed to LLVM. Differential Revision: https://reviews.llvm.org/D56371 llvm-svn: 350500
* [gn build] Add build files for llvm/lib/Target/AArch64 + testsNico Weber2019-01-0712-12/+402
| | | | | | | | | | | | | The AArch64 target itself is similar to the X86 target in https://reviews.llvm.org/rL348903 The llvm-exegesis AArch64 bits are similar to the X86 bits in http://reviews.llvm.org/rL350184 The llvm-exegesis unittests AArch64 bits are similar to the X86 bits in https://reviews.llvm.org/rL350413 llvm/unittests/Target/AArch64 doesn't have an equivalent since the X86 Target only has lit tests, no unittests. Differential Revision: https://reviews.llvm.org/D56364 llvm-svn: 350499
* [X86] Add support for matching vector funnel shift to AVX512VBMI2 instructions.Craig Topper2019-01-067-279/+3267
| | | | | | | | | | | | | | Summary: AVX512VBMI2 supports a funnel shift by immediate and a funnel shift by a variable vector. Reviewers: spatel, RKSimon Reviewed By: RKSimon Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D56361 llvm-svn: 350498
* Revert "Resubmit rL345008 "Split MachinePipeliner code into header and cpp ↵Lama Saba2019-01-062-620/+595
| | | | | | | | | files"" This reverts commit rL350493 issues related to modules still appear in http://green.lab.llvm.org/green/job/lldb-cmake llvm-svn: 350497
* [x86] explicitly set cost of integer add/subSanjay Patel2019-01-061-0/+8
| | | | | | | | | | | | | | | There are no test changes here in the existing cost model regression tests because integer add/sub have a default legal cost of 1 already. This would break, however, if we custom lower those ops because the default cost model assumes that custom-lowered ops are more expensive. This is similar to the change in rL350403. See discussion in D56011 for more details. When we enhance that patch to handle integer ops, we need this cost model change to avoid unintended diffs here from the custom lowering. llvm-svn: 350496
* Fix bug in test found by the diagnostic added in r350340.Nico Weber2019-01-061-1/+1
| | | | | | | I meant to commit this change in 350341 but failed to do so (since it's in test/CodeGenCXX, not in test/Frontend). llvm-svn: 350495
* [gn build] Merge r350341Nico Weber2019-01-062-1/+13
| | | | | | Adds a build file for llvm-elfabi and makes check-llvm depend on it. llvm-svn: 350494
* Resubmit rL345008 "Split MachinePipeliner code into header and cpp files"Lama Saba2019-01-062-595/+620
| | | | | | | | | Resubmitted in rL345290 and reverted in rL350345 due to failures in http://green.lab.llvm.org/green/job/lldb-cmake/ Resubmitting after a workaround to lldb-cmake failure was committed in rL350346, more info in https://reviews.llvm.org/D56084 llvm-svn: 350493
* [gn build] Add build files for LLVM unittests with a custom main() functionNico Weber2019-01-065-12/+76
| | | | | | Differential Revision: https://reviews.llvm.org/D56219 llvm-svn: 350492
* [CMake] Use hidden visibility for static libc++ in FuchsiaPetr Hosek2019-01-061-0/+1
| | | | | | | | This is enables the use of libc++ in contexts such as device drivers. Differential Revision: https://reviews.llvm.org/D55405 llvm-svn: 350491
* [LegalizeVectorOps] Add FSHL/FSHR to the list of vector operations that ↵Craig Topper2019-01-061-0/+2
| | | | | | | | should be handled. The FSHL/FSHR nodes are handled in the expand function, but they need to also be listed in the code that queries for the operation action too. llvm-svn: 350490
* [libcxx] Support building hermetic static libraryPetr Hosek2019-01-063-33/+72
| | | | | | | | | | | | This is useful when static libc++ library is being linked into shared libraries that may be used in combination with libraries. We want to avoid we exporting libc++ symbols in those cases where this option is useful. This is provided as a CMake option and can be enabled by libc++ vendors as needed. Differential Revision: https://reviews.llvm.org/D55404 llvm-svn: 350489
* [compiler-rt][Fuchsia] Replace _zx_vmar_allocate_old callPetr Hosek2019-01-061-4/+4
| | | | | | | | | This is the deprecated legacy interface, replace it with the current _zx_vmar_allocate one. Differential Revision: https://reviews.llvm.org/D56360 llvm-svn: 350488
* Have MSVC Visualizer for DeducedTemplateSpecializationType show both the ↵Mike Spertus2019-01-061-13/+24
| | | | | | | | | | | | | | | | | | original template and deduced specialization Now appears in the Autos window something like - MyType DeducedTemplateSpecializationType {struct Y<int>} |- Template template<typename T> struct Y; |- Deduced As struct Y<int> |- isDeduced true bool |- TypeClass DeducedTemplateSpecialization (36) |- Flags No TypeBits set beyond TypeClass |- Canonical RecordType {struct Y<int>} Also changed QualType visualization to auto-expand the BaseType llvm-svn: 350487
* [CMake][Fuchsia] Enable build ID, relaxations for first stagePetr Hosek2019-01-061-0/+3
| | | | | | | | We want these to be used for the second stage compiler as well. Differential Revision: https://reviews.llvm.org/D56359 llvm-svn: 350486
* Fix PR39749 - Headers containing just #error harm __has_include.Eric Fiselier2019-01-0624-19/+411
| | | | | | | | | | | This patch changes <experimental/foo> to use #warning instead of is harmful to common feature detection idioms. We should also consider only emitting the warning when __DEPRECATED is defined, like we do in the <ext/foo> headers. Users may want to specify "-Werror=-W#warnings" while still ignoring the libc++ warnings. llvm-svn: 350485
* Revert "[CMake][Fuchsia] Enable experimental new pass manager by default"Petr Hosek2019-01-051-1/+0
| | | | | | This reverts commit r350461 as it causes many of the Clang tests to fail. llvm-svn: 350484
* [X86][AsmParser] Don't allow X86::DX in CheckBaseRegAndIndexRegAndScale.Craig Topper2019-01-051-2/+1
| | | | | | This was here because out and in instructions allow '(%dx)' even though its not a memory reference. To handle this we build a special operand for the DX register reference before we get to the call to CheckBaseRegAndIndexRegAndScale. So we no longer need this special case. llvm-svn: 350483
* Fix MSVC Visualization for TemplateTypeParmType and TemplateTypeParmDeclMike Spertus2019-01-051-7/+10
| | | | llvm-svn: 350482
* [X86] Use two pmovmskbs in combineBitcastvxi1 for (i64 (bitcast (v64i1 ↵Craig Topper2019-01-053-170/+59
| | | | | | (truncate (v64i8)))) on KNL. llvm-svn: 350481
* [X86] Allow combinevxi1Bitcast to use pmovmskb on avx512 targets if the ↵Craig Topper2019-01-059-200/+61
| | | | | | | | input is a truncate from v16i8/v32i8. This is especially helpful on targets without avx512bw since we don't have a good way to convert from v16i8/v32i8 to v16i1/v32i1 for the truncate anyway. If we're just going to convert it to a GPR we might as well use pmovmskb to accomplish both. llvm-svn: 350480
* Fix symbols.enable-external-lookup description wordingJan Kratochvil2019-01-051-4/+4
| | | | | | | | | D55859 changed "external tools or libraries" to "external sources" according to Pavel Labath. Now it is changed sort of back to "external tools and repositories" according to Adrian Prantl. https://reviews.llvm.org/D55859#1345881 llvm-svn: 350479
* Fix flaky symlink access time test.Eric Fiselier2019-01-051-5/+7
| | | | | | | | | | | | | | | last_write_time(sym, new_time) changes the modification time of the file referenced by the symlink. But reading through the symlink may change the symlinks's access time. This meant the previous test that checked that the symlinks access time was unchanged was incorrect and made the test flaky. This patch removes this test (there really is no non-flaky way to test that the new access time coorisponds to the time at which the symlink was last dereferenced). This should unflake the test. llvm-svn: 350478
* Revert "D56064: More tolerance for flaky tests in libc++ on NetBSD"Kamil Rytarowski2019-01-051-7/+0
| | | | | | Requested by EricWF. llvm-svn: 350477
* CodeGen: fix autolink emission on ELFSaleem Abdulrasool2019-01-052-7/+17
| | | | | | | | | The autolinking extension for ELF uses a slightly different format for encoding the autolink information compared to COFF and MachO. Account for this in the CGM to ensure that we do not assert when emitting assembly or an object file. llvm-svn: 350476
* Added single use check to ShrinkDemandedConstantStanislav Mekhanoshin2019-01-052-0/+23
| | | | | | | | | Fixes cvt_f32_ubyte combine. performCvtF32UByteNCombine() could shrink source node to demanded bits only even if there are other uses. Differential Revision: https://reviews.llvm.org/D56289 llvm-svn: 350475
* [X86] Regenerate test to merge 32-bit and 64-bit check lines. NFCCraig Topper2019-01-051-17/+5
| | | | llvm-svn: 350474
* [X86] Allow LowerTRUNCATE to use PACKUS/PACKSS for v16i16->v16i8 truncate ↵Craig Topper2019-01-053-10/+6
| | | | | | when -mprefer-vector-width-256 is in effect and BWI is not available. llvm-svn: 350473
* CodeGen: switch iteration to range based for loop (NFC)Saleem Abdulrasool2019-01-051-6/+4
| | | | | | | Change a loop to range based instead while working on cleaning up some modules autolinking issues on Linux. NFC. llvm-svn: 350472
* [InstCombine] Improve cttz/ctlz + icmp tests; NFCNikita Popov2019-01-051-83/+134
| | | | | | | | Change part of the tests to use vectors (I'm using scalar for ugt and vector for ult), add multiuse variations, rename %lz to %tz for the cttz tests. llvm-svn: 350471
* Improve MSVC type visualizationsMike Spertus2019-01-051-7/+47
| | | | | | | | Display TypeBits in a single line. Fix bit rot in template visualizations Rudimentary support for deduced types llvm-svn: 350470
* Enhance MSVC visualization of PointerUnionsMike Spertus2019-01-051-5/+27
| | | | | | | | Add a "deref" view that displays the pointed to objects since other visualizers often need to display data reference by internal PointerUnions llvm-svn: 350469
OpenPOWER on IntegriCloud