<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Analysis/DependenceAnalysis.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>[DA] remove Constraints class (#168963)</title>
<updated>2025-11-21T19:34:14+00:00</updated>
<author>
<name>Sebastian Pop</name>
<email>spop@nvidia.com</email>
</author>
<published>2025-11-21T19:34:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ad9bc6a1b5f5dc51d25fe4c9715318b1023bcc80'/>
<id>ad9bc6a1b5f5dc51d25fe4c9715318b1023bcc80</id>
<content type='text'>
Remove the Constraints class from dependence analysis as it is now unused.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove the Constraints class from dependence analysis as it is now unused.</pre>
</div>
</content>
</entry>
<entry>
<title>[DA] remove getSplitIteration (#167698)</title>
<updated>2025-11-21T16:59:09+00:00</updated>
<author>
<name>Sebastian Pop</name>
<email>spop@nvidia.com</email>
</author>
<published>2025-11-21T16:59:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9d2b7ecb46e1c9e0f07679238bc060aebae24072'/>
<id>9d2b7ecb46e1c9e0f07679238bc060aebae24072</id>
<content type='text'>
Remove getSplitIteration.
A follow-up patch will also remove DVEntry::Splitable and Dependnece::isSplitable.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove getSplitIteration.
A follow-up patch will also remove DVEntry::Splitable and Dependnece::isSplitable.</pre>
</div>
</content>
</entry>
<entry>
<title>[DA] remove constraint propagation (#160924)</title>
<updated>2025-11-20T21:59:39+00:00</updated>
<author>
<name>Sebastian Pop</name>
<email>spop@nvidia.com</email>
</author>
<published>2025-11-20T21:59:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5c8db7ab880472525a8f06538ee56d0e77808abd'/>
<id>5c8db7ab880472525a8f06538ee56d0e77808abd</id>
<content type='text'>
Remove all constraint propagation functions in Dependence Analysis.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove all constraint propagation functions in Dependence Analysis.</pre>
</div>
</content>
</entry>
<entry>
<title>[DA] Replace delinearization for fixed size array (#161822)</title>
<updated>2025-11-19T13:12:02+00:00</updated>
<author>
<name>Ryotaro Kasuga</name>
<email>kasuga.ryotaro@fujitsu.com</email>
</author>
<published>2025-11-19T13:12:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=68d2ce8e74cb2428d5c6299176f471753151d356'/>
<id>68d2ce8e74cb2428d5c6299176f471753151d356</id>
<content type='text'>
This patch replaces the delinearization function used in DA, switching
from one that depends on type information in GEPs to one that does not.
There are three types of changes in regression tests: improvements,
degradations, and degradations but the related features will be
removed. Since there were very few cases that are classified into the
second category, I believe the impact of this change should be
practically insignificant.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch replaces the delinearization function used in DA, switching
from one that depends on type information in GEPs to one that does not.
There are three types of changes in regression tests: improvements,
degradations, and degradations but the related features will be
removed. Since there were very few cases that are classified into the
second category, I believe the impact of this change should be
practically insignificant.</pre>
</div>
</content>
</entry>
<entry>
<title>[DA] Properly pass outermost loop to monotonicity checker (#166928)</title>
<updated>2025-11-07T18:08:04+00:00</updated>
<author>
<name>Ryotaro Kasuga</name>
<email>kasuga.ryotaro@fujitsu.com</email>
</author>
<published>2025-11-07T18:08:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9e341b36ed69022728c38b8457b457d65879eb73'/>
<id>9e341b36ed69022728c38b8457b457d65879eb73</id>
<content type='text'>
This patch fixes the unexpected result in monotonicity check for
`@step_is_variant` in `monotonicity-no-wrap-flags.ll`. Currently, the
SCEV is considered non-monotonic if it contains an expression which is
neither loop-invariant nor an affine addrec. In `@step_is_variant`, the
`offset_i` satisfies this condition, but `offset_i + j` was classified
as monotonic.

The root cause is that a non-outermost loop was passed to monotonicity
checker instead of the outermost one. This patch ensures that the
correct outermost loop is passed.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes the unexpected result in monotonicity check for
`@step_is_variant` in `monotonicity-no-wrap-flags.ll`. Currently, the
SCEV is considered non-monotonic if it contains an expression which is
neither loop-invariant nor an affine addrec. In `@step_is_variant`, the
`offset_i` satisfies this condition, but `offset_i + j` was classified
as monotonic.

The root cause is that a non-outermost loop was passed to monotonicity
checker instead of the outermost one. This patch ensures that the
correct outermost loop is passed.</pre>
</div>
</content>
</entry>
<entry>
<title>[DA] Check for overflow in strong SIV test (#166223)</title>
<updated>2025-11-06T18:05:57+00:00</updated>
<author>
<name>Alireza Torabian</name>
<email>alireza.torabian@huawei.com</email>
</author>
<published>2025-11-06T18:05:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=52e8f3c97bf8b3e7c428794d51949e74e7141a8a'/>
<id>52e8f3c97bf8b3e7c428794d51949e74e7141a8a</id>
<content type='text'>
Reland reverted PR
[#164704](https://github.com/llvm/llvm-project/pull/164704).

Overflow is checked in the strong SIV test in DA on calculation of the
product of `UpperBound` and `AbsCoeff`, and also the subtraction of
`DstConst` from `SrcConst`.

This patch resolves the issues with the strong SIV test in both
https://github.com/llvm/llvm-project/issues/159846 and
https://github.com/llvm/llvm-project/pull/164246.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reland reverted PR
[#164704](https://github.com/llvm/llvm-project/pull/164704).

Overflow is checked in the strong SIV test in DA on calculation of the
product of `UpperBound` and `AbsCoeff`, and also the subtraction of
`DstConst` from `SrcConst`.

This patch resolves the issues with the strong SIV test in both
https://github.com/llvm/llvm-project/issues/159846 and
https://github.com/llvm/llvm-project/pull/164246.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[DA] Check for overflow in strong SIV test" (#165905)</title>
<updated>2025-10-31T19:50:30+00:00</updated>
<author>
<name>Ehsan Amiri</name>
<email>ehsanamiri@gmail.com</email>
</author>
<published>2025-10-31T19:50:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6125f26d6da796bfca633d252114ea204ac7aadf'/>
<id>6125f26d6da796bfca633d252114ea204ac7aadf</id>
<content type='text'>
Reverts llvm/llvm-project#164704 that broke several built bots.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#164704 that broke several built bots.</pre>
</div>
</content>
</entry>
<entry>
<title>[DA] Check for overflow in strong SIV test (#164704)</title>
<updated>2025-10-31T17:19:20+00:00</updated>
<author>
<name>Alireza Torabian</name>
<email>alireza.torabian@huawei.com</email>
</author>
<published>2025-10-31T17:19:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1b3e7df195f4900a858e97a887e47eddd6dabdfe'/>
<id>1b3e7df195f4900a858e97a887e47eddd6dabdfe</id>
<content type='text'>
Rely on the product of `UpperBound` and `AbsCoeff` only if SCEV 
can prove that there is no overflow. Also the same about the result
of the subtraction of `DstConst` from `SrcConst` to calculate `Delta`.


</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rely on the product of `UpperBound` and `AbsCoeff` only if SCEV 
can prove that there is no overflow. Also the same about the result
of the subtraction of `DstConst` from `SrcConst` to calculate `Delta`.


</pre>
</div>
</content>
</entry>
<entry>
<title>[DA] Check nsw when extracting a constant operand of SCEVMul (#164408)</title>
<updated>2025-10-30T16:06:30+00:00</updated>
<author>
<name>Ryotaro Kasuga</name>
<email>kasuga.ryotaro@fujitsu.com</email>
</author>
<published>2025-10-30T16:06:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=916e8f74a8216e858699fc8533929c013fa3d018'/>
<id>916e8f74a8216e858699fc8533929c013fa3d018</id>
<content type='text'>
Given a `SCEVMulExpr` such as `5 * %m`, `gcdMIVtest` in DA assumes the
value as a multiple of 5 in a mathematical sense. However, this is not
necessarily true if `5 * %m` overflows, especially because an odd number
has an inverse modulo `2^64`. Such incorrect assumptions can lead to
invalid analysis results.
This patch stops unconditionally extracting a constant operand from
`SCEVMulExpr`. Instead, it only allows this when the `SCEVMulExpr` has
the `nsw` flag.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Given a `SCEVMulExpr` such as `5 * %m`, `gcdMIVtest` in DA assumes the
value as a multiple of 5 in a mathematical sense. However, this is not
necessarily true if `5 * %m` overflows, especially because an odd number
has an inverse modulo `2^64`. Such incorrect assumptions can lead to
invalid analysis results.
This patch stops unconditionally extracting a constant operand from
`SCEVMulExpr`. Instead, it only allows this when the `SCEVMulExpr` has
the `nsw` flag.</pre>
</div>
</content>
</entry>
<entry>
<title>[DA] Fix crash when two loops have different type sizes of becount  (#165021)</title>
<updated>2025-10-27T19:17:51+00:00</updated>
<author>
<name>Shimin Cui</name>
<email>scui@ca.ibm.com</email>
</author>
<published>2025-10-27T19:17:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=616f3b5aa118e95089679fd2a2b79fe769bbaf9a'/>
<id>616f3b5aa118e95089679fd2a2b79fe769bbaf9a</id>
<content type='text'>
The type sizes of backedge taken counts for two loops can be different
and this is to fix the crash in haveSameSD
(https://github.com/llvm/llvm-project/issues/165014).

---------

Co-authored-by: Shimin Cui &lt;scui@xlperflep9.rtp.raleigh.ibm.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The type sizes of backedge taken counts for two loops can be different
and this is to fix the crash in haveSameSD
(https://github.com/llvm/llvm-project/issues/165014).

---------

Co-authored-by: Shimin Cui &lt;scui@xlperflep9.rtp.raleigh.ibm.com&gt;</pre>
</div>
</content>
</entry>
</feed>
