- Mar 29, 2020
-
-
Daan Sprenkels authored
Baseline tests for D76983 (PR45314) Differential Revision: https://reviews.llvm.org/D77024
-
Craig Topper authored
SSE4.2 has the pcmpgtq instruction which we will use in vXi64 reductions when its available.
-
Benjamin Kramer authored
Shrinks clang by 40k.
-
Richard Smith authored
-
Fangrui Song authored
Delete arm-exidx-link.s which is now covered by arm-exidx-output.s Differential Revision: https://reviews.llvm.org/D76409
-
David Green authored
-
LLVM GN Syncbot authored
-
Benjamin Kramer authored
This allows emitting it only when the feature is used by a target. Shrinks Release+Asserts clang by 900k.
-
Nathan Ridge authored
Summary: Not handling this was a side-effect of being overly cautious when trying to avoid reading files for which clangd doesn't have the source mapped. Fixes https://github.com/clangd/clangd/issues/266 Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75286
-
Nathan Ridge authored
Subscribers: jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77023
-
Simon Pilgrim authored
[X86][AVX] Combine 128/256-bit lane shuffles with zeroable upper subvectors to EXTRACT_SUBVECTOR (PR40720) As explained on PR40720, EXTRACTF128 is always as good/better than VPERM2F128/SHUF128, and we can use the implicit zeroing of the uppers.
-
Simon Pilgrim authored
gcc was misinterpreting the template code snippet as html.
-
Simon Pilgrim authored
-
Nikita Popov authored
As we don't return the result of replaceInstUsesWith(), we are responsible for erasing the instruction. There is a small subtlety here in that we need to do this after the other uses of Builder, which uses the original multiply as the insertion point. NFC apart from worklist order changes.
-
Nikita Popov authored
To make sure that dead operands get DCEd. This fixes the largest source of leftover dead operands we see in tests. NFC apart from worklist changes.
-
Uday Bondhugula authored
Add missing assert checks for input to mlir::interchangeLoops utility. Rename interchangeLoops -> permuteLoops; update doc comments to clarify inputs / return val. Other than the assert checks, this is NFC. Signed-off-by:
Uday Bondhugula <uday@polymagelabs.com> Differential Revision: https://reviews.llvm.org/D77003
-
Nikita Popov authored
To make sure the old operands are DCEd. NFC apart from worklist order.
-
Nikita Popov authored
We don't return the replaceInstUsesWith() result, so we're responsible for cleaning up. NFC apart from worklist order changes.
-
Uday Bondhugula authored
Aligned_alloc is a standard lib function and has been in glibc since 2.16 and in the C11 standard. It has semantics similar to malloc/calloc for several analyses/transforms. This patch introduces aligned_alloc in target library info and memory builtins. Subsequent ones will make other passes aware and fix https://bugs.llvm.org/show_bug.cgi?id=44062 This change will also be useful to LLVM generators that need to allocate buffers of vector elements larger than 16 bytes (for eg. 256-bit ones), element boundary alignment for which is not typically provided by glibc malloc. Signed-off-by:
Uday Bondhugula <uday@polymagelabs.com> Differential Revision: https://reviews.llvm.org/D76970
-
Matt Arsenault authored
-
Matt Arsenault authored
-
Matt Arsenault authored
This was was never actually hit, but FTRUNC was clearly not the intent here.
-
Matt Arsenault authored
Use functions now that we have them for less boilerplate in the output.
-
Matt Arsenault authored
-
Sanjay Patel authored
-
Sanjay Patel authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Nikita Popov authored
Rather than converting to a dummy select with equal true and false ops, just directly return the resulting value. As a side-effect, this fixes missing DCE of the previously replaced operand.
-
Florian Hahn authored
BitVector::set_bits() returns an iterator range yielding unsinged elements, which always will be copied while const & gives the impression that there will be no copy. Newer version of clang complain: warning: loop variable 'SetBitsIt' is always a copy because the range of type 'iterator_range<llvm::BitVector::const_set_bits_iterator>' (aka 'iterator_range<const_set_bits_iterator_impl<llvm::BitVector> >') does not return a reference [-Wrange-loop-analysis] Reviewers: jdoerfert, rnk Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D77010
-
Nikita Popov authored
Add a replaceUse() helper to mirror replaceOperand() for the rare cases where we're working directly on uses. NFC apart from worklist order changes.
-
Nikita Popov authored
Usually when we replaceInstUsesWith() we also return the original instruction, and InstCombine will take care of erasing it. Here we don't do that, so we need to manually erase it. NFC apart from worklist order changes.
-
Nikita Popov authored
To make sure the old operands get DCEd. NFC apart from worklist order changes.
-
Simon Pilgrim authored
As explained on PR40720, EXTRACTF128 is always as good/better than VPERM2F128, and we can use the implicit zeroing of the upper half. I've added some extra tests to vector-shuffle-combining-avx2.ll to make sure we don't lose coverage.
-
Simon Pilgrim authored
This was an inner helper function for the real matchShuffleAsByteRotate function, but it is more generic and is used directly for VALIGN lowering which doesn't work at the byte level.
-
Simon Pilgrim authored
Allows us to combine VALIGN instructions with other shuffles - the combiner doesn't create VALIGN yet though.
-
Kazuaki Ishizaki authored
Reviewers: mravishankar, antiagainst, nicolasvasilache, herhut, aartbik, mehdi_amini, bondhugula Reviewed By: mehdi_amini, bondhugula Subscribers: bondhugula, jdoerfert, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, csigg, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, Joonsoo, bader, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D76993
-
Florian Hahn authored
This patch changes VPWidenRecipe to only store a single original IR instruction. This is the first required step towards modeling it's operands as VPValues and also towards breaking it up into a VPInstruction. Discussed as part of D74695. Reviewers: Ayal, gilr, rengolin Reviewed By: gilr Differential Revision: https://reviews.llvm.org/D76988
-
Nikita Popov authored
We use a SmallPtrSet to track visited nodes, use a SmallVector of the same size for the stack.
-
Simon Pilgrim authored
Replace the explicit isAtom() || isSLM() test with the more general (and more specific) slowTwoMemOps() check to avoid the use of the PUSHrmm push from memory case. This is actually very tricky to test in anything but quite complex code, but the atomic-idempotent.ll tests seem to be the most straightforward to use. Differential Revision: https://reviews.llvm.org/D76239
-