summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [docs] Add a description of current problem areas to the statepoint docsPhilip Reames2016-03-031-0/+35
| | | | | | Triggered by a question on llvm-dev about status llvm-svn: 262671
* [InstCombine] Combine A->B->A BitCastGuozhi Wei2016-03-033-0/+197
| | | | | | | | | | This patch enhances InstCombine to handle following case: A -> B bitcast PHI B -> A bitcast llvm-svn: 262670
* [powerpc] activate java_race_pc.cc on powerpc64leBill Seurer2016-03-031-2/+3
| | | | | | | The test case compiler-rt/test/tsan/java_race_pc.cc fails on powerpc64 big endian but not little endian. llvm-svn: 262669
* llvm/test/CodeGen/ARM/rem_crash.ll: Avoid unsupported targets to specify ↵NAKAMURA Takumi2016-03-031-1/+1
| | | | | | | | | | explicit triple. We will see it for targeting win32; LLVM ERROR: CPU: 'generic' does not support ARM mode execution! llvm-svn: 262668
* [libFuzzer] when interrupted, call _Exit() instead of exit()Kostya Serebryany2016-03-031-1/+1
| | | | llvm-svn: 262667
* Rename 'fatal' to 'check' when it doesn't always fail.Rafael Espindola2016-03-037-28/+28
| | | | llvm-svn: 262666
* [SCEVValidator] Fix loop exit values considered affine.Michael Kruse2016-03-032-1/+49
| | | | | | | | | | | | | | | | | | | | Index calculations can use the last value that come out of a loop. Ideally, ScalarEvolution can compute that exit value directly without depending on the loop induction variable, but not in all cases. This changes isAffine to not consider such loop exit values as affine to avoid that SCEVExpander adds uses of the original loop induction variable. This fix is analogous to r262404 that applies to general uses of loop exit values instead of index expressions and loop bouds as in this patch. This reduces the number of LNT test-suite fails with -polly-position=before-vectorizer -polly-unprofitable from 10 to 8. llvm-svn: 262665
* Pass scope and LoopInfo to SCEVValidator. NFC.Michael Kruse2016-03-038-48/+67
| | | | | | | | The scope will be required in the following fix. This commit separates the large changes that do not change behaviour from the small, but functional change. llvm-svn: 262664
* [OPENMP] firstprivate and private clauses of teams, host codegenerationCarlo Bertolli2016-03-033-0/+604
| | | | | | | | Add code generation support for firstprivate and private clauses of teams on the host. Add extensive regression tests including lambda functions and vla testing. http://reviews.llvm.org/D17582 llvm-svn: 262663
* Remove dead code.Rui Ueyama2016-03-031-4/+0
| | | | llvm-svn: 262662
* [X86][AVX512BW] Fixed 512-bit PSHUFB shuffle mask decode and added combine test.Simon Pilgrim2016-03-032-3/+18
| | | | | | PSHUFB decoder was assuming that input was 128 or 256-bit vector only. llvm-svn: 262661
* [ELF] Be slightly more consistent, use uint8_t instead of unsigned char.Davide Italiano2016-03-031-1/+1
| | | | llvm-svn: 262660
* [analyzer] ObjCDeallocChecker: Only check for nil-out when type is retainable.Devin Coughlin2016-03-032-1/+24
| | | | | | This fixes a crash when setting a property of struct type in -dealloc. llvm-svn: 262659
* [STATS] fix output formatting when sample count is 0Jonathan Peyton2016-03-031-8/+19
| | | | | | Force 0.0 to be displayed for all statistics which have sample count equal to 0 llvm-svn: 262658
* [RuntimeDyld] Fix '_' stripping in ↵Lang Hames2016-03-032-27/+13
| | | | | | | | | | | | | | | | | | | | | | | RTDyldMemoryManager::getSymbolAddressInProcess. The RTDyldMemoryManager::getSymbolAddressInProcess method accepts a linker-mangled symbol name, but it calls through to dlsym to do the lookup (via DynamicLibrary::SearchForAddressOfSymbol), and dlsym expects an unmangled symbol name. Historically we've attempted to "demangle" by removing leading '_'s on all platforms, and fallen back to an extra search if that failed. That's broken, as it can cause symbols to resolve incorrectly on platforms that don't do mangling if you query '_foo' and the process also happens to contain a 'foo'. Fix this by demangling conditionally based on the host platform. That's safe here because this function is specifically for symbols in the host process, so the usual cross-process JIT looking concerns don't apply. M unittests/ExecutionEngine/ExecutionEngineTest.cpp M lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp llvm-svn: 262657
* [STATS] fix master and single timersJonathan Peyton2016-03-031-3/+5
| | | | | | Only the thread which executes the single/master section will update its statistics. llvm-svn: 262656
* 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
OpenPOWER on IntegriCloud