aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineOperand.cpp
diff options
context:
space:
mode:
authorKyungwoo Lee <kyulee@meta.com>2024-12-03 16:01:50 -0800
committerGitHub <noreply@github.com>2024-12-03 16:01:50 -0800
commit1afb81dfaf902c1c42bd91fec1a7385e6e1529d3 (patch)
tree3dcf19e9a822d7325b4c76cfe48ec8d9e27379c2 /llvm/lib/CodeGen/MachineOperand.cpp
parentc8b7ec2edd8d84729070e455002d1e78bdceddc5 (diff)
downloadllvm-1afb81dfaf902c1c42bd91fec1a7385e6e1529d3.zip
llvm-1afb81dfaf902c1c42bd91fec1a7385e6e1529d3.tar.gz
llvm-1afb81dfaf902c1c42bd91fec1a7385e6e1529d3.tar.bz2
[StructuralHash] Global Variable (#118412)
This update enhances the implementation of structural hashing for global variables, using their initial contents. Private global variables or constants are often used for metadata, where their names are not unique. This can lead to the creation of different hash results although they could be merged by the linker as they are effectively identical. - Refine the hashing of GlobalVariables for strings or certain Objective-C metadata cases that have section names. This can be further extended to other scenarios. - Expose StructuralHash for GlobalVariable so that this API can be utilized by MachineStableHashing, which is also employed in the global function outliner. This change significantly improves size reduction by an additional 1% on the LLD binary when the global function outliner and merger are enabled together. As discussed in the RFC https://discourse.llvm.org/t/loh-conflicting-with-machineoutliner/83279/8?u=kyulee-com, if we disable or relocate the LOH pass, the size impact could increase to 4%.
Diffstat (limited to 'llvm/lib/CodeGen/MachineOperand.cpp')
0 files changed, 0 insertions, 0 deletions