summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* Re-apply r259977 - [OpenMP] Reorganize code to allow specialized code ↵Samuel Antao2016-02-067-3/+92
| | | | | | | | generation for different devices. This was reverted due to a failure in a buildbot, but it turned out the failure was unrelated. llvm-svn: 259985
* Revert r259977 - [OpenMP] Reorganize code to allow specialized code ↵Samuel Antao2016-02-067-92/+3
| | | | | | | | generation for different devices. It triggered some problem in the configuration related with zlib and exposed in the driver. llvm-svn: 259984
* ProcessMachCore scans through the core file pages looking for aJason Molenda2016-02-063-49/+57
| | | | | | | | | | | | | | | | | | | | user process dyld binary and/or a mach kernel binary image. By default, it prefers the kernel if it finds both. But if it finds two kernel binary images (which can happen when random things are mapped into memory), it may pick the wrong kernel image. DynamicLoaderDarwinKernel has heuristics to find a kernel in memory; once we've established that there is a kernel binary in memory, call over to that class to see if it can find a kernel address via its search methods. If it does, use that. Some minor cleanups to DynamicLoaderDarwinKernel while I was at it. <rdar://problem/24446112> llvm-svn: 259983
* [asan] trying to fix the non-x86 botsKostya Serebryany2016-02-061-0/+2
| | | | llvm-svn: 259981
* [asan] properly report an un-aligned global variable instead of just crashingKostya Serebryany2016-02-062-1/+35
| | | | llvm-svn: 259979
* [asan] disabled one subtest in scariness_score_test.cc that may fail when ↵Kostya Serebryany2016-02-061-1/+9
| | | | | | running under GNU make. Add more subtests llvm-svn: 259978
* [OpenMP] Reorganize code to allow specialized code generation for different ↵Samuel Antao2016-02-067-3/+92
| | | | | | | | | | | | | | | | | | | | | | | devices. Summary: Different devices may in some cases require different code generation schemes in order to implement OpenMP. This is required not only for performance reasons, but also because it may not be possible to have the current (default) implementation working for these devices. E.g. GPU's cannot implement the same scheme a target such as powerpc or x86b would use, in the sense that it does not have the ability to fork threads, instead all the threads are always executing and need to be managed by the implementation. This patch proposes a reorganization of the code in the OpenMP code generation to pave the way to have specialized implementation of OpenMP support. More than a "real" patch this is more a request for comments in order to understand if what is proposed is acceptable or if there are better/easier ways to do it. In this patch part of the common OpenMP codegen infrastructure is moved to a new file under a new namespace (CGOpenMPCommon) so it can be shared between the default implementation and the specialized one. When CGOpenMPRuntime is created, an attempt to select a specialized implementation is done. In the patch a specialization for nvptx targets is done which currently checks if the target is an OpenMP device and trap if it is not. Let me know comments suggestions you may have. Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, ABataev Subscribers: Hahnfeld, cfe-commits, fraggamuffin, caomhin, jholewinski Differential Revision: http://reviews.llvm.org/D16784 llvm-svn: 259977
* [modules] Compress files embedded into a .pcm file, to reduce the disk usage ↵Richard Smith2016-02-066-38/+103
| | | | | | of -fembed-all-files mode. llvm-svn: 259976
* Fix a crash when emitting dbeug info for forward-declared scoped enums.Adrian Prantl2016-02-062-1/+28
| | | | | | | | | | It is possible for enums to be created as part of their own declcontext. We need to cache a placeholder to avoid the type being created twice before hitting the cache. <rdar://problem/24493203> llvm-svn: 259975
* Relax assertion in ReplaceableMetadataImpl::replaceAllUsesWith().Adrian Prantl2016-02-061-2/+0
| | | | | | | | | | There is a legitimate use-case in clang where we need to replace a temporary placeholder node with the temporary node that may be a forward declaration. <rdar://problem/24493203> llvm-svn: 259973
* Per Jim's suggestion, move checks that we're not mixing and matching ↵Enrico Granata2016-02-063-2/+12
| | | | | | | | Debuggers and Commands deeper in the bowels of LLDB NFC llvm-svn: 259972
* [llvm-dwp] Merge cu_index from DWPsDavid Blaikie2016-02-065-6/+96
| | | | | | This is almost feature complete - just missing tu_index merging now. llvm-svn: 259971
* [www] Update analyzer release notes to correct the checker-278 build date.Devin Coughlin2016-02-061-1/+1
| | | | | | This is not the future. llvm-svn: 259969
* [Orc] Slightly improve the x86-64 resolver block machine code.Lang Hames2016-02-062-9/+8
| | | | | | Replace leaq + movq of a pointer with a single movabsq. llvm-svn: 259968
* [www] Update analyzer website for checker-278.Devin Coughlin2016-02-062-1/+16
| | | | llvm-svn: 259967
* Set max segment protection level.Pete Cooper2016-02-066-18/+205
| | | | | | | | | | | The initial segment protection was also being used to set the maximum segment protection level. Instead, the maximum should be set according to the architecture we are linking. For example on Mac OS it should be RWX on most pages, but on iOS is often on R_X. rdar://problem/24515136 llvm-svn: 259966
* llvm-bcanalyzer: Produce summary information for the BLOCKINFO block, it can beRichard Smith2016-02-061-10/+17
| | | | | | | a significant fraction of the file size (for files that otherwise have few records). Also include an average size per record in the summary information. llvm-svn: 259965
* Fix an issue where certain CommandObjects (or Options thereof) were being ↵Enrico Granata2016-02-065-29/+79
| | | | | | | | | | created once, bound to a specific CommandInterpreter (and hence a specific Debugger), and then cached for reuse across different Debugger instances Obviously, if the original Debugger goes away, those commands are holding on to now stale memory, which has the potential to cause crashes Fixes rdar://24460882 llvm-svn: 259964
* Add note of suboptimal behavior in MemorySSA. NFC.George Burgess IV2016-02-061-0/+31
| | | | llvm-svn: 259963
* Fix "thread backtrace -s": option was misparsed because of a missing break.Jim Ingham2016-02-061-0/+1
| | | | | | <rdar://problem/24525106> llvm-svn: 259962
* [asan] add an experimental feature that prints the scariness score of the ↵Kostya Serebryany2016-02-064-1/+291
| | | | | | error message. To enable it use ASAN_OPTIONS=print_scariness=1 llvm-svn: 259961
* Move creation of "__LINKEDIT" segment. NFC.Pete Cooper2016-02-062-24/+30
| | | | | | | | | | | | We currently tag on a "__LINKEDIT" when we are emitting the segments. However, an upcoming patch aims to set the initprot and maxprot segment members to their correct values, and in order to share code, its better to create this segment for real and handle it in buildFileOffsets the same way ld64 does. The commit for segment protections will add a test for this all being correct so no test here until that code is committed. llvm-svn: 259960
OpenPOWER on IntegriCloud