summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix improper indentation issue in CodeGenModule [NFC]Erich Keane2018-02-081-2/+2
| | | | llvm-svn: 324644
* Fix missing field initializer warning in TableGen SubtargetEmitterDavid Blaikie2018-02-081-3/+4
| | | | llvm-svn: 324643
* [MSan] Update uses of IRBuilder::CreateMemCpy to new API (NFC)Daniel Neilson2018-02-081-19/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This change is part of step five in the series of changes to remove alignment argument from memcpy/memmove/memset in favour of alignment attributes. In particular, this changes the MemorySanitizer pass to cease using the old IRBuilder CreateMemCpy single-alignment APIs in favour of the new API that allows setting source and destination alignments independently. Steps: Step 1) Remove alignment parameter and create alignment parameter attributes for memcpy/memmove/memset. ( rL322965, rC322964, rL322963 ) Step 2) Expand the IRBuilder API to allow creation of memcpy/memmove with differing source and dest alignments. ( rL323597 ) Step 3) Update Clang to use the new IRBuilder API. ( rC323617 ) Step 4) Update Polly to use the new IRBuilder API. ( rL323618 ) Step 5) Update LLVM passes that create memcpy/memmove calls to use the new IRBuilder API, and those that use use MemIntrinsicInst::[get|set]Alignment() to use [get|set]DestAlignment() and [get|set]SourceAlignment() instead. ( rL323886, rL323891, rL324148, rL324273, rL324278, rL324384, rL324395, rL324402, rL324626 ) Step 6) Remove the single-alignment IRBuilder API for memcpy/memmove, and the MemIntrinsicInst::[get|set]Alignment() methods. Reference http://lists.llvm.org/pipermail/llvm-dev/2015-August/089384.html http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151109/312083.html llvm-svn: 324642
* Fix crash on array initializer with non-0 alloca addrspaceMatt Arsenault2018-02-083-4/+39
| | | | llvm-svn: 324641
* The apple versions of clang don't support deduction guides yet.Marshall Clow2018-02-082-0/+2
| | | | llvm-svn: 324640
* Regenerate testSimon Pilgrim2018-02-081-3/+3
| | | | llvm-svn: 324639
* [X86] Add common CHECK prefix to shift combine testsSimon Pilgrim2018-02-083-125/+59
| | | | llvm-svn: 324638
* [X86] Add shift undef, %X testsSimon Pilgrim2018-02-083-0/+79
| | | | llvm-svn: 324637
* [InstCombine] visitSRem - use m_Negative(APInt) helper. NFCI.Simon Pilgrim2018-02-081-1/+1
| | | | llvm-svn: 324636
* [InstCombine] Add vector udiv testsSimon Pilgrim2018-02-081-0/+27
| | | | | | Tests for X udiv C, where C >= signbit llvm-svn: 324635
* [SelectionDAG] Add a helper function for creating a boolean constant based ↵Craig Topper2018-02-083-82/+86
| | | | | | | | | | | | | on the target's boolean content Many in SimplifySetCC and FoldSetCC try to create true or false constants. Some of them query getBooleanContents to figure out whether to use all ones or just 1 for true. But many places do not check and just use 1 without ensuring the VT has an i1 scalar type. Note sure if those places only trigger before type legalization so they only see an i1 type? To cleanup the inconsistency and reduce some duplicated code, this patch adds a getBoolConstant method to SelectionDAG that takes are of querying getBooleanContents and doing the right thing. Differential Revision: https://reviews.llvm.org/D43037 llvm-svn: 324634
* Simplify function prototypes in bugpoint, NFCVedant Kumar2018-02-081-31/+21
| | | | llvm-svn: 324633
* Change "UNSUPPORTED: windows" to be "UNSUPPORTED: system-windows" so that ↵Douglas Yung2018-02-088-8/+8
| | | | | | | | test is actually skipped on Windows. Reviewed by Paul Robinson llvm-svn: 324632
* [InstCombine] Add m_Negative pattern matchingSimon Pilgrim2018-02-083-4/+13
| | | | | | Allows us to add non-uniform constant vector support for "X urem C -> X < C ? X : X - C, where C >= signbit." llvm-svn: 324631
* [X86] Add a few new test cases for shrunkblend combineCraig Topper2018-02-081-0/+83
| | | | | | | | One of them shows a missed opportunity to use SimplifyDemandedBits on the condition when its used by multiple vselects. The other is a case we shouldn't optimize because the condition has a non-vselect use. llvm-svn: 324630
* [InstCombine] Add vector urem tests.Simon Pilgrim2018-02-081-0/+54
| | | | | | Improve coverage of InstCombiner::visitURem for vector types llvm-svn: 324629
* Use ranged for loops in TypeFinder.cpp, NFCVedant Kumar2018-02-081-30/+20
| | | | llvm-svn: 324628
* [InstCombine] Regenerate vector mul tests.Simon Pilgrim2018-02-081-156/+193
| | | | llvm-svn: 324627
* [LoopIdiom] Be more aggressive when setting alignment in memcpyDaniel Neilson2018-02-082-4/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This change is part of step five in the series of changes to remove alignment argument from memcpy/memmove/memset in favour of alignment attributes. In particular, this changes the LoopIdiom pass to cease using the old IRBuilder CreateMemCpy single-alignment APIs in favour of the new API that allows setting source and destination alignments independently. This allows us to be slightly more aggressive in setting the alignment of memcpy calls that loop idiom creates. Steps: Step 1) Remove alignment parameter and create alignment parameter attributes for memcpy/memmove/memset. ( rL322965, rC322964, rL322963 ) Step 2) Expand the IRBuilder API to allow creation of memcpy/memmove with differing source and dest alignments. ( rL323597 ) Step 3) Update Clang to use the new IRBuilder API. ( rC323617 ) Step 4) Update Polly to use the new IRBuilder API. ( rL323618 ) Step 5) Update LLVM passes that create memcpy/memmove calls to use the new IRBuilder API, and those that use use MemIntrinsicInst::[get|set]Alignment() to use [get|set]DestAlignment() and [get|set]SourceAlignment() instead. ( rL323886, rL323891, rL324148, rL324273, rL324278, rL324384, rL324395, rL324402 ) Step 6) Remove the single-alignment IRBuilder API for memcpy/memmove, and the MemIntrinsicInst::[get|set]Alignment() methods. Reference http://lists.llvm.org/pipermail/llvm-dev/2015-August/089384.html http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151109/312083.html llvm-svn: 324626
* Fix signed/unsigned compare warning I introducedErich Keane2018-02-081-2/+2
| | | | | | | | 'size' of a vector is unsigned, and I accidentially compared it to an int through GTEST. I switched it to unsigned, which is the template parameter type anyway. llvm-svn: 324625
* Once more, with feeling. Spell 'clang-4.0' correctly this timeMarshall Clow2018-02-082-2/+2
| | | | llvm-svn: 324624
* [ARM] Add 'fillValidCPUArchList' to ARM targetsErich Keane2018-02-083-0/+44
| | | | | | | | | This is a support change for a CFE change (https://reviews.llvm.org/D42978) that allows march and -target-cpu to list the valid targets in a note. The changes are limited to the ARM/AArch64, since this is the only target that gets the CPU list from LLVM. llvm-svn: 324623
* [dsymutil] Use llvm::sys::path to join bundle path.Jonas Devlieghere2018-02-081-3/+4
| | | | | | | | When processing a dSYM bundle, use llvm::sys::path to join the different path components instead of using a string with hard coded forward slashes as separators. llvm-svn: 324622
* [dwarfdump] Normalize input path.Jonas Devlieghere2018-02-081-0/+2
| | | | | | | | | Before this patch, llvm-dwarfdump would reject `bundel.dSYM/` as input, while `bundel.dSYM` was accepted. The reason is that `path::extension()` returns an empty string for the former, leading to the argument not being recognized as a dSYM bundle. llvm-svn: 324621
* [scudo] Allow options to be defined at compile timeKostya Kortchinsky2018-02-085-11/+18
| | | | | | | | | | | | | | | | Summary: Allow for options to be defined at compile time, like is already the case for other sanitizers, via `SCUDO_DEFAULT_OPTIONS`. Reviewers: alekseyshl, dberris Reviewed By: alekseyshl, dberris Subscribers: kubamracek, delcypher, llvm-commits, #sanitizers Differential Revision: https://reviews.llvm.org/D42980 llvm-svn: 324620
* Clean up string's deduction guides tests. Mark old versions of clang as ↵Marshall Clow2018-02-083-58/+83
| | | | | | unsupported, b/c they don't have deduction guides, even in C++17 mode llvm-svn: 324619
* [clang-format] Do not break Objective-C string literals inside array literalsBen Hamilton2018-02-083-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Concatenating Objective-C string literals inside an array literal raises the warning -Wobjc-string-concatenation (which is enabled by default). clang-format currently splits and concatenates string literals like the following: NSArray *myArray = @[ @"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ]; into: NSArray *myArray = @[ @"aaaaaaaaaaaaaaaaaaaaaaaaaaaa" @"aaaaaaaaa" ]; which raises the warning. This is https://bugs.llvm.org/show_bug.cgi?id=36153 . The options I can think of to fix this are: 1) Have clang-format disable Wobjc-string-concatenation by emitting pragmas around the formatted code 2) Have clang-format wrap the string literals in a macro (which disables the warning) 3) Disable string splitting for Objective-C string literals inside array literals I think 1) has no precedent, and I couldn't find a good identity() macro for 2). So, this diff implements 3). Test Plan: make -j12 FormatTests && ./tools/clang/unittests/Format/FormatTests Reviewers: jolesiak, stephanemoore, djasper Reviewed By: jolesiak Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D42704 llvm-svn: 324618
* [AMDGPU] Updae documentation about address spaceYaxun Liu2018-02-081-25/+13
| | | | llvm-svn: 324617
* [SLPVectorizer] auto-generate complete checks; NFCSanjay Patel2018-02-081-18/+52
| | | | llvm-svn: 324616
* [SLPVectorizer] auto-generate complete checks; NFCSanjay Patel2018-02-081-14/+43
| | | | llvm-svn: 324615
* [SLPVectorizer] move RUN line to top-of-file; NFCSanjay Patel2018-02-081-1/+1
| | | | | | | I was confused what we were checking because the RUN line was in the middle of the file. llvm-svn: 324614
* [InstCombine] Fix issue with X udiv (POW2_C1 << N) for non-splat constant ↵Simon Pilgrim2018-02-082-4/+55
| | | | | | | | vectors foldUDivShl was assuming that the input was a scalar or a splat constant llvm-svn: 324613
* [SLPVectorizer] auto-generate complete checks; NFCSanjay Patel2018-02-081-30/+145
| | | | llvm-svn: 324612
* [LoopVectorize] auto-generate complete checks; NFCSanjay Patel2018-02-081-5/+80
| | | | llvm-svn: 324611
* [ValueTracking] don't crash when assumptions conflict (PR36270)Sanjay Patel2018-02-082-0/+29
| | | | | | | | | | | | | | The last assume in the test says that %B12 is 0. The first assume says that %and1 is less than %B12. Therefore, %and1 is unsigned less than 0...does not compute. That means this line: Known.Zero.setHighBits(RHSKnown.countMinLeadingZeros() + 1); ...tries to set more bits than exist. Differential Revision: https://reviews.llvm.org/D43052 llvm-svn: 324610
* Update the status of removed componentsMarshall Clow2018-02-081-14/+14
| | | | llvm-svn: 324609
* [InstCombine] Fix issue with X udiv 2^C -> X >> C for non-splat constant vectorsSimon Pilgrim2018-02-082-3/+25
| | | | | | foldUDivPow2Cst was assuming that the input was a scalar or a splat constant llvm-svn: 324608
* [Parser][FixIt] Better diagnostics for "typedef" instead of "typename" typoJan Korous2018-02-084-14/+47
| | | | | | | | rdar://problem/10214588 Differential Revision: https://reviews.llvm.org/D42170 llvm-svn: 324607
* [ARM] Re-commit r324600 with fixed LLVMBuild.txtOliver Stannard2018-02-084-12/+36
| | | | | | | | | | | | | | | | | | | | | | ARMDisassembler now depends on the banked register tables in ARMUtils, so the LLVMBuild.txt needed updating to reflect this. Original commit mesage: [ARM] Fix disassembly of invalid banked register moves When disassembling banked register move instructions, we don't have an assembly syntax for the unallocated register numbers, so we have to return Fail rather than SoftFail. Previously we were returning SoftFail, then crashing in the InstPrinter as we have no way to represent these encodings in an assembly string. This also switches the decoder to use the table-generated list of banked registers, removing the duplicated list of encodings. Differential revision: https://reviews.llvm.org/D43066 llvm-svn: 324606
* Fix unused variable warning.Simon Pilgrim2018-02-081-1/+1
| | | | llvm-svn: 324605
* Revert r324600 as it breaks a buildbotOliver Stannard2018-02-083-35/+11
| | | | | | | | The broken bot (clang-ppc64le-linux-multistage) is doign a shared-object build, so I guess using lookupBankedRegByEncoding in the disassembler is a layering violation? llvm-svn: 324604
* [InstCombine] Improve mul(x, pow2) -> shl combine for vector constantsSimon Pilgrim2018-02-083-19/+23
| | | | | | Refactor getLogBase2Vector into getLogBase2 to accept all scalars/vectors. Generalize from ConstantDataVector to support all constant vectors. llvm-svn: 324603
* [x86] Add test/CodeGen/X86/vmaskmov-offset.ll. NFC.Alexander Ivchenko2018-02-081-0/+42
| | | | | | Needed for checking current code generation. llvm-svn: 324601
* [ARM] Fix disassembly of invalid banked register movesOliver Stannard2018-02-083-11/+35
| | | | | | | | | | | | | | | When disassembling banked register move instructions, we don't have an assembly syntax for the unallocated register numbers, so we have to return Fail rather than SoftFail. Previously we were returning SoftFail, then crashing in the InstPrinter as we have no way to represent these encodings in an assembly string. This also switches the decoder to use the table-generated list of banked registers, removing the duplicated list of encodings. Differential revision: https://reviews.llvm.org/D43066 llvm-svn: 324600
* [clangd] Update include guard in Annotations.h. NFCIlya Biryukov2018-02-081-2/+2
| | | | llvm-svn: 324599
* [test][dsymutil] Fix tests for Windows bots.Jonas Devlieghere2018-02-083-17/+2
| | | | | | | | | | The UNSUPPORTED directive was not honored by the bot, presumably because of the FIXME above it. This moves the comment down and removes the remaining update check from basic-linking-x86.test. This should un-break: llvm-clang-x86_64-expensive-checks-win/builds/7798/ llvm-svn: 324598
* Add missed PostDominatorTree analysis dependency to GVN hoist pass.Alexander Ivchenko2018-02-081-0/+1
| | | | | | | | | | | | | Summary: GVN hoist pass is using PostDominatorTree analysis, therefore the analysis should be listed in the pass initialization as a dependency. Reviewed By: sebpop Differential Revision: https://reviews.llvm.org/D43007 Author: ashlykov <arkady.shlykov@intel.com> llvm-svn: 324597
* [libcxx] Avoid spurious construction of valarray elementsMikhail Maltsev2018-02-085-21/+139
| | | | | | | | | | | | | | | | | | | | | Summary: Currently libc++ implements some operations on valarray by using the resize method. This method has a parameter with a default value. Because of this, valarray may spuriously construct and destruct objects of valarray's element type. This patch fixes this issue and adds corresponding test cases. Reviewers: EricWF, mclow.lists Reviewed By: mclow.lists Subscribers: rogfer01, cfe-commits Differential Revision: https://reviews.llvm.org/D41992 llvm-svn: 324596
* [X86][MC]: Adding test coverage of MC encoding for several small ↵Gadi Haber2018-02-0823-0/+1602
| | | | | | | | | | | | | | | | extensions.<NFC> NFC. Adding MC regressions tests to cover several small x86 extensions as follows: CLWB, CLZERO, F16C, INVPCID, PKU, POPCNT, RTM, SGX, SHA, SVM, VMFUNC, VTX This patch is part of a larger task to cover MC encoding of all X86 isa sets started in revision: https://reviews.llvm.org/D39952 Reviewers: RKSimon, craig.topper, zvi, AndreiGrischenko Differential Revision: https://reviews.llvm.org/D41388 Change-Id: I254508cd17faca00b780be0fc2abf6c71b61faab llvm-svn: 324595
* Fix for #31362 - ms_abi is implemented incorrectly for values >=16 bytes.Alexander Ivchenko2018-02-082-1/+24
| | | | | | | | | | | | | | | | Summary: This patch is a fix for following issue: https://bugs.llvm.org/show_bug.cgi?id=31362 The problem was caused by front end lowering C calling conventions without taking into account calling conventions enforced by attribute. In this case win64cc was no correctly lowered on targets other than Windows. Reviewed By: rnk (Reid Kleckner) Differential Revision: https://reviews.llvm.org/D43016 Author: belickim <mateusz.belicki@intel.com> llvm-svn: 324594
OpenPOWER on IntegriCloud