diff options
author | hanbeom <kese111@gmail.com> | 2024-08-20 22:29:26 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-20 14:29:26 +0100 |
commit | ee572ed4ac2d9e2ff37217d6bedc20f530a5d3af (patch) | |
tree | f7164beea367dce323b4c458b27cd36cf820716f /clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp | |
parent | fc044901a2b8ae277b62bdde9140917913bd1644 (diff) | |
download | llvm-ee572ed4ac2d9e2ff37217d6bedc20f530a5d3af.zip llvm-ee572ed4ac2d9e2ff37217d6bedc20f530a5d3af.tar.gz llvm-ee572ed4ac2d9e2ff37217d6bedc20f530a5d3af.tar.bz2 |
[AArch64] Optimize when storing symmetry constants (#93717)
This change looks for instructions of storing symmetric constants
instruction 32-bit units. usually consisting of several 'MOV' and
one or less 'ORR'.
If found, load only the lower 32-bit constant and change it to copy
and save to the upper 32-bit using the 'STP' instruction.
For example:
renamable $x8 = MOVZXi 49370, 0
renamable $x8 = MOVKXi $x8, 320, 16
renamable $x8 = ORRXrs $x8, $x8, 32
STRXui killed renamable $x8, killed renamable $x0, 0
becomes
$w8 = MOVZWi 49370, 0
$w8 = MOVKWi $w8, 320, 16
STPWi killed renamable $w8, killed renamable $w8, killed renamable $x0,
0
related issue : https://github.com/llvm/llvm-project/issues/51483
Diffstat (limited to 'clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp')
0 files changed, 0 insertions, 0 deletions