|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1 |
|
| #
2e5daac2 |
| 05-Oct-2021 |
Simon Pilgrim <[email protected]> |
[llvm] Update report_fatal_error calls from raw_string_ostream to use Twine(OS.str())
As described on D111049, we're trying to remove the <string> dependency from error handling and replace uses of
[llvm] Update report_fatal_error calls from raw_string_ostream to use Twine(OS.str())
As described on D111049, we're trying to remove the <string> dependency from error handling and replace uses of report_fatal_error(const std::string&) with the Twine() variant which can be forward declared.
We can use the raw_string_ostream::str() method to perform the implicit flush() and return a reference to the std::string container that we can then wrap inside Twine().
show more ...
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init |
|
| #
8a8d01d5 |
| 24-Jul-2021 |
Paul Walker <[email protected]> |
[NFC] Change VFShape so it contains an ElementCount rather than seperate VF and IsScalable properties.
Differential Revision: https://reviews.llvm.org/D106750
|
|
Revision tags: llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2 |
|
| #
a407ec9b |
| 19-Aug-2020 |
Mehdi Amini <[email protected]> |
Revert "Revert "[NFC][llvm] Make the contructors of `ElementCount` private.""
Was reverted because MLIR/Flang builds were broken, these APIs have been fixed in the meantime.
|
| #
4fc56d70 |
| 19-Aug-2020 |
Mehdi Amini <[email protected]> |
Revert "[NFC][llvm] Make the contructors of `ElementCount` private."
This reverts commit 264afb9e6aebc98c353644dd0700bec808501cab. (and dependent 6b742cc48 and fc53bd610f)
MLIR/Flang are broken.
|
| #
264afb9e |
| 17-Aug-2020 |
Francesco Petrogalli <[email protected]> |
[NFC][llvm] Make the contructors of `ElementCount` private.
Differential Revision: https://reviews.llvm.org/D86120
|
| #
e2022367 |
| 02-Aug-2020 |
Simon Pilgrim <[email protected]> |
[IR] Add IRBuilderBase::CreateVectorSplat(ElementCount EC) variant
As discussed on D81500, this adds a more general ElementCount variant of the build helper and converts the (non-scalable) unsigned
[IR] Add IRBuilderBase::CreateVectorSplat(ElementCount EC) variant
As discussed on D81500, this adds a more general ElementCount variant of the build helper and converts the (non-scalable) unsigned NumElts variant to use it internally.
show more ...
|
|
Revision tags: llvmorg-11.0.0-rc1, llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2 |
|
| #
eb81c85a |
| 16-Jun-2020 |
Christopher Tetreault <[email protected]> |
[SVE] Deprecate default false variant of VectorType::get
Reviewers: efriedma, fpetrogalli, kmclaughlin, huntergr
Reviewed By: fpetrogalli
Subscribers: cfe-commits, tschuett, rkruppe, psnobl, llvm-
[SVE] Deprecate default false variant of VectorType::get
Reviewers: efriedma, fpetrogalli, kmclaughlin, huntergr
Reviewed By: fpetrogalli
Subscribers: cfe-commits, tschuett, rkruppe, psnobl, llvm-commits
Tags: #llvm, #clang
Differential Revision: https://reviews.llvm.org/D80342
show more ...
|
|
Revision tags: llvmorg-10.0.1-rc1 |
|
| #
c7878ad2 |
| 29-Apr-2020 |
Anh Tuyen Tran <[email protected]> |
[VFDatabase] Scalar functions are vector functions with VF =1
Summary: Return scalar function when VF==1. The new trivial mapping scalar --> scalar when VF==1 to prevent false positive for "isVector
[VFDatabase] Scalar functions are vector functions with VF =1
Summary: Return scalar function when VF==1. The new trivial mapping scalar --> scalar when VF==1 to prevent false positive for "isVectorizable" query.
Author: masoud.ataei (Masoud Ataei)
Reviewers: Whitney (Whitney Tsang), fhahn (Florian Hahn), pjeeva01 (Jeeva P.), fpetrogalli (Francesco Petrogalli), rengolin (Renato Golin)
Reviewed By: fpetrogalli (Francesco Petrogalli)
Subscribers: hiraditya (Aditya Kumar), llvm-commits, LLVM
Tag: LLVM
Differential Revision: https://reviews.llvm.org/D78054
show more ...
|
| #
c23cbefd |
| 12-Apr-2020 |
Sanjay Patel <[email protected]> |
[VectorUtils] add IR-level analysis for widening of shuffle mask
This is similar to the recent move/addition of "scaleShuffleMask" (D76508), but there are a couple of differences:
1. The existing x
[VectorUtils] add IR-level analysis for widening of shuffle mask
This is similar to the recent move/addition of "scaleShuffleMask" (D76508), but there are a couple of differences:
1. The existing x86 helper (canWidenShuffleElements) always tries to divide-by-2, so it gets called iteratively and wouldn't handle the general case of non-pow-2 length. 2. The existing x86 code handles "SM_SentinelZero" - we don't have that in IR, but this code should be safe to use with that or other special (negative) values.
The motivation is to enable shuffle folds in instcombine/vector-combine that are similar to D76844 and D76727, but in the reverse-bitcast direction. Those patterns are visible in the tests for D40633.
Differential Revision: https://reviews.llvm.org/D77881
show more ...
|
| #
1318ddbc |
| 11-Apr-2020 |
Sanjay Patel <[email protected]> |
[VectorUtils] rename scaleShuffleMask to narrowShuffleMaskElts; NFC
As proposed in D77881, we'll have the related widening operation, so this name becomes too vague.
While here, change the function
[VectorUtils] rename scaleShuffleMask to narrowShuffleMaskElts; NFC
As proposed in D77881, we'll have the related widening operation, so this name becomes too vague.
While here, change the function signature to take an 'int' rather than 'size_t' for the scaling factor, add an assert for overflow of 32-bits, and improve the documentation comments.
show more ...
|
| #
f92563f9 |
| 01-Apr-2020 |
Craig Topper <[email protected]> |
[VectorUtils][X86] De-templatize scaleShuffleMask and 2 X86 shuffle mask helpers and move their implementation to cpp files
Summary: These were templated due to SelectionDAG using int masks for shuf
[VectorUtils][X86] De-templatize scaleShuffleMask and 2 X86 shuffle mask helpers and move their implementation to cpp files
Summary: These were templated due to SelectionDAG using int masks for shuffles and IR using unsigned masks for shuffles. But now that D72467 has landed we have an int mask version of IRBuilder::CreateShuffleVector. So just use int instead of a template
Reviewers: spatel, efriedma, RKSimon
Reviewed By: efriedma
Subscribers: hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D77183
show more ...
|
| #
ebf83c36 |
| 23-Mar-2020 |
Sanjay Patel <[email protected]> |
[Analysis] simplify code for scaleShuffleMask
This is NFC-ish. The results should be identical, but perf is hopefully better with the fast-path for no scaling. Added a unit test for that.
The code
[Analysis] simplify code for scaleShuffleMask
This is NFC-ish. The results should be identical, but perf is hopefully better with the fast-path for no scaling. Added a unit test for that.
The code is adapted from what used to be the DAGCombiner equivalent function before D76508 (rG0eeee83d7513).
show more ...
|
|
Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6 |
|
| #
0eeee83d |
| 23-Mar-2020 |
Sanjay Patel <[email protected]> |
[VectorUtils] move x86's scaleShuffleMask to generic VectorUtils
We have some long-standing missing shuffle optimizations that could use this transform via VectorCombine now: https://bugs.llvm.org/s
[VectorUtils] move x86's scaleShuffleMask to generic VectorUtils
We have some long-standing missing shuffle optimizations that could use this transform via VectorCombine now: https://bugs.llvm.org/show_bug.cgi?id=35454 (and we still don't get that case in the backend either)
This function is apparently templated because there's existing code in IR that treats mask values as unsigned and backend code that treats masks values as signed.
The mask values are not endian-dependent (as shown by the existing bitcast transform from DAGCombiner).
Differential Revision: https://reviews.llvm.org/D76508
show more ...
|
|
Revision tags: llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2 |
|
| #
686a038e |
| 05-Feb-2020 |
Sanjay Patel <[email protected]> |
[Analysis] add query to get splat value from array of ints
I was debug stepping through an x86 shuffle lowering and noticed we were doing an N^2 search for splat index. I didn't find the equivalent
[Analysis] add query to get splat value from array of ints
I was debug stepping through an x86 shuffle lowering and noticed we were doing an N^2 search for splat index. I didn't find the equivalent functionality anywhere else in LLVM, so here's a helper that takes an array of int and returns a splatted index while ignoring undefs (any negative value).
This might also be used inside existing ShuffleVectorInst/ShuffleVectorSDNode functions and/or help with D72467.
Differential Revision: https://reviews.llvm.org/D74064
show more ...
|
| #
9b9e2da0 |
| 02-Feb-2020 |
Sanjay Patel <[email protected]> |
[Analysis] add optional index parameter to isSplatValue()
We want to allow splat value transforms to improve PR44588 and related bugs: https://bugs.llvm.org/show_bug.cgi?id=44588 ...but to do that,
[Analysis] add optional index parameter to isSplatValue()
We want to allow splat value transforms to improve PR44588 and related bugs: https://bugs.llvm.org/show_bug.cgi?id=44588 ...but to do that, we need to know if values are splatted from the same, specific index (lane) rather than splatted from an arbitrary index.
We can improve the undef handling with 1-liner follow-ups because the Constant API optionally allow undefs now.
Differential Revision: https://reviews.llvm.org/D73549
show more ...
|
|
Revision tags: llvmorg-10.0.0-rc1, llvmorg-11-init |
|
| #
d68904f9 |
| 06-Jan-2020 |
James Henderson <[email protected]> |
[NFC] Fix trivial typos in comments
Reviewed By: jhenderson
Differential Revision: https://reviews.llvm.org/D72143
Patch by Kazuaki Ishizaki.
|
|
Revision tags: llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2 |
|
| #
1de214fa |
| 05-Dec-2019 |
Francesco Petrogalli <[email protected]> |
[fix][unittests][llvm] Fix running unit tests without assertions. [NFCI]
|
|
Revision tags: llvmorg-9.0.1-rc1 |
|
| #
eac93757 |
| 20-Nov-2019 |
Francesco Petrogalli <[email protected]> |
[VectorUtils] API for VFShape, update VFInfo.
Summary: This patch introduces an API to build and modify vector shapes.
The validity of a VFShape can be checked with the `hasValidParameterList` meth
[VectorUtils] API for VFShape, update VFInfo.
Summary: This patch introduces an API to build and modify vector shapes.
The validity of a VFShape can be checked with the `hasValidParameterList` method, which is also run in an assertion each time a VFShape is modified.
The field VFISAKind has been moved to VFInfo under the assumption that different ISAs can map to the same VFShape (as it can be in the case of vector extensions with the same registers size, for example AVX and AVX2).
Reviewers: sdesmalen, jdoerfert, simoll, hsaito
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70513
show more ...
|
|
Revision tags: llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4, llvmorg-9.0.0-rc3, llvmorg-9.0.0-rc2, llvmorg-9.0.0-rc1, llvmorg-10-init, llvmorg-8.0.1, llvmorg-8.0.1-rc4, llvmorg-8.0.1-rc3 |
|
| #
40e3bdf8 |
| 11-Jun-2019 |
Sanjay Patel <[email protected]> |
[Analysis] add isSplatValue() for vectors in IR
We have the related getSplatValue() already in IR (see code just above the proposed addition). But sometimes we only need to know that the value is a
[Analysis] add isSplatValue() for vectors in IR
We have the related getSplatValue() already in IR (see code just above the proposed addition). But sometimes we only need to know that the value is a splat rather than capture the splatted scalar value. Also, we have an isSplatValue() function already in SDAG.
Motivation - recent bugs that would potentially benefit from improved splat analysis in IR: https://bugs.llvm.org/show_bug.cgi?id=37428 https://bugs.llvm.org/show_bug.cgi?id=42174
Differential Revision: https://reviews.llvm.org/D63138
llvm-svn: 363106
show more ...
|
|
Revision tags: llvmorg-8.0.1-rc2 |
|
| #
b0f98d34 |
| 10-Jun-2019 |
Sanjay Patel <[email protected]> |
[Analysis] add unit test file for VectorUtils; NFC
llvm-svn: 362972
|