summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [ARM][ParallelDSP] Relax alias checksSam Parker2019-05-1313-334/+733
| | | | | | | | | | | | | | | | | | | | | | | When deciding the safety of generating smlad, we checked for any writes within the block that may alias with any of the loads that need to be widened. This is overly conservative because it only matters when there's a potential aliasing write to a location accessed by a pair of loads. Now we check for aliasing writes only once, during setup. If two loads are found to have an aliasing write between them, we don't add these loads to LoadPairs. This means that later during the transform, we can safely widened a pair without worrying about aliasing. However, to maintain correctness, we also need to change the way that wide loads are inserted because the order is now important. The MatchSMLAD method has also been changed, absorbing MatchReductions and AddMACCandidate to hopefully improve readability. Differential Revision: https://reviews.llvm.org/D6102 llvm-svn: 360567
* [DAGCombiner] Fix invalid alias analysis.Clement Courbet2019-05-132-18/+19
| | | | | | | | | | | | | | | | | | | | | Summary: When we know for sure whether two addresses do or do not alias, we should immediately return from DAGCombiner::isAlias(). I think this comes from a bad copy/paste, Sorry for not catching that during the code review. Fixes PR41855. Reviewers: niravd, gchatelet, EricWF Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D61846 llvm-svn: 360566
* [DWARF] Use sequential integers for the IDs of the SymbolFileDWOsPavel Labath2019-05-132-3/+17
| | | | | | | | | | | | | | | | | | | | | | | | Summary: Instead of using the offset of the contained compile unit, we use it's ID. The goal of this change is two-fold: - free up space in the user_id_t representation to enable storing the debug-info-carrying section (debug_types/debug_info) without decreasing the amount of debug info we can address (as would be the case with D61503). - be a step towards supporting DWO files containing more than one unit (important for debug_types+dwo, but can also happen with regular dwo+lto). For this part to fully work we'd still need to add a way to lookup the SymbolFileDWO without going through GetCompileUnitAtIndex, but making sure things don't accidentally work because the SymbolFile ID is the same as compile unit offset is a step towards that. Reviewers: JDevlieghere, clayborg, aprantl Subscribers: mehdi_amini, dexonsmith, tberghammer, jankratochvil, lldb-commits Differential Revision: https://reviews.llvm.org/D61783 llvm-svn: 360565
* @skipIfLinux flaky lldb-mi testsPavel Labath2019-05-134-1/+5
| | | | llvm-svn: 360564
* PR41845: Detect and reject mismatched inner/outer pack expansion sizesRichard Smith2019-05-137-13/+41
| | | | | | in fold expressions rather than crashing. llvm-svn: 360563
* Remove declaratons of deleted structs/classesFangrui Song2019-05-131-11/+0
| | | | llvm-svn: 360562
* [DAGCombiner][NFC] Commit test to show fix in D61846.Clement Courbet2019-05-131-0/+166
| | | | llvm-svn: 360561
* PR41854: Don't assert when constant-evaluating a member function call on an ↵Richard Smith2019-05-132-0/+11
| | | | | | invalid designator. llvm-svn: 360560
* [c++20] P1064R0: Allow virtual function calls in constant expressionRichard Smith2019-05-1314-52/+414
| | | | | | evaluation. llvm-svn: 360559
* [WebAssembly] Add dependency on WebAssemblyDesc to fix BUILD_SHARED_LIBS=on ↵Fangrui Song2019-05-131-1/+1
| | | | | | | | | | | builds after rL360550 This fixes the link error ld.lld: error: undefined symbol: llvm::WebAssembly::anyTypeToString(unsigned int) >>> referenced by WebAssemblyDisassembler.cpp llvm-svn: 360558
* [CMake] Add lli to LLDB_TEST_DEPSFangrui Song2019-05-131-0/+1
| | | | | | | lli is used by lit/Breakpoint/jitbp_elf.test I had a test failure when running check-lldb-lit because my lli was stale. llvm-svn: 360557
* [BPF] emit BTF sections only if debuginfo availableYonghong Song2019-05-132-1/+33
| | | | | | | | | | | | | | | | | | | | | | | | Currently, without -g, BTF sections may still be emitted with data sections, e.g., for linux kernel bpf selftest test_tcp_check_syncookie_kern.c issue discovered by Martin as shown below. -bash-4.4$ bpftool btf dump file test_tcp_check_syncookie_kern.o [1] VAR 'results' type_id=0, linkage=global-alloc [2] VAR '_license' type_id=0, linkage=global-alloc [3] DATASEC 'license' size=0 vlen=1 type_id=2 offset=0 size=4 [4] DATASEC 'maps' size=0 vlen=1 type_id=1 offset=0 size=28 Let disable BTF generation if no debuginfo, which is the original design. Signed-off-by: Yonghong Song <yhs@fb.com> Differential Revision: https://reviews.llvm.org/D61826 llvm-svn: 360556
* [JITLink] Track section alignment and make sure it is respected during layout.Lang Hames2019-05-136-20/+82
| | | | | | | Previously we had only honored alignments on individual atoms, but tools/runtimes may assume that the section alignment is respected too. llvm-svn: 360555
* Fix file names in file headers. NFCFangrui Song2019-05-1341-43/+43
| | | | llvm-svn: 360554
* gn build: support host build on ppc64 (a.k.a. powerpc64le)David L. Jones2019-05-136-4/+15
| | | | llvm-svn: 360553
* Recommit r358887 "[TargetLowering][AMDGPU][X86] Improve SimplifyDemandedBits ↵Craig Topper2019-05-139-139/+107
| | | | | | | | | | | | | | | | | | | | bitcast handling" I've included a new fix in X86RegisterInfo to prevent PR41619 without reintroducing r359392. We might be able to improve that in the base class implementation of shouldRewriteCopySrc somehow. But this hopefully enables forward progress on SimplifyDemandedBits improvements for now. Original commit message: This patch adds support for BigBitWidth -> SmallBitWidth bitcasts, splitting the DemandedBits/Elts accordingly. The AMDGPU backend needed an extra (srl (and x, c1 << c2), c2) -> (and (srl(x, c2), c1) combine to encourage BFE creation, I investigated putting this in DAGComb but it caused a lot of noise on other targets - some improvements, some regressions. The X86 changes are all definite wins. llvm-svn: 360552
* gn build: merge r360550David L. Jones2019-05-133-27/+8
| | | | llvm-svn: 360551
* [WebAssembly] Move InstPrinter files to MCTargetDesc. NFCDavid L. Jones2019-05-1313-40/+15
| | | | | | | | | For some targets, there is a circular dependency between InstPrinter and MCTargetDesc. Merging them together will fix this. For the other targets, the merging is to maintain consistency so all targets will have the same structure. llvm-svn: 360550
* gn build: Merge r360540Nico Weber2019-05-121-0/+1
| | | | llvm-svn: 360549
* Fix test to use -cc1.Leonard Chan2019-05-121-1/+2
| | | | llvm-svn: 360548
* [JITLink] Add a test for zero-filled content.Lang Hames2019-05-127-39/+132
| | | | | | | | Also updates RuntimeDyldChecker and llvm-rtdyld to support zero-fill tests by returning a content address of zero (but no error) for zero-fill atoms, and treating loads from zero as returning zero. llvm-svn: 360547
* [ORC] Fix some typos.Lang Hames2019-05-122-4/+2
| | | | | | | | Patch by Praveen Velliengiri. Thanks Praveen! https://reviews.llvm.org/D61793 llvm-svn: 360546
* [clang] Regenerate AST matcher docs 📖Stephane Moore2019-05-121-24/+24
| | | | | | | | | | | | | | | | | | | Summary: The documentation seems to have been manually edited in https://reviews.llvm.org/rGa282bde69e375985edd4c371b79864f617380ad5. This commit regenerates the documentation and commits the resulting diff. Reviewers: benhamilton, mwyman Reviewed By: mwyman Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D61769 llvm-svn: 360545
* Fix for P41852 where builtin attributes were being caught by ↵Leonard Chan2019-05-122-2/+15
| | | | | | FindLocsWithCommonFileID(). llvm-svn: 360544
* [X86][AVX] Split VZEXT_MOVL ymm/zmm if the upper elements are not demanded.Simon Pilgrim2019-05-123-3/+12
| | | | | | Removes unnecessary vzeroupper noted in D61806 llvm-svn: 360543
* [LoopVectorizer] add tests for FP minmax; NFCSanjay Patel2019-05-121-0/+161
| | | | llvm-svn: 360542
* [DAGCombiner] try to move bitcast after extract_subvectorSanjay Patel2019-05-1212-95/+96
| | | | | | | | | | | | | | | | | I noticed that we were failing to narrow an x86 ymm math op in a case similar to the 'madd' test diff. That is because a bitcast is sitting between the math and the extract subvector and thwarting our pattern matching for narrowing: t56: v8i32 = add t59, t58 t68: v4i64 = bitcast t56 t73: v2i64 = extract_subvector t68, Constant:i64<2> t96: v4i32 = bitcast t73 There are a few wins and neutral diffs in the other tests. Differential Revision: https://reviews.llvm.org/D61806 llvm-svn: 360541
* [clang-tidy] new check: bugprone-unhandled-self-assignmentTamas Zolnai2019-05-128-0/+842
| | | | | | | | | | | | | | | | | | | | | Summary: This check searches for copy assignment operators which might not handle self-assignment properly. There are three patterns of handling a self assignment situation: self check, copy-and-swap or the less common copy-and-move. The new check warns if none of these patterns is found in a user defined implementation. See also: OOP54-CPP. Gracefully handle self-copy assignment https://wiki.sei.cmu.edu/confluence/display/cplusplus/OOP54-CPP.+Gracefully+handle+self-copy+assignment Reviewers: JonasToth, alexfh, hokein, aaron.ballman Subscribers: riccibruno, Eugene.Zelenko, mgorny, xazax.hun, cfe-commits Tags: #clang, #clang-tools-extra Differential Revision: https://reviews.llvm.org/D60507 llvm-svn: 360540
* make -ftime-trace also print template argumentsLubos Lunak2019-05-123-4/+17
| | | | | | | | | Without this, I get e.g. 'PerformPendingInstantiations' -> 'std::fill', now I get 'std::fill<unsigned long *, int>'. Differential Revision: https://reviews.llvm.org/D61822 llvm-svn: 360539
* Reject attempts to call non-static member functions on objects outsideRichard Smith2019-05-124-57/+202
| | | | | | | | | | | | | | | | their lifetime in constant expressions. This is undefined behavior per [class.cdtor]p2. We continue to allow this for objects whose values are not visible within the constant evaluation, because there's no way we can tell whether the access is defined or not, existing code relies on the ability to make such calls, and every other compiler allows such calls. This reinstates r360499, reverted in r360531. llvm-svn: 360538
* Fix handling of objects under construction during constant expressionRichard Smith2019-05-126-96/+223
| | | | | | | | | | | | | evaluation. It's not enough to just track the LValueBase that we're evaluating, we need to also track the path to the objects whose constructors are running. This reinstates r360464 (reverted in r360531) with a workaround for an MSVC bug that previously caused the Windows bots to fail. llvm-svn: 360537
* [utils] update_test_checks.py: allow opt-8, opt-9Fangrui Song2019-05-121-1/+2
| | | | | | | | | | Allow using Debian's opt-8, opt-9 with update_test_checks.py Patch by Shawn Landden! Differential Revision: https://reviews.llvm.org/D61148 llvm-svn: 360536
* [X86][SSE] SimplifyDemandedBits - call PEXTRB/PEXTRW ↵Simon Pilgrim2019-05-114-104/+80
| | | | | | | | | | SimplifyDemandedVectorElts as well. See if we can simplify the demanded vector elts from the extraction before trying to simplify the demanded bits. This helps us with target shuffles and hops in particular. llvm-svn: 360535
* [DAG] Add SimplifyDemandedBits support for BITREVERSESimon Pilgrim2019-05-113-4/+11
| | | | | | Pulled out of D58017 while I continue to investigate the BSWAP regression on PPC llvm-svn: 360534
* [X86] Updated shift-mask test targets for D61830Simon Pilgrim2019-05-111-13/+66
| | | | llvm-svn: 360533
* [CommandLine] Add long option flag for cl::ParseCommandLineOptions . Part 5 of 5Don Hinton2019-05-113-21/+115
| | | | | | | | | | | | | | | | | | | Summary: If passed, the long option flag makes the CommandLine parser mimic the behavior or GNU getopt_long. Short options are a single character prefixed by a single dash, and long options are multiple characters prefixed by a double dash. This patch was motivated by the discussion in the following thread: http://lists.llvm.org/pipermail/llvm-dev/2019-April/131786.html Reviewed By: MaskRay Tags: #llvm Differential Revision: https://reviews.llvm.org/D61294 llvm-svn: 360532
* Revert rL360499 and rL360464 from cfe/trunk:Simon Pilgrim2019-05-117-410/+145
| | | | | | | | | | | | | | | | | | | | | | | | Reject attempts to call non-static member functions on objects outside their lifetime in constant expressions. This is undefined behavior per [class.cdtor]p2. We continue to allow this for objects whose values are not visible within the constant evaluation, because there's no way we can tell whether the access is defined or not, existing code relies on the ability to make such calls, and every other compiler allows such calls. ........ Fix handling of objects under construction during constant expression evaluation. It's not enough to just track the LValueBase that we're evaluating, we need to also track the path to the objects whose constructors are running. ........ Fixes windows buildbots llvm-svn: 360531
* [X86] Add scalar shl+lshr -> shift+mask tests (PR40758)Simon Pilgrim2019-05-111-0/+483
| | | | | | As discussed on D61068, many x86 targets can perform 2 immediate shifts quicker than a shift + mask llvm-svn: 360530
* [X86] Add avx512f tests for boolean reductionSimon Pilgrim2019-05-113-275/+1464
| | | | llvm-svn: 360529
* [CostModel][X86] Add min/max reduction costs for all SSE targetsSimon Pilgrim2019-05-1110-601/+703
| | | | | | | | The original costs stopped at SSE42, I've added conservative estimates for everything down to SSE1/SSE2 and moved some of the SSE42 costs to SSE41 (really only the addition of PCMPGT makes any difference). I've also added missing vXi8 costs (we use PHMINPOSUW for i8/i16 for scarily quick results) and 256-bit vector costs for AVX1. llvm-svn: 360528
* [NFC] yaml2obj/yam2elf.cpp whitespace changes: dos2unix removed CRs.Puyan Lotfi2019-05-111-32/+32
| | | | llvm-svn: 360527
* [X86][SSE] Add SimplifyDemandedVectorElts HADD/HSUB handling.Simon Pilgrim2019-05-112-42/+63
| | | | | | Still missing PHADDW/PHSUBW tests because PEXTRW doesn't call SimplifyDemandedVectorElts llvm-svn: 360526
* FixupLEAPass::fixupIncDec - non-LEA opcodes should not happen here. NFCI.Simon Pilgrim2019-05-111-0/+2
| | | | | | Matches what we do in other functions and fixes scan-build warning about uninitialized NewOpcode variable. llvm-svn: 360525
* [X86] Add CMOV_FR32X/CMOV_FR64X pseudo instructions. Use them in fast isel ↵Craig Topper2019-05-114-4/+210
| | | | | | | | to fix a machine verifier error after adding test cases. Fast isel picks the FR32X/FR64X register classes when lowering pseudo select, but it didn't have the right opcode to go with it. llvm-svn: 360524
* [X86] Sink some fast isel code into the only if that uses it. NFCCraig Topper2019-05-111-13/+13
| | | | llvm-svn: 360523
* [X86] Use TLI.getRegClassFor to simplify some more fast isel code. NFCICraig Topper2019-05-111-16/+7
| | | | llvm-svn: 360522
* [MC][X86] Add test cases from PR14056Simon Pilgrim2019-05-111-0/+8
| | | | llvm-svn: 360521
* HexagonConstEvaluator::evaluateHexExt - check incoming opcodes. NFCI.Simon Pilgrim2019-05-111-0/+2
| | | | | | Only certain extension opcodes are supported - fixes scan build warning. llvm-svn: 360520
* [X86][SSE] Tweaked HADD/HSUB SimplifyDemandedVectorEltsSimon Pilgrim2019-05-111-25/+25
| | | | | | Try to ensure we LHS and RHS test coverage llvm-svn: 360519
* [X86][SSE] Add integer HADD/HSUB SimplifyDemandedVectorElts testsSimon Pilgrim2019-05-111-0/+188
| | | | llvm-svn: 360518
OpenPOWER on IntegriCloud