summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [WebAssembly] Add getName and getFileName methods to InputChunk base class. NFC.Sam Clegg2018-01-282-4/+6
| | | | | | | | | | Summary: These are useful to upcoming addition of --gc-sections support. Subscribers: jfb, dschuff, jgravelle-google, aheejin, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D42626 llvm-svn: 323623
* clang formatSam Clegg2018-01-286-21/+21
| | | | llvm-svn: 323622
* [WebAssemly] Associate symbol with InputChunk in which they are defined. NFC.Sam Clegg2018-01-288-48/+58
| | | | | | | | | | | | | | | | Summary: Rather than explicit Function or InputSegment points store a pointer to the base class (InputChunk) and use llvm dynamic casts when we need a subtype. This change is useful for add the upcoming gc-section support wants to deal with all input chunks. Subscribers: aheejin, llvm-commits Differential Revision: https://reviews.llvm.org/D42625 llvm-svn: 323621
* [WebAssembly] Remove unneeded include. NFC.Sam Clegg2018-01-281-4/+2
| | | | llvm-svn: 323620
* [InlineCost] Mark functions accessing varargs as not viable.Florian Hahn2018-01-282-8/+27
| | | | | | | | | | | | | This prevents functions accessing varargs from being inlined if they have the alwaysinline attribute. Reviewers: efriedma, rnk, davide Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D42556 llvm-svn: 323619
* Change memcpy/memove/memset to have dest and source alignment attributes.Daniel Neilson2018-01-281-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This change is step four in the series of changes to remove alignment argument from memcpy/memmove/memset in favour of alignment attributes. 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. 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. 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 Reviewers: jdoerfert, grosser, bollu Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D41677 llvm-svn: 323618
* Change memcpy/memove/memset to have dest and source alignment attributes.Daniel Neilson2018-01-2820-68/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This change is step three in the series of changes to remove alignment argument from memcpy/memmove/memset in favour of alignment attributes. 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. Step 4) Update Polly to use the new IRBuilder API. 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 getDestAlignment() and getSourceAlignment() instead. 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 Reviewers: rjmccall Subscribers: jyknight, nemanjai, nhaehnle, javed.absar, sbc100, aheejin, kbarton, fedor.sergeev, cfe-commits Differential Revision: https://reviews.llvm.org/D41677 llvm-svn: 323617
* [Support] Move DJB hash to support. NFCJonas Devlieghere2018-01-287-11/+50
| | | | | | | | | | | This patch moves the DJB hash to support. This is consistent with other hashing algorithms living there. The hash is used by the DWARF accelerator tables. We're doing this now because the hashing function is needed by dsymutil and we don't want to link against libBinaryFormat. Differential revision: https://reviews.llvm.org/D42594 llvm-svn: 323616
* [git-clang-format] Process CUDA filesJonas Hahnfeld2018-01-281-0/+1
| | | | | | | | | Clang supports compiling CUDA source files for some time, format them by default as well. Differential Revision: https://reviews.llvm.org/D42589 llvm-svn: 323615
* [X86] Fix a crash that can occur in combineExtractVectorElt due to not ↵Craig Topper2018-01-282-19/+38
| | | | | | checking the width of a ConstantSDNode before calling getConstantOperandVal. llvm-svn: 323614
* [xray] Don't try to run XRay unit tests on DarwinKuba Mracek2018-01-281-5/+7
| | | | | | | | This gets rid of a lit warning (input './projects/compiler-rt/test/xray/Unit' contained no tests). Differential Revision: https://reviews.llvm.org/D42597 llvm-svn: 323613
* [X86] Remove VPTESTM/VPTESTNM ISD opcodes. Use isel patterns matching cmpm ↵Craig Topper2018-01-287-149/+120
| | | | | | eq/ne with immallzeros. llvm-svn: 323612
* [sanitizer] Update from zx_time_get to zx_clock_getPetr Hosek2018-01-271-2/+2
| | | | | | | | This Zircon syscall was renamed. Differential Revision: https://reviews.llvm.org/D42617 llvm-svn: 323611
* [X86] Add patterns for using masked vptestnmd for 256-bit vectors without VLX.Craig Topper2018-01-272-16/+26
| | | | | | We can widen the mask and extract it back down. llvm-svn: 323610
* [X86] Add test to demonstrate missed opportunity to merge kand into testnm ↵Craig Topper2018-01-271-0/+27
| | | | | | when using 512-bit instruction due to lack of VLX. llvm-svn: 323609
* Add triples or specify REQUIRES: default_triple to some testsJustin Bogner2018-01-277-5/+7
| | | | | | | These were all failing when building the X86 backend but specifying LLVM_DEFAULT_TARGET_TRIPLE=''. llvm-svn: 323608
* [X86][AVX512] Add avx512dq fp2int/int2fp tests (PR31630)Simon Pilgrim2018-01-272-6/+12
| | | | llvm-svn: 323607
* [cmake] [compiler-rt] Call llvm_setup_rpath() when adding shared libraries.Don Hinton2018-01-271-0/+3
| | | | | | | | | Clang and llvm already use llvm_setup_rpath(), so this change will help standarize rpath usage across all projects. Differential Revision: https://reviews.llvm.org/D42462 llvm-svn: 323606
* [X86] Use vptestm/vptestnm for comparisons with zero to avoid creating a ↵Craig Topper2018-01-2730-4993/+2560
| | | | | | | | | | | | zero vector. We can use the same input for both operands to get a free compare with zero. We already use this trick in a couple places where we explicitly create PTESTM with the same input twice. This generalizes it. I'm hoping to remove the ISD opcodes and move this to isel patterns like we do for scalar cmp/test. llvm-svn: 323605
* [X86] Remove X86ISD::PCMPGTM/PCMPEQM and instead just use X86ISD::PCMPM and ↵Craig Topper2018-01-278-79/+69
| | | | | | | | | | pattern match the immediate value during isel. Legalization is still biased to turn LT compares in to GT by swapping operands to avoid needing extra isel patterns to commute. I'm hoping to remove TESTM/TESTNM next and this should simplify that by making EQ/NE more similar. llvm-svn: 323604
* Regenerate test. NFCISimon Pilgrim2018-01-271-2/+0
| | | | llvm-svn: 323603
* [X86][SSE] Simplify demanded elements from BROADCAST shuffle source.Simon Pilgrim2018-01-275-55/+61
| | | | | | | | If broadcasting from another shuffle, attempt to simplify it. We can probably generalize this a lot more (embedding in combineX86ShufflesRecursively), but BROADCAST is one of the more troublesome as it accepts inputs of different sizes to the result. llvm-svn: 323602
* [cmake] [libunwind] LLVM_FOUND isn't always set, so just test ifDon Hinton2018-01-271-1/+1
| | | | | | llvm_setup_rpath() is available instead. llvm-svn: 323601
* [cmake] [libcxxabi] LLVM_FOUND isn't always set, so just test ifDon Hinton2018-01-271-1/+1
| | | | | | llvm_setup_rpath() is available instead. llvm-svn: 323600
* LLVM_FOUND isn't always set, so just test if llvm_setup_rpath() isDon Hinton2018-01-271-1/+1
| | | | | | available instead. llvm-svn: 323599
* [COFF] Update comment to reflect link.exe behavior. NFCShoaib Meenai2018-01-271-3/+2
| | | | | | | | | | In my experimentation with link.exe from both VS 2015 and 2017, it always produces images with truncated section names. Update the comment accordingly. Differential Revision: https://reviews.llvm.org/D42603 llvm-svn: 323598
* Add IRBuilder API to create memcpy/memmove calls with differing source and ↵Daniel Neilson2018-01-273-21/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | dest alignments Summary: This change is step two in the series of changes to remove alignment argument from memcpy/memmove/memset in favour of alignment attributes. Steps: Step 1) Remove alignment parameter and create alignment parameter attributes for memcpy/memmove/memset. ( rL322965 ) Step 2) Expand the IRBuilder API to allow creation of memcpy/memmove with differing source and dest alignments. Step 3) Update Clang to use the new IRBuilder API. Step 4) Update Polly to use the new IRBuilder API. 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 getDestAlignment() and getSourceAlignment() instead. 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: 323597
* Regenerate test result for vastart-defs-eflags.ll. NFC.Amaury Sechet2018-01-271-3/+38
| | | | llvm-svn: 323596
* Regenerate test result for testb-je-fusion.ll. NFC.Amaury Sechet2018-01-271-3/+11
| | | | llvm-svn: 323595
* Regenerate test result for stateppint-vector.ll. NFC.Amaury Sechet2018-01-271-38/+59
| | | | llvm-svn: 323594
* Regenrate brcond.ll test results. NFCAmaury Sechet2018-01-271-46/+114
| | | | llvm-svn: 323593
* Regenrate test results for avx-brcond.ll . NFCAmaury Sechet2018-01-271-36/+85
| | | | llvm-svn: 323592
* [X86][SSE] Regenerate fp2int/int2fp testsSimon Pilgrim2018-01-272-101/+1621
| | | | | | Cleanup check prefixes and check full codegen llvm-svn: 323591
* Attempt to make the PS4 build bot happy.Gabor Horvath2018-01-271-2/+2
| | | | llvm-svn: 323590
* [ASTImporter] Add support to import some AST nodes:Gabor Horvath2018-01-272-23/+200
| | | | | | | | | | | | | | | | * CXXOperatorCallExpr * SizeOfPackExpr * DependentTemplateSpecializationType * DependentSizedArray * CXXTypeidExpr * Fix importing CXXTemporaryObjectExpr Some of the changes are based on https://github.com/haoNoQ/clang/blob/summary-ipa-draft/lib/AST/ASTImporter.cpp Differential Revision: https://reviews.llvm.org/D42335 llvm-svn: 323589
* Regenerate test results for and-su.ll . NFCAmaury Sechet2018-01-271-7/+38
| | | | llvm-svn: 323588
* [X86][SSE] Add broadcast from v2i32 memory tests (PR34394)Simon Pilgrim2018-01-271-0/+98
| | | | llvm-svn: 323587
* Remove unused class declarationsJan Kratochvil2018-01-272-6/+0
| | | | | | | | Simplification by removing excessive DWARFCompileUnit references for D40466 . Differential revision: https://reviews.llvm.org/D42613 llvm-svn: 323586
* [TargetLowering] Teach TargetLowering::SimplifySetCC to simplify setcc of ↵Craig Topper2018-01-274-96/+90
| | | | | | | | vXi1 vectors into logic ops. This transform was already being done for setcc of scalar i1. This extends it to vectors. llvm-svn: 323585
* [ELF] - Extend lto/asmundef.ll testcase.George Rimar2018-01-272-1/+6
| | | | | | | | | | | Patch adds one more module with non-prevailing version of asm symbol, defined in main module This is for D42107, which is under review. Extended version of testcase would fail with the diff 9 version of patch posted. llvm-svn: 323584
* [SelectionDAG] Make DAGTypeLegalizer::PromoteSetCCOperands handle ↵Craig Topper2018-01-272-22/+8
| | | | | | | | SETEQ/SETNE correctly for vector types. The code was using getValueSizeInBits and combining with the result of a call to DAG.ComputeNumSignBits. But for vector types getValueSizeInBits returns the width of the full vector while ComputeNumSignBits is going to give a number no larger than the width of a single element. So we should be using getScalarValueSizeInBits to get the element width. llvm-svn: 323583
* [GlobalISel][Legalizer] Convert the FP constants to the right APFloat type ↵Amara Emerson2018-01-272-2/+19
| | | | | | | | | | | for G_FCONSTANT. We weren't converting the immediate ConstantFP during legalization, which caused the wrong bit patterns to be emitted for half type FP constants. Fixes PR36106. llvm-svn: 323582
* Revert "[SLP] Fix for PR32086: Count InsertElementInstr of the same elements ↵Alexey Bataev2018-01-274-393/+155
| | | | | | | | as shuffle." This reverts commit r323530 to fix possible problems in users code. llvm-svn: 323581
* Revert "[SLP] Removed the warning about unused variable, NFC."Alexey Bataev2018-01-271-1/+1
| | | | | | This reverts commit r323533 to fix possible problems in users code. llvm-svn: 323580
* Add the /order option.Rui Ueyama2018-01-277-0/+304
| | | | | | | | | | | | With the /order option, you can give an order file. An order file contains symbol names, one per line, and the linker places comdat sections in that given order. The option is used often to optimize an output binary for (in particular, startup) speed by improving locality. Differential Revision: https://reviews.llvm.org/D42598 llvm-svn: 323579
* [CodeGen] Use the non-virtual alignment when emitting the baseAkira Hatanaka2018-01-272-1/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | constructor. Previously, clang would emit an over-aligned (16-byte) store to initialize B::x in B's base constructor when compiling the following code: struct A { __attribute__((aligned(16))) double data1; }; struct B : public virtual A { B() : x(123) {} double a; int x; }; struct C : public virtual B {}; void test() { B b; C c; } This was happening because the code in IRGen that does member initialization was using the alignment of a complete object instead of the non-virtual alignment. This commit fixes the bug. rdar://problem/36382481 Differential Revision: https://reviews.llvm.org/D42521 llvm-svn: 323578
* Always allow "#pragma region".Matt Davis2018-01-272-2/+9
| | | | | | | | | | | | | | | | | | | | | Summary: Both MS and PS4 targets are capable of recognizing the existence of: #pragma region, #pragma endregion. Since this pragma is only a hint for certain editors, and has no logic, it seems helpful to permit this pragma in all cases, not just MS compatibility mode. Reviewers: rnk, rsmith, majnemer Reviewed By: majnemer Subscribers: Quuxplusone, probinson, majnemer, cfe-commits Differential Revision: https://reviews.llvm.org/D42248 llvm-svn: 323577
* [InstrProfiling] Don't exit early when an unused intrinsic is foundVedant Kumar2018-01-272-3/+21
| | | | | | This fixes a think-o in r323574. llvm-svn: 323576
* [LangRef] Update out-of-date instrprof namesVedant Kumar2018-01-261-15/+15
| | | | llvm-svn: 323575
* [InstrProfiling] Improve compile time when there is no workVedant Kumar2018-01-261-2/+21
| | | | | | | When there are no uses of profiling intrinsics in a module, and there's no coverage data to lower, InstrProfiling has no work to do. llvm-svn: 323574
OpenPOWER on IntegriCloud