summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* fix some minor typos in the docSylvestre Ledru2016-03-033-5/+5
| | | | llvm-svn: 262655
* Fix two minor syntax issues in the documentationSylvestre Ledru2016-03-032-1/+2
| | | | llvm-svn: 262654
* Delete dead code.Rafael Espindola2016-03-032-6/+0
| | | | llvm-svn: 262653
* Add code generation for teams directive inside target regionCarlo Bertolli2016-03-035-9/+268
| | | | llvm-svn: 262652
* [ELF] - Do not allow .bss to occupy the file space when producing ↵George Rimar2016-03-033-3/+45
| | | | | | | | | | | relocatable output When generating relocatable output SHT_NOBITS sections were still occupy the file space. Differential revision: http://reviews.llvm.org/D17857 llvm-svn: 262650
* tests: Fix some spelling mistakesTobias Grosser2016-03-031-1/+1
| | | | llvm-svn: 262649
* [ValueTracking] "constant fold" an experimental hidden optionPhilip Reames2016-03-031-7/+0
| | | | llvm-svn: 262648
* docs: Fix some spelling mistakesTobias Grosser2016-03-031-3/+3
| | | | llvm-svn: 262647
* [ValueTracking] Remove dead code from an old experimentPhilip Reames2016-03-035-455/+2
| | | | | | | | | | This experiment was originally about trying to use facts implied dominating conditions to infer more precise known bits. While the compile time was found to be acceptable on several large code bases, we never found sufficiently profitable examples to justify turning on the code by default. Given this, it's time to abandon the experiment. Several folks have commented that they've found this useful for experimentation, but nothing has come of those experiments. Given how easy the patch is to apply, there's no reason to leave the code in tree. For anyone interested in further investigation in this area, I recommend finding the summary email I sent on one of the original review threads. In particular, I now believe the use-list based approach is strictly worse than the dom-tree-walking approach. llvm-svn: 262646
* [InstCombine] transform bitcasted bitwise logic ops with constants (PR26702)Sanjay Patel2016-03-033-23/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Given that we're not actually reducing the instruction count in the included regression tests, I think we would call this a canonicalization step. The motivation comes from the example in PR26702: https://llvm.org/bugs/show_bug.cgi?id=26702 If we hoist the bitwise logic ahead of the bitcast, the previously unoptimizable example of: define <4 x i32> @is_negative(<4 x i32> %x) { %lobit = ashr <4 x i32> %x, <i32 31, i32 31, i32 31, i32 31> %not = xor <4 x i32> %lobit, <i32 -1, i32 -1, i32 -1, i32 -1> %bc = bitcast <4 x i32> %not to <2 x i64> %notnot = xor <2 x i64> %bc, <i64 -1, i64 -1> %bc2 = bitcast <2 x i64> %notnot to <4 x i32> ret <4 x i32> %bc2 } Simplifies to the expected: define <4 x i32> @is_negative(<4 x i32> %x) { %lobit = ashr <4 x i32> %x, <i32 31, i32 31, i32 31, i32 31> ret <4 x i32> %lobit } Differential Revision: http://reviews.llvm.org/D17583 llvm-svn: 262645
* [PGO] Add API for profile merge from bufferXinliang David Li2016-03-039-2/+340
| | | | | | Differential Revision: http://reviews.llvm.org/D17831 llvm-svn: 262644
* Fix breakage caused by r262636.Easwaran Raman2016-03-031-1/+1
| | | | | | Use LLVM_ATTRIBUTE_UNUSED instead of __attribute_((unused)) llvm-svn: 262643
* Fix PR26818.Rafael Espindola2016-03-032-1/+19
| | | | | | | The hack of using a plt address as the address of an undefined function only works in executables. Don't try it with shared libraries. llvm-svn: 262642
* [OpenCL] Improve diagnostics of address spaces for variables in functionAnastasia Stulova2016-03-035-28/+27
| | | | | | | | | - Prevent local variables to be declared in global AS - Diagnose AS of local variables with an extern storage class as if they would be in a program scope Review: http://reviews.llvm.org/D17345 llvm-svn: 262641
* [ConstantRange] Rename test; NFCSanjoy Das2016-03-031-1/+1
| | | | llvm-svn: 262640
* [SCEV] Prove no-overflow via constant rangesSanjoy Das2016-03-033-0/+95
| | | | | | | Exploit ScalarEvolution::getRange's newly acquired smartness (since r262438) by using that to infer nsw and nuw when possible. llvm-svn: 262639
* [SCEV] Be less eager about demoting zexts to sextsSanjoy Das2016-03-032-4/+28
| | | | | | | | | | | | After r262438 we can have provably positive NSW SCEV expressions whose zero extensions cannot be simplified (since r262438 makes SCEV better at computing constant ranges). This means demoting sexts of positive add recurrences eagerly can result in an unsimplified zero extension where we could have had a simplified sign extension. This change fixes the issue by teaching SCEV to demote sext of a positive SCEV expression to a zext only if the sext could not be simplified. llvm-svn: 262638
* [ConstantRange] Generalize makeGuaranteedNoWrapRegion to work on rangesSanjoy Das2016-03-033-22/+89
| | | | | | | This will be used in a later patch to ScalarEvolution. Right now only the unit tests exercise the newly added code. llvm-svn: 262637
* Infrastructure for PGO enhancements in inlinerEaswaran Raman2016-03-0311-52/+433
| | | | | | | | | | | | This patch provides the following infrastructure for PGO enhancements in inliner: Enable the use of block level profile information in inliner Incremental update of block frequency information during inlining Update the function entry counts of callees when they get inlined into callers. Differential Revision: http://reviews.llvm.org/D16381 llvm-svn: 262636
* [X86][AVX] Better support for the variable mask form of VPERMILPD/VPERMILPSSimon Pilgrim2016-03-034-28/+35
| | | | | | | | | | The variable mask form of VPERMILPD/VPERMILPS were only partially implemented, with much of it still performed as an intrinsic. This patch properly defines the instructions in terms of X86ISD::VPERMILPV, permitting the opcode to be easily combined as a target shuffle. Differential Revision: http://reviews.llvm.org/D17681 llvm-svn: 262635
* Use LineLocation instead of CallsiteLocation to index callsite profile.Dehao Chen2016-03-037-84/+53
| | | | | | | | | | | | Summary: With discriminator, LineLocation can uniquely identify a callsite without the need to specifying callee name. Remove Callee function name from the key, and put it in the value (FunctionSamples). Reviewers: davidxl, dnovillo Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D17827 llvm-svn: 262634
* [X86] Tidied up 256-bit -> 2 x 128-bit vector shift extraction.Simon Pilgrim2016-03-031-14/+2
| | | | | | lowerShift was manually splitting BUILD_VECTOR cases when it could just call Extract128BitVector which does this anyway. llvm-svn: 262633
* [test/ubsan/coverage-levels] Fix file references in UBSAN_OPTIONSFilipe Cabecinhas2016-03-031-5/+5
| | | | llvm-svn: 262632
* [X86] Pulled out repeated code testing for constant vector shift amount. NFCI.Simon Pilgrim2016-03-031-8/+6
| | | | llvm-svn: 262631
* clang-format: Use stable_sort when sorting #includes.Daniel Jasper2016-03-032-8/+23
| | | | | | | Otherwise, clang-format can output useless replacements in the presence of identical #includes llvm-svn: 262630
* [BlockGenerator] Fix PHI merges for MK_Arrays.Michael Kruse2016-03-033-0/+60
| | | | | | | | | | | | | | | | | | Value merging is only necessary for scalars when they are used outside of the scop. While an array's base pointer can be used after the scop, it gets an extra ScopArrayInfo of type MK_Value. We used to generate phi's for both of them, where one was assuming the reault of the other phi would be the original value, because it has already been replaced by the previous phi. This resulted in IR that the current IR verifier allows, but is probably illegal. This reduces the number of LNT test-suite fails with -polly-position=before-vectorizer -polly-process-unprofitable from 16 to 10. Also see llvm.org/PR26718. llvm-svn: 262629
* MCU target has its own ABI, however X86 interrupt handler calling convention ↵Amjad Aboud2016-03-031-1/+3
| | | | | | | | | | overrides this ABI. Fixed the ordering to check first for X86 interrupt handler then for MCU target. Differential Revision: http://reviews.llvm.org/D17801 llvm-svn: 262628
* [X86] Don't assume that shuffle non-mask operands starts at #0.Ahmed Bougacha2016-03-033-32/+95
| | | | | | | | | | | | | | | | | | | | | | | | | That's not the case for VPERMV/VPERMV3, which cover all possible combinations (the C intrinsics use a different order; the AVX vs AVX512 intrinsics are different still). Since: r246981 AVX-512: Lowering for 512-bit vector shuffles. VPERMV is recognized in getTargetShuffleMask. This breaks assumptions in most callers, as they expect the non-mask operands to start at index 0. VPERMV has the mask as operand #0; VPERMV3 has it in the middle. Instead of the faulty assumption, have getTargetShuffleMask return its operands as well. One alternative we considered was to change the operand order of VPERMV, but we agreed to stick to the instruction order, as there are more AVX512 weirdness to cover (vpermt2/vpermi2 in particular). Differential Revision: http://reviews.llvm.org/D17041 llvm-svn: 262627
* Simplify error handling.Rafael Espindola2016-03-037-79/+54
| | | | | | | This makes fatal return T when there is no error. This avoids the need for quite a few temporaries. llvm-svn: 262626
* [OpenMP] Code generation for teams - kernel launchingSamuel Antao2016-03-033-8/+427
| | | | | | | | | | | | | | | Summary: This patch implements the launching of a target region in the presence of a nested teams region, i.e calls tgt_target_teams with the required arguments gathered from the enclosed teams directive. The actual codegen of the region enclosed by the teams construct will be contributed in a separate patch. Reviewers: hfinkel, arpith-jacob, kkwli0, carlo.bertolli, ABataev Subscribers: cfe-commits, caomhin, fraggamuffin Differential Revision: http://reviews.llvm.org/D17019 llvm-svn: 262625
* [LoopUtils, LV] Fix PR26734Matthew Simpson2016-03-032-1/+50
| | | | | | | | The vectorization of first-order recurrences (r261346) caused PR26734. When detecting these recurrences, we need to ensure that the previous value is actually defined inside the loop. This patch includes the fix and test case. llvm-svn: 262624
* [AArch64] fold 'isPositive' vector integer operations (PR26819)Sanjay Patel2016-03-032-16/+37
| | | | | | | | | | | | | | | | This is one of the cases shown in: https://llvm.org/bugs/show_bug.cgi?id=26819 Shift and negate is what InstCombine prefers to produce (and I tried to make it do more of that in http://reviews.llvm.org/rL262424 ), so we should recognize that pattern as something that might come from autovectorization even if it's unlikely to be produced from C NEON intrinsics. The patch is based on the x86 equivalent: http://reviews.llvm.org/rL262036 Differential Revision: http://reviews.llvm.org/D17834 llvm-svn: 262623
* Revert "Fetch remote log files from LLGS tests"Pavel Labath2016-03-031-29/+5
| | | | | | | Even after the last fixup, there still seems to be one failure left. Revert until I figure out what is going on. llvm-svn: 262622
* AVX512: Combine AND + TESTM instructions .Igor Breger2016-03-034-8/+86
| | | | | | Differential Revision: http://reviews.llvm.org/D17844 llvm-svn: 262621
* Making rem_crash.ll target-specificRenato Golin2016-03-033-1/+516
| | | | | | | | | | This test failed in some ARM bots after a divmod change because it was running on a native llc, instead of targeted one. This makes sure the test is target-specific (as intended), and also copies to ARM and AArch64 directories. If it is also supposed to work on other architectures, I'll leave as an exercise to the respective maintainers. llvm-svn: 262620
* [ARM] Add Clang targeting for ARMv8-M Baseline/MainlineBradley Smith2016-03-036-10/+82
| | | | llvm-svn: 262619
* [clang-tidy] Improve the robustness of a test.Gabor Horvath2016-03-031-3/+2
| | | | llvm-svn: 262618
* [CLANG][AVX512][BUILTIN] movddup{128|256|512}Michael Zuckerman2016-03-035-0/+106
| | | | | | Differential Revision: http://reviews.llvm.org/D17826 llvm-svn: 262617
* [OpenCL] Apply missing restrictions for Blocks in OpenCL v2.0Anastasia Stulova2016-03-038-46/+133
| | | | | | | | | | | | | | Applying the following restrictions for block types in OpenCL (v2.0 s6.12.5): - __block storage class is disallowed - every block declaration must be const qualified and initialized - a block can't be used as a return type of a function - a blocks can't be used to declare a structure or union field - extern speficier is disallowed Corrected image and sampler types diagnostics with struct and unions. Review: http://reviews.llvm.org/D16928 llvm-svn: 262616
* [clang-tidy] Do not emit warnings from misc-suspicious-semicolon when the ↵Gabor Horvath2016-03-033-7/+23
| | | | | | compilation fails. llvm-svn: 262615
* Fix typo [NFC]Johannes Doerfert2016-03-031-1/+1
| | | | llvm-svn: 262613
* [FIX] Consolidation of loads with same pointer but different access relationJohannes Doerfert2016-03-032-2/+134
| | | | | | | | | This should fix PR19422. Thanks to Jeremy Huddleston Sequoia for reporting this. Thanks to Roman Gareev for his investigation and the reduced test case. llvm-svn: 262612
* Fixing a checkfile error in avx512vlbw-builtins.cMichael Zuckerman2016-03-031-8/+8
| | | | | | Differential Revision: http://reviews.llvm.org/D17814 llvm-svn: 262611
* Fix for PR26812: possible overflow issue in std::allocator::allocateMarshall Clow2016-03-032-2/+64
| | | | llvm-svn: 262610
* [CLANG][AVX512][BUILTIN] movdqu{qi|hi} {128|256|512}Michael Zuckerman2016-03-035-0/+184
| | | | | | Differential Revision: http://reviews.llvm.org/D17814 llvm-svn: 262609
* [DOC] Add documentation for the supported call instructionsJohannes Doerfert2016-03-031-0/+17
| | | | llvm-svn: 262608
* [DOC] Add more documentation about the different element type supportJohannes Doerfert2016-03-031-0/+23
| | | | llvm-svn: 262607
* Tweak CMakeLists not for libclang to depend on the variable ↵NAKAMURA Takumi2016-03-032-2/+4
| | | | | | CLANG_TOOL_EXTRA_BUILD. llvm-svn: 262606
* [docs] Fix docs to work with doxygen 1.8.11Alexander Kornienko2016-03-033-22/+10
| | | | llvm-svn: 262605
* [docs] Add missing fileAlexander Kornienko2016-03-031-0/+15
| | | | llvm-svn: 262604
OpenPOWER on IntegriCloud