aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp
diff options
context:
space:
mode:
authorBjörn Pettersson <bjorn.a.pettersson@ericsson.com>2024-12-16 12:15:11 +0100
committerGitHub <noreply@github.com>2024-12-16 12:15:11 +0100
commit3ad2399148953837622d78d18ae9fd0db6ad0557 (patch)
tree1ca2231d093ca68fd36b01a005d3c715f5704289 /clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp
parent6414d6174198689f00ff325e667fff9eb1c0d9de (diff)
downloadllvm-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