<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp, branch users/nico/python-2</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>[UnrollAndJam] Do not preserve loop nests if a loop was fully unrolled. (#133510)</title>
<updated>2025-03-29T19:21:34+00:00</updated>
<author>
<name>David Green</name>
<email>david.green@arm.com</email>
</author>
<published>2025-03-29T19:21:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3ef33066bb32a9d9b76d72c6de6a7ae9ff72ddcc'/>
<id>3ef33066bb32a9d9b76d72c6de6a7ae9ff72ddcc</id>
<content type='text'>
If UnJ completely unrolls a loop and removes it entirely, the loop
remains in the current loop nest. If the loop nest gets reused the loops
will no longer be valid. As there is no way to remove a loop from a
LoopNest, this patch removes the preserve of the LoopNestAnalysis so
that it will be regenerated.

Fixes #124518</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If UnJ completely unrolls a loop and removes it entirely, the loop
remains in the current loop nest. If the loop nest gets reused the loops
will no longer be valid. As there is no way to remove a loop from a
LoopNest, this patch removes the preserve of the LoopNestAnalysis so
that it will be regenerated.

Fixes #124518</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>[LoopUnroll] Consider convergence control tokens when unrolling (#91715)</title>
<updated>2024-06-06T07:43:46+00:00</updated>
<author>
<name>Sameer Sahasrabuddhe</name>
<email>sameer.sahasrabuddhe@amd.com</email>
</author>
<published>2024-06-06T07:43:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e0ac087ff004f7a63ba64b9685f4f098d6ee54c5'/>
<id>e0ac087ff004f7a63ba64b9685f4f098d6ee54c5</id>
<content type='text'>
- There is no restriction on a loop with controlled convergent
operations when
  the relevant tokens are defined and used within the loop.

- When a token defined outside a loop is used inside (also called a loop
convergence heart), unrolling is allowed only in the absence of
remainder or
  runtime checks.

- When a token defined inside a loop is used outside, such a loop is
said to be
"extended". This loop can only be unrolled by also duplicating the
extended part
  lying outside the loop. Such unrolling is disabled for now.

- Clean up loop hearts: When unrolling a loop with a heart, duplicating
the
heart will introduce multiple static uses of a convergence control token
in a
cycle that does not contain its definition. This violates the static
rules for
tokens, and needs to be cleaned up into a single occurrence of the
intrinsic.

- Spell out the initializer for UnrollLoopOptions to improve
readability.


Original implementation [D85605] by Nicolai Haehnle
&lt;nicolai.haehnle@amd.com&gt;.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- There is no restriction on a loop with controlled convergent
operations when
  the relevant tokens are defined and used within the loop.

- When a token defined outside a loop is used inside (also called a loop
convergence heart), unrolling is allowed only in the absence of
remainder or
  runtime checks.

- When a token defined inside a loop is used outside, such a loop is
said to be
"extended". This loop can only be unrolled by also duplicating the
extended part
  lying outside the loop. Such unrolling is disabled for now.

- Clean up loop hearts: When unrolling a loop with a heart, duplicating
the
heart will introduce multiple static uses of a convergence control token
in a
cycle that does not contain its definition. This violates the static
rules for
tokens, and needs to be cleaned up into a single occurrence of the
intrinsic.

- Spell out the initializer for UnrollLoopOptions to improve
readability.


Original implementation [D85605] by Nicolai Haehnle
&lt;nicolai.haehnle@amd.com&gt;.</pre>
</div>
</content>
</entry>
<entry>
<title>[Transforms] Use StringRef::starts_with/ends_with instead of startswith/endswith. NFC.</title>
<updated>2023-11-06T16:50:18+00:00</updated>
<author>
<name>Simon Pilgrim</name>
<email>llvm-dev@redking.me.uk</email>
</author>
<published>2023-11-06T16:47:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3ca4fe80d44d4e62b1cd34b6312f61f07cfb3f82'/>
<id>3ca4fe80d44d4e62b1cd34b6312f61f07cfb3f82</id>
<content type='text'>
startswith/endswith wrap starts_with/ends_with and will eventually go away (to more closely match string_view)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
startswith/endswith wrap starts_with/ends_with and will eventually go away (to more closely match string_view)
</pre>
</div>
</content>
</entry>
<entry>
<title>[LoopUnroll] Fold variable only used in assert into the assert</title>
<updated>2023-09-27T11:19:18+00:00</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2023-09-27T11:19:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4731623f81c47d9e879d845dee0609b84daa9efd'/>
<id>4731623f81c47d9e879d845dee0609b84daa9efd</id>
<content type='text'>
Avoids warnings in Release builds. NFCI.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Avoids warnings in Release builds. NFCI.
</pre>
</div>
</content>
</entry>
<entry>
<title>[LoopUnroll] Store more information in UnrollCostEstimator (NFCI)</title>
<updated>2023-09-27T10:06:13+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2023-09-27T09:59:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=296671f059198185bedc3eba80056ebf4bc7ad30'/>
<id>296671f059198185bedc3eba80056ebf4bc7ad30</id>
<content type='text'>
Instead of having ApproximateLoopSize() use a bunch of out parameters,
from which we later construct an UnrollCostEstimator, directly
construct UnrollCostEstimator which holds all the information
derived from loop analysis. This makes it easier to add additional
metrics in the future.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of having ApproximateLoopSize() use a bunch of out parameters,
from which we later construct an UnrollCostEstimator, directly
construct UnrollCostEstimator which holds all the information
derived from loop analysis. This makes it easier to add additional
metrics in the future.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove several no longer needed includes. NFCI</title>
<updated>2023-04-17T11:54:19+00:00</updated>
<author>
<name>Bjorn Pettersson</name>
<email>bjorn.a.pettersson@ericsson.com</email>
</author>
<published>2023-04-15T08:16:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a20f7efbc587a213868b494d3d34a8cbeaff04ab'/>
<id>a20f7efbc587a213868b494d3d34a8cbeaff04ab</id>
<content type='text'>
Mostly removing includes of InitializePasses.h and Pass.h in
passes that no longer has support for the legacy PM.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Mostly removing includes of InitializePasses.h and Pass.h in
passes that no longer has support for the legacy PM.
</pre>
</div>
</content>
</entry>
<entry>
<title>[LoopUnrollAndJam] Remove legacy pass</title>
<updated>2023-02-15T01:23:15+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>i@maskray.me</email>
</author>
<published>2023-02-15T01:23:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=766065aa6553df4030e6f563b066410fcee9d751'/>
<id>766065aa6553df4030e6f563b066410fcee9d751</id>
<content type='text'>
Following recent changes to remove non-core features of the legacy PM/optimization pipeline.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Following recent changes to remove non-core features of the legacy PM/optimization pipeline.
</pre>
</div>
</content>
</entry>
<entry>
<title>[Transforms,CodeGen] std::optional::value =&gt; operator*/operator-&gt;</title>
<updated>2022-12-16T23:21:27+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>i@maskray.me</email>
</author>
<published>2022-12-16T23:21:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=51b685734b0e185bca9d0eec66b3bcb636ed9c02'/>
<id>51b685734b0e185bca9d0eec66b3bcb636ed9c02</id>
<content type='text'>
value() has undesired exception checking semantics and calls
__throw_bad_optional_access in libc++. Moreover, the API is unavailable without
_LIBCPP_NO_EXCEPTIONS on older Mach-O platforms (see
_LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
value() has undesired exception checking semantics and calls
__throw_bad_optional_access in libc++. Moreover, the API is unavailable without
_LIBCPP_NO_EXCEPTIONS on older Mach-O platforms (see
_LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS).
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't include Optional.h</title>
<updated>2022-12-15T05:16:22+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2022-12-15T05:16:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6eb0b0a0452a4c53ceb1156afd17764fbff51111'/>
<id>6eb0b0a0452a4c53ceb1156afd17764fbff51111</id>
<content type='text'>
These files no longer use llvm::Optional.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These files no longer use llvm::Optional.
</pre>
</div>
</content>
</entry>
</feed>
