summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fixed a typo in llvm-cov/deferred-region.cpp test.Ilya Biryukov2017-09-111-1/+1
| | | | | | Input redirection was using `2&>1` instead of `2>&1`. llvm-svn: 312902
* [clang-tidy] add more aliases for the hicpp moduleJonas Toth2017-09-1114-2/+158
| | | | | | | | This patch will introduce even more aliases for the hicpp-module to already existing checks and is a follow up for D30383 finishing the other sections. It fixes a forgotten highlight in hicpp-braces-around-statements.rst, too. llvm-svn: 312901
* AMDGPU: trivial comment changeTim Renouf2017-09-111-1/+1
| | | | | | ... to check commit access for new committer. llvm-svn: 312900
* [ARM] Use ADDCARRY / SUBCARRYRoger Ferrer Ibanez2017-09-114-35/+294
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is a preparatory step for D34515 and also is being recommitted as its first version caused PR34045. This change: - makes nodes ISD::ADDCARRY and ISD::SUBCARRY legal for i32 - lowering is done by first converting the boolean value into the carry flag using (_, C) ← (ARMISD::ADDC R, -1) and converted back to an integer value using (R, _) ← (ARMISD::ADDE 0, 0, C). An ARMISD::ADDE between the two operations does the actual addition. - for subtraction, given that ISD::SUBCARRY second result is actually a borrow, we need to invert the value of the second operand and result before and after using ARMISD::SUBE. We need to invert the carry result of ARMISD::SUBE to preserve the semantics. - given that the generic combiner may lower ISD::ADDCARRY and ISD::SUBCARRYinto ISD::UADDO and ISD::USUBO we need to update their lowering as well otherwise i64 operations now would require branches. This implies updating the corresponding test for unsigned. - add new combiner to remove the redundant conversions from/to carry flags to/from boolean values (ARMISD::ADDC (ARMISD::ADDE 0, 0, C), -1) → C - fixes PR34045 Differential Revision: https://reviews.llvm.org/D35192 llvm-svn: 312898
* Revert r312830: "Reinstall the patch "Use EmitPointerWithAlignment to get ↵Daniel Jasper2017-09-112-38/+8
| | | | | | | | | alignment information of the pointer used in atomic expr"." This triggers llvm.org/PR31620 in several of our internal builds. I'll forward reproduction instructions to the original author. llvm-svn: 312897
* Fixed a bug in splitting Scatter operation in the Type Legalizer.Elena Demikhovsky2017-09-112-11/+9
| | | | | | | | | After the split of the Scatter operation, the order of the new instructions is well defined - Lo goes before Hi. Otherwise the semantic of Scatter (from LSB to MSB) is broken. I'm chaining 2 nodes to prevent reordering. Differential Revision https://reviews.llvm.org/D37670 llvm-svn: 312894
* [ORC] Kill off a dead typedef.Lang Hames2017-09-111-6/+0
| | | | llvm-svn: 312893
* Fix PR34298 - Allow std::function with an incomplete return type.Eric Fiselier2017-09-103-26/+54
| | | | | | | | | | | | | This patch fixes llvm.org/PR34298. Previously libc++ incorrectly evaluated the __invokable trait via the converting constructor `function(Tp)` [with Tp = std::function] whenever the copy constructor or copy assignment operator was required. This patch further constrains that constructor to short circut before evaluating the troublesome SFINAE when `Tp` matches std::function. The original patch is from Alex Lorenz. llvm-svn: 312892
* Revert "Fix PR34298 - Allow std::function with an incomplete return type."Eric Fiselier2017-09-103-54/+26
| | | | | | | | | | | This reverts commit r312890 because the test case fails to compile for older versions of Clang that reject initializing a const object without a user defined constructor. Since this patch should go into 5.0.1, I want to keep it an atomic change, and will re-commit it with a fixed test case. llvm-svn: 312891
* Fix PR34298 - Allow std::function with an incomplete return type.Eric Fiselier2017-09-103-26/+54
| | | | | | | | | | | | | This patch fixes llvm.org/PR34298. Previously libc++ incorrectly evaluated the __invokable trait via the converting constructor `function(Tp)` [with Tp = std::function] whenever the copy constructor or copy assignment operator was required. This patch further constrains that constructor to short circut before evaluating the troublesome SFINAE when `Tp` matches std::function. The original patch is from Alex Lorenz. llvm-svn: 312890
* Add objcImplementationDecl matcherDave Lee2017-09-104-0/+24
| | | | | | | | | | | | | | | | | | | | | Summary: Add the `objcImplementationDecl` matcher. See related: D30854 Tested with: ``` ./tools/clang/unittests/ASTMatchers/ASTMatchersTests ``` Reviewers: aaron.ballman, compnerd, alexshap Reviewed By: aaron.ballman Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D37643 llvm-svn: 312889
* Use llvm_unreachable for unknown TargetCostKind.Simon Pilgrim2017-09-101-2/+1
| | | | | | TargetTransformInfo::getInstructionCost's switch covers all TargetCostKind cases so we shouldn't return for a default case. llvm-svn: 312888
* [X86][SSE] Tidyup + clang-format combineX86ShuffleChain call. NFCI.Simon Pilgrim2017-09-101-3/+2
| | | | llvm-svn: 312887
* [X86][SSE] Move combineTo call out of combineX86ShufflesConstants. NFCI.Simon Pilgrim2017-09-101-11/+13
| | | | | | Move towards making it possible to use the shuffle combines for cases where we don't want to call DCI.CombineTo() with the result. llvm-svn: 312886
* [InstSimplify] refactor udiv/urem code and add tests; NFCISanjay Patel2017-09-103-18/+168
| | | | | | | | | This removes some duplicated code and makes it easier to support signed div/rem in a similar way if we want to do that. Note that the existing comments were not accurate - we don't need a constant divisor to simplify; icmp simplification does more than that. But as the added tests show, it could go even further. llvm-svn: 312885
* [X86][SSE] Move combineTo call out of combineX86ShuffleChain. NFCI.Simon Pilgrim2017-09-101-74/+46
| | | | | | First step towards making it possible to use the shuffle combines for cases where we don't want to call DCI.CombineTo() with the result. llvm-svn: 312884
* Added a test that demonstrates a ug in Scatter scheduling.Elena Demikhovsky2017-09-101-0/+23
| | | | | | | The bug is going to be fixed in an upcomming patch. llvm-svn: 312883
* [clang][SemaStmtAsm] small refactoring, NFC.Coby Tayree2017-09-101-3/+5
| | | | llvm-svn: 312882
* [X86][X86AsmParser] adding const on InlineAsmIdentifierInfo in ↵Coby Tayree2017-09-101-2/+2
| | | | | | CreateMemForInlineAsm. NFC. llvm-svn: 312881
* Revert "adding autoUpgrade support to broadcast[f|i]32x2 intrinsics"Uriel Korach2017-09-103-20/+31
| | | | | | This reverts commit r312879 - An accidental partial commit. llvm-svn: 312880
* adding autoUpgrade support to broadcast[f|i]32x2 intrinsicsUriel Korach2017-09-103-31/+20
| | | | llvm-svn: 312879
* Test commitUriel Korach2017-09-101-1/+1
| | | | llvm-svn: 312878
* set the svn:executable property, seems that it is necessary for apache ↵Sylvestre Ledru2017-09-101-0/+0
| | | | | | (discussed with Tanya by email) llvm-svn: 312877
* [SCEV] Re-arrange public and private sections to be contiguous; NFCSanjoy Das2017-09-101-539/+536
| | | | llvm-svn: 312876
* [CodegenCleanup] Update cleanup passes according (old) PassManagerBuilder.Michael Kruse2017-09-091-8/+18
| | | | | | | | | | | | | | | | | | | | | | | | | Update CodegenCleanup using the function-level passes added by populatePassManager that run between EP_EarlyAsPossible and EP_VectorizerStart in -O3. The changes in particular are: - Added pass create arguments, e.g. ExpensiveCombines for InstCombine. - Remove reroll pass. The option -reroll-loops is disabled by default. - Add passes run with UnitAtATime, which is the default. - Add instances of LibCallsShrinkWrap, TailCallElimination, SCCP (sparse conditional constant propagation), Float2Int that did not run before. - Add instances of GVN as in the default pipeline. Notes: - GVNHoist, GVNSink, NewGVN are still disabled in the -O3 pipeline. - The optimization level and other optimization parameters are not accessible outside of PassManagerBuilder, hence we cannot add passes depending on these. Differential Revision: https://reviews.llvm.org/D37571 llvm-svn: 312875
* [X86] Add v2i4 store test case (PR20012)Simon Pilgrim2017-09-091-0/+17
| | | | llvm-svn: 312874
* [X86] Add v2i2 test case (PR20011)Simon Pilgrim2017-09-091-0/+33
| | | | llvm-svn: 312873
* [asan] Fix tests broken by r312858Vitaly Buka2017-09-092-5/+5
| | | | llvm-svn: 312872
* [X86][FMA] Regenerate FMA testsSimon Pilgrim2017-09-094-715/+910
| | | | llvm-svn: 312871
* clang fix for LLVM API change: isKnownNonNull -> isKnownNonZeroNuno Lopes2017-09-092-4/+6
| | | | | | Differential Revision: https://reviews.llvm.org/D37628 llvm-svn: 312870
* Merge isKnownNonNull into isKnownNonZeroNuno Lopes2017-09-0917-149/+142
| | | | | | | | | It now knows the tricks of both functions. Also, fix a bug that considered allocas of non-zero address space to be always non null Differential Revision: https://reviews.llvm.org/D37628 llvm-svn: 312869
* [X86][SSE] i32 vector multiplications test cases from PR6399Simon Pilgrim2017-09-091-0/+472
| | | | llvm-svn: 312868
* [X86][MOVBE] Fix typo in MOVBE scheduling test namesSimon Pilgrim2017-09-091-21/+21
| | | | | | Copy+paste is not your friend llvm-svn: 312867
* [X86] Don't disable slow INC/DEC if optimizing for sizeCraig Topper2017-09-095-33/+28
| | | | | | | | | | | | | | | | | Summary: Just because INC/DEC is a little slow on some processors doesn't mean we shouldn't prefer it when optimizing for size. This appears to match gcc behavior. Reviewers: chandlerc, zvi, RKSimon, spatel Reviewed By: RKSimon Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D37177 llvm-svn: 312866
* [Basic] Update CMakeLists.txt to handle repoMinSeong Kim2017-09-091-33/+0
| | | | | | | | | | | | | | | | | | | | | | | Summary: The find_first_existing_file and find_first_existing_vc_file macros in lib/Basic/CMakeLists.txt are removed. The macros are also defined in {LLVM}/cmake/modules/AddLLVM.cmake for the same purpose. This change serves the following 2 objectives: 1. To remove the redundant code in clang to use the same macros in llvm, 2. The macros in AddLLVM.cmake can also handle repo for displaying correct version information. Reviewers: jordan_rose, cfe-commits, modocache, hintonda Reviewed By: hintonda Subscribers: mgorny Differential Revision: https://reviews.llvm.org/D35533 llvm-svn: 312865
* [CMake] Update GetSVN.cmake to handle repoMinSeong Kim2017-09-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: When repo is used with git, 'clang --version' option does not display the correct revision information (i.e. git hash on TOP) as the following: clang version 6.0.0 ---> clang version 6.0.0 (clang version) (llvm version) This is because repo also creates .git/svn folder as git-svn does and this makes repo with git uses "git svn info" command, which is only for git-svn, to retrieve its revision information, making null for the info. To correctly distinguish between git-svn and repo with git, the folder hierarchy to specify for git-svn should be .git/svn/refs as the "git svn info" command depends on the revision data in .git/svn/refs. This patch in turn makes repo with git passes through to the third macro, get_source_info_git, in get_source_info function, resulting in correctly retrieving the revision information for repo with git using "git log ..." command. This patch is tested with git, svn, git-svn, and repo with git. Reviewers: llvm-commits, probinson, rnk Reviewed By: rnk Subscribers: rnk, mehdi_amini, beanz, mgorny Differential Revision: https://reviews.llvm.org/D35532 llvm-svn: 312864
* [DivRemPairs] split tests per target to account for bots that don't build ↵Sanjay Patel2017-09-095-364/+606
| | | | | | for all targets llvm-svn: 312863
* [DivRempairs] add a pass to optimize div/rem pairs (PR31028)Sanjay Patel2017-09-0917-0/+647
| | | | | | | | | | | | | | | | | | This is intended to be a superset of the functionality from D31037 (EarlyCSE) but implemented as an independent pass, so there's no stretching of scope and feature creep for an existing pass. I also proposed a weaker version of this for SimplifyCFG in D30910. And I initially had almost this same functionality as an addition to CGP in the motivating example of PR31028: https://bugs.llvm.org/show_bug.cgi?id=31028 The advantage of positioning this ahead of SimplifyCFG in the pass pipeline is that it can allow more flattening. But it needs to be after passes (InstCombine) that could sink a div/rem and undo the hoisting that is done here. Decomposing remainder may allow removing some code from the backend (PPC and possibly others). Differential Revision: https://reviews.llvm.org/D37121 llvm-svn: 312862
* CoverageMappingTest.cpp: Suppress warnings. [-Wdocumentation]NAKAMURA Takumi2017-09-091-6/+6
| | | | llvm-svn: 312861
* [ubsan] Enable UBsan in sanitizer_common testsVitaly Buka2017-09-0925-12/+32
| | | | | | | | | | | | | | Summary: Failing tests just marked as UNSUPPORTED or XFAIL. Some of them can be easily supported, but I'll do this in separate patches. Reviewers: eugenis, alekseyshl Subscribers: srhines, kubamracek, llvm-commits, mgorny Differential Revision: https://reviews.llvm.org/D37630 llvm-svn: 312860
* [compiler-rt] Move allow_user_segv.cc into sanitizer_commonVitaly Buka2017-09-091-10/+15
| | | | | | | | | | | | Summary: Part of https://github.com/google/sanitizers/issues/637 Reviewers: eugenis Subscribers: kubamracek, dberris, llvm-commits Differential Revision: https://reviews.llvm.org/D37537 llvm-svn: 312859
* [asan] Use more generic string in error messageVitaly Buka2017-09-092-4/+6
| | | | | | | | | | | | Summary: Part of https://github.com/google/sanitizers/issues/637 Reviewers: eugenis, alekseyshl Subscribers: llvm-commits, kubamracek Differential Revision: https://reviews.llvm.org/D37609 llvm-svn: 312858
* [X86] Call removeDeadNode when we're done doing custom isel for mul, div and ↵Craig Topper2017-09-091-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | test Summary: Once we've done our custom isel for these nodes, I think we should be calling removeDeadNode to prune them out of the DAG. Table driven isel ultimately either calls morphNodeTo which modifies a node and doesn't leave dead nodes. Or it emits new nodes and then calls removeDeadNode as part of Opc_CompleteMatch. If you run a simple multiply test case like this through llc with -debug you'll see a umul_lohi node get printed as part of the dump for Instruction Selection ends. ``` define i64 @foo(i64 %a, i64 %b) local_unnamed_addr #0 { entry: %conv = zext i64 %a to i128 %conv1 = zext i64 %b to i128 %mul = mul nuw nsw i128 %conv1, %conv %shr = lshr i128 %mul, 64 %conv2 = trunc i128 %shr to i64 ret i64 %conv2 } ``` Reviewers: RKSimon, spatel, zvi, guyblank, niravd Reviewed By: niravd Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D37547 llvm-svn: 312857
* [X86] Use ReplaceNode instead of ReplaceUses when converting ↵Craig Topper2017-09-091-1/+1
| | | | | | | | X86ISD::SHRUNKBLEND to ISD::VSELECT during isel. This ensures that the SHRUNKBLEND node gets erased immediately. llvm-svn: 312856
* [sanitizer-coverage] call appendToUsed once per module, not once per ↵Kostya Serebryany2017-09-091-8/+8
| | | | | | function (which is too slow) llvm-svn: 312855
* integer: Add popcount implementation using ctpop intrinsicAaron Watry2017-09-093-0/+27
| | | | | | | | | | | | | Also copy/modify the unary_intrin.inc from math/ to make the intrinsic declaration somewhat reusable. Passes CL CTS integer_ops/test_integer_ops popcount tests for CL 1.2 Tested-by on GCN 1.0 (Pitcairn) Signed-off-by: Aaron Watry <awatry@gmail.com> Reviewed-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 312854
* [SLP] Fix buildbots, NFC.Alexey Bataev2017-09-091-2/+2
| | | | llvm-svn: 312853
* RegAllocFast: Fix warning; NFCMatthias Braun2017-09-091-2/+1
| | | | llvm-svn: 312852
* Fix ownership of the MemoryBuffer in a FrontendInputFile.Richard Smith2017-09-095-25/+39
| | | | | | | | This fixes a possible crash on certain kinds of corrupted AST file, but checking in an AST file corrupted in just the right way will be a maintenance nightmare because the format changes frequently. llvm-svn: 312851
* [cxx_status] Change "Clang 5" items from yellow to green now that Clang 5 ↵Richard Smith2017-09-093-17/+14
| | | | | | has been released. llvm-svn: 312850
OpenPOWER on IntegriCloud