#
5a94669f |
| 17-Mar-2023 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
[Hexagon] Add names to all instructions created in HVC
|
#
7af91965 |
| 17-Mar-2023 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
[Hexagon] Add debug code to HVC::AlignVectors
That and clarify/expand some comments.
|
Revision tags: 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 |
|
#
87b6b347 |
| 06-Jan-2023 |
Guillaume Chatelet <gchatelet@google.com> |
Revert D141134 "[NFC] Only expose getXXXSize functions in TypeSize"
The patch should be discussed further.
This reverts commit dd56e1c92b0e6e6be249f2d2dd40894e0417223f.
|
#
dd56e1c9 |
| 06-Jan-2023 |
Guillaume Chatelet <gchatelet@google.com> |
[NFC] Only expose getXXXSize functions in TypeSize
Currently 'TypeSize' exposes two functions that serve the same purpose: - getFixedSize / getFixedValue - getKnownMinSize / getKnownMinValue
sour
[NFC] Only expose getXXXSize functions in TypeSize
Currently 'TypeSize' exposes two functions that serve the same purpose: - getFixedSize / getFixedValue - getKnownMinSize / getKnownMinValue
source : https://github.com/llvm/llvm-project/blob/bf82070ea465969e9ae86a31dfcbf94c2a7b4c4c/llvm/include/llvm/Support/TypeSize.h#L337-L338
This patch offers to remove one of the two and stick to a single function in the code base.
Differential Revision: https://reviews.llvm.org/D141134
show more ...
|
#
21c4dc79 |
| 17-Dec-2022 |
Fangrui Song <i@maskray.me> |
std::optional::value => operator*/operator->
value() has undesired exception checking semantics and calls __throw_bad_optional_access in libc++. Moreover, the API is unavailable without _LIBCPP_NO_E
std::optional::value => operator*/operator->
value() has undesired exception checking semantics and calls __throw_bad_optional_access in libc++. Moreover, the API is unavailable without _LIBCPP_NO_EXCEPTIONS on older Mach-O platforms (see _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS).
This fixes clang.
show more ...
|
#
aaf66cc8 |
| 15-Dec-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
[Hexagon] Record original result type in wide multiplication
|
#
1c7c7377 |
| 14-Dec-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
[Hexagon] Handle rounding beyond low 32 bits
|
#
f7dffc28 |
| 10-Dec-2022 |
Kazu Hirata <kazu@google.com> |
Don't include None.h (NFC)
I've converted all known uses of None to std::nullopt, so we no longer need to include None.h.
This is part of an effort to migrate from llvm::Optional to std::optional:
Don't include None.h (NFC)
I've converted all known uses of None to std::nullopt, so we no longer need to include None.h.
This is part of an effort to migrate from llvm::Optional to std::optional:
https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
show more ...
|
#
20cde154 |
| 03-Dec-2022 |
Kazu Hirata <kazu@google.com> |
[Target] Use std::nullopt instead of None (NFC)
This patch mechanically replaces None with std::nullopt where the compiler would warn if None were deprecated. The intent is to reduce the amount of
[Target] Use std::nullopt instead of None (NFC)
This patch mechanically replaces None with std::nullopt where the compiler would warn if None were deprecated. The intent is to reduce the amount of manual work required in migrating from Optional to std::optional.
This is part of an effort to migrate from llvm::Optional to std::optional:
https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
show more ...
|
#
46743289 |
| 01-Dec-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
MemoryLocation: convert Optional to std::optional
|
#
2191137d |
| 01-Dec-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
[Hexagon] Check if vector is empty before calling back()
|
#
9b839356 |
| 01-Dec-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
[Hexagon] Punt on GEPs with different base types in vector alignment
|
Revision tags: llvmorg-15.0.6 |
|
#
f8cb97a0 |
| 23-Nov-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
[Hexagon] Fix deinterleaving after vmpyh
|
#
ae9356e8 |
| 23-Nov-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
[Hexagon] Fix order of operands in V6_vmpyhus
The unsigned operand is second: Vdd32.w = vmpy(Vu32.h,Vv32.uh)
|
#
e27e8e05 |
| 18-Nov-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
[Hexagon] Use V6_vmpyuhvs for 16-bit mulhu on HVX v69+
|
Revision tags: llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2 |
|
#
a03e16a1 |
| 28-Sep-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
[Hexagon] Improve idioms for fixed-point vector multiplication
Make the code more general, restore the ability to generate V6_vmpyhvsrs.
|
#
01718629 |
| 08-Nov-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
[Hexagon] Place aligned loads closer to users
Vector alignment code was grouping all aligned loads together. In some cases the groups could become quite large causing a lot of spill to be generated.
[Hexagon] Place aligned loads closer to users
Vector alignment code was grouping all aligned loads together. In some cases the groups could become quite large causing a lot of spill to be generated. This will place the loads closer to where they are used, reducing the register pressure.
show more ...
|
#
17503be4 |
| 30-Oct-2022 |
Kazu Hirata <kazu@google.com> |
[Hexagon] Remove HexagonVectorCombine::simplify
This patch fixes:
llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp:1554:6: warning: ‘llvm::Value* {anonymous}::HexagonVectorCombine::simplify(l
[Hexagon] Remove HexagonVectorCombine::simplify
This patch fixes:
llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp:1554:6: warning: ‘llvm::Value* {anonymous}::HexagonVectorCombine::simplify(llvm::Value*) const’ defined but not used [-Wunused-function]
show more ...
|
#
323fb627 |
| 29-Oct-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
[Hexagon] Report changes in HvxIdioms pass
It can produce some dead code, which is harmless in the end, but breaks expensive checks when unreported. This should be fixed eventually, but it's a low p
[Hexagon] Report changes in HvxIdioms pass
It can produce some dead code, which is harmless in the end, but breaks expensive checks when unreported. This should be fixed eventually, but it's a low priority.
show more ...
|
#
9422a8d9 |
| 25-Oct-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
[Hexagon] Break up vectors into HVX-sized chunks in HvxIdioms
This will allow recognizing Q.31 multiplications on vectors that are multiplies of HVX vectors. At the moment this comes at the expense
[Hexagon] Break up vectors into HVX-sized chunks in HvxIdioms
This will allow recognizing Q.31 multiplications on vectors that are multiplies of HVX vectors. At the moment this comes at the expense of Q.15 multiplications, which now are handled as 32-bit multiplications with shifts. In the longer term this will likely be replaced by a different scheme of "legalizing" vectors, which is necessary for idiom recognition, at least where using direct HVX instrinsics is desired.
show more ...
|
#
c4a8f9ab |
| 25-Oct-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
[Hexagon] Fix vector concatenation
|
#
deb197ff |
| 22-Oct-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
[Hexagon] Use helper function introduced in prior commit, NFC
|
#
e5d9ab08 |
| 19-Oct-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
[Hexagon] Fix insertion point for pointer difference calculation
HVC::calculatePointerDifference inserts temporary instructions for simplification, and calulation of known bits. These instructions w
[Hexagon] Fix insertion point for pointer difference calculation
HVC::calculatePointerDifference inserts temporary instructions for simplification, and calulation of known bits. These instructions were inserted at the end of a basic block (after the terminator), which caused BB->getTerminator() to return nullptr. This, in turn, caused a crash when a PHI instruction was examined in computeKnownBits.
show more ...
|
#
fb063ea2 |
| 14-Oct-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
[Hexagon] Clean up leftover instructions in HvxIdioms
Quick and dirty fix, because this is causing one builder to fail.
|
#
6cb2a02a |
| 14-Oct-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
[Hexagon] Report if changes were made in HvxIdioms pass
This should fix ``` Pass modifies its input and doesn't report it: Hexagon Vector Combine Pass modifies its input and doesn't report it UNREAC
[Hexagon] Report if changes were made in HvxIdioms pass
This should fix ``` Pass modifies its input and doesn't report it: Hexagon Vector Combine Pass modifies its input and doesn't report it UNREACHABLE executed at [...hecks-debian/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1436! ```
show more ...
|