aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp
diff options
context:
space:
mode:
authorhanbeom <kese111@gmail.com>2024-08-20 22:29:26 +0900
committerGitHub <noreply@github.com>2024-08-20 14:29:26 +0100
commitee572ed4ac2d9e2ff37217d6bedc20f530a5d3af (patch)
treef7164beea367dce323b4c458b27cd36cf820716f /clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp
parentfc044901a2b8ae277b62bdde9140917913bd1644 (diff)
downloadllvm-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