[qt/clang/llvm]: Summary of bulk changes made

KDE Git Services - Bulk Change <[email protected]> Wed, 5 Aug 2026 12:12:21 +0000 (UTC)
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git repository change summary for qt/clang/llvm
Pushed by mirror-service into branch 'upstream/users/cabbaken/rewriteBanerjeeTest'.
Changed from c6bdf6dfd71581ec09052d349a8dd9ac7d1c9311 to fb52291f03c7da5de57427e008a228e57e9a9e8a
Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository.

This change contains the following new commits:

Git commit b7b743f6695b34da8844d2b88e5c8cccc2bd3f42 by Ruoyu Qiu on 29/07/2026 at 11:46..
[DA] Rewrite BanerjeeMIV test with safe APInt interval arithmetic

The old banerjeeMIVtest computed inequality bounds using SCEV
arithmetic on 64-bit integers. Intermediate operations like
$(A^{-} - B^{+}) \times Iterations$ could overflow i64 even when all individual
coefficients and loop bounds fit, producing unsound results.

Replace the symbolic bound machinery with a self-contained APInt
interval arithmetic implementation. Key design decisions:

- BanerjeeInterval holds [Lower, Upper] signed-inclusive bounds.
  Operations use APInt arithmetic at WideBits, chosen to guarantee no
  intermediate overflow:
  $$
    WideBits = max(8, 2 \times BaseBits + MaxLevels + 8)
  $$
  This is provably sufficient, each term product needs at most `2 \times BaseBits + 1`
  bits, and summing across MaxLevels terms needs at most ceil($\log_2 (MaxLevels)$)
  extra bits.

- Only constant affine expressions are handled. `CollectConstantAffine`
  requires nsw on every SCEVAddRecExpr and a SCEVConstant for both the
  step recurrence and the backedge-taken count.
  Symbolic cases bail out conservatively.

Fixes the FIXME in gcdmiv_delta_ovfl2.ll: the old code could not
detect the dependence because intermediate SCEV subtraction of
coefficients near INT64_MIN and INT64_MAX overflowed i64. The new code
computes correct bounds at WideBits >= 138.

Adds a test in banerjee-overflow.ll for single-iteration loops and
updates PR51512.ll for the more precise direction refinement.

Signed-off-by: Ruoyu Qiu <[email protected]>
https://invent.kde.org/qt/clang/llvm/-/commit/b7b743f6695b34da8844d2b88e5c8cccc2bd3f42

Git commit ce2565a12f9ac3b2dc755f580eca3dcb7c80ffed by Ruoyu Qiu on 29/07/2026 at 11:46..
Replace APInt with SCEV to add symbolic support
https://invent.kde.org/qt/clang/llvm/-/commit/ce2565a12f9ac3b2dc755f580eca3dcb7c80ffed

Git commit 98c1ce3e2b64805ec574daca6434d9682e821f81 by Ruoyu Qiu on 29/07/2026 at 11:47..
Restore comments
https://invent.kde.org/qt/clang/llvm/-/commit/98c1ce3e2b64805ec574daca6434d9682e821f81

Git commit 2754153a25520a8c6f67c6b0ea35e97390e6eb70 by Ruoyu Qiu on 29/07/2026 at 11:47..
Strict the refine of < and > with intersection
https://invent.kde.org/qt/clang/llvm/-/commit/2754153a25520a8c6f67c6b0ea35e97390e6eb70

Git commit 1543498bc7022f622b6fa30bfed18ceced80141e by Ruoyu Qiu on 29/07/2026 at 11:47..
Update some comments and some fix
https://invent.kde.org/qt/clang/llvm/-/commit/1543498bc7022f622b6fa30bfed18ceced80141e

Git commit 1de7ad32ef2a78a1119c9904a7608884aade1df6 by Ruoyu Qiu on 29/07/2026 at 11:47..
Update
https://invent.kde.org/qt/clang/llvm/-/commit/1de7ad32ef2a78a1119c9904a7608884aade1df6

Git commit fb52291f03c7da5de57427e008a228e57e9a9e8a by Ruoyu Qiu on 03/08/2026 at 17:07..
Rename unboundedStrictDirectionInterval and add comment
https://invent.kde.org/qt/clang/llvm/-/commit/fb52291f03c7da5de57427e008a228e57e9a9e8a