<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Transforms/Scalar/LoopDistribute.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>[Scalar] Remove a redaundant cast (NFC) (#168284)</title>
<updated>2025-11-16T22:06:10+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-11-16T22:06:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=977d6cfe3ec2027d12415f32d34d53ec0db95218'/>
<id>977d6cfe3ec2027d12415f32d34d53ec0db95218</id>
<content type='text'>
ThisPartition is already of type int.

Identified with readability-redundant-casting.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ThisPartition is already of type int.

Identified with readability-redundant-casting.</pre>
</div>
</content>
</entry>
<entry>
<title>Remove unused &lt;utility&gt; inclusion</title>
<updated>2025-11-11T12:33:33+00:00</updated>
<author>
<name>serge-sans-paille</name>
<email>sguelton@mozilla.com</email>
</author>
<published>2025-11-10T14:05:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=45a2320372051ed2c1c2ab0fac1375588031e732'/>
<id>45a2320372051ed2c1c2ab0fac1375588031e732</id>
<content type='text'>
Per https://llvm.org/docs/CodingStandards.html#include-as-little-as-possible this improves compilation time, while not being too intrusive on the codebase.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Per https://llvm.org/docs/CodingStandards.html#include-as-little-as-possible this improves compilation time, while not being too intrusive on the codebase.
</pre>
</div>
</content>
</entry>
<entry>
<title>[LoopDist] Add metadata for checking post process state of distribute… (#153902)</title>
<updated>2025-08-22T18:05:31+00:00</updated>
<author>
<name>Michael Berg</name>
<email>93234525+mcberg2021@users.noreply.github.com</email>
</author>
<published>2025-08-22T18:05:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=efa99eccfcbf52ae2576eb49c4793df6be865a55'/>
<id>efa99eccfcbf52ae2576eb49c4793df6be865a55</id>
<content type='text'>
…d loops

Add a count of the number of partitions LoopDist made when distributing
a loop in meta data, then check for loops which are already distributed
to prevent reprocessing.

We see this happen on some spec apps, LD is on by default at SiFive.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
…d loops

Add a count of the number of partitions LoopDist made when distributing
a loop in meta data, then check for loops which are already distributed
to prevent reprocessing.

We see this happen on some spec apps, LD is on by default at SiFive.</pre>
</div>
</content>
</entry>
<entry>
<title>[LoopDist] Consider reads and writes together for runtime checks (#145623)</title>
<updated>2025-08-14T19:50:17+00:00</updated>
<author>
<name>Michael Berg</name>
<email>93234525+mcberg2021@users.noreply.github.com</email>
</author>
<published>2025-08-14T19:50:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=334a046a3cd31aaec00c4e4bb8866242c6e38c98'/>
<id>334a046a3cd31aaec00c4e4bb8866242c6e38c98</id>
<content type='text'>
Emit safety guards for ptr accesses when cross partition loads exist
which have a corresponding store to the same address in a different
partition. This will emit the necessary ptr checks for these accesses.

The test case was obtained from SuperTest, which SiFive runs regularly.
We enabled LoopDistribution by default in our downstream compiler, this
change was part of that enablement.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Emit safety guards for ptr accesses when cross partition loads exist
which have a corresponding store to the same address in a different
partition. This will emit the necessary ptr checks for these accesses.

The test case was obtained from SuperTest, which SiFive runs regularly.
We enabled LoopDistribution by default in our downstream compiler, this
change was part of that enablement.</pre>
</div>
</content>
</entry>
<entry>
<title>[DebugInfo][LoopDistribute] Salvage debug values using dead instructions in the distributed loops (#137124)</title>
<updated>2025-05-12T01:06:42+00:00</updated>
<author>
<name>Shan Huang</name>
<email>52285902006@stu.ecnu.edu.cn</email>
</author>
<published>2025-05-12T01:06:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=86ceed7112391a2d19222041c25e41b2f3bfe047'/>
<id>86ceed7112391a2d19222041c25e41b2f3bfe047</id>
<content type='text'>
Fix #136532 .</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix #136532 .</pre>
</div>
</content>
</entry>
<entry>
<title>[EquivalenceClasses] Use SmallVector for deterministic iteration order. (#134075)</title>
<updated>2025-04-02T19:27:43+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2025-04-02T19:27:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3bdf9a08804a5b424fd32fef3b0089f3a6db839d'/>
<id>3bdf9a08804a5b424fd32fef3b0089f3a6db839d</id>
<content type='text'>
Currently iterators over EquivalenceClasses will iterate over std::set,
which guarantees the order specified by the comperator. Unfortunately in
many cases, EquivalenceClasses are used with pointers, so iterating over
std::set of pointers will not be deterministic across runs.

There are multiple places that explicitly try to sort the equivalence
classes before using them to try to get a deterministic order
(LowerTypeTests, SplitModule), but there are others that do not at the
moment and this can result at least in non-determinstic value naming in
Float2Int.

This patch updates EquivalenceClasses to keep track of all members via a
extra SmallVector and removes code from LowerTypeTests and SplitModule
to sort the classes before processing.

Overall it looks like compile-time slightly decreases in most cases, but
close to noise:

https://llvm-compile-time-tracker.com/compare.php?from=7d441d9892295a6eb8aaf481e1715f039f6f224f&amp;to=b0c2ac67a88d3ef86987e2f82115ea0170675a17&amp;stat=instructions

PR: https://github.com/llvm/llvm-project/pull/134075</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently iterators over EquivalenceClasses will iterate over std::set,
which guarantees the order specified by the comperator. Unfortunately in
many cases, EquivalenceClasses are used with pointers, so iterating over
std::set of pointers will not be deterministic across runs.

There are multiple places that explicitly try to sort the equivalence
classes before using them to try to get a deterministic order
(LowerTypeTests, SplitModule), but there are others that do not at the
moment and this can result at least in non-determinstic value naming in
Float2Int.

This patch updates EquivalenceClasses to keep track of all members via a
extra SmallVector and removes code from LowerTypeTests and SplitModule
to sort the classes before processing.

Overall it looks like compile-time slightly decreases in most cases, but
close to noise:

https://llvm-compile-time-tracker.com/compare.php?from=7d441d9892295a6eb8aaf481e1715f039f6f224f&amp;to=b0c2ac67a88d3ef86987e2f82115ea0170675a17&amp;stat=instructions

PR: https://github.com/llvm/llvm-project/pull/134075</pre>
</div>
</content>
</entry>
<entry>
<title>[EquivalenceClasses] Update member_begin to take ECValue (NFC).</title>
<updated>2025-04-01T08:28:46+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2025-04-01T08:28:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9e5bfbf77db0945f59c0d18012a8e6d43c711b3a'/>
<id>9e5bfbf77db0945f59c0d18012a8e6d43c711b3a</id>
<content type='text'>
Remove a level of indirection and update code to use range-based for
loops.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove a level of indirection and update code to use range-based for
loops.
</pre>
</div>
</content>
</entry>
<entry>
<title>[Transforms] Use *Set::insert_range (NFC) (#132056)</title>
<updated>2025-03-19T22:35:01+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-03-19T22:35:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0dcc201ac410fed1595d4c8cabe6f9919598e208'/>
<id>0dcc201ac410fed1595d4c8cabe6f9919598e208</id>
<content type='text'>
DenseSet, SmallPtrSet, SmallSet, SetVector, and StringSet recently
gained C++23-style insert_range.  This patch replaces:

  Dest.insert(Src.begin(), Src.end());

with:

  Dest.insert_range(Src);

This patch does not touch custom begin like succ_begin for now.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
DenseSet, SmallPtrSet, SmallSet, SetVector, and StringSet recently
gained C++23-style insert_range.  This patch replaces:

  Dest.insert(Src.begin(), Src.end());

with:

  Dest.insert_range(Src);

This patch does not touch custom begin like succ_begin for now.</pre>
</div>
</content>
</entry>
<entry>
<title>[Scalar] Remove unused includes (NFC) (#114645)</title>
<updated>2024-11-02T15:32:26+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2024-11-02T15:32:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=94f9cbbe49b4c836cfbed046637cdc0c63a4a083'/>
<id>94f9cbbe49b4c836cfbed046637cdc0c63a4a083</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>[LoopDist] Fix copy/paste mistake that said vectorize instead of distribute. NFC</title>
<updated>2024-07-12T05:17:28+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2024-07-12T05:17:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=51b22f95b8083c764fe39fd95e43f04bfa4be2c1'/>
<id>51b22f95b8083c764fe39fd95e43f04bfa4be2c1</id>
<content type='text'>
Remove mention of sharing with new and old PM. The old PM code is gone.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove mention of sharing with new and old PM. The old PM code is gone.
</pre>
</div>
</content>
</entry>
</feed>
