History log of /llvm-project/llvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp (Results 1 – 25 of 28)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6
# f01b62ad 13-Dec-2024 Kazu Hirata <kazu@google.com>

[GlobalISel] Fix warnings

This patch fixes:

llvm/lib/CodeGen/GlobalISel/CombinerHelperCasts.cpp:167:21: error:
unused variable 'DL' [-Werror,-Wunused-variable]

llvm/lib/CodeGen/GlobalISel/Lo

[GlobalISel] Fix warnings

This patch fixes:

llvm/lib/CodeGen/GlobalISel/CombinerHelperCasts.cpp:167:21: error:
unused variable 'DL' [-Werror,-Wunused-variable]

llvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp:320:15: error: unused
variable 'DL' [-Werror,-Wunused-variable]

show more ...


# 0d9fc174 13-Dec-2024 Craig Topper <craig.topper@sifive.com>

[GISel] Remove unused DataLayout operand from getApproximateEVTForLLT (#119833)


Revision tags: llvmorg-19.1.5, llvmorg-19.1.4
# b83399ea 09-Nov-2024 Kazu Hirata <kazu@google.com>

[GlobalISel] Remove unused includes (NFC) (#115429)

Identified with misc-include-cleaner.


Revision tags: 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
# 9df71d76 28-Jun-2024 Nikita Popov <npopov@redhat.com>

[IR] Add getDataLayout() helpers to Function and GlobalValue (#96919)

Similar to https://github.com/llvm/llvm-project/pull/96902, this adds
`getDataLayout()` helpers to Function and GlobalValue, re

[IR] Add getDataLayout() helpers to Function and GlobalValue (#96919)

Similar to https://github.com/llvm/llvm-project/pull/96902, this adds
`getDataLayout()` helpers to Function and GlobalValue, replacing the
current `getParent()->getDataLayout()` pattern.

show more ...


Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5
# 19f4d682 30-Apr-2024 Amara Emerson <amara@apple.com>

[GlobalISel] Fix store merging incorrectly classifying an unknown index expr as 0. (#90375)

During analysis, we incorrectly leave the offset part of an address info
struct
as zero, when in actual

[GlobalISel] Fix store merging incorrectly classifying an unknown index expr as 0. (#90375)

During analysis, we incorrectly leave the offset part of an address info
struct
as zero, when in actual fact we failed to decompose it into base +
offset.
This results in incorrectly assuming that the address is adjacent to
another store
addr. To fix this we wrap the offset in an optional<> so we can
distinguish between
real zero and unknown.

Fixes issue #90242

show more ...


Revision tags: llvmorg-18.1.4, llvmorg-18.1.3
# 57146dae 23-Mar-2024 Harvin Iriawan <25712785+harviniriawan@users.noreply.github.com>

[CodeGen] Update for scalable MemoryType in MMO (#70452)

Remove getSizeOrUnknown call when MachineMemOperand is created. For Scalable
TypeSize, the MemoryType created becomes a scalable_vector.

[CodeGen] Update for scalable MemoryType in MMO (#70452)

Remove getSizeOrUnknown call when MachineMemOperand is created. For Scalable
TypeSize, the MemoryType created becomes a scalable_vector.

2 MMOs that have scalable memory access can then use the updated BasicAA that
understands scalable LocationSize.

Original Patch by Harvin Iriawan
Co-authored-by: David Green <david.green@arm.com>

show more ...


Revision tags: llvmorg-18.1.2
# 601e102b 17-Mar-2024 David Green <david.green@arm.com>

[CodeGen] Use LocationSize for MMO getSize (#84751)

This is part of #70452 that changes the type used for the external
interface of MMO to LocationSize as opposed to uint64_t. This means the
const

[CodeGen] Use LocationSize for MMO getSize (#84751)

This is part of #70452 that changes the type used for the external
interface of MMO to LocationSize as opposed to uint64_t. This means the
constructors take LocationSize, and convert ~UINT64_C(0) to
LocationSize::beforeOrAfter(). The getSize methods return a
LocationSize.

This allows us to be more precise with unknown sizes, not accidentally
treating them as unsigned values, and in the future should allow us to
add proper scalable vector support but none of that is included in this
patch. It should mostly be an NFC.

Global ISel is still expected to use the underlying LLT as it needs, and
are not expected to see unknown sizes for generic operations. Most of
the changes are hopefully fairly mechanical, adding a lot of getValue()
calls and protecting them with hasValue() where needed.

show more ...


Revision tags: llvmorg-18.1.1
# 8ee7ef6a 06-Mar-2024 David Green <david.green@arm.com>

[GlobalISel] Use LocationSize in GISelAddressing. NFC (#83885)

This is similar to #83017 but for the areas in GlobalISel's
LoadStoreOpt, and should help simplify #70452 a little. It will likely
ch

[GlobalISel] Use LocationSize in GISelAddressing. NFC (#83885)

This is similar to #83017 but for the areas in GlobalISel's
LoadStoreOpt, and should help simplify #70452 a little. It will likely
change a little again once the sizes can be scalable.

show more ...


Revision tags: 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
# a7ee80fa 11-Aug-2023 Bjorn Pettersson <bjorn.a.pettersson@ericsson.com>

[llvm] Drop some more typed pointer bitcasts etc.


Revision tags: 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
# d45fae60 23-Apr-2023 NAKAMURA Takumi <geek4civic@gmail.com>

Move CodeGen/LowLevelType => CodeGen/LowLevelTypeUtils

Before restoring `CodeGen/LowLevelType`, rename this to `LowLevelTypeUtils`.

Differential Revision: https://reviews.llvm.org/D148768


Revision tags: llvmorg-16.0.2
# 29c851f4 12-Apr-2023 Amara Emerson <amara@apple.com>

[GlobalISel] Move the truncstore_merge combine to the LoadStoreOpt pass and add support for an extra case.

If we have set of mergeable stores of shifts, but the original source value being shifted
i

[GlobalISel] Move the truncstore_merge combine to the LoadStoreOpt pass and add support for an extra case.

If we have set of mergeable stores of shifts, but the original source value being shifted
is wider than the merged size, we should still be able to merge if we truncate first. To do this
however we need to search for stores speculatively up the block, without knowing exactly how
many stores we should see before we stop. The old algorithm has to match an exact number of
stores to fit the wide type, or it dies. The new one will try to set the wide type to however
many stores we found in the upwards block traversal and use later checks to verify if they're
a valid mergeable set.

The reason I need to move this to LoadStoreOpt is because the combiner works going top down
inside a block, which means that we end up doing partial merges because we haven't seen all
the possible stores before we mutate the MIR. In LoadStoreOpt we can go bottom up.

As a side effect of this change, we also end up doing better on an existing test case (missing_store)
since we manage to do a partial merge there.

show more ...


Revision tags: llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3
# 66d64aac 19-Feb-2023 Amara Emerson <amara@apple.com>

[GlobalISel] Fix a store-merging bug due to use of >= instead of >.

This fixes a corner case where we would skip doing an alias check because of a
>= vs > bug, due to the presence of a non-aliasing

[GlobalISel] Fix a store-merging bug due to use of >= instead of >.

This fixes a corner case where we would skip doing an alias check because of a
>= vs > bug, due to the presence of a non-aliasing instruction, in this case
the load %safeld.

Fixes issue #59376

show more ...


Revision tags: llvmorg-16.0.0-rc2
# f20b5071 28-Jan-2023 Kazu Hirata <kazu@google.com>

[llvm] Use llvm::bit_floor instead of llvm::PowerOf2Floor (NFC)


Revision tags: llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7
# 8fd5558b 11-Jan-2023 Guillaume Chatelet <gchatelet@google.com>

[NFC] Use TypeSize::geFixedValue() instead of TypeSize::getFixedSize()

This change is one of a series to implement the discussion from
https://reviews.llvm.org/D141134.


Revision tags: llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4
# 92ec6149 28-Oct-2022 Anton Sidorenko <anton.sidorenko@syntacore.com>

[GlobalISel] Compute debug location when merging stores more accurately

Originaly the loop did almost nothing as the calculated location was
overwritten on the next iteration.

Differential Revision

[GlobalISel] Compute debug location when merging stores more accurately

Originaly the loop did almost nothing as the calculated location was
overwritten on the next iteration.

Differential Revision: https://reviews.llvm.org/D136937

show more ...


Revision tags: llvmorg-15.0.3, working, 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
# 9e6d1f4b 17-Jul-2022 Kazu Hirata <kazu@google.com>

[CodeGen] Qualify auto variables in for loops (NFC)


# e7bc7373 24-Jun-2022 Matt Arsenault <Matthew.Arsenault@amd.com>

GlobalISel: Make LoadStoreOpt preserve all

Avoids dropping CSE info analysis


Revision tags: llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1
# 8cbf18cb 14-Mar-2022 Amara Emerson <amara@apple.com>

[GlobalISel] Fix store merging incorrectly merging volatile stores.

The existing volatile checks only handle aliasing hazards between stores,
but that isn't enough since by that point volatile store

[GlobalISel] Fix store merging incorrectly merging volatile stores.

The existing volatile checks only handle aliasing hazards between stores,
but that isn't enough since by that point volatile stores may have already
been added to the current candidate group.

show more ...


Revision tags: 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
# 3aed2822 04-Dec-2021 Kazu Hirata <kazu@google.com>

[CodeGen] Use range-based for loops (NFC)


Revision tags: llvmorg-13.0.1-rc1
# 3f3d4e8a 16-Nov-2021 Frederik Gossen <frgossen@google.com>

Fix unused variable warning in LoadStoreOpt.cpp with (void)


# 2bceb7c8 16-Nov-2021 Frederik Gossen <frgossen@google.com>

Revert "Fix unused variable in llvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp"

This reverts commit 40a609aebe4ab51174a164852b6399f322bf6d9a.


# ecfe7a34 16-Nov-2021 Frederik Gossen <frgossen@google.com>

Revert "Fix unused variable warning."

This reverts commit a062e2a8ca27b615cf3d02ed5c551ca85efc0325.


# 9a6817b7 16-Nov-2021 Frederik Gossen <frgossen@google.com>

Revert "Fix another unused variable error."

This reverts commit 5b84ae7c48083bd0f40199837990cf915a2053b8.


# 5b84ae7c 16-Nov-2021 Adrian Kuegel <akuegel@google.com>

Fix another unused variable error.


# a062e2a8 16-Nov-2021 Adrian Kuegel <akuegel@google.com>

Fix unused variable warning.


12