summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [SystemZ::TTI] Return zero cost for scalar load/store connected with a bswap.Jonas Paulsson2018-11-282-0/+92
| | | | | | | | | | Since byte-swapping loads and stores are supported, a 'load -> bswap' or 'bswap -> store' sequence should have the cost of one. Review: Ulrich Weigand https://reviews.llvm.org/D54870 llvm-svn: 347732
* [llvm-objcopy] Hook up the -V alias to --version, output "GNU strip"Martin Storsjo2018-11-285-1/+8
| | | | | | | | | | | This allows libtool to detect the presence of llvm-strip and use it with the options --strip-debug and --strip-unneeded. Also hook up the -V alias for objcopy. Differential Revision: https://reviews.llvm.org/D54936 llvm-svn: 347731
* PR39809: (const void*)0 is not a null pointer constant in C.Richard Smith2018-11-282-6/+13
| | | | llvm-svn: 347730
* PR12884: Add test (bug is already fixed).Richard Smith2018-11-281-0/+56
| | | | llvm-svn: 347729
* Move LoopHint.h from Sema to ParseRichard Trieu2018-11-287-9/+6
| | | | | | | | struct LoopHint was only used within Parse and not in any of the Sema or Codegen files. In the non-Parse files where it was included, it either wasn't used or LoopHintAttr was used, so its inclusion did nothing. llvm-svn: 347728
* [CodeGen] Fix included headers.Richard Trieu2018-11-281-1/+2
| | | | | | | Remove the included Parse header because CodeGen should not depend on Parse. Instead, include the Lex headers that it needs instead. llvm-svn: 347727
* [diagtool] Remove unneeded header includes.Richard Trieu2018-11-282-2/+0
| | | | llvm-svn: 347726
* [unittest] Fix the FileSystem test on Windows. (Attempt #2)Jonas Devlieghere2018-11-281-5/+5
| | | | | | | This fixes the double escaping and compares FileSpecs instead of strings. llvm-svn: 347725
* Do not insert prefetches with unsupported memory operands.Mircea Trofin2018-11-283-5/+21
| | | | | | | | | | | | | | Summary: Ignore advices where the memory operand of the 'anchor' instruction uses unsupported register types. Reviewers: davidxl Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D54983 llvm-svn: 347724
* [OPENMP] remove redundant ColonExpected flag in ParseOpenMP.cpp (NFC)Kelvin Li2018-11-281-3/+0
| | | | | | | | | | | The flag ColonExpected is not changed after being initialized to false at declaration. Patch by Ahsan Saghir Differential Revision: https://reviews.llvm.org/D54958 llvm-svn: 347723
* [X86] Add test cases to show that we don't properly take ↵Craig Topper2018-11-281-0/+144
| | | | | | | | -mprefer-vector-width=256 and -min-legal-vector-width=256 into account when costing sext/zext. The check lines marked AVX256 in the zext256/sext256 functions should be closer to the AVX values which would take into account a splitting cost. llvm-svn: 347722
* Remove dead code from IOHandlerAlex Langford2018-11-271-4/+0
| | | | | | This has been dead since 2014 according to the blame llvm-svn: 347721
* [RISCV] Mark unit tests as "requires: riscv-registered-target"Mandeep Singh Grang2018-11-276-0/+12
| | | | | | | | Some of these tests break if the RISCV backend has not been built. Reland D54816. llvm-svn: 347720
* [X86] Add exhaustive cost model testing for sext/zext for all vector types ↵Craig Topper2018-11-272-0/+958
| | | | | | | | | | we reasonably support. Add cost model tests for truncating to vXi1. Our sext/zext cost modeling was somewhat incomplete. And had no coverage for the fact that avx512bw v32i16/v64i8 types return a scalarization cost. Truncates are a whole different mess because isTruncateFree is returning true for vectors when it shouldn't and that's the fall back for anything not in the tables. llvm-svn: 347719
* Fix typo in "[clang][ARC] Fix test for commit r347699"Tatyana Krasnukha2018-11-271-1/+1
| | | | llvm-svn: 347718
* [lldbsuite] Each lldb suite test must have a unique class nameStella Stamenova2018-11-272-2/+2
| | | | | | A couple of new tests have been added that use existing class names. This causes failures on Windows if the tests run at the same time and on any platform it results in the logs being overwritten. llvm-svn: 347717
* [Reproducers] Improve reproducer API and add unit tests.Jonas Devlieghere2018-11-2712-137/+283
| | | | | | | | | | | | | | | | | | | When I landed the initial reproducer framework I knew there were some things that needed improvement. Rather than bundling it with a patch that adds more functionality I split it off into this patch. I also think the API is stable enough to add unit testing, which is included in this patch as well. Other improvements include: - Refactor how we initialize the loader and generator. - Improve naming consistency: capture and replay seems the least ambiguous. - Index providers by name and make sure there's only one of each. - Add convenience methods for creating and accessing providers. Differential revision: https://reviews.llvm.org/D54616 llvm-svn: 347716
* [OPENMP][NVPTX]Basic support for reductions across the teams.Alexey Bataev2018-11-273-1327/+125
| | | | | | Added basic codegen support for the reductions across the teams. llvm-svn: 347715
* [OpenMP][libomptarget] Add new version of SPMD deinit kernel function with ↵Gheorghe-Teodor Bercea2018-11-272-3/+8
| | | | | | | | | | | | | | | | argument Summary: To enable the compiler to optimize parts of the function that are not needed when runtime can be omitted, a new version of the SPMD deinit kernel function is needed. This function takes the runtime required flag as an argument. Reviewers: ABataev, kkwli0, caomhin Reviewed By: ABataev Subscribers: guansong, openmp-commits Differential Revision: https://reviews.llvm.org/D54969 llvm-svn: 347714
* [MS] Push outermost class DeclContexts only in -fdelayed-template-parsingReid Kleckner2018-11-272-12/+53
| | | | | | | This is more or less a complete rewrite of r347627, and it fixes PR38460 I added a reduced test case to DelayedTemplateParsing.cpp. llvm-svn: 347713
* [unittest] Fix the FileSystem test on Windows.Jonas Devlieghere2018-11-271-0/+8
| | | | | | | | On Windows, when using the VFS without going through FileSpec, the absolute path to `/foo` is `\\foo`. This updates the unittest to expect that. llvm-svn: 347712
* [libcxx] Make sure the re-export logic works when paths contain spacesLouis Dionne2018-11-271-5/+5
| | | | llvm-svn: 347711
* [OPENMP][NVPTX]Basic support for reductions across the teams.Alexey Bataev2018-11-272-0/+24
| | | | | | | | | | | | | | | Summary: Added functions __kmpc_nvptx_teams_reduce_nowait_simple and __kmpc_nvptx_teams_end_reduce_nowait_simple to implement basic support for reductions across the teams. Reviewers: gtbercea, kkwli0 Subscribers: guansong, jfb, caomhin, openmp-commits Differential Revision: https://reviews.llvm.org/D54967 llvm-svn: 347710
* [Driver] Use libOption with tablegen.Jonas Devlieghere2018-11-2711-648/+661
| | | | | | | | | | | | | This patch modifies the lldb driver to use libOption for option parsing. It allows us to decouple option parsing from option processing which is important when arguments affect initialization. This was previously not possible because the debugger need to be initialized as some option interpretation (like the scripting language etc) was handled by the debugger, rather than in the driver. Differential revision: https://reviews.llvm.org/D54692 llvm-svn: 347709
* [libcxx] Fix libc++ re-exporting logic when Command Line Tools are not installedLouis Dionne2018-11-271-18/+11
| | | | | | | | | | | | | | | | | | Summary: When the Xcode Command Line tools are not installed but CMAKE_OSX_SYSROOT is set, we would try to re-export symbols from the libc++abi.dylib shipped in the sysroot, which does not exist. This commit changes the build on OS X to always re-export symbols from the explicit re-export lists, which doesn't change depending on what system you're building on, and is therefore much less flaky. Reviewers: EricWF, mclow.lists Subscribers: mgorny, christof, jkorous, dexonsmith, libcxx-commits Differential Revision: https://reviews.llvm.org/D54595 llvm-svn: 347708
* [TableGen] Improve readability of generated code (NFC)Evandro Menezes2018-11-271-2/+2
| | | | | | Improve the readability of the generated code for `MCOpcodeSwitchStatement`. llvm-svn: 347707
* [TableGen] Refactor macro names (NFC)Evandro Menezes2018-11-279-18/+18
| | | | | | Make the names for the macros for `TargetInstrInfo` uniform. llvm-svn: 347706
* [clang][ARC] Fix test for commit r347699Tatyana Krasnukha2018-11-271-3/+3
| | | | llvm-svn: 347705
* [COFF] Remove empty sections before calculating the size of section headersMartin Storsjo2018-11-272-0/+29
| | | | | | | | | | | | | The number of sections is used in assignAddresses (in finalizeAddresses) and the space for all sections is permanent from that point on, even if we later decide we won't write some of them. The VirtualSize field also gets calculated in assignAddresses, so we need to manually check whether the section is empty here instead. Differential Revision: https://reviews.llvm.org/D54495 llvm-svn: 347704
* [yaml2obj] Treat COFF/ARM64 as a 64 bit architectureMartin Storsjo2018-11-272-1/+91
| | | | | | Differential Revision: https://reviews.llvm.org/D54935 llvm-svn: 347703
* [gn build] Add enough build files to be able to build llvm-tblgen.Nico Weber2018-11-276-0/+204
| | | | | | | | | | | | | | | | Adds build files for: - llvm/lib/DebugInfo/CodeView - llvm/lib/DebugInfo/MSF - llvm/lib/MC - llvm/lib/TableGen - llvm/utils/TableGen All the build files just list sources and deps and are uninteresting. Differential Revision: https://reviews.llvm.org/D54931 llvm-svn: 347702
* [clang][slh] add attribute for speculative load hardeningZola Bridges2018-11-279-14/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Resubmit this with no changes because I think the build was broken by a different diff. ----- The prior diff had to be reverted because there were two tests that failed. I updated the two tests in this diff clang/test/Misc/pragma-attribute-supported-attributes-list.test clang/test/SemaCXX/attr-speculative-load-hardening.cpp ----- Summary from Previous Diff (Still Accurate) ----- LLVM IR already has an attribute for speculative_load_hardening. Before this commit, when a user passed the -mspeculative-load-hardening flag to Clang, every function would have this attribute added to it. This Clang attribute will allow users to opt into SLH on a function by function basis. This can be applied to functions and Objective C methods. Reviewers: chandlerc, echristo, kristof.beyls, aaron.ballman Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D54915 llvm-svn: 347701
* [InstCombine] Add tests for saturating add/sub; NFCNikita Popov2018-11-271-0/+669
| | | | | | These are baseline tests for D54534. llvm-svn: 347700
* [clang][ARC] Add ARCTargetInfoTatyana Krasnukha2018-11-278-0/+402
| | | | | | | | Based-on-patch-by: Pete Couperus <petecoup@synopsys.com> Differential Revision: https://reviews.llvm.org/D53100 llvm-svn: 347699
* [OpenMP][libomptarget] Refactor SPMD and runtime requirement checkingGheorghe-Teodor Bercea2018-11-279-171/+262
| | | | | | | | | | | | | | Summary: Refactor the checking for SPMD mode and whether the runtime is initialized or not. This uses constant flags which enables the runtime to optimize out unused sections of code that depend on these flags. Reviewers: ABataev, caomhin Reviewed By: ABataev Subscribers: guansong, jfb, openmp-commits Differential Revision: https://reviews.llvm.org/D54960 llvm-svn: 347698
* [X86] Add cost model tests for experimental.vector.reduce.* with ↵Craig Topper2018-11-279-0/+2852
| | | | | | -x86-experimental-vector-widening-legalization llvm-svn: 347697
* [X86] Add cost model test for masked load an store with ↵Craig Topper2018-11-271-0/+606
| | | | | | -x86-experimental-vector-widening-legalization llvm-svn: 347696
* [X86] Add cost model tests for fp_to_int/int_to_fp with ↵Craig Topper2018-11-275-0/+1765
| | | | | | -x86-experimental-vector-widening-legalization llvm-svn: 347695
* [X86] Add cost model tests for shifts with ↵Craig Topper2018-11-273-0/+1589
| | | | | | -x86-experimental-vector-widening-legalization. llvm-svn: 347694
* [CMake] Pass full libedit path to linkerTatyana Krasnukha2018-11-272-2/+2
| | | | | | Otherwise, linker fails with "cannot find -ledit" in case of custom libedit installation. llvm-svn: 347693
* Don't speculatively emit VTTs for classes unless we are able to correctly ↵Richard Smith2018-11-272-2/+53
| | | | | | | | | | | | | | | | | | emit references to all the functions they will (directly or indirectly) reference. Summary: This fixes a miscompile where we'd emit a VTT for a class that ends up referencing an inline virtual member function that we can't actually emit a body for (because we never instantiated it in the current TU), which in a corner case of a corner case can lead to link errors. Reviewers: rjmccall Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D54768 llvm-svn: 347692
* [lit] Pass more environment variables through to child processes.Zachary Turner2018-11-271-10/+10
| | | | | | | | | | | | | | This arose when I was trying to have a substitution which invoked a python script P, and that python script tried to invoke clang-cl (or even cl). Since we invoke P with a custom environment, it doesn't inherit the environment of the parent, and then when we go to invoke clang-cl, it's unable to find the MSVC installation directory. There were many more I could have passed through which are set by vcvarsall, but I tried to keep it simple and only pass through the important ones. Differential Revision: https://reviews.llvm.org/D54963 llvm-svn: 347691
* Add missing error checking code intended for r347687Reid Kleckner2018-11-271-2/+4
| | | | llvm-svn: 347690
* Revert "[RISCV] Mark unit tests as "requires: riscv-registered-target""Mandeep Singh Grang2018-11-276-12/+0
| | | | | | This reverts commit 1a6a0c9ea2716378d55858c11adf5941608531f8. llvm-svn: 347689
* [RISCV] Mark unit tests as "requires: riscv-registered-target"Mandeep Singh Grang2018-11-276-0/+12
| | | | | | | | | | | | | | Summary: Some of these tests break if the RISCV backend has not been built. Reviewers: asb, apazos, sabuasal Reviewed By: sabuasal Subscribers: rbar, johnrusso, simoncook, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, cfe-commits Differential Revision: https://reviews.llvm.org/D54816 llvm-svn: 347688
* [PDB] Add symbol records in bulkReid Kleckner2018-11-273-45/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This speeds up linking clang.exe/pdb with /DEBUG:GHASH by 31%, from 12.9s to 9.8s. Symbol records are typically small (16.7 bytes on average), but we processed them one at a time. CVSymbol is a relatively "large" type. It wraps an ArrayRef<uint8_t> with a kind an optional 32-bit hash, which we don't need. Before this change, each DbiModuleDescriptorBuilder would maintain an array of CVSymbols, and would write them individually with a BinaryItemStream. With this change, we now add symbols that happen to appear contiguously in bulk. For each .debug$S section (roughly one per function), we allocate two copies, one for relocation, and one for realignment purposes. For runs of symbols that go in the module stream, which is most symbols, we now add them as a single ArrayRef<uint8_t>, so the vector DbiModuleDescriptorBuilder is roughly linear in the number of .debug$S sections (O(# funcs)) instead of the number of symbol records (very large). Some stats on symbol sizes for the curious: PDB size: 507M sym bytes: 316,508,016 sym count: 18,954,971 sym byte avg: 16.7 As future work, we may be able to skip copying symbol records in the linker for realignment purposes if we make LLVM write them aligned into the object file. We need to double check that such symbol records are still compatible with link.exe, but if so, it's definitely worth doing, since my profile shows we spend 500ms in memcpy in the symbol merging code. We could potentially cut that in half by saving a copy. Alternatively, we could apply the relocations *after* we iterate the symbols. This would require some careful re-engineering of the relocation processing code, though. Reviewers: zturner, aganea, ruiu Subscribers: hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D54554 llvm-svn: 347687
* [TableGen] Preprocessing supportVyacheslav Zakharin2018-11-2727-31/+1136
| | | | | | Differential Revision: https://reviews.llvm.org/D54926 llvm-svn: 347686
* [ASTImporter] Added Import functions for transition to new API.Balazs Keri2018-11-272-32/+167
| | | | | | | | | | | | | | | | | | | | | | | Summary: These Import_New functions should be used in the ASTImporter, and the old Import functions should not be used. Later the Import_New should be renamed to Import again and the old Import functions must be removed. But this can happen only after LLDB was updated to use the new Import interface. This commit is only about introducing the new Import_New functions. These are not implemented now, only calling the old Import ones. Reviewers: shafik, rsmith, a_sidorin, a.sidorin Reviewed By: a_sidorin Subscribers: spyffe, a_sidorin, gamesh411, shafik, rsmith, dkrupp, martong, Szelethus, cfe-commits Differential Revision: https://reviews.llvm.org/D53751 llvm-svn: 347685
* [X86] Replace an APInt that is guaranteed to be 8-bits with just an 'unsigned'Craig Topper2018-11-271-8/+8
| | | | | | | | We're already mixing this APInt with other 'unsigned' variables. This allows us to use regular comparison operators instead of needing to use APInt::ult or APInt::uge. And it removes a later conversion from APInt to unsigned. I might be adding another combine to this function and this will probably simplify the logic required for that. llvm-svn: 347684
* [PartialInliner] Make PHIs free in cost computation.Florian Hahn2018-11-272-10/+49
| | | | | | | | | | | | | | | | InlineCost also treats them as free and the current implementation can cause assertion failures if PHI nodes are moved outside the region from entry BBs to the region. It also updates the code to use the instructionsWithoutDebug iterator. Reviewers: davidxl, davide, vsk, graham-yiu-huawei Reviewed By: davidxl Differential Revision: https://reviews.llvm.org/D54748 llvm-svn: 347683
OpenPOWER on IntegriCloud