summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert "[AMDGPU] Increased vector length for global/constant loads."Konstantin Zhuravlyov2018-02-205-105/+3
| | | | | | | | | | https://reviews.llvm.org/rL325518 It breaks following OpenCL conformance tests: - Basic - parameter_types - Basic - vload_private llvm-svn: 325643
* [PatternMatch] allow vector matches with m_FNegSanjay Patel2018-02-203-11/+4
| | | | llvm-svn: 325642
* [DSE] Don't DSE stores that subsequent memmove calls read fromSanjoy Das2018-02-202-16/+78
| | | | | | | | | | | | | | | | | | | | | | Summary: We used to remove the first memmove in cases like this: memmove(p, p+2, 8); memmove(p, p+2, 8); which is incorrect. Fix this by changing isPossibleSelfRead to what was most likely the intended behavior. Historical note: the buggy code was added in https://reviews.llvm.org/rL120974 to address PR8728. Reviewers: rsmith Subscribers: mcrosier, llvm-commits, jlebar Differential Revision: https://reviews.llvm.org/D43425 llvm-svn: 325641
* When multiple sanitizers are enabled (ubsan + something else), use all ↵Richard Smith2018-02-202-37/+33
| | | | | | | | | | relevant blacklists. Ideally, we'd only use the ubsan blacklist for ubsan sanitizers, and only use the other-sanitizer blacklist for its sanitizers, but this at least enables the intended suppressions. llvm-svn: 325640
* [InstCombine] auto-generate full checks; NFCSanjay Patel2018-02-201-41/+47
| | | | llvm-svn: 325639
* [InstCombine] add test for vector -X/-Y; NFCSanjay Patel2018-02-201-4/+17
| | | | | | m_FNeg doesn't match vector types. llvm-svn: 325637
* [X86] Fix copy/paste mistake in test.Craig Topper2018-02-201-2/+3
| | | | | | The contents of the test case didnt' match the name of the test case. And they were identical to the test above. llvm-svn: 325635
* Fix broken test from r325630.Benjamin Kramer2018-02-201-1/+1
| | | | llvm-svn: 325634
* [NFC] In Multiversion Check function, switch to return DiagErich Keane2018-02-201-67/+47
| | | | | | | | This function did a lot of 'Diag, return true' stuff. This resulted in needing to introduce scopes in quite a few places. This patch replaces useages of a single "S.Diag" followed by return true with simply "return S.Diag". llvm-svn: 325633
* [PBQP] Fix PR33038 by pruning empty intervals in initializeGraph.Lang Hames2018-02-201-11/+27
| | | | | | | | Spilling may cause previously non-empty intervals (both for the spilled vreg and others) to become empty. Moving the pruning into initializeGraph catches these cases and fixes PR33038. llvm-svn: 325632
* Consistent use of header file for ICF and MarkLiveSam Clegg2018-02-2011-12/+80
| | | | | | | | | | Previously wasm used a separate header to declare markLive and ELF used to declare ICF. This change makes each backend consistently declare these in their own headers. Differential Revision: https://reviews.llvm.org/D43529 llvm-svn: 325631
* [MemoryBuiltins] Check nobuiltin status when identifying calls to free.Benjamin Kramer2018-02-202-11/+29
| | | | | | | | This is usually not a problem because this code's main purpose is eliminating unused new/delete pairs. We got deletes of nullptr or nobuiltin deletes of builtin new wrong though. llvm-svn: 325630
* Consistent (non) use of empty lines in include blocksSam Clegg2018-02-2021-26/+5
| | | | | | | | | The profailing style in lld seem to be to not include such empty lines. Clang-tidy/clang-format seem to handle this just fine. Differential Revision: https://reviews.llvm.org/D43528 llvm-svn: 325629
* [InstCombine] remove unneeded operand swap: NFCISanjay Patel2018-02-201-3/+0
| | | | | | | FMul is commutative, so complexity-based canonicalization should always take care of the swap via SimplifyAssociativeOrCommutative(). llvm-svn: 325628
* [SelectionDAG] Support known true/false SimplifySetCC cases for comparing ↵Craig Topper2018-02-204-100/+111
| | | | | | | | | | | | | | against vector splats of constants. This is split off from D42948 and includes just the cases that constant fold to true or false. It also includes some refactoring to keep predicate checks together. This supports things like (setcc uge X, 0) -> true Differential Revision: https://reviews.llvm.org/D43489 llvm-svn: 325627
* [CUDA] Added missing __threadfence_system() function for CUDA9.Artem Belevich2018-02-201-0/+1
| | | | llvm-svn: 325626
* Use more early returns in SymbolTable.cpp.Rui Ueyama2018-02-201-33/+46
| | | | | | | | | | | I think if statements that end with return is easier to read than cascaded if-else-if-else-if statements because it makes clear that execution of a function terminates there. This patch also adds more blank lines to separate code blocks to meaningful pieces. Differential Revision: https://reviews.llvm.org/D43517 llvm-svn: 325625
* [WebAssembly] Remove unused headerSam Clegg2018-02-201-1/+1
| | | | llvm-svn: 325624
* [PatternMatch] enhance m_SignMask() to ignore undef elements in vectorsSanjay Patel2018-02-202-22/+15
| | | | llvm-svn: 325623
* [InstSimplify] add tests for m_SignMask with undef vector elements; NFCSanjay Patel2018-02-201-2/+28
| | | | llvm-svn: 325622
* [AArch64] Refactor instructions using SIMD immediatesEvandro Menezes2018-02-202-368/+371
| | | | | | | | | | | Get rid of icky goto loops and make the code easier to maintain. Otherwise, NFC. Restore r324903 and fix PR36369. Differentail revision: https://reviews.llvm.org/D43364 llvm-svn: 325621
* [lld/LTO] Remove unused Path parameter to AddBufferFnTeresa Johnson2018-02-202-6/+7
| | | | | | | | | | | | | | | | Summary: With D43396, no clients use the Path parameter anymore. This is the lld side fix with D43400. Depends on D43396 and D43400. Reviewers: pcc Subscribers: emaste, inglorion, arichardson, llvm-commits Differential Revision: https://reviews.llvm.org/D43401 llvm-svn: 325620
* [LTO] Remove unused Path parameter to AddBufferFnTeresa Johnson2018-02-204-12/+5
| | | | | | | | | | | | | | | Summary: With D43396, no clients use the Path parameter anymore. Depends on D43396. Reviewers: pcc Subscribers: mehdi_amini, inglorion, llvm-commits Differential Revision: https://reviews.llvm.org/D43400 llvm-svn: 325619
* [ThinLTO/gold] Avoid race with cache pruner by copying to temp filesTeresa Johnson2018-02-202-4/+8
| | | | | | | | | | | | | | | | | | | Summary: This will avoid the race condition described in the review for D37993. I believe that the Path parameter to AddBufferFn is no longer utilized. I would prefer to remove that as a follow up clean up patch to reduce the diffs in this patch. Reviewers: pcc Reviewed By: pcc Subscribers: inglorion, llvm-commits Differential Revision: https://reviews.llvm.org/D43396 llvm-svn: 325618
* [LV] Fix test checks, NFC.Alexey Bataev2018-02-202-140/+3506
| | | | llvm-svn: 325617
* [ARM] Lower BR_CC for f16Sjoerd Meijer2018-02-202-3/+32
| | | | | | | | This case wasn't handled yet. Differential Revision: https://reviews.llvm.org/D43508 llvm-svn: 325616
* [AMDGPU] Removed redundant run lines for fmuladd.f16 test. NFC.Stanislav Mekhanoshin2018-02-201-4/+0
| | | | llvm-svn: 325615
* feedbackSam Clegg2018-02-201-15/+8
| | | | llvm-svn: 325614
* [WebAssembly] Split addDefined into two different methods. NFC.Sam Clegg2018-02-203-42/+54
| | | | | | | | Subscribers: jfb, dschuff, jgravelle-google, aheejin, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D43496 llvm-svn: 325613
* [llvm-objdump] Use unique_ptr to simplify memory ownershipDavid Blaikie2018-02-201-34/+31
| | | | | | Followup to r325099/r325100 to simplify further. llvm-svn: 325612
* [X86][MMX] Regenerate MMX bitcast testSimon Pilgrim2018-02-201-6/+19
| | | | llvm-svn: 325611
* Correct multiversion unsupported target behavior, add a test.Erich Keane2018-02-202-0/+14
| | | | | | | | | | Multiversioning SEMA failed to set the declaration as invalid on unsupported targets. This patch does that. Additionally, I noticed that there is no test to validate this error message. This patch adds one, and uses 'mips' as the test architecture. llvm-svn: 325610
* [X86][3DNow] Regenerate intrinsics testsSimon Pilgrim2018-02-201-26/+693
| | | | llvm-svn: 325609
* [WebAssembly] Remove unused headerSam Clegg2018-02-202-2/+0
| | | | | | | | | This header used to be needed here for the `OutRelocation` struct but that no longer exists. Differential Revision: https://reviews.llvm.org/D43516 llvm-svn: 325608
* [IRBuilder] fix CreateMaxNum to actually produce maxnum (PR36454)Sanjay Patel2018-02-202-1/+18
| | | | | | | | | The bug was introduced here: https://reviews.llvm.org/rL296409 ...but the patch doesn't use maxnum and nothing else in trunk has tried since then, so the bug went unnoticed. llvm-svn: 325607
* [Hexagon] Handle *Low8 register classes in early if-conversionKrzysztof Parzyszek2018-02-202-0/+29
| | | | llvm-svn: 325606
* [SLP] Fix tests checks, NFC.Alexey Bataev2018-02-205-74/+249
| | | | llvm-svn: 325605
* [X86] Correct SHRUNKBLEND creation to work correctly when there are multiple ↵Craig Topper2018-02-202-35/+23
| | | | | | | | | | | | | | uses of the condition. SimplifyDemandedBits forces the demanded mask to all 1s if the node has multiple uses, unless the AssumeSingleUse flag is set. So previously we were only really likely to simplify something if the condition had a single use. And on the off chance we did simplify with multiple uses the demanded mask being used was all ones so there was no reason to create a shrunkblend. This patch now checks that the condition is only used by selects first, and then sets the AssumeSingleUse flag for the simplifcation. Then we convert the selects to shrunkblend, and finally replace condition. Differential Revision: https://reviews.llvm.org/D43446 llvm-svn: 325604
* [WebAssembly] Remove InputChunk from Symbol baseclassSam Clegg2018-02-202-36/+44
| | | | | | | | | | Instead include InputFuction and InputSegment directly in the subclasses that use them (DefinedFunction and DefinedGlobal). Differential Revision: https://reviews.llvm.org/D43493 llvm-svn: 325603
* [SelectionDAG] Add LegalTypes flag to getShiftAmountTy. Use it to unify and ↵Craig Topper2018-02-205-20/+54
| | | | | | | | | | | | | | | | | | simplify DAGCombiner and simplifySetCC code and fix a bug. DAGCombiner and SimplifySetCC both use getPointerTy for shift amounts pre-legalization. DAGCombiner uses a single helper function to hide this. SimplifySetCC does it in multiple places. This patch adds a defaulted parameter to getShiftAmountTy that can make it return getPointerTy for scalar types. Use this parameter to simplify the SimplifySetCC and DAGCombiner. Additionally, there were two places in SimplifySetCC that were creating shifts using the target's preferred shift amount pre-legalization. If the target uses a narrow type and the type is illegal, this can cause SimplfiySetCC to create a shift with an amount that can't represent all possible shift values for the type. To fix this we should use pointer type there too. Alternatively we could make getScalarShiftAmountTy for each target return a safe value for large types as proposed in D43445. And maybe we should still do that, but fixing the SimplifySetCC code keeps other targets from tripping over this in the future. Fixes PR36250. Differential Revision: https://reviews.llvm.org/D43449 llvm-svn: 325602
* [X86] Promote 16-bit cmovs to 32-bitsCraig Topper2018-02-207-34/+86
| | | | | | | | | | This allows us to avoid an opsize prefix. And forcing some move immediates to i32 avoids a length changing prefix on those instructions. This mostly replaces the existing combine we had for zext/sext+cmov of constants. I left in a case for sign extending a 32 bit cmov of constants to 64 bits. Differential Revision: https://reviews.llvm.org/D43327 llvm-svn: 325601
* [dsymutil] Correctly handle DW_TAG_labelJonas Devlieghere2018-02-203-1/+44
| | | | | | | | | This patch contains logic for handling DW_TAG_label that's present in darwin's dsymutil implementation, but not yet upstream. Differential revision: https://reviews.llvm.org/D43438 llvm-svn: 325600
* [vim] Recognize more FileCheck commentsMikhail Maltsev2018-02-201-0/+1
| | | | | | | | | | | | | | | | | Summary: Currently vim syntax highlighting recognizes 'CHECK:' as a special comment, but not CHECK-DAG, CHECK-NOT and other CHECKs. This patch adds rules for these comments. Reviewers: chandlerc, compnerd, rogfer01 Reviewed By: rogfer01 Subscribers: rogfer01, llvm-commits Differential Revision: https://reviews.llvm.org/D43289 llvm-svn: 325599
* [WebAssembly] Check signatures of weakly defined funtions tooSam Clegg2018-02-203-0/+26
| | | | | | | | Subscribers: jfb, dschuff, jgravelle-google, aheejin, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D43492 llvm-svn: 325598
* [InstCombine] remove unneeded dyn_cast to prevent unused variable warningSanjay Patel2018-02-201-2/+1
| | | | llvm-svn: 325597
* [clangd] Fix formatting in XRefs.cppSimon Marchi2018-02-201-2/+2
| | | | | | This is also to test my commit access. llvm-svn: 325596
* [InstCombine] remove compound fdiv pattern foldsSanjay Patel2018-02-201-27/+1
| | | | | | | | | | | | | | These are fdiv-with-constant-divisor, so they already become reciprocal multiplies. The last gap for vector ops should be closed with rL325590. It's possible that we're missing folds for some edge cases with denormal intermediate constants after deleting these, but there are no tests for those patterns, and it would be better to handle denormals more consistently (and less conservatively) as noted in TODO comments. llvm-svn: 325595
* PR36442: Correct description of -fsplit-dwarf-inliningDavid Blaikie2018-02-201-1/+1
| | | | llvm-svn: 325594
* Stop linking sanitized applications with -lutil and -lkvm on NetBSDKamil Rytarowski2018-02-201-6/+0
| | | | | | | | | The proper approach is to rebuild libutil and libkvm with a desired sanitizer. An alternative approach to reimplement these functions (and other ones like curses(3), editline(3) etc) does not scale and enforces linkage every single binary with these libraries. llvm-svn: 325593
* [InstCombine] fold fdiv with non-splat divisor to fmul: X/C --> X * (1/C)Sanjay Patel2018-02-205-25/+49
| | | | llvm-svn: 325590
OpenPOWER on IntegriCloud