History log of /llvm-project/llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp (Results 26 – 50 of 100)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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 ...


1234