summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [docs] Remove a stale and confusing section from GettingStartedPhilip Reames2016-02-071-19/+2
| | | | | | | | The mentioned environment variable doesn't appear to have any use in the LLVM repository. If it is still relevant for clang, we can consider adding it to the clang getting started page. Patch inspired by documentation work by Ben Nathanson at the LLVM Bloomberg sprint. llvm-svn: 260037
* Revert "Re-apply r259977 - [OpenMP] Reorganize code to allow specialized ↵Renato Golin2016-02-077-92/+3
| | | | | | | | code generation for different devices." This reverts commit r259985, as it still fails one buildbot. llvm-svn: 260036
* [docs] Update the docs to describe how to build the docs with cmakePhilip Reames2016-02-072-14/+18
| | | | llvm-svn: 260035
* [X86][SSE] Added support for MOVHPD/MOVLPD + MOVHPS/MOVLPS shuffle decoding.Simon Pilgrim2016-02-0710-40/+114
| | | | llvm-svn: 260034
* [X86][AVX512] add intrinsics of Scalar FP to integer conversion with ↵Asaf Badouh2016-02-078-50/+236
| | | | | | | | rounding mode Differential Revision: http://reviews.llvm.org/D16629 llvm-svn: 260033
* [X86][SSE] Pulled out repeated target shuffle decodes into helper functions. ↵Simon Pilgrim2016-02-071-136/+89
| | | | | | | | | | NFCI. Pulled out the code used by PSHUFB/VPERMV/VPERMV3 shuffle mask decoding into common helper functions. The helper functions handle masks coming from BROADCAST/BUILD_VECTOR and ConstantPool nodes respectively. llvm-svn: 260032
* [FIX] Two "off-by-one" error in constant range usageJohannes Doerfert2016-02-0714-20/+179
| | | | llvm-svn: 260031
* Simplify code [NFC]Johannes Doerfert2016-02-072-5/+6
| | | | llvm-svn: 260030
* Use CodeGenModule::addReplacement() instead of directly accessing ↵Yaron Keren2016-02-071-1/+1
| | | | | | | | Replacements[]. This helps when trying to debug who inserted into Replacements. llvm-svn: 260028
* [ELF][MIPS] Add comments to describe __gnu_local_gp magic symbolSimon Atanasyan2016-02-072-4/+8
| | | | | | NFC. Follow-up to r259781. llvm-svn: 260027
* Fix typo in default getNoPreservedMask implementationJeroen Ketema2016-02-071-1/+1
| | | | llvm-svn: 260026
* Make memory accesses with different element types optionalTobias Grosser2016-02-0713-10/+69
| | | | | | | | We also disable this feature by default, as there are still some issues in combination with invariant load hoisting that slipped through my initial testing. llvm-svn: 260025
* AVX512: VPBROADCASTB/W/D/Q from GPR intrinsics implementation.Igor Breger2016-02-0711-134/+505
| | | | | | Differential Revision: http://reviews.llvm.org/D16813 llvm-svn: 260024
* Do not yet consider loads with non-canonical element size for load hoisting.Tobias Grosser2016-02-073-0/+47
| | | | | | | | | | Invariant load hoisting of memory accesses with non-canonical element types lacks support for equivalence classes that contain elements of different width/size. This support should be added, but to get our buildbots back to green, we disable load hoisting for memory accesses with non-canonical element size for now. llvm-svn: 260023
* Fix test case problem(caused by clang-formatXinliang David Li2016-02-072-12/+4
| | | | llvm-svn: 260022
* [PGO] add profile/coverage test cases for defaulted ctor/ctorsXinliang David Li2016-02-072-0/+88
| | | | llvm-svn: 260021
* Fix typo in comment. NFCCraig Topper2016-02-071-1/+1
| | | | llvm-svn: 260020
* Driver: adjust linker invocation for GNUToolsSaleem Abdulrasool2016-02-072-7/+42
| | | | | | | | | | | | | | | Adjust the driver to invoke the linker more similar to gcc. -dynamic-linker is only passed if -static and -shared are not part of the compiler (driver) invocation. Replicate the passing of -export-rdynamic as per the GCC link spec: %{!static: %{rdynamic:-export-dynamic} %{!shared:-dynamic-linker ...}} This behaviour is consistent across all the targets that are supported, so no need to conditionalise it on the target. Resolves PR24245. llvm-svn: 260019
* LangRef: Fix example code for cmpxchgDuncan P. N. Exon Smith2016-02-071-2/+2
| | | | | | Patch by Daniel Robertson! llvm-svn: 260018
* Sema: handle typo correction on ARC'ed ivarSaleem Abdulrasool2016-02-072-0/+12
| | | | | | | | | | | The ivar ref would be transformed by the Typo Correction TreeTransform, but not be owned, resulting in the source location being invalid. This would eventually lead to an assertion in findCapturingExpr. Prevent this assertion from triggering. Resolves PR25113. llvm-svn: 260017
* Sema: handle typo correction with ARC'ed objc propertiesSaleem Abdulrasool2016-02-072-0/+28
| | | | | | | | | | | | | We would previously assert in findCapturingExpr when performing a typo correction resulting in an assignment of an ObjC property with a strong lifetype specifier due to the expression not being rooted in the file (invalid SLoc) during the retain cycle check on the typo-corrected expression. Handle the expression type appropriately during the TreeTransform to ensure that we have a source location associated with the expression. Fixes PR26486. llvm-svn: 260016
* Don't use module context here. It's unnecessary and makes it harder to write ↵Daniel Berlin2016-02-071-2/+2
| | | | | | unittests llvm-svn: 260015
* Compute live-in for MemorySSADaniel Berlin2016-02-071-1/+41
| | | | llvm-svn: 260014
* Only insert into definingblocks once per blockDaniel Berlin2016-02-071-1/+4
| | | | llvm-svn: 260013
* Cleanup node-type handling in the unordered containersEric Fiselier2016-02-079-71/+558
| | | | | | | | | | | | | | | | | | | | | | | | | This patch is the first in a series of patches that's meant to better support unordered_map. unordered_map has a special "value_type" that differs from pair<const Key, Value>. In order to meet the EmplaceConstructible and CopyInsertable requirements we need to teach __hash_table about this special value_type. This patch creates a "__hash_node_types" traits class that contains all of the typedefs needed by the unordered containers and it's iterators. These typedefs include ones for each node type and node pointer type, as well as special typedefs for "unordered_map"'s value type. As a result of this change all of the unordered containers now all support incomplete types. As a drive-by fix I changed the difference_type in __hash_table to always be ptrdiff_t. There is a corresponding change to size_type but it cannot take affect until an ABI break. This patch will be followed up shortly with fixes for various unordered_map fixes. llvm-svn: 260012
* Index: provide adjustment thunk information for C++ manglingsSaleem Abdulrasool2016-02-062-0/+69
| | | | | | | Add support for exposing the adjustment thunk for virtual methods as appropriate. llvm-svn: 260011
* [X86][AVX2] Regenerated broadcast domain testsSimon Pilgrim2016-02-061-44/+54
| | | | llvm-svn: 260010
* IslNodeBuilder: Invariant load hoisting of elements with differing sizesTobias Grosser2016-02-067-34/+75
| | | | | | | | | | | | | | | Always use access-instruction pointer type to load the invariant values. Otherwise mismatches between ScopArrayInfo element type and memory access element type will result in invalid casts. These type mismatches are after r259784 a lot more common and also arise with types of different size, which have not been handled before. Interestingly, this change actually simplifies the code, as we now have only one code path that is always taken, rather then a standard code path for the common case and a "fixup" code path that replaces the standard code path in case of mismatching types. llvm-svn: 260009
* [X86][SSE] Add tests for MOVHLPS/MOVLHPS shuffle lowering.Simon Pilgrim2016-02-062-0/+46
| | | | | | As raised in PR26491, we don't make use of these instructions at the moment. llvm-svn: 260008
* [X86][AVX512] Added support for VPMOVZX shuffle decoding.Simon Pilgrim2016-02-068-184/+170
| | | | llvm-svn: 260007
* [docs] Warn against slow serial buildsPhilip Reames2016-02-061-0/+3
| | | | llvm-svn: 260006
* [NVPTX] Mark nvvm synchronizing intrinsics as convergent.Justin Lebar2016-02-062-7/+11
| | | | | | | | | | | | | | | Summary: This is the attribute purpose-made for e.g. __syncthreads. It appears that NoDuplicate may not be sufficient to prevent Sink from touching a call to __syncthreads. Reviewers: jingyue, hfinkel Subscribers: llvm-commits, jholewinski, jhen, rnk, tra, majnemer Differential Revision: http://reviews.llvm.org/D16941 llvm-svn: 260005
* [docs] Redirect new contributors to the right starting pointPhilip Reames2016-02-061-0/+4
| | | | llvm-svn: 260004
* [docs] Clarify a couple of getting started issues identified during SprintPhilip Reames2016-02-061-2/+9
| | | | llvm-svn: 260003
* Add a missing call to MDNode::deleteTemporary().Adrian Prantl2016-02-061-3/+4
| | | | | | | | Follow-up to r259975. Kudos to the ASAN bots! <rdar://problem/24493203> llvm-svn: 260002
* Introduce NetBSD supportKamil Rytarowski2016-02-061-2/+3
| | | | | | Current FreeBSD and NetBSD code is compatible. llvm-svn: 260001
* [X86][AVX512] Fixed prefix ordering for lzcnt tests.Simon Pilgrim2016-02-063-159/+117
| | | | | | Let AVX512 targets share the same CHECKs. llvm-svn: 260000
* [X86][SSE] Regenerate vector shift testsSimon Pilgrim2016-02-066-6/+6
| | | | llvm-svn: 259999
* [analyzer] DeallocChecker: Don't warn on release of readonly assign property ↵Devin Coughlin2016-02-062-1/+7
| | | | | | | | | in dealloc. It is common for the ivars for read-only assign properties to always be stored retained, so don't warn for a release in dealloc for the ivar backing these properties. llvm-svn: 259998
* [X86][SSE] Moved shuffle decode CASE macros earlier. NFC.Simon Pilgrim2016-02-061-48/+48
| | | | | | To allow the helper functions to make use of them. llvm-svn: 259997
* [X86][SSE] Refactored PMOVZX shuffle decoding to use scalar input typesSimon Pilgrim2016-02-063-75/+47
| | | | | | | | First step towards being able to decode AVX512 PMOVZX instructions without a massive bloat in the shuffle decode switch statement. This should also make it easier to decode X86ISD::VZEXT target shuffles in the future. llvm-svn: 259995
* Adapt LLVM_CMAKE_PATH for recent cmake path changesKamil Rytarowski2016-02-061-2/+1
| | | | | | Current LLVM installs CMake files under lib/cmake/llvm. llvm-svn: 259994
* [ThinLTO] Include linkage type in function summaryTeresa Johnson2016-02-067-25/+99
| | | | | | | | | | | | | | | | Summary: Adds the linkage type to both the per-module and combined function summaries, which subsumes the current islocal bit. This will eventually be used to optimized linkage types based on global summary-based analysis. Reviewers: joker.eph Subscribers: joker.eph, davidxl, llvm-commits Differential Revision: http://reviews.llvm.org/D16943 llvm-svn: 259993
* line endings fixSimon Pilgrim2016-02-061-45/+45
| | | | llvm-svn: 259992
* [X86][SSE] Don't replace an existing 32-bit load with its duplicateSimon Pilgrim2016-02-062-4/+47
| | | | | | | | If we are already loading a single 32-bit float/integer then just reuse it. Fix for regression in D16729 llvm-svn: 259991
* Comment fixSimon Pilgrim2016-02-061-1/+1
| | | | llvm-svn: 259990
* Corrected tests for Loop Versioning LICM, by adding “REQUIRES: asserts”.Ashutosh Nema2016-02-063-0/+3
| | | | | | Earlier they were failing under no-assert build. llvm-svn: 259989
* Fixed short underline error in LangRef.rst for recently addedAshutosh Nema2016-02-061-1/+1
| | | | | | metadata 'llvm.loop.licm_versioning.disable' description. llvm-svn: 259988
* Follow uses to create value MemoryAccessesMichael Kruse2016-02-0616-177/+129
| | | | | | | | | | | | | | | | | | | | The previously implemented approach is to follow value definitions and create write accesses ("push defs") while searching for uses. This requires the same relatively validity- and requirement conditions to be replicated at multiple locations (PHI instructions, other instructions, uses by PHIs). We replace this by iterating over the uses in a SCoP ("pull in requirements"), and add writes only when at least one read has been added. It turns out to be simpler code because each use is only iterated over once and writes are added for the first access that reads it. We need another iteration to identify escaping values (uses not in the SCoP), which also makes the difference between such accesses more obvious. As a side-effect, the order of scalar MemoryAccess can change. Differential Revision: http://reviews.llvm.org/D15706 llvm-svn: 259987
* New Loop Versioning LICM PassAshutosh Nema2016-02-0612-0/+824
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: When alias analysis is uncertain about the aliasing between any two accesses, it will return MayAlias. This uncertainty from alias analysis restricts LICM from proceeding further. In cases where alias analysis is uncertain we might use loop versioning as an alternative. Loop Versioning will create a version of the loop with aggressive aliasing assumptions in addition to the original with conservative (default) aliasing assumptions. The version of the loop making aggressive aliasing assumptions will have all the memory accesses marked as no-alias. These two versions of loop will be preceded by a memory runtime check. This runtime check consists of bound checks for all unique memory accessed in loop, and it ensures the lack of memory aliasing. The result of the runtime check determines which of the loop versions is executed: If the runtime check detects any memory aliasing, then the original loop is executed. Otherwise, the version with aggressive aliasing assumptions is used. The pass is off by default and can be enabled with command line option -enable-loop-versioning-licm. Reviewers: hfinkel, anemet, chatur01, reames Subscribers: MatzeB, grosser, joker.eph, sanjoy, javed.absar, sbaranga, llvm-commits Differential Revision: http://reviews.llvm.org/D9151 llvm-svn: 259986
OpenPOWER on IntegriCloud