diff options
author | Björn Pettersson <bjorn.a.pettersson@ericsson.com> | 2024-12-16 12:15:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-16 12:15:11 +0100 |
commit | 3ad2399148953837622d78d18ae9fd0db6ad0557 (patch) | |
tree | 1ca2231d093ca68fd36b01a005d3c715f5704289 /clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp | |
parent | 6414d6174198689f00ff325e667fff9eb1c0d9de (diff) | |
download | llvm-3ad2399148953837622d78d18ae9fd0db6ad0557.zip llvm-3ad2399148953837622d78d18ae9fd0db6ad0557.tar.gz llvm-3ad2399148953837622d78d18ae9fd0db6ad0557.tar.bz2 |
[DAGCombiner] Refactor and improve ReduceLoadOpStoreWidth (#119564)
This patch make a couple of improvements to ReduceLoadOpStoreWidth.
When determining the minimum size of "NewBW" we now take byte boundaries
into account. If we for example touch bits 6-10 we shouldn't accept
NewBW=8, because we would fail later when detecting that we can't access
bits from two different bytes in memory using a single load. Instead we
make sure to align LSB/MSB according to byte size boundaries up front
before searching for a viable "NewBW".
In the past we only tried to find a "ShAmt" that was a multiple of
"NewBW", but now we use a sliding window technique to scan for a viable
"ShAmt" that is a multiple of the byte size. This can help out finding
more opportunities for optimization (specially if the original type
isn't byte sized, and for big-endian targets when the original
load/store is aligned on the most significant bit).
Diffstat (limited to 'clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp')
0 files changed, 0 insertions, 0 deletions