summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Typo correct the condition of 'do-while' before exiting its scopeAlex Lorenz2017-10-302-1/+36
| | | | | | rdar://35172419 llvm-svn: 316966
* [modules] Retain multiple using-directives in the same scope even if they ↵Richard Smith2017-10-303-11/+40
| | | | | | | | | | | | name the same namespace. They might have different visibility, and thus discarding all but one of them can result in rejecting valid code. Also fix name lookup to cope with multiple using-directives being found that denote the same namespace, where some are not visible -- don't cache an "already visited" state for a using-directive that we didn't visit because it was hidden. llvm-svn: 316965
* Fix unused variable warnings. NFCI.Simon Pilgrim2017-10-301-3/+0
| | | | llvm-svn: 316964
* [analyzer] Use the same filename for the header and the implementation of ↵George Karpenkov2017-10-303-5/+5
| | | | | | | | BugReporterVisitor Differential Revision: https://reviews.llvm.org/D37935 llvm-svn: 316963
* [SelectionDAG] Tidyup computeKnownBits extension/truncation cases. NFCI.Simon Pilgrim2017-10-301-17/+4
| | | | | | We don't need to extend/truncate the Known structure before calling computeKnownBits - it will reset at the start of the function. llvm-svn: 316962
* Give .note.gnu.build-id section alignment 4Jake Ehrlich2017-10-302-4/+19
| | | | | | | | All SHT_NOTE sections should have minimum alignment 4. Differential Revision: https://reviews.llvm.org/D38907 llvm-svn: 316961
* [AArch64]: range loopify frame-loweringJaved Absar2017-10-301-2/+2
| | | | llvm-svn: 316960
* [sanitizer][Fuchsia] Add a missing semicolonPetr Hosek2017-10-301-1/+1
| | | | | | Differential Revision: https://reviews.llvm.org/D39433 llvm-svn: 316959
* Fix -fuse-ld feature detection error.Rui Ueyama2017-10-301-1/+4
| | | | | | | | | | | | | | | | check_cxx_compiler_flag doesn't seem to try to link a program, so the existing code doesn't correctly detect the availability of a given linker. This patch uses check_cxx_source_compiles instead. I confirmed that cmake now reports this error Host compiler does not support '-fuse-ld=foo' for -DLLVM_USE_LINKER=foo. Differential Revision: https://reviews.llvm.org/D39274 llvm-svn: 316958
* InferAddressSpaces: Fix bug about replacing addrspacecastYaxun Liu2017-10-302-0/+18
| | | | | | | | | | | | | | InferAddressSpaces assumes the pointee type of addrspacecast is the same as the operand, which is not always true and causes invalid IR. This bug cause build failure in HCC. This patch fixes that. Differential Revision: https://reviews.llvm.org/D39432 llvm-svn: 316957
* [CMake] Fix linker detection in AddLLVM.cmakeTim Shen2017-10-301-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | Fix linker not being correctly detected when a custom one is specified through LLVM_USE_LINKER CMake variable. In particular, cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_USE_LINKER=gold ../llvm resulted into Linker detection: GNU ld instead of Linker detection: GNU Gold due to the construction not accounting for such variable. It led to the general confusion and prevented setting linker-specific flags inside functions defined in AddLLVM.cmake. Thanks Oleksii Vilchanskyi for the patch! llvm-svn: 316956
* [X86] Add AVX512 support to fast isel's X86ChooseCmpOpcode.Craig Topper2017-10-303-2/+5
| | | | llvm-svn: 316955
* Remove a stray space.Jim Ingham2017-10-301-1/+1
| | | | llvm-svn: 316954
* [NewGVN] Stop assuming PHI args ordering when looking at phi-of-ops.Davide Italiano2017-10-302-1/+71
| | | | | | | | It's not guaranteed. There's a bug open to sort them in predecessor order, but it won't happen anytime soon. In the meanwhile, passes will have to do an O(#preds) scan. Such is life. llvm-svn: 316953
* Revert "[PowerPC] Try to simplify a Swap if it feeds a Splat"Stefan Pintilie2017-10-303-183/+2
| | | | | | | | | | Revert r316478. A test case has failed. Will recommit this change once we find and fix the failure. This reverts commit 7c330fabaedaba3d02c58bc3cc1198896c895f34. llvm-svn: 316952
* Add more fuzzing bits: partial_sort_copy, partition_copy, unique, ↵Marshall Clow2017-10-307-18/+360
| | | | | | unique_copy. No functional change to libc++; this is all test infastructure llvm-svn: 316951
* Create instruction classes for identifying any atomicity of memory ↵Daniel Neilson2017-10-305-221/+253
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | intrinsic. (NFC) Summary: For reference, see: http://lists.llvm.org/pipermail/llvm-dev/2017-August/116589.html This patch fleshes out the instruction class hierarchy with respect to atomic and non-atomic memory intrinsics. With this change, the relevant part of the class hierarchy becomes: IntrinsicInst -> MemIntrinsicBase (methods-only class) -> MemIntrinsic (non-atomic intrinsics) -> MemSetInst -> MemTransferInst -> MemCpyInst -> MemMoveInst -> AtomicMemIntrinsic (atomic intrinsics) -> AtomicMemSetInst -> AtomicMemTransferInst -> AtomicMemCpyInst -> AtomicMemMoveInst -> AnyMemIntrinsic (both atomicities) -> AnyMemSetInst -> AnyMemTransferInst -> AnyMemCpyInst -> AnyMemMoveInst This involves some class renaming: ElementUnorderedAtomicMemCpyInst -> AtomicMemCpyInst ElementUnorderedAtomicMemMoveInst -> AtomicMemMoveInst ElementUnorderedAtomicMemSetInst -> AtomicMemSetInst A script for doing this renaming in downstream trees is included below. An example of where the Any* classes should be used in LLVM is when reasoning about the effects of an instruction (ex: aliasing). --- Script for renaming AtomicMem* classes: PREFIXES="[<,([:space:]]" CLASSES="MemIntrinsic|MemTransferInst|MemSetInst|MemMoveInst|MemCpyInst" SUFFIXES="[;)>,[:space:]]" REGEX="(${PREFIXES})ElementUnorderedAtomic(${CLASSES})(${SUFFIXES})" REGEX2="visitElementUnorderedAtomic(${CLASSES})" FILES=$( grep -E "(${REGEX}|${REGEX2})" -r . | tr ':' ' ' | awk '{print $1}' | sort | uniq ) SED_SCRIPT="s~${REGEX}~\1Atomic\2\3~g" SED_SCRIPT2="s~${REGEX2}~visitAtomic\1~g" for f in $FILES; do echo "Processing: $f" sed -i ".bak" -E "${SED_SCRIPT};${SED_SCRIPT2};${EA_SED_SCRIPT};${EA_SED_SCRIPT2}" $f done Reviewers: sanjoy, deadalnix, apilipenko, anna, skatkov, mkazantsev Reviewed By: sanjoy Subscribers: hfinkel, jholewinski, arsenm, sdardis, nhaehnle, JDevlieghere, javed.absar, llvm-commits Differential Revision: https://reviews.llvm.org/D38419 llvm-svn: 316950
* [GVNHoist] Fix non-deterministic sort order of PHIs for identical instructionsMandeep Singh Grang2017-10-301-1/+1
| | | | | | | | | | | | | | Summary: This fixes failure in Transforms/GVNHoist/hoist.ll uncovered by D39245. Reviewers: hiraditya, spop, dberlin Reviewed By: dberlin Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D39410 llvm-svn: 316949
* [analyzer] [tests] Remove empty folders in reference results, do not store ↵George Karpenkov2017-10-302-17/+12
| | | | | | | | | | | diffs.txt Storing diffs.txt is now redundant, as we simply dump the CmpRuns output to stdout (it is saved in CI and tends to be small). Not generating those files enables us to remove empty folders, which confuse git, as it would not add them with reference results. llvm-svn: 316948
* [SelectionDAG] Add VSELECT demanded elts support to computeKnownBits Simon Pilgrim2017-10-302-24/+8
| | | | llvm-svn: 316947
* X86 Tests: Update the variable-index permute tests with FP types. NFC.Zvi Rackover2017-10-303-0/+456
| | | | | | These cases will be addressed in a future update to D39126. llvm-svn: 316946
* [X86][SSE] Add another computeKnownBits test showing missing VSELECT ↵Simon Pilgrim2017-10-301-0/+44
| | | | | | demandedelts support llvm-svn: 316945
* [SelectionDAG] Add VSELECT support to computeKnownBits Simon Pilgrim2017-10-303-29/+30
| | | | llvm-svn: 316944
* Fix warning + death test + failing test on Windows (D39072).Kostya Kortchinsky2017-10-302-9/+7
| | | | | | | | | | | | | | Summary: Fixes https://reviews.llvm.org/D39072 Reviewers: cryptoad Reviewed By: cryptoad Subscribers: kubamracek Differential Revision: https://reviews.llvm.org/D39427 llvm-svn: 316943
* Change unw_word_t to always have the same size as the pointer sizeMartin Storsjo2017-10-306-40/+40
| | | | | | | | | | | | | This matches the original libunwind API. This also unifies the type between ARM EHABI and the other configurations, and allows getting rid of a number of casts in log messages. The cursor size updates for ppc and or1k are untested, but unw_proc_info_t shrinks by 4 uint64_t units on i386 at least. Differential Revision: https://reviews.llvm.org/D39365 llvm-svn: 316942
* Implement LWG 3013 - some filesystem members should not be noexcept.Eric Fiselier2017-10-307-32/+43
| | | | | | | | | | | | | | | LWG 3013 points out that the constructors and increment members of the directory iterators need to allocate, and therefore cannot be marked noexcept. It also points out that `is_empty` and `copy` likely need to allocate as well, and as such can also not be noexcept. This patch speculatively implements the resolution removing noexcept, because libc++ does indeed have the possibility of throwing on allocation failure. llvm-svn: 316941
* [X86][SSE] computeKnownBits tests showing missing VSELECT demandedelts support Simon Pilgrim2017-10-301-0/+48
| | | | llvm-svn: 316940
* Fix PR35078 - recursive directory iterator's increment method throws ↵Eric Fiselier2017-10-302-9/+274
| | | | | | | | | | | | | | incorrectly. The guts of the increment method for recursive_directory_iterator was failing to pass an error code object to calls to status/symlink_status, which can throw under certain conditions. This patch fixes the issues by correctly propagating the error codes. However the noexcept still needs to be removed from the signature, as mentioned in LWG 3014, but that change will be made in a separate commit. llvm-svn: 316939
* [X86][AVX512] Cleanup scheduler tests - split GENERIC and SKX targetsSimon Pilgrim2017-10-302-8923/+16710
| | | | llvm-svn: 316938
* [sanitizer] Fixing an error introduced in D39072Kostya Kortchinsky2017-10-301-1/+1
| | | | | | | | | | | | | | Summary: This should fix the Windows bots after D39072. Reviewers: alekseyshl, flowerhack Reviewed By: flowerhack Subscribers: llvm-commits, kubamracek Differential Revision: https://reviews.llvm.org/D39426 llvm-svn: 316937
* Undo accidental language mode change in this test.Richard Smith2017-10-301-1/+1
| | | | llvm-svn: 316936
* Add a test to make sure that -Wdeprecated doesn't warn on use of 'throw()' ↵Richard Smith2017-10-302-2/+5
| | | | | | in system headers (deprecated in C++17). llvm-svn: 316935
* Introduce ReservedAddressRange to sanitizer_common.Kostya Kortchinsky2017-10-305-0/+165
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Fixed version of https://reviews.llvm.org/D38437 (fixes Win/Fuchsia failures). Creating a new revision, since the old one was getting a bit old/crowded. In Fuchsia, MmapNoAccess/MmapFixedOrDie are implemented using a global VMAR, which means that MmapNoAccess can only be called once. This works for the sanitizer allocator but *not* for the Scudo allocator. Hence, this changeset introduces a new ReservedAddressRange object to serve as the new API for these calls. In this changeset, the object still calls into the old Mmap implementations. The next changeset two changesets will convert the sanitizer and scudo allocators to use the new APIs, respectively. (ReservedAddressRange will replace the SecondaryHeader in Scudo.) Finally, a last changeset will update the Fuchsia implementation. Reviewers: alekseyshl, cryptoad, phosek Reviewed By: alekseyshl, cryptoad Subscribers: kubamracek Differential Revision: https://reviews.llvm.org/D39072 llvm-svn: 316934
* [SelectionDAG] Add SELECT demanded elts support to ComputeNumSignBitsSimon Pilgrim2017-10-302-40/+12
| | | | llvm-svn: 316933
* [X86][SSE] ComputeNumSignBits tests showing missing VSELECT demandedelts ↵Simon Pilgrim2017-10-301-0/+107
| | | | | | support llvm-svn: 316932
* Use 64 bits for the shared symbol size again.Rafael Espindola2017-10-303-1/+25
| | | | | | | We might want to drop support for such large symbols, but that should be an explicit decision with a testcase. llvm-svn: 316931
* Fix clang warnings in winasan codeReid Kleckner2017-10-301-3/+3
| | | | | | There are two instances of -Wcast-qual and one of -Wsign-compare. llvm-svn: 316930
* [asan] Intercept heap routines in VS2010 CRTReid Kleckner2017-10-301-0/+1
| | | | | | | Users have requested that we add it to the list: https://github.com/google/sanitizers/issues/864 llvm-svn: 316929
* Skip abs symbols when handling copy reloc aliases.Rafael Espindola2017-10-303-1/+62
| | | | | | | Since we now only check st_value, we have to consider the case where the section index is special. llvm-svn: 316928
* [MC] Split out register def/use idx calls to make debugging simpler. NFCI.Simon Pilgrim2017-10-301-3/+4
| | | | llvm-svn: 316927
* [X86][AVX] Add missing vcvtpd2dq/vcvtps2dq scheduling testsSimon Pilgrim2017-10-301-14/+142
| | | | llvm-svn: 316926
* [X86][SSE] Add clflush scheduling testSimon Pilgrim2017-10-301-0/+61
| | | | llvm-svn: 316925
* [analyzer] Left shifting a negative value is undefinedGabor Horvath2017-10-303-0/+13
| | | | | | | | | | The analyzer did not return an UndefVal in case a negative value was left shifted. I also altered the UndefResultChecker to emit a clear warning in this case. Differential Revision: https://reviews.llvm.org/D39423 llvm-svn: 316924
* Test commit: sort names in CREDITS.txtJoachim Protze2017-10-301-4/+4
| | | | llvm-svn: 316922
* [X86][AVX512] Adding a pattern for broadcastm intrinsic.Jina Nahias2017-10-302-57/+73
| | | | | | | Differential Revision: https://reviews.llvm.org/D38312 Change-Id: I71c8605a8e4c98013ef25289694afc5cfd46bb0b llvm-svn: 316921
* Move isDSOLocal check and add a comment.Rafael Espindola2017-10-301-2/+12
| | | | llvm-svn: 316920
* Fix windows build broken in r316915Pavel Labath2017-10-301-1/+0
| | | | | | I accidentally left a linux-specific include in generic code. llvm-svn: 316919
* Mark test as unsupported on C++98/03, since it uses move_iteratorMarshall Clow2017-10-301-0/+2
| | | | llvm-svn: 316917
* [PPC CodeGen] Fix the bitreverse.i64 intrinsic.Fangrui Song2017-10-303-103/+66
| | | | | | | | | | | | Summary: The two 32-bit words were swapped. Update a test omitted in reverted r316270. Reviewers: jtony, aaron.ballman Subscribers: nemanjai, kbarton Differential Revision: https://reviews.llvm.org/D39163 llvm-svn: 316916
* MainLoop: work around an android libc bugPavel Labath2017-10-302-11/+27
| | | | | | | | | | | | | Versions of android before kitkat implemented pselect non-atomically, which caused flakyness, as we were relying on it atomically setting the signal mask to implement waiting for signals. This patch implements a direct call to the the pselect kernel syscall, which does not suffer from this problem. The code itself is not very pretty, but fortunately the uglyness is contained in the android version of the MainLoop::RunImpl::Poll function. llvm-svn: 316915
OpenPOWER on IntegriCloud