- Aug 18, 2016
-
-
Vitaly Buka authored
Summary: PR27453 Reviewers: eugenis Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D23647 llvm-svn: 279109
-
Valery Pykhtin authored
Differential revision: https://reviews.llvm.org/D23666 llvm-svn: 279106
-
Elliot Colp authored
Normally, when an AND with a constant is lowered to NILL, the constant value is truncated to 16 bits. However, since r274066, ANDs whose results are used in a shift are caught by a different pattern that does not truncate. The instruction printer expects a 16-bit unsigned immediate operand for NILL, so this results in an abort. This patch adds code to manually truncate the constant in this situation. The rest of the bits are then set, so we will detect a case for NILL "naturally" rather than using peephole optimizations. Differential Revision: http://reviews.llvm.org/D21854 llvm-svn: 279105
-
Duncan P. N. Exon Smith authored
Remove an unnecessary round-trip: iterator => operator->() => getIterator() In some cases, the iterator is end(), so the dereference of operator-> is invalid (UB). The testcase only crashes with r278974 (currently reverted to investigate this), which adds an assertion for invalid dereferences of ilist nodes. Fixes PR29035. llvm-svn: 279104
-
Eugene Zelenko authored
Differential revision: https://reviews.llvm.org/D23675 llvm-svn: 279102
-
Sanjay Patel authored
This is a sibling of: https://reviews.llvm.org/rL278859 https://reviews.llvm.org/rL278935 https://reviews.llvm.org/rL278945 https://reviews.llvm.org/rL279066 https://reviews.llvm.org/rL279077 llvm-svn: 279101
-
Dan Gohman authored
The WebAssemly spec removing the return value from store instructions, so remove the associated optimization from LLVM. This patch leaves the store instruction operands in place for now, so stores now always write to "$drop"; these will be removed in a seperate patch. llvm-svn: 279100
-
Chandler Carruth authored
number of assume intrinsics. The classical way to have a cache-friendly vector style container when we need queue semantics for BFS instead of stack semantics for DFS is to use an ever-growing vector and an index. Erasing from the front requires O(size) work, and unless we expect the worklist to grow *very* large, its probably cheaper to just grow and race down the list. But that makes it more bad that we're putting the assume intrinsics in this at all. We end up looking at the (by definition empty) use list to see if they're ephemeral (when we've already put them in that set), etc. Instead, directly populate the worklist with the operands when we mark the assume intrinsics as ephemeral. Also, test the visited set *before* putting things into the worklist so we don't accumulate the same value in the list 100s of times. It would be nice to use a set-vector for this but I think its useful to test the set earlier to avoid repeatedly querying whether the same instruction is safe to speculate. Hopefully with these changes the number of values pushed onto the worklist is smaller, and we avoid quadratic work by letting it grow as necessary. Differential Revision: https://reviews.llvm.org/D23396 llvm-svn: 279099
-
Vedant Kumar authored
llvm-svn: 279095
-
Sanjay Patel authored
1. Better variable names 2. Remove unnecessary check of ConstantInt llvm-svn: 279094
-
Duncan P. N. Exon Smith authored
This reverts commit r279086, reapplying r279084. I'm not sure what I ran before, because the compile failure for ADTTests reproduced locally. The problem is that TestRev is calling BidirectionalVector::rbegin() when the BidirectionalVector is const, but rbegin() is always non-const. I've updated BidirectionalVector::rbegin() to be callable from const. Original commit message follows. -- As a follow-up to r278991, add some tests that check that decltype(reverse(R).begin()) == decltype(R.rbegin()), and get them passing by adding std::remove_reference to has_rbegin. I'm using static_assert instead of EXPECT_TRUE (and updated the other has_rbegin check from r278991 in the same way) since I figure that's more helpful. llvm-svn: 279091
-
Zachary Turner authored
The original patch was breaking some buildbots due to an incorrect ordering of function definitions which caused some compilers to recognize a definition but others to not. llvm-svn: 279089
-
Saleem Abdulrasool authored
This adds behaviour similar to binutils' objdump which can show symbols in an import library. Differences from that stem around the fact that we do not create section symbols nor the all import import descriptor symbol reference. However, this does mean that the tool can serve as a possible replacement for the existing tool. llvm-svn: 279088
-
Duncan P. N. Exon Smith authored
This reverts commit r279084, since it failed on a bot: http://bb.pgr.jp/builders/cmake-llvm-x86_64-linux/builds/41733 llvm-svn: 279086
-
Duncan P. N. Exon Smith authored
As a follow-up to r278991, add some tests that check that decltype(reverse(R).begin()) == decltype(R.rbegin()), and get them passing by adding std::remove_reference to has_rbegin. I'm using static_assert instead of EXPECT_TRUE (and updated the other has_rbegin check from r278991 in the same way) since I figure that's more helpful. llvm-svn: 279084
-
Artur Pilipenko authored
It causes a regression on our internal benchmark. Introduce cvp-dont-process flag and set it off by default while investigating the regression. llvm-svn: 279082
-
Ahmed Bougacha authored
There is no FREM instruction, but the others are straightforward. llvm-svn: 279081
-
Ahmed Bougacha authored
llvm-svn: 279080
-
Davide Italiano authored
llvm-svn: 279079
-
Richard Barton authored
The ARMv8*-A descriptions in the ARM and AArch64 TargetParsers are incorrect architecturally and mismatched to the backend descriptions. RAS is an optional extension to ARMv8-A and ARMv8.1-A and mandatory in ARMv8.2-A. Correct the ARMTargetParser descriptions which had this as enabled by default in the earlier versions. The FP16 and SPE extensions are optional in ARMv8.2-A and the backend defaults them as off. They are not available as extensions to earlier ARMv8-A versions. Correct the AArch64TargetParser which had these as enabled by default in all ARMv8-A definitions. These macros are only used to define preprocessor macros. There are no macros yet as ACLE has not caught up with ARMv8.2-A so not possible to add a test. Differential Revision: https://reviews.llvm.org/D23500 llvm-svn: 279078
-
Sanjay Patel authored
This is a sibling of: https://reviews.llvm.org/rL278859 https://reviews.llvm.org/rL278935 https://reviews.llvm.org/rL278945 https://reviews.llvm.org/rL279066 llvm-svn: 279077
-
Derek Schuff authored
This patch changes the code structure of WebAssemblyLowerEmscriptenException pass to support both exception handling and setjmp/longjmp. It also changes the name of the pass and the source file. 1. Change the file/pass name to WebAssemblyLowerEmscriptenExceptions -> WebAssemblyLowerEmscriptenEHSjLj to make it clear that it supports both EH and SjLj 2. List function / global variable names at the top so they can be changed easily 3. Some cosmetic changes Patch by Heejin Ahn Differential Revision: https://reviews.llvm.org/D23588 llvm-svn: 279075
-
Ahmed Bougacha authored
There is no REM instruction; that will require an expansion. It's not obvious that should be done in select, rather than as a (custom?) legalization. llvm-svn: 279074
-
Ahmed Bougacha authored
llvm-svn: 279073
-
Sanjay Patel authored
This will enable vector splat folding, but NFC until the callers have their ConstantInt restrictions removed. llvm-svn: 279072
-
Saleem Abdulrasool authored
`link -dump -exports` lists exported symbols from import libraries as well as normal dlls. Ensure that we can handle import libraries as well in llvm-readobj. llvm-svn: 279069
-
Sanjay Patel authored
llvm-svn: 279068
-
Krzysztof Parzyszek authored
llvm-svn: 279067
-
Sanjay Patel authored
This is a sibling of: https://reviews.llvm.org/rL278859 https://reviews.llvm.org/rL278935 https://reviews.llvm.org/rL278945 llvm-svn: 279066
-
Simon Pilgrim authored
llvm-svn: 279065
-
Simon Dardis authored
r277708 enabled tails calls for MIPS but used the 'jr' instruction when the jump target was held in a register. For MIPSR6, 'jalr $zero, $reg' should have been used. Additionally, add missing patterns for external and global symbols for tail calls. Reviewers: dsanders, vkalintiris Differential Review: https://reviews.llvm.org/D23301 llvm-svn: 279064
-
Chad Rosier authored
llvm-svn: 279063
-
Alex Bradbury authored
Summary: This is a pretty trivial, but I thought it was worth just checking that nobody feels it's completely the wrong thing to be doing. The motivation is that when starting a new backend, you often start with a minimal stub, pretty much just FooTargetMachine and FooTargetInfo. Once that's built, you might naturally try `llc -march=foo myinput.ll` and it seems more developer-friendly if this ends up asserting due to the lack of MCAsmInfo with an informative message rather than just segfaulting. Reviewers: MatzeB, chandlerc Subscribers: bogner, llvm-commits Differential Revision: https://reviews.llvm.org/D23443 llvm-svn: 279061
-
Simon Pilgrim authored
llvm-svn: 279054
-
Diana Picus authored
This reverts commit r278974 which broke some of our bots (e.g. clang-cmake-aarch64-42vma, clang-cmake-aarch64-full). llvm-svn: 279053
-
Diana Picus authored
This reverts commit r279012. r278974 broke some bots, I have to revert this to get to it. llvm-svn: 279052
-
George Burgess IV authored
Thanks again to Michael Kuperstein for the feedback. llvm-svn: 279032
-
Matthias Braun authored
llvm-svn: 279031
-
Lang Hames authored
llvm-svn: 279029
-
Kostya Serebryany authored
[sanitizer-coverage/libFuzzer] instrument comparisons with __sanitizer_cov_trace_cmp[1248] instead of __sanitizer_cov_trace_cmp, don't pass the comparison type to save a bit performance. Use these new callbacks in libFuzzer llvm-svn: 279027
-