<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/IR/StructuralHash.cpp, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>Reapply "[StructuralHash] Global Variable (#118412)"</title>
<updated>2024-12-04T05:33:03+00:00</updated>
<author>
<name>Kyungwoo Lee</name>
<email>kyulee@meta.com</email>
</author>
<published>2024-12-04T01:28:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4f41862c5a5241654a37ee994ed0074a815d3633'/>
<id>4f41862c5a5241654a37ee994ed0074a815d3633</id>
<content type='text'>
This reverts commit 6a0d6fc2e92bcfb7cb01a4c6cdd751a9b4b4c159.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 6a0d6fc2e92bcfb7cb01a4c6cdd751a9b4b4c159.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[StructuralHash] Global Variable (#118412)"</title>
<updated>2024-12-04T01:19:30+00:00</updated>
<author>
<name>Kyungwoo Lee</name>
<email>kyulee@meta.com</email>
</author>
<published>2024-12-04T01:19:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6a0d6fc2e92bcfb7cb01a4c6cdd751a9b4b4c159'/>
<id>6a0d6fc2e92bcfb7cb01a4c6cdd751a9b4b4c159</id>
<content type='text'>
This reverts commit 1afb81dfaf902c1c42bd91fec1a7385e6e1529d3.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 1afb81dfaf902c1c42bd91fec1a7385e6e1529d3.
</pre>
</div>
</content>
</entry>
<entry>
<title>[StructuralHash] Global Variable (#118412)</title>
<updated>2024-12-04T00:01:50+00:00</updated>
<author>
<name>Kyungwoo Lee</name>
<email>kyulee@meta.com</email>
</author>
<published>2024-12-04T00:01:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1afb81dfaf902c1c42bd91fec1a7385e6e1529d3'/>
<id>1afb81dfaf902c1c42bd91fec1a7385e6e1529d3</id>
<content type='text'>
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%.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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%.</pre>
</div>
</content>
</entry>
<entry>
<title>[IR] Remove unused includes (NFC) (#114679)</title>
<updated>2024-11-02T23:54:06+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2024-11-02T23:54:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6f10b65297707c1e964d570421ab4559dc2928d4'/>
<id>6f10b65297707c1e964d570421ab4559dc2928d4</id>
<content type='text'>
Identified with misc-include-cleaner.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Identified with misc-include-cleaner.</pre>
</div>
</content>
</entry>
<entry>
<title>[StructuralHash] Support Differences (#112638)</title>
<updated>2024-10-27T03:02:05+00:00</updated>
<author>
<name>Kyungwoo Lee</name>
<email>kyulee@meta.com</email>
</author>
<published>2024-10-27T03:02:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0dd9fdcf83cd00f51669b32c96937a97ef4b339e'/>
<id>0dd9fdcf83cd00f51669b32c96937a97ef4b339e</id>
<content type='text'>
This computes a structural hash while allowing for selective ignoring of
certain operands based on a custom function that is provided. Instead of
a single hash value, it now returns FunctionHashInfo which includes a
hash value, an instruction mapping, and a map to track the operand
location and its corresponding hash value that is ignored.

Depends on https://github.com/llvm/llvm-project/pull/112621.
This is a patch for
https://discourse.llvm.org/t/rfc-global-function-merging/82608.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This computes a structural hash while allowing for selective ignoring of
certain operands based on a custom function that is provided. Instead of
a single hash value, it now returns FunctionHashInfo which includes a
hash value, an instruction mapping, and a map to track the operand
location and its corresponding hash value that is ignored.

Depends on https://github.com/llvm/llvm-project/pull/112621.
This is a patch for
https://discourse.llvm.org/t/rfc-global-function-merging/82608.</pre>
</div>
</content>
</entry>
<entry>
<title>Reland (2nd attempt) [StructuralHash] Refactor (#112621)</title>
<updated>2024-10-26T23:12:28+00:00</updated>
<author>
<name>Kyungwoo Lee</name>
<email>kyulee@meta.com</email>
</author>
<published>2024-10-26T16:20:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1941c5180b91d792200d5e868d45c96e99bda35e'/>
<id>1941c5180b91d792200d5e868d45c96e99bda35e</id>
<content type='text'>
This is largely NFC, and it prepares for #112638.
 - Use stable_hash instead of uint64_t
 - Rename update* to hash* functions. They compute stable_hash locally and return it.

This is a patch for
https://discourse.llvm.org/t/rfc-global-function-merging/82608.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is largely NFC, and it prepares for #112638.
 - Use stable_hash instead of uint64_t
 - Rename update* to hash* functions. They compute stable_hash locally and return it.

This is a patch for
https://discourse.llvm.org/t/rfc-global-function-merging/82608.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Reland [StructuralHash] Refactor (#112621)"</title>
<updated>2024-10-26T20:55:46+00:00</updated>
<author>
<name>Kyungwoo Lee</name>
<email>kyulee@meta.com</email>
</author>
<published>2024-10-26T20:55:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d104b8e827ef5c3cb723aee92af4adfc8af18e9a'/>
<id>d104b8e827ef5c3cb723aee92af4adfc8af18e9a</id>
<content type='text'>
This reverts commit 98ca9a635bd2fb98cee473a9558687a5b522e219.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 98ca9a635bd2fb98cee473a9558687a5b522e219.
</pre>
</div>
</content>
</entry>
<entry>
<title>Reland [StructuralHash] Refactor (#112621)</title>
<updated>2024-10-26T19:07:57+00:00</updated>
<author>
<name>Kyungwoo Lee</name>
<email>kyulee@meta.com</email>
</author>
<published>2024-10-26T16:20:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=98ca9a635bd2fb98cee473a9558687a5b522e219'/>
<id>98ca9a635bd2fb98cee473a9558687a5b522e219</id>
<content type='text'>
This is largely NFC, and it prepares for #112638.
 - Use stable_hash instead of uint64_t
 - Rename update* to hash* functions. They compute stable_hash locally and return it.

This is a patch for
https://discourse.llvm.org/t/rfc-global-function-merging/82608.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is largely NFC, and it prepares for #112638.
 - Use stable_hash instead of uint64_t
 - Rename update* to hash* functions. They compute stable_hash locally and return it.

This is a patch for
https://discourse.llvm.org/t/rfc-global-function-merging/82608.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[StructuralHash] Refactor (#112621)"</title>
<updated>2024-10-26T16:55:21+00:00</updated>
<author>
<name>Kyungwoo Lee</name>
<email>kyulee@meta.com</email>
</author>
<published>2024-10-26T16:55:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=96723756231e316e68b0dacb104862eecbee01a2'/>
<id>96723756231e316e68b0dacb104862eecbee01a2</id>
<content type='text'>
This reverts commit b667d161f0a9ff6b29cda0ccdb0081610c1e8b8c.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit b667d161f0a9ff6b29cda0ccdb0081610c1e8b8c.
</pre>
</div>
</content>
</entry>
<entry>
<title>[StructuralHash] Refactor (#112621)</title>
<updated>2024-10-26T16:20:26+00:00</updated>
<author>
<name>Kyungwoo Lee</name>
<email>kyulee@meta.com</email>
</author>
<published>2024-10-26T16:20:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b667d161f0a9ff6b29cda0ccdb0081610c1e8b8c'/>
<id>b667d161f0a9ff6b29cda0ccdb0081610c1e8b8c</id>
<content type='text'>
This is largely NFC, and it prepares for #112638.
 - Use stable_hash instead of uint64_t
- Rename update* to hash* functions. They compute stable_hash locally and return it.
 
This is a patch for
https://discourse.llvm.org/t/rfc-global-function-merging/82608.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is largely NFC, and it prepares for #112638.
 - Use stable_hash instead of uint64_t
- Rename update* to hash* functions. They compute stable_hash locally and return it.
 
This is a patch for
https://discourse.llvm.org/t/rfc-global-function-merging/82608.</pre>
</div>
</content>
</entry>
</feed>
