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

KDE Git Services - Bulk Change <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git repository change summary for qt/clang/llvm-project
Pushed by mirror-service into branch 'upstream/users/ergawy/enclode_in_scf.execute_region'.
Changed from 864a5988ffcfcddfcf869af084bcd30721af875a to 30e34c9dc91f4d45167ada07a5c64a3499803ebf
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 4d37b5bf3099d099302cce447168b3ece4efef5e by GitHub (on behalf of Florian Hahn) on 17/07/2026 at 11:21..
[LV] Add additional SCEV expansion tests with AddRecs. (NFC) (#210159)

Add additional test coverage for SCEV expansion of AddRecs, including
cases where extends are needed, different start and steps, as well as
cases where the outer header is not the plan's entry block.
https://invent.kde.org/qt/clang/llvm-project/-/commit/4d37b5bf3099d099302cce447168b3ece4efef5e

Git commit a9e5bb572703780e3eea4a2759104a141ea73466 by GitHub (on behalf of Nico Weber) on 17/07/2026 at 11:37..
[gn build] Port 398f2117379f (#210308)
https://invent.kde.org/qt/clang/llvm-project/-/commit/a9e5bb572703780e3eea4a2759104a141ea73466

Git commit 9a2d9c7fef47c0af321150f75d8f21db06cccb43 by GitHub (on behalf of Florian Hahn) on 17/07/2026 at 11:46..
[SCEV] Try to fold ZExt/SExt of AddRec before existing lookup. (#208805)

Move AddRec fold for ZExt & SExt before existing SCEV lookup. This can
improve results, when we constructed SCEV for a ZExt/SExt during earlier
analysis and flags on the operand AddRec have not been
refined/strengthend yet.

This improves results in some cases and fixes a regression here:
https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/654#discussion_r3554885279.

On a large C/C++ corpus with 32k bitcode files, ~2% more IVs get
widened, removing a large number of ZExt instructions.

Compile-time impact in the noise

https://llvm-compile-time-tracker.com/compare.php?from=167d65906cc3c636221158abe8289ab4a03dfc7d&to=381abca0d5ead4443d86287d754f47c21396a9be&stat=instructions:u
https://invent.kde.org/qt/clang/llvm-project/-/commit/9a2d9c7fef47c0af321150f75d8f21db06cccb43

Git commit 62a932ac3e2702a5493934c6362f9e058a204557 by GitHub (on behalf of Abhina Sree) on 17/07/2026 at 12:10..
[SystemZ][z/OS] Fix zos_translation_time module flag (#210058)

The zos_translation_time flag needs to be 64-bit to handle the year 2038
problem.
https://invent.kde.org/qt/clang/llvm-project/-/commit/62a932ac3e2702a5493934c6362f9e058a204557

Git commit 23b0281d75a4320a4e6e3d837edf94911d98d252 by GitHub (on behalf of Nikita Popov) on 17/07/2026 at 12:34..
[X86] Fix assertion failure for tail call on i686+pic (#210302)

The pattern for TCRETURNmi has a IsNotPIC predicate, but the
checkTCRetEnoughRegs() predicate that's part of the X86tcret_enough_regs
PatFrag is evaluated first, so we can't assert that PIC is disabled
here. We should just return false in that case.

Fixes https://github.com/llvm/llvm-project/issues/210300.
https://invent.kde.org/qt/clang/llvm-project/-/commit/23b0281d75a4320a4e6e3d837edf94911d98d252

Git commit 38104cf836c3903647c917a5b251e938f4eadbb9 by GitHub (on behalf of Paul Walker) on 17/07/2026 at 13:17..
[LLVM][SVE] Add MachineInst pass to coalesce PTRUE instructions. (#204820)

SVE predicate registers contain a bit for each byte of a data register.
When operating on bigger element types the overlaping predicate bits are
grouped together but typically only the least-significant-bit is read as
part of the operation. This means the value of the other bits does not
affect the operation, making it possible to use the result of PTRUE for
a larger element typed operation, assuming the predicate patterns are
equivalent. For example:

  ADD_S (PTRUE_H 31), Z0, Z1 == ADD_S (PTRUE_S 31), Z0, Z1

AArch64PTrueCoalescingPass uses this fact to reduce the number of PTRUE
instructions in a function, with the general trend towards needing a
single PTRUE based on the smallest element type in use.

NOTE: The pass will be enabled by default using a dedicated PR to make
it easier to revert if something goes wrong.
https://invent.kde.org/qt/clang/llvm-project/-/commit/38104cf836c3903647c917a5b251e938f4eadbb9

Git commit de4f929700f8d87041e0b050ec6028f0ac5276ad by GitHub (on behalf of David Spickett) on 17/07/2026 at 13:18..
[lldb][x86] Remove GCC 6 workaround (#210317)

Added by 3bea7306e8669f94bacafae68748a9139cfc0b98.

We now require GCC >= 7.4 so it can be removed.

I tested a standalone reproducer with GCC 7.3 and
clang 5. Neither have the problem.

https://godbolt.org/z/3zKrT9c8s

Standalone reproducer:
```
 struct Base {
   Base(int) {}
 };

 struct Derived : virtual Base {
 #ifdef WORKAROUND
     Derived(int a): Base(a) {}
 #endif
   virtual void g() = 0;
 };

 struct Final : Derived {
   Final(int n) : Base(n)
 #ifdef WORKAROUND
   , Derived(n)
 #endif
   {}
   void g() override {}
 };
```
https://invent.kde.org/qt/clang/llvm-project/-/commit/de4f929700f8d87041e0b050ec6028f0ac5276ad

Git commit b9f5bcbcfbe6aa4943c808afd3bb82243ecb3193 by GitHub (on behalf of Nikita Popov) on 17/07/2026 at 13:19..
Revert "[clang][CodeGen][X86_64] Honor per-function AVX ABI in C/C++ call paths, maintain old psABI for PlayStation." (#210303)

Reverts llvm/llvm-project#193298

Causes a major compile-time regression.
https://invent.kde.org/qt/clang/llvm-project/-/commit/b9f5bcbcfbe6aa4943c808afd3bb82243ecb3193

Git commit 75ec1a4e80a9377f8f1e2ff063b094e016787926 by GitHub (on behalf of Manuel Carrasco) on 17/07/2026 at 13:29..
[SPIRV] Emit NonSemantic DebugGlobalVariable (#207230)

Add emitDebugGlobalVariable to the NSDI handler, translating each
DIGlobalVariable to a
[DebugGlobalVariable](https://github.khronos.org/SPIRV-Registry/nonsemantic/NonSemantic.Shader.DebugInfo.html#DebugGlobalVariable)
ext inst.
https://invent.kde.org/qt/clang/llvm-project/-/commit/75ec1a4e80a9377f8f1e2ff063b094e016787926

Git commit 4f76a4c5a3f8711fe13b05c0f93ac78349396292 by GitHub (on behalf of Erich Keane) on 17/07/2026 at 13:39..
[NFC] RelNotes Formatting fix I screwed up in 209893 (#210325)
https://invent.kde.org/qt/clang/llvm-project/-/commit/4f76a4c5a3f8711fe13b05c0f93ac78349396292

Git commit af5846fb01d888726bea5d883e48b0d2f79abb4c by ergawy on 17/07/2026 at 13:50..
[flang][PFT-to-MLIR] Wrap unstructured Fortran constructs in scf.execute_region

Extend the PFT-to-MLIR (HLFIR/FIR) lowering so unstructured DO and IF
constructs are emitted inside scf.execute_region, hiding their multi-block
CFG behind a single op. OpenACC and OpenMP lowerings that reject
multi-block content (e.g. the "unstructured do loop in combined acc
construct" TODO in OpenACC.cpp) now see a structured op instead.

Flag: -mmlir --wrap-unstructured-constructs-in-execute-region (default on).

An evaluation is wrappable iff all of the following hold:

  * wrap flag on
  * eval is parser::DoConstruct or parser::IfConstruct
  * eval.isUnstructured
  * branchesAreInternal(eval) -- every controlSuccessor in the subtree
    targets a nested eval or the constructExit
  * !hasIncomingBranch(eval) -- no outside eval branches into the body
    (PFT's synthetic IfConstruct around `if(c) goto X` absorbs label
    targets between the IF and X; the incoming-branch check excludes
    such wrappers when an outer GOTO names one of those labels)
  * does not contain a ReturnStmt -- its lowering creates the function's
    final block in the current region, which would mis-parent func.return
  * not an infinite DO and does not contain one (no LoopControl in any
    nested DO): the wrap's yield is unreachable and the body has no
    write-shaped side effects, so RegionDCE treats the wrap as trivially
    dead and drops it. Excluding the whole enclosing construct keeps
    such infinite loops visible in the parent CFG.
  * not the body DO of an enclosing OpenACCLoopConstruct or
    OpenACCCombinedConstruct -- nor one of the N collapsed iterator DOs
    reached by walking down through `collapse(N)`. Such DOs are driven
    directly into acc.loop by the OpenACC lowering, so wrapping them
    would hide the iteration from the acc.loop op.

Diagnostics
-----------
Emit per-wrap and per-function diagnostics on stderr so the wrapping is
observable from a single compile invocation:

  [wrap-unstructured] wrapped DO at <loc>
  [wrap-unstructured] wrapped IF at <loc>
  [wrap-unstructured] summary: N execute_region(s) wrapping unstructured
                      constructs at <loc>

The counter is reset per function and the summary is suppressed when no
wraps fire.

Co-authored-by: Claude Opus 4.7 <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/af5846fb01d888726bea5d883e48b0d2f79abb4c

Git commit a58f9ac478db7d03daeb90e957ea78bc13d502eb by ergawy on 17/07/2026 at 13:50..
[flang][PFT] check every branch target in wrappability analyses

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/a58f9ac478db7d03daeb90e957ea78bc13d502eb

Git commit ba5ff0ff9fd8d80a499bb612b0e30d9bfbfb7fa0 by ergawy on 17/07/2026 at 13:50..
[flang][PFT-to-MLIR] pull the scf.execute_region wrap inside the DO lowering

Co-authored-by: Claude Opus 4.7 <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/ba5ff0ff9fd8d80a499bb612b0e30d9bfbfb7fa0

Git commit 481d470811bcc6e65c2fa2ae010b8617ec9134e6 by ergawy on 17/07/2026 at 13:50..
[flang][PFT-to-MLIR] start entry block for wrappable nested IfConstruct

Co-authored-by: Claude Opus 4.7 <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/481d470811bcc6e65c2fa2ae010b8617ec9134e6

Git commit 3f6849c2b3c76a2bd8bab1a4f55dfc35f026e809 by ergawy on 17/07/2026 at 13:50..
Self review
https://invent.kde.org/qt/clang/llvm-project/-/commit/3f6849c2b3c76a2bd8bab1a4f55dfc35f026e809

Git commit 24e77cd356ef2b911419d5baee94836a8c541b5d by ergawy on 17/07/2026 at 13:50..
[flang][PFT] do not wrap constructs containing a listless assigned GO TO
https://invent.kde.org/qt/clang/llvm-project/-/commit/24e77cd356ef2b911419d5baee94836a8c541b5d

Git commit 30e34c9dc91f4d45167ada07a5c64a3499803ebf by ergawy on 17/07/2026 at 13:50..
[flang][PFT] combine wrappability body checks into a single walk
https://invent.kde.org/qt/clang/llvm-project/-/commit/30e34c9dc91f4d45167ada07a5c64a3499803ebf
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.