[all-commits] [llvm/llvm-project] 1f84b4: [TySan] Remove incorrect memcpy shadow memory trac...

Connector Switch via All-commits all-commits at lists.llvm.org
Thu Jun 25 09:45:57 PDT 2026


  Branch: refs/heads/users/c8ef/atomic_minmax
  Home:   https://github.com/llvm/llvm-project
  Commit: 1f84b4aab5c714ea8be7ee8f69d00c69b7cecaba
      https://github.com/llvm/llvm-project/commit/1f84b4aab5c714ea8be7ee8f69d00c69b7cecaba
  Author: Matthew Nagy <matthew.nagy at sony.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M compiler-rt/lib/tysan/tysan.cpp
    M compiler-rt/lib/tysan/tysan_interceptors.cpp
    M compiler-rt/test/tysan/global.c
    A compiler-rt/test/tysan/memcpy_doesnt_change_shadow.c

  Log Message:
  -----------
  [TySan] Remove incorrect memcpy shadow memory tracking (#199958)

Fixes the false positive in
https://github.com/llvm/llvm-project/issues/122934

memcpy is allowed to bypass strict aliasing rules (see
https://en.cppreference.com/c/string/byte/memcpy) so we shouldn't alter
shadow memory when it is used


  Commit: 07097a56cce0602336c2437eccb80696936a30a1
      https://github.com/llvm/llvm-project/commit/07097a56cce0602336c2437eccb80696936a30a1
  Author: Luke Lau <luke at igalia.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
    M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp

  Log Message:
  -----------
  [VPlan] Allow VPValue in match_fn without needing explicit template arguments. NFC (#205748)

Currently if you want to use match_fn over a range of VPValues, you have
to explicitly write `match_fn<VPValue>` otherwise it will resolve to the
VPUser overload.

This changes the functor to be a lambda with an auto argument so
match_fn(...) works for both VPValues and VPUsers without explicit
templates. The lambda is inlined so there's no indirect function call.
vputils::getGEPFlagsForPtr is updated to use the new form.

We can't use `bind_back` since it requires we bind to exactly one
function that's known at call time.


  Commit: 3dc2e179220bf4dabd96272460fcca7a1b81539d
      https://github.com/llvm/llvm-project/commit/3dc2e179220bf4dabd96272460fcca7a1b81539d
  Author: Igor Kirillov <igor.kirillov at arm.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    A llvm/test/CodeGen/AArch64/complex-deinterleaving-reassoc-duplicates.ll

  Log Message:
  -----------
  [ComplexDeinterleaving] Add test for duplicate reassoc addends (NFC) (#205794)


  Commit: 75a256727cc5977775bc85f30fea9767f8e53b65
      https://github.com/llvm/llvm-project/commit/75a256727cc5977775bc85f30fea9767f8e53b65
  Author: Utkarsh Saxena <usx at google.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M clang/include/clang/Analysis/Analyses/LifetimeSafety/Checker.h
    M clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeSafety.h
    M clang/lib/Analysis/LifetimeSafety/Checker.cpp
    M clang/lib/Analysis/LifetimeSafety/LifetimeSafety.cpp
    M clang/lib/Sema/AnalysisBasedWarnings.cpp
    M clang/lib/Sema/SemaLifetimeSafety.h
    M clang/test/Sema/LifetimeSafety/safety.cpp

  Log Message:
  -----------
  [LifetimeSafety] Gate annotation suggestions behind `SuggestAnnotations` opt (#205764)

Annotations suggestions expectedly fire very often and they have
recently shown significant regressions after the
https://github.com/llvm/llvm-project/pull/204045. This now gates the
suggestions behind a dedicated `SuggestAnnotations` option, preventing
unnecessary work when the relevant diagnostics are disabled.


  Commit: 0c540b9dcd041a2574f744144bb894b5862344b1
      https://github.com/llvm/llvm-project/commit/0c540b9dcd041a2574f744144bb894b5862344b1
  Author: Donát Nagy <donat.nagy at ericsson.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp

  Log Message:
  -----------
  [analyzer] Fix unjustified early return in processCallExit (#205656)

In `ExprEngine::processCallExit` step 3 may theoretically split the
state because it calls `removeDead`, which activates `LiveSymbols` and
`DeadSymbols` callbacks of various checkers. (However, in practice it is
likely that these checker callbacks never actually split the state -- at
least, no such state splits happen in the LIT tests.)

The nodes produced by `removeDead` are placed in the set `CleanedNodes`;
in theory the different execution paths should be handled in parallel,
independently of each other. However, the loop `for (ExplodedNode *N :
CleanedNodes)` contained an early return statement, which meant that if
the creation of `CEENode` failed for a node `N`, then the subsequent
iterations were skipped altogether.

This commit replaces the `return` with a `continue` to ensure that the
nodes in `CleanedNodes` are handled independently (if there are several
such nodes).

This logic error is present in the codebase since 2012 (!) when commit
7e53bd6fb01b062ece426252fb94c76bcce58941 introduced the `removeDead`
step into `processCallExit`.

Given that nobody noticed this error within the last 14 years, I very
strongly suspect that it doesn't have any observable functional effects,
i.e. this change is essentially NFC.


  Commit: 87f7884cb69912ca812d3a0543c94e0362d395a9
      https://github.com/llvm/llvm-project/commit/87f7884cb69912ca812d3a0543c94e0362d395a9
  Author: t-demchuk <109612249+t-demchuk at users.noreply.github.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M llvm/lib/Transforms/Scalar/NaryReassociate.cpp
    A llvm/test/Transforms/NaryReassociate/nary-gep-zero-sized-element.ll

  Log Message:
  -----------
  [NaryReassociate] Fix divide by zero crash in NaryReassociatePass (#202377)

Updates NaryReassociatePass with a safety check to guard against GEPs
into arrays with zero sized element types (eg. [0 x ptr]) to prevent
division by zero.


  Commit: e0981358efdf3c630d1921fd81ba55af5e406364
      https://github.com/llvm/llvm-project/commit/e0981358efdf3c630d1921fd81ba55af5e406364
  Author: Zeyi Xu <mitchell.xu2 at gmail.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M clang/lib/Analysis/FlowSensitive/WatchedLiteralsSolver.cpp

  Log Message:
  -----------
  [clang][dataflow] Move expensive solver asserts under EXPENSIVE_CHECKS (#205715)

The watched-literal solver has a few invariant checks that run on every
solver iteration in assertion builds. Some of these checks rebuild and
iterate over the watched-literal state. This overhead is usually hidden,
but it becomes dominant for large flow-sensitive analyses.

While testing clang-tidy's `unchecked-optional-access` check on real
world projects (in this case, LLVM itself), we found there are a few
extreme slow analyses caused by this overhead.

| Time    | File                                                |
|---------|-----------------------------------------------------|
| 8235.7s | llvm-project/clang/utils/TableGen/RISCVVEmitter.cpp |
| 8197.2s | llvm-project/clang/lib/Driver/Multilib.cpp          |

(Ran on a machine with Icelake 32cores + 128gb memory)

After moving these asserts to `EXPENSIVE_CHECKS`, the same files
complete in about 14.2 seconds and 12.2 seconds locally. That is roughly
a 580x improvement for `RISCVVEmitter.cpp` and a 673x improvement for
`Multilib.cpp`.

This can also affect clang-tidy pre-merge CI, because the pre-merge
configuration uses an assertions build and enables
`bugprone-unchecked-optional-access`.

Given this scale of improvement, I think these invariant checks are
better suited for `EXPENSIVE_CHECKS`. They remain available in dedicated
expensive-check builds, while avoiding a very large cost in regular
release+assertions builds.

Closes https://github.com/llvm/llvm-project/issues/205713


  Commit: 5fdc9482989b59a4e1b2bbe75f80e12e082f9f90
      https://github.com/llvm/llvm-project/commit/5fdc9482989b59a4e1b2bbe75f80e12e082f9f90
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M offload/test/offloading/fortran/target-no-loop.f90

  Log Message:
  -----------
  [Offload][OpenMP][Flang] Update no-loop test (#205803)

Updates to the kernel type detection logic now allow `target parallel
do` to be promoted to SPMD-No-Loop.

A currently broken offload test that was affected by this change is
updated here.


  Commit: 87c11c98a2412f4aab2f7bf18d9346b016945c24
      https://github.com/llvm/llvm-project/commit/87c11c98a2412f4aab2f7bf18d9346b016945c24
  Author: Jeff Bailey <jbailey at raspberryginger.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M libc/config/linux/aarch64/headers.txt
    M libc/config/linux/arm/headers.txt
    M libc/config/linux/riscv/headers.txt
    M libc/config/linux/x86_64/headers.txt

  Log Message:
  -----------
  [libc] Add libgen.h to target public headers (#205804)

Ensure libgen.h is included in TARGET_PUBLIC_HEADERS for Linux targets
so that it gets generated and installed.

Assisted-by: Automated tooling, human reviewed.


  Commit: c834d1acf130b8d98d818b60ab129f780855461f
      https://github.com/llvm/llvm-project/commit/c834d1acf130b8d98d818b60ab129f780855461f
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M clang/lib/AST/ByteCode/Compiler.cpp
    M clang/lib/AST/ByteCode/Context.cpp
    M clang/lib/AST/ByteCode/EvalEmitter.cpp
    M clang/lib/AST/ByteCode/Interp.cpp
    M clang/lib/AST/ByteCode/InterpFrame.cpp
    M clang/lib/AST/ByteCode/InterpState.h
    M clang/lib/AST/ExprConstant.cpp
    A clang/test/AST/ByteCode/evaluate-dtor.cpp
    M clang/test/CXX/expr/expr.const/p6-2a.cpp
    M clang/test/CodeGenCXX/const-init-cxx2a.cpp
    M clang/test/CodeGenCXX/non-const-init-cxx2a.cpp

  Log Message:
  -----------
  [clang][bytecode] Fix `evaluateDestruction()` (#205778)

Me previous testing regarding this seems to have been insufficient. Or
this regressed some time along the way.

Now that `CLANG_USE_EXPERIMENTAL_CONST_INTERP` is used for testing I
noticed a few regressions.

We need to special-case the evaluating decl in a few places, since it's
a global variable that we're allowed to modify.


  Commit: 630125ac5be7dab26fcfba8918ee091588616f21
      https://github.com/llvm/llvm-project/commit/630125ac5be7dab26fcfba8918ee091588616f21
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M llvm/include/llvm/IR/InstrTypes.h
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/test/Transforms/InstCombine/assume-loop-align.ll
    M llvm/test/Transforms/InstCombine/assume.ll
    M llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll

  Log Message:
  -----------
  Revert "Reapply "[InstCombine] Merge consecutive assumes", round 2" (#205805)

It looks like there is still a bug with removing assumes from the
assumption cache.

Reverts llvm/llvm-project#205773


  Commit: 4d4c865933e1048842f836490e02296b2cb48711
      https://github.com/llvm/llvm-project/commit/4d4c865933e1048842f836490e02296b2cb48711
  Author: Federico Bruzzone <federico.bruzzone.i at gmail.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
    M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
    M mlir/test/Dialect/Vector/invalid.mlir

  Log Message:
  -----------
  [mlir][vector] add consistent stride verification to `masked load/store` and `gather/scatter` ops (#204842)

Extend negative stride checks to MaskedLoadOp, MaskedStoreOp, GatherOp,
and ScatterOp to match LoadOp and StoreOp behavior.

Depends on: #204611.

AI Disclaimer: I used AI for the tests.

---------

Signed-off-by: Federico Bruzzone <federico.bruzzone.i at gmail.com>


  Commit: 647c29886973c7111a32702e3c7a5ccc33a9feeb
      https://github.com/llvm/llvm-project/commit/647c29886973c7111a32702e3c7a5ccc33a9feeb
  Author: John Brawn <john.brawn at arm.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64SchedA510.td
    M llvm/test/CodeGen/AArch64/zext-to-tbl.ll
    M llvm/test/tools/llvm-mca/AArch64/Cortex/A510-neon-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/Cortex/A510-writeback.s

  Log Message:
  -----------
  [AArch64] Correct A510 scheduling information for LDn instructions (#205518)

The latency and throughput for these instructions don't match what's in
the A510 Software Optimization Guide, so adjust them so that they do
match. Also rearrange the definitions to match how they're structured in
the optimization guide and rename things in a similar manner to how the
C1 CPUs do things, as it's much clearer.


  Commit: ec574cf0444e4c3cc3f2c97a019d49445bb37ddf
      https://github.com/llvm/llvm-project/commit/ec574cf0444e4c3cc3f2c97a019d49445bb37ddf
  Author: Ingo Müller <ingomueller at google.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

  Log Message:
  -----------
  [Bazel] Fixes 5314be5 (#205818)

This fixes 5314be5a740c9985b0b3ab958269b5f1824cce02.

Signed-off-by: Ingo Müller <ingomueller at google.com>
Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>


  Commit: bef95e54674592946530fdda73e4fea7809263f3
      https://github.com/llvm/llvm-project/commit/bef95e54674592946530fdda73e4fea7809263f3
  Author: Jeff Bailey <jbailey at raspberryginger.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/include/stdlib.yaml
    M libc/src/CMakeLists.txt
    M libc/src/stdlib/CMakeLists.txt
    M libc/src/stdlib/environ_internal.cpp
    M libc/src/stdlib/environ_internal.h
    M libc/src/stdlib/linux/CMakeLists.txt
    A libc/src/stdlib/linux/unsetenv.cpp
    A libc/src/stdlib/unsetenv.h
    M libc/test/integration/src/stdlib/CMakeLists.txt
    A libc/test/integration/src/stdlib/unsetenv_test.cpp

  Log Message:
  -----------
  [libc][stdlib] Add unsetenv (#202422)

Added the POSIX unsetenv() function and its internal support.

Implemented EnvironmentManager::unset() to remove a variable by name,
free the string if allocated, and compact the array.

Updated EnvironmentManager to synchronize the public global environ
pointer when transitioning to managed storage.

Registered for x86_64, aarch64, and riscv. Integration tests cover basic
operations and edge cases.

Assisted-by: Automated tooling, human reviewed.


  Commit: 755bc5c9a54de43166930585fde1c23efe8f18e1
      https://github.com/llvm/llvm-project/commit/755bc5c9a54de43166930585fde1c23efe8f18e1
  Author: A. Jiang <de34 at live.cn>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M libcxx/include/__memory/shared_ptr.h

  Log Message:
  -----------
  [libc++] Add missing attribute usages to `<__memory/shared_ptr.h>` (#205776)

Since 44546e0e32077241ca9a9a90ac57f2f086f9488a, lack of
`_LIBCPP_NODEBUG` and `_LIBCPP_HIDE_FROM_ABI` are caught by clang-tidy.
This patch adds them wherever expected.


  Commit: 7b54691ba96944d7a2bb2d3eb8c7654c9350be81
      https://github.com/llvm/llvm-project/commit/7b54691ba96944d7a2bb2d3eb8c7654c9350be81
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M clang/lib/Headers/__clang_hip_libdevice_declares.h

  Log Message:
  -----------
  clang/HIP: Remove some unused ocml function declarations (#204735)


  Commit: f36745eb0a07177743ccb039a77399846a873a40
      https://github.com/llvm/llvm-project/commit/f36745eb0a07177743ccb039a77399846a873a40
  Author: Zorojuro <sawantsukumar at gmail.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M libc/config/baremetal/aarch64/entrypoints.txt
    M libc/config/baremetal/arm/entrypoints.txt
    M libc/config/baremetal/riscv/entrypoints.txt
    M libc/config/darwin/aarch64/entrypoints.txt
    M libc/config/darwin/x86_64/entrypoints.txt
    M libc/config/freebsd/x86_64/entrypoints.txt
    M libc/config/gpu/amdgpu/entrypoints.txt
    M libc/config/gpu/nvptx/entrypoints.txt
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/arm/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/config/windows/entrypoints.txt
    M libc/docs/headers/math/index.rst
    M libc/shared/math.h
    A libc/shared/math/tanbf16.h
    M libc/src/__support/math/CMakeLists.txt
    A libc/src/__support/math/tanbf16.h
    M libc/src/math/CMakeLists.txt
    M libc/src/math/generic/CMakeLists.txt
    A libc/src/math/generic/tanbf16.cpp
    A libc/src/math/tanbf16.h
    M libc/test/shared/CMakeLists.txt
    M libc/test/shared/shared_math_test.cpp
    M libc/test/src/math/CMakeLists.txt
    M libc/test/src/math/smoke/CMakeLists.txt
    A libc/test/src/math/smoke/tanbf16_test.cpp
    A libc/test/src/math/tanbf16_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [libc][math][c23] Add tanbf16 math function (#185100)

Adds tanbf16 higher math function for bfloat16 type


  Commit: acff1e5417dde747ba0f18ccac1366c87de60adf
      https://github.com/llvm/llvm-project/commit/acff1e5417dde747ba0f18ccac1366c87de60adf
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M lldb/examples/python/templates/scripted_process.py

  Log Message:
  -----------
  [lldb] Don't fail scripted frame construction on WebAssembly (#205692)


  Commit: b45bb83888a5cb5aaa3b7d41d446bbe797089881
      https://github.com/llvm/llvm-project/commit/b45bb83888a5cb5aaa3b7d41d446bbe797089881
  Author: Luke Lau <luke at igalia.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M llvm/test/Transforms/LoopVectorize/runtime-checks-hoist.ll

  Log Message:
  -----------
  [LV] Regen runtime-checks-hoist.ll with newer UTC. NFC (#205831)

Fixes some noise in an upcoming test diff with labels being renamed.


  Commit: 28475c218ebcbf81d581d1953e7a1cb4e91fba60
      https://github.com/llvm/llvm-project/commit/28475c218ebcbf81d581d1953e7a1cb4e91fba60
  Author: SiHuaN <liyongtai at iscas.ac.cn>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
    M llvm/test/CodeGen/RISCV/rv32p.ll

  Log Message:
  -----------
  [RISCV][P-ext] Select signed widening add/sub accumulate to wadda/wsuba (#205475)

WADDA is rd += sext(rs1) + sext(rs2) and WSUBA is rd += sext(rs1) - sext(rs2),
the signed counterparts of WADDAU/WSUBAU added in #181396.

Add the WADDA/WSUBA SelectionDAG nodes, fold ADDD/SUBD whose addend is a
sign-extended i32 (high half == sra(lo, 31)) into them, collapse chained
accumulates into the free source slot, and select them to the wadda/wsuba
instructions.


  Commit: 84c42fe09e0521b565b938411f30397df663e2bc
      https://github.com/llvm/llvm-project/commit/84c42fe09e0521b565b938411f30397df663e2bc
  Author: elizabethandrews <elizabeth.andrews at intel.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/AttrDocs.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/SemaType.cpp
    M clang/test/CodeGenOpenCL/address-spaces-conversions.cl
    M clang/test/CodeGenOpenCL/address-spaces.cl
    M clang/test/CodeGenSYCL/address-space-conversions.cpp
    M clang/test/CodeGenSYCL/amd-address-space-conversions.cpp
    M clang/test/CodeGenSYCL/cuda-address-space-conversions.cpp
    M clang/test/SemaOpenCL/usm-address-spaces-conversions.cl
    M clang/test/SemaSYCL/address-space-conversions.cpp

  Log Message:
  -----------
  [clang][opencl][sycl] Deprecate opencl_global_device and opencl_global_host (#203569)

These attributes were originally introduced as part of the SYCL
upstreaming effort to enable improved performance for USM pointers on
FPGA targets. However, subsequent evaluation indicates that they are not
meaningfully used in practice. Additionally given the current shift in
focus away from FPGAs in DPC++, these attributes no longer serve an
active purpose. Their removal would simplify the codebase and reduce
ongoing maintenance burden.

RFC:
https://discourse.llvm.org/t/rfc-remove-opencl-global-device-and-opencl-global-host-address-space-attributes/90677


  Commit: 0bb2b00bee4da3b3706910f14cc1641fac95fe73
      https://github.com/llvm/llvm-project/commit/0bb2b00bee4da3b3706910f14cc1641fac95fe73
  Author: Kseniya Tikhomirova <kseniya.tikhomirova at intel.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M libsycl/docs/index.rst
    M libsycl/include/sycl/__impl/index_space_classes.hpp
    A libsycl/test/basic/index_space_classes.cpp
    A libsycl/test/basic/index_space_classes_negative.cpp

  Log Message:
  -----------
  [libsycl] add operators to sycl::range and sycl::id (#203572)

This PR was assisted by GH Copilot (tests extension).

Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova at intel.com>


  Commit: 213c7b7634d8cc585368e5acc0e26002b3715495
      https://github.com/llvm/llvm-project/commit/213c7b7634d8cc585368e5acc0e26002b3715495
  Author: Jan Leyonberg <jan_sjodin at yahoo.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenFunction.h
    M clang/lib/CIR/CodeGen/CIRGenOpenMPClause.cpp
    A clang/lib/CIR/CodeGen/CIRGenOpenMPClause.h
    M clang/lib/CIR/CodeGen/CIRGenStmt.cpp
    M clang/lib/CIR/CodeGen/CIRGenStmtOpenMP.cpp
    M clang/test/CIR/CodeGenOpenMP/not-yet-implemented.c
    A clang/test/CIR/CodeGenOpenMP/target-map-llvm-device.c
    A clang/test/CIR/CodeGenOpenMP/target-map-llvm-host.c
    A clang/test/CIR/CodeGenOpenMP/target-map.c
    M mlir/include/mlir/Dialect/OpenMP/OpenMPDialect.h
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp

  Log Message:
  -----------
  [CIR][OpenMP] Initial implementation of target region support (#195452)

This patch adds support for target regions with some basic support for map
clauses. It also changes the clause handling to make use of the OMP dialect
ClauseOps to simplify op constrution.

Assisted-by: Cursor / claude-4.6-opus-high


  Commit: c1869ffacf2b756913b45468aa58e7c8828112c4
      https://github.com/llvm/llvm-project/commit/c1869ffacf2b756913b45468aa58e7c8828112c4
  Author: Michael Kruse <llvm-project at meinersbur.de>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M flang-rt/lib/runtime/CMakeLists.txt
    M flang-rt/lib/runtime/__fortran_type_info.f90
    M flang-rt/lib/runtime/cooperative_groups.f90
    M flang-rt/lib/runtime/cudadevice.f90
    M openmp/module/CMakeLists.txt
    M openmp/module/omp_lib.F90.var
    M runtimes/cmake/config-Fortran.cmake

  Log Message:
  -----------
  [flang-rt][CMake] Avoid 'use, intrinsic ::' (#205634)

Two build failures reported after #204260

* Unix Makefiles generator stops working: The cause is that the rules
for building each OBJECT library lands in its own Makefile, e.g.
`flang_rt.mod.fortran.builtins.dir/build.make` and
`libomp-mod.dir/build.make`. Trying to inject dependencies directly for
build rules in the other file does not work.

* `__ppc_types.f90` not tracked: Forgotten in #204260 due to being only
conditionally enabled for PowerPC targets.

The solution for both is to just remove the workaround for CMake not
recognizing modules uses declared using `intrinsic` which caused these
problems. This PR promotes the `use` constructs in the module sources to
normal dependencies that are not ignored by CMake.

The `intrinsic` modifier changes the search path to only look for such a
module in `-fintrinsic-modules-path`. The difference is only
theoretical:
1. When compiling the intrinsic modules, there are no other search paths
than for the intrinsics anyway
2. Users should strongly avoid naming their modules the same as an
intrinsic module
3. Most of our intrinsic sources don't even use the `intrinsic` modifier
in the first place (e.g.
https://github.com/llvm/llvm-project/blob/1c9412432ff9f897d5fb096d31b945e50fbbb61d/flang-rt/lib/runtime/__cuda_builtins.f90#L13).
That is, if there was a problem with lookup ambiguity, these would have
already been a problem for those.
4. The checksum of used modules is only added into the .mod file (the
only reason why modules would need to be transitively rebuilt) when a
`use` statement appears. Many intrinsic modules don't explicitly use the
modules that are added implicitly by the compiler, such as
`__fortran_builtins`, and hence do not even need to be rebuilt.

I started this PR with a tested-working fix
([71c5e7f0ffcf2ebd58812d2e2812b22663be1631](https://github.com/llvm/llvm-project/pull/205634/changes/BASE..71c5e7f0ffcf2ebd58812d2e2812b22663be1631))
to the workaround code. But given the points above, there seems to be no
benefit of keeping the workaround code handling CMake version < 4.5
around just for some intrinsic modules to keep the `intrinsic` modifier
with no practical effect. A non-workaround path using CMake's
`Fortran_BUILDING_IN(S)TRINSIC_MODULES` setting had to be added in any
case for Unix Makefile generators (reported issue 1.) because injecting
dependencies is not possible with Unix Makefiles as stated, but
`Fortran_BUILDING_IN(S)TRINSIC_MODULES` also does not work with the
Ninja generator. Avoiding `use, intrinsic` keeps just one configuration
path.

I tested that modules are properly updated with Ninja and Unix
Makefiles:
 * Build from scratch
 * Modifying `__fortran_builtins.f90` rebuilds its dependent modules
 * Modifying `iso_c_binding.f90` rebuilds its dependent modules
(omp_lib.mod)


  Commit: ec6eed0b000733b865f5cc07ec5c444654d218b4
      https://github.com/llvm/llvm-project/commit/ec6eed0b000733b865f5cc07ec5c444654d218b4
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M libcxx/include/__algorithm/simd_utils.h
    M libcxx/include/__locale_dir/num.h

  Log Message:
  -----------
  [libc++] Remove __broadcast simd function (#205559)

The simd vector type in Clang already provides a conversion operator
that acts as a broadcast constructor. We can use that instead.


  Commit: 17d49bc052a74e1b9d365dd8f9f3597b4a538209
      https://github.com/llvm/llvm-project/commit/17d49bc052a74e1b9d365dd8f9f3597b4a538209
  Author: David Spickett <david.spickett at arm.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp

  Log Message:
  -----------
  [lldb][Linux][AArch64] Get NT_ARM_ constants from llvm's ELF header (#205834)

The first thing I do for any new register set is add it to the llvm
header. So we should just use those values instead of having all these
macros to handle older kernels.


  Commit: 383f8586986aac5abec446a08b1c33a0fff0a631
      https://github.com/llvm/llvm-project/commit/383f8586986aac5abec446a08b1c33a0fff0a631
  Author: Harry Ramsey <harry.ramsey at arm.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    A llvm/test/CodeGen/AArch64/sve2-fixed-length-sra-flag.ll
    A llvm/test/CodeGen/AArch64/sve2-fixed-length-sra.ll

  Log Message:
  -----------
  [AArch64] Preserve SDNode flags when lowering fixed vectors to scalable operations (#204616)

Preserve the original SDNode flags when LowerToScalableOp rebuilds fixed-length vector operations using their scalable container type. This allows combines to use flag information generated before the scalable was created.


  Commit: ff066c745de9f00b0bac8a98d1bd9bd864034da0
      https://github.com/llvm/llvm-project/commit/ff066c745de9f00b0bac8a98d1bd9bd864034da0
  Author: Alexis Engelke <engelke at in.tum.de>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M llvm/include/llvm/IR/PatternMatch.h
    M llvm/include/llvm/Transforms/Scalar/NaryReassociate.h
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/lib/Transforms/Scalar/NaryReassociate.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/CodeGen/X86/vec_minmax_match.ll
    M llvm/test/Transforms/InstSimplify/maxmin.ll
    M llvm/test/Transforms/LoopInterchange/reductions-non-wrapped-operations.ll
    M llvm/test/Transforms/LoopUnroll/runtime-unroll-reductions-min-max.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/pr33053.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/scalable-reductions.ll
    M llvm/test/Transforms/LoopVectorize/ARM/mve-reduction-predselect.ll
    M llvm/test/Transforms/LoopVectorize/ARM/mve-reduction-types.ll
    M llvm/test/Transforms/LoopVectorize/ARM/tail-fold-multiple-icmps.ll
    M llvm/test/Transforms/LoopVectorize/ARM/tail-folding-not-allowed.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/inloop-reduction.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/reductions.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-inloop-reduction.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-reduction.ll
    M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-reductions-tail-folded.ll
    M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-reductions.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
    M llvm/test/Transforms/LoopVectorize/minmax-extra-outside-users.ll
    M llvm/test/Transforms/LoopVectorize/minmax_reduction.ll
    M llvm/test/Transforms/LoopVectorize/reduction-inloop-min-max.ll
    M llvm/test/Transforms/LoopVectorize/reduction-inloop-pred.ll
    M llvm/test/Transforms/LoopVectorize/reduction-predselect.ll
    M llvm/test/Transforms/LoopVectorize/scalable-first-order-recurrence.ll
    M llvm/test/Transforms/LoopVectorize/select-reduction.ll
    M llvm/test/Transforms/LowerSwitch/do-not-handle-impossible-values.ll
    M llvm/test/Transforms/NaryReassociate/nary-req.ll
    M llvm/test/Transforms/NaryReassociate/nary-smax.ll
    M llvm/test/Transforms/NaryReassociate/nary-smin.ll
    M llvm/test/Transforms/NaryReassociate/nary-umax.ll
    M llvm/test/Transforms/NaryReassociate/nary-umin.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/horizontal-store.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/reduction.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extractelement-single-use-many-nodes.ll
    M llvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reduction.ll
    M llvm/test/Transforms/SLPVectorizer/X86/undef_vect.ll
    M llvm/test/Transforms/SLPVectorizer/X86/used-reduced-op.ll

  Log Message:
  -----------
  [IR] Don't match icmp+select as min/max (#205595)

Since some time, we canonicalize integer min/max as intrinsics. Remove
the detection of icmp+select as min/max from the pattern matchers. These
matchers were quite expensive but, due to canonicalization, were almost
never hit.

Test updates are largely canonicalization of the input to use intrinics
instead of icmp+select. (Manual work, we unfortunately don't have a tool
to canonicalize the test input.)


  Commit: 77b0b29955125c6caae1f88f710c4b3b41a0d37f
      https://github.com/llvm/llvm-project/commit/77b0b29955125c6caae1f88f710c4b3b41a0d37f
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M lldb/source/Utility/VirtualDataExtractor.cpp
    M lldb/unittests/Utility/VirtualDataExtractorTest.cpp

  Log Message:
  -----------
  [lldb] Return an empty extractor for unmappable subset requests (#205596)

DataExtractor::GetSubsetExtractorSP always returns a valid, non-null
extractor, and every caller relies on that: they dereference the result
directly rather than checking for null. The VirtualDataExtractor
override broke this contract. When the requested range had no backing in
the lookup table (e.g. the virtual offset fell in a gap, or the range
crossed an entry boundary) it returned an empty shared_ptr, turning each
caller's dereference into a null-pointer access.

It also asserted on those cases. But the offsets passed to a subset
request are derived from parsed file contents, which may be truncated or
inconsistent. A range that cannot be mapped is therefore ordinary input,
not a programming error, and must not abort an assertions-enabled build.

Return a valid but empty extractor instead. Reads see zero bytes and the
caller's existing size checks skip the data, matching the graceful
degradation the base class already provides for out-of-range offsets.

Assisted-by: Claude


  Commit: 003a7601914a5fd6ecb71d94161147cdeca59ff1
      https://github.com/llvm/llvm-project/commit/003a7601914a5fd6ecb71d94161147cdeca59ff1
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M clang/test/CodeGenOpenCL/amdgpu-sizeof-alignof.cl
    M clang/test/CodeGenOpenCL/func-call-dbg-loc.cl

  Log Message:
  -----------
  clang/AMDGPU: Remove gizcl triples from tests (#205811)

These are a leftover from a very old migration


  Commit: 03511907c7a9908f7902e18d3789371a63bb91b1
      https://github.com/llvm/llvm-project/commit/03511907c7a9908f7902e18d3789371a63bb91b1
  Author: Scott Linder <scott.linder at amd.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M llvm/docs/CommandGuide/index.md
    M llvm/docs/GettingInvolved.md
    M llvm/docs/GlobalISel/Pipeline.rst
    M llvm/docs/GlobalISel/Porting.rst
    M llvm/docs/GlobalISel/index.rst
    M llvm/docs/Reference.md
    M llvm/docs/UserGuides.md
    M llvm/docs/conf.py
    M llvm/docs/tutorial/MyFirstLanguageFrontend/index.rst
    M llvm/tools/llvm-debuginfo-analyzer/README.md
    A utils/docs/llvm_sphinx/ext/checks.py

  Log Message:
  -----------
  [docs] Enforce unambiguous toctree in llvm/docs (#203967)

It seems like using a non-`hidden` `toctree` for page navigation is a
bit of a trap, in that every doc must have a single unique path through
the global toctree to the root doc, and it is very easy to end up with
multiple.

This patch tries to address the warnings (actually infos, hence why it
does not fail the build) in llvm/docs/.

I tried to preserve the documents as-is, by hiding `toctree`s and
instead using lists of `{doc}` forms where the `toctree` was visible
before.

The only visual change in the resulting HTML is that the link is now
underlined where it wasn't before.

I also nested the `Tutorials` section in GISel Porting document, and
didn't link to it directly as the title is a bit ambiguous without the
context of the document it appears in.

I also saw warnings about a jump in heading level in
`llvm-debuginfo-analyzer/README.md` and assumed it was just a mistake,
so I collapsed the level-3 headings down to level-2.

Finally, I wrote a sphinx extension to make ambiguous toctree entries
into errors, so the docs do not regress. I hope to fix other sphinx
project in llvm-project and enable the checks for them too, assuming
this patch is accepted.

Change-Id: Icb11de69be1ea5489fba501aee4d767f5129e7e1


  Commit: 94c1a8bc3e6b790ccc5723803129b3b956f11d13
      https://github.com/llvm/llvm-project/commit/94c1a8bc3e6b790ccc5723803129b3b956f11d13
  Author: Tim Besard <tim.besard at gmail.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M llvm/lib/Target/NVPTX/CMakeLists.txt
    M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp
    M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.h
    M llvm/lib/Target/NVPTX/NVPTX.h
    A llvm/lib/Target/NVPTX/NVPTXAddressFolder.cpp
    M llvm/lib/Target/NVPTX/NVPTXInstrFormats.td
    M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
    M llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
    A llvm/test/CodeGen/NVPTX/address-folder.ll
    A llvm/test/CodeGen/NVPTX/address-folder.mir

  Log Message:
  -----------
  [NVPTX] Fold symbol addresses into memory operands (#202379)

SelectionDAG can fold a symbol address (a kernel parameter, global
variable, or external symbol) directly into a memory instruction's
address operand, but only within a single basic block. When the address
crosses a block boundary, ISel materializes it with `MOV_B{32,64}_sym`
and the memory instruction becomes register-relative:

```ptx
mov.b64       %rd1, kernel_param_0;
ld.param.b64  %rd2, [%rd1];
ld.param.b64  %rd3, [%rd1+8];
```

instead of:

```
ld.param.b64  %rd2, [kernel_param_0];
ld.param.b64  %rd3, [kernel_param_0+8];
```

This patch adds NVPTXAddressFolder, a pre-regalloc pass that looks for
loads and stores whose address operand is defined by `MOV_B{32,64}_sym`,
then folds the symbol back into the memory operand. The mov is erased
once it has no remaining uses; if the address also feeds arithmetic or
escapes, it is kept.

To make this generic over NVPTX memory instructions, the patch enables
named operand tables for NVPTX instructions and uses them to find `addr`
and `addsp` operands instead of hardcoding opcode-specific operand
indices.

This was motivated by a CUDA.jl performance regression where `byval`
kernel parameters stopped being pre-lowered into simple loads and
exposed the missing cross-block fold in the backend.

Disclaimer: LLMs (GPT 5.5, Opus 4.8) were used to develop this PR.

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply at anthropic.com>


  Commit: 30b88eb862b1fe9aa532ba4501455adb9f02de29
      https://github.com/llvm/llvm-project/commit/30b88eb862b1fe9aa532ba4501455adb9f02de29
  Author: Rahul Joshi <rjoshi at nvidia.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M llvm/include/llvm/IR/Intrinsics.td
    A llvm/test/Verifier/anyptr-bad.ll

  Log Message:
  -----------
  [LLVM][Intrinsics] Fix `llvm_anyptr_ty` to disallow vector of pointers (#205806)

`llvm_anyptr_ty` should only allow scalar pointer types and disallow
vector of pointers; fix the vector constraint for `llvm_anyptr_ty`
accordingly. This fixes a regression in `llvm_anyptr_ty` that was
introduced in https://github.com/llvm/llvm-project/pull/203506.

Added a unit test to verify that use of a vector of pointers for
`llvm_anyptr_ty` fails verification.


  Commit: bb620ab07ddac0dce15cece204b647197c8073d3
      https://github.com/llvm/llvm-project/commit/bb620ab07ddac0dce15cece204b647197c8073d3
  Author: Ingo Müller <ingomueller at google.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
    M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
    M mlir/test/Dialect/Vector/invalid.mlir

  Log Message:
  -----------
  Revert "[mlir][vector] add consistent stride verification to `masked load/store` and `gather/scatter` ops" (#205832)

Reverts llvm/llvm-project#204842. That PR breaks the following two
tests:

* `mlir/test/Integration/Dialect/SparseTensor/CPU/reshape_dot.mlir.test`
*
`mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_coo_test.mlir.test`


  Commit: 9dee94ab30f9804c55f9f2cca347aa2af94f332d
      https://github.com/llvm/llvm-project/commit/9dee94ab30f9804c55f9f2cca347aa2af94f332d
  Author: Igor Kirillov <igor.kirillov at arm.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp
    M llvm/test/CodeGen/AArch64/complex-deinterleaving-reassoc-duplicates.ll

  Log Message:
  -----------
  [ComplexDeinterleaving] Preserve duplicate reassoc addends in identifyReassocNodes (#205578)

Fixes #205197


  Commit: 4feb14a494df152be1f44f80e289ffa82357ed12
      https://github.com/llvm/llvm-project/commit/4feb14a494df152be1f44f80e289ffa82357ed12
  Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [Bazel] Fixes f36745e (#205837)

This fixes f36745eb0a07177743ccb039a77399846a873a40.

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>


  Commit: 76ddb39f1b18556b6de86c6cac0ebbb0ed6cb056
      https://github.com/llvm/llvm-project/commit/76ddb39f1b18556b6de86c6cac0ebbb0ed6cb056
  Author: khaki3 <47756807+khaki3 at users.noreply.github.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M flang/lib/Optimizer/OpenACC/Support/FIROpenACCTypeInterfaces.cpp
    M flang/test/Fir/OpenACC/openacc-mappable.fir

  Log Message:
  -----------
  [flang][acc] Avoid assert for assumed-size arrays without a descriptor (#205726)

Example:
```fortran
subroutine sub(a, n)
  real(8) :: a(n, *)
  integer :: n, i
  !$acc data no_create(a)
  !$acc parallel loop
  do i = 1, n
    a(1, i) = 0.0d0
  end do
  !$acc end data
end subroutine
```
An assumed-size dummy array (e.g. `real(8) :: a(n,*)`) has an unknown
trailing extent and is passed without a descriptor. When the OpenACC
implicit-data pass builds a data clause for such an array,
`generateSeqTyAccBounds` enters the unknown-shape branch but finds no
descriptor (`fir.box`) to recover bounds from, and hits:

assert(false && "array with unknown dimension expected to have
descriptor");

The premise is wrong: an assumed-size array legitimately has no
descriptor and no recoverable bounds.

Fix: return empty bounds instead of asserting. The caller only assigns
bounds when non-empty, so the array is mapped without bounds — the only
correct option when the extent is unknown, and sufficient for
presence-only clauses (`no_create`/`present`).


  Commit: e74b6bcafb575b1548052b00854916c27e9bd4c8
      https://github.com/llvm/llvm-project/commit/e74b6bcafb575b1548052b00854916c27e9bd4c8
  Author: khaki3 <47756807+khaki3 at users.noreply.github.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M mlir/lib/Dialect/OpenACC/Transforms/ACCSpecializeForHost.cpp
    A mlir/test/Dialect/OpenACC/acc-specialize-for-host-deep-nesting.mlir

  Log Message:
  -----------
  [mlir][acc] Run acc-specialize-for-host rewrite to convergence (#205727)

Example:
```fortran
!$acc routine worker
subroutine transform(p, n)
  real*8 p(*); integer n
  !$acc loop seq
  do i1 = 1, n
    !$acc loop seq
    do i2 = 1, n
      ! ... a dozen+ levels of nested acc loops ...
      !$acc loop vector
      do i = 1, n
        p(i) = p(i) + 1.0d0
      end do
    end do
  end do
end subroutine
```

In this code, the routine becomes a `func.func` with deeply nested
orphan `acc.loop` ops. `acc-specialize-for-host` lowers them (e.g.
`acc.loop` → `scf.for`) via `applyPatternsGreedily`, but leaves
`GreedyRewriteConfig::maxIterations` at its default of 10. Since inner
loops only become rewritable after their parents convert, a nest deeper
than 10 isn't at a fixed point when the cap is hit, so the driver
returns `failure()` and the pass calls `signalPassFailure()` — a
spurious, diagnostic-less failure even though the conversion was
progressing correctly.

Fix:
Run the rewrite to convergence instead of stopping at the default cap:
```cpp
config.setMaxIterations(GreedyRewriteConfig::kNoLimit);
```
The patterns are strictly reductive (ops are lowered/erased, never
regenerated), so this is safe. Adds a regression test with a 16-deep
orphan `acc.loop` nest.


  Commit: df49da3201a05f7a2ef78ad00cdcfebe09ae1308
      https://github.com/llvm/llvm-project/commit/df49da3201a05f7a2ef78ad00cdcfebe09ae1308
  Author: Abid Qadeer <haqadeer at amd.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M flang/lib/Semantics/openmp-utils.cpp
    M flang/test/Lower/OpenMP/metadirective-construct.f90

  Log Message:
  -----------
  [flang][OpenMP] Decompose combined construct selectors in variant matching (#205802)

The previous code resolved a `construct={...}` selector by mapping its
name to a trait through a string lookup
(`getOpenMPContextTraitSelectorKind` ->
`getOpenMPContextTraitPropertyForSelector`). That works for a standalone
leaf construct such as `parallel`, whose name matches a single construct
selector string, but not for a combined/composite directive such as
`target teams`: its name (`"target teams"`) matches no selector string,
so the lookup returns `invalid` and the selector's construct traits are
dropped.

This PR adds `AppendConstructTraitsForDirective` that walks the
directive sets and adds each leaf trait, so combined directives are no
longer reduced to a single (or dropped) trait. It also handles the
standalone `dispatch` construct trait.

Fixes https://github.com/llvm/llvm-project/issues/205664

Assisted-by: Cursor


  Commit: 0e847869ab8dde02815d82b67c7f0bb834653b51
      https://github.com/llvm/llvm-project/commit/0e847869ab8dde02815d82b67c7f0bb834653b51
  Author: adams381 <adams at nvidia.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenExprCXX.cpp
    A clang/test/CIR/CodeGen/new-array-init.cpp
    M clang/test/CIR/CodeGen/new.cpp
    M clang/test/CIR/CodeGen/paren-list-agg-init.cpp
    M clang/test/CIR/CodeGenCXX/new-array-init.cpp

  Log Message:
  -----------
  [CIR] Zero-init array-new with trivial ctor (#205611)

emitNewArrayInitializer hit errorNYI for a value-initialized array new of
a trivially-constructible element (new T[n]()), where the trailing
parentheses mean zero-initialization.  Route the trivial-ctor branch
through the existing tryMemsetInitialization() helper, following classic
CodeGen: a zero-initializable element gets operator new[] plus a single
memset to 0, while a non-zero-initializable element (an array of
pointers-to-data-member, whose null value is -1) declines the memset and
falls through to the constructor loop value-initializing each element.
Also add the getParent()->isEmpty() early return.  tryMemsetInitialization
builds the memset through the Address overload of createMemSet so the
destination alignment is preserved.

Found building the SPEC CPU 2026 LLVM benchmark (723.llvm_r / 823.llvm_s)
with ClangIR.


  Commit: d3c00bf7b08c3746c6e62c56d6142c333b0a8d25
      https://github.com/llvm/llvm-project/commit/d3c00bf7b08c3746c6e62c56d6142c333b0a8d25
  Author: David Zbarsky <dzbarsky at gmail.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
    M utils/bazel/llvm-project-overlay/llvm/driver.bzl

  Log Message:
  -----------
  Bazel driver-tools build-setting simplification (#205846)

Read the validated `driver-tools` build setting directly in
`generate_driver_tools_def` instead of reconstructing tool names from
selected `CcInfo` dependency labels through `label.name`.
`generate_driver_selects` now returns the selected dependency labels, so
`select_driver_tools` is removed.

This fixes a silent issue when 2 multicall participants have the same
`label.name`.


  Commit: fcc105f40c8ee7cd604c3dafb3750e8ee1db65b6
      https://github.com/llvm/llvm-project/commit/fcc105f40c8ee7cd604c3dafb3750e8ee1db65b6
  Author: Grigory Pastukhov <gpastukhov at meta.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M clang-tools-extra/clang-tidy/misc/ExplicitConstructorCheck.cpp
    M clang-tools-extra/clang-tidy/utils/TypeTraits.cpp
    M clang-tools-extra/clang-tidy/utils/TypeTraits.h
    M clang-tools-extra/unittests/clang-tidy/CMakeLists.txt
    A clang-tools-extra/unittests/clang-tidy/TypeTraitsTest.cpp

  Log Message:
  -----------
  [clang-tidy] Move isStdInitializerList to utils::type_traits and add unit tests (#205449)

Moves isStdInitializerList from misc/ExplicitConstructorCheck into
utils::type_traits so it can be shared, and adds unit tests for it. NFC.


  Commit: 78247bf69011b35f04e0905b3cea56eab7d7831c
      https://github.com/llvm/llvm-project/commit/78247bf69011b35f04e0905b3cea56eab7d7831c
  Author: Yonah Goldberg <ygoldberg at nvidia.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M llvm/lib/Transforms/Scalar/SROA.cpp
    M llvm/test/Transforms/SROA/struct-to-vector-fp-store-only-tail.ll
    M llvm/test/Transforms/SROA/struct-to-vector.ll

  Log Message:
  -----------
  [SROA] Adjust struct layout requirements for struct to vector canonicalization (#201967)

Address a bug pointed out by @bjope (thank you!)

- To perform struct to vector canonicalization, it is not enough that
the struct layout size is the same as the vector layout size, because
structs and vectors may have padding in different locations! Previously
we would promote `{ i5, i5 }` as `<i5, i5>`, which is a miscompile!

- I also relaxed another requirement. Previously we made sure that the
struct layout size is equal to the vector allocation size. This
prevented promoting `{ i32, i32, i32 }` as `<i32, i32, i32>` because the
struct layout size is 3 x i32 but the vector allocation size is 4 x i32.
So instead we should compare to the vector store size, which is 3 x i32.


  Commit: d4148a8476dfb63291ca3c63bc92a3bd8a19b773
      https://github.com/llvm/llvm-project/commit/d4148a8476dfb63291ca3c63bc92a3bd8a19b773
  Author: hulxv <hulxxv at gmail.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    A libc/docs/dev/builtin_compatibility.rst
    M libc/docs/dev/index.rst

  Log Message:
  -----------
  [libc][docs] add `builtin_compatibility` (#200539)

Document the built-in compatibility for different GCC versions since
GCC-5


  Commit: 4f638ff7baf97dd16abff7fc961d76c22063dc1f
      https://github.com/llvm/llvm-project/commit/4f638ff7baf97dd16abff7fc961d76c22063dc1f
  Author: khaki3 <47756807+khaki3 at users.noreply.github.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M mlir/lib/Dialect/OpenACC/Transforms/ACCSpecializeForHost.cpp
    M mlir/test/Dialect/OpenACC/acc-if-clause-lowering.mlir

  Log Message:
  -----------
  [mlir][acc] Drop redundant `acc.terminator` erase that broke atomic capture under `if` (#205731)

Example:
```fortran
!$acc parallel if(cond)
!$acc atomic capture
  a = a + 1
  b = a
!$acc end atomic
!$acc end parallel
```

In this code, the `if` clause triggers host-fallback specialization. A
blanket `acc.terminator` erase pattern strips the implicit terminator of
the still-present `acc.atomic.capture`, so the later `getTerminator()`
trips `mightHaveTerminator()`.

Fix: remove that pattern — every ACC region op already erases its own
terminator when it unwraps/inlines, so it was redundant (and only raced
ahead to break this case). Adds a lit test.


  Commit: 04450c8cd86e7bbfab42cbeb919d31d8668366a8
      https://github.com/llvm/llvm-project/commit/04450c8cd86e7bbfab42cbeb919d31d8668366a8
  Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVCLOps.td
    M mlir/test/Dialect/SPIRV/IR/ocl-ops.mlir
    M mlir/test/Target/SPIRV/ocl-ops.mlir

  Log Message:
  -----------
  [mlir][SPIR-V] Add CL copysign, fdim, fmod and hypot ops (#203880)


  Commit: d0373ba8b57bb2355cfed09ad4c15c315a36af8c
      https://github.com/llvm/llvm-project/commit/d0373ba8b57bb2355cfed09ad4c15c315a36af8c
  Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVGLOps.td
    M mlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
    M mlir/test/Dialect/SPIRV/IR/gl-ops.mlir
    M mlir/test/Target/SPIRV/gl-ops.mlir

  Log Message:
  -----------
  [mlir][SPIR-V] Add GL NMin, NMax and NClamp ops (#203878)


  Commit: 4c203981fc40698bca926c9b41c98574648d537f
      https://github.com/llvm/llvm-project/commit/4c203981fc40698bca926c9b41c98574648d537f
  Author: hanbeom <kese111 at gmail.com>
  Date:   2026-06-26 (Fri, 26 Jun 2026)

  Changed paths:
    A llvm/test/Transforms/SLPVectorizer/WebAssembly/or-reduction-zero-test.ll
    A llvm/test/Transforms/SLPVectorizer/X86/reduction-zero-test-ctpop.ll

  Log Message:
  -----------
  [SLP] Add pre-commit tests for zero-tested OR/UMax reductions (NFC) (#205738)

Add pre-commit tests for scalar OR/UMax reductions whose result is
only used by an eq/ne-zero comparison.


  Commit: 6d6475328be051b35b22c5e72a0c4aa72c3815c4
      https://github.com/llvm/llvm-project/commit/6d6475328be051b35b22c5e72a0c4aa72c3815c4
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M clang/lib/AST/ByteCode/Compiler.cpp
    M clang/lib/AST/ByteCode/EvalEmitter.cpp
    M clang/lib/AST/ByteCode/Interp.h
    M clang/test/SemaCXX/constant-expression-p2280r4.cpp

  Log Message:
  -----------
  [clang][bytecode] Don't ignore discarded `DeclRefExpr`s (#204165)

Check for the evaluating decl in `GetRefGlobal` so we don't fail too
early. We also need to mark the `APValue` as constexpr-unknown when
returning it, even though the backing `Descriptor` is not marked
constexpr-unknown.



This fixes the last differences in `constant-expression-p2280r4.cpp`.


  Commit: cf223eb1ec5fd5430a110bbd9f3fc18b46796fa0
      https://github.com/llvm/llvm-project/commit/cf223eb1ec5fd5430a110bbd9f3fc18b46796fa0
  Author: Moazin K. <mkhatti at nvidia.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/OpenACC/Transforms/Passes.td
    A mlir/lib/Dialect/OpenACC/Transforms/ACCEmitRemarksPrivate.cpp
    M mlir/lib/Dialect/OpenACC/Transforms/CMakeLists.txt
    A mlir/test/Dialect/OpenACC/acc-emit-remarks-private.mlir

  Log Message:
  -----------
  [OpenACC] Add pass `ACCEmitRemarksPrivate`. (#205824)

The pass emits remarks describing `acc.firstprivate` and `acc.private`
associated with OpenACC compute and loop constructs.

Assisted-by: Claude Code


  Commit: 5e85dbcde1d4ca6088132de09a3a95ca99caad17
      https://github.com/llvm/llvm-project/commit/5e85dbcde1d4ca6088132de09a3a95ca99caad17
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2026-06-25 (Thu, 25 Jun 2026)

  Changed paths:
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
    A lldb/test/Shell/SymbolFile/DWARF/wasm-function-display-name.yaml

  Log Message:
  -----------
  [lldb] Use the source name when the linkage name is not mangled (#205701)

When a DW_TAG_subprogram has a DW_AT_linkage_name that is not actually a
mangled name and differs from DW_AT_name, lldb used the linkage name as
the function's display name. For C++ the linkage name demangles back to
the source name, but a plain symbol such as __main_argc_argv does not,
so the function showed up under its raw linkage name in backtraces,
breakpoint locations and `image lookup`, and was not findable by its
source name.

This happens on WebAssembly: wasi-libc renames `int main(int, char**)`
to its __main_argc_argv argv-passing wrapper, keeping DW_AT_name "main"
but recording DW_AT_linkage_name "__main_argc_argv".

When the linkage name has no recognized mangling scheme, use DW_AT_name
as the display name and keep the linkage name as the symbol, so lookups
by either name still resolve.


  Commit: 57716361f7d50d962305153c83e6c0aa1b984a1b
      https://github.com/llvm/llvm-project/commit/57716361f7d50d962305153c83e6c0aa1b984a1b
  Author: Connector Switch <c8ef at outlook.com>
  Date:   2026-06-26 (Fri, 26 Jun 2026)

  Changed paths:
    M clang-tools-extra/clang-tidy/misc/ExplicitConstructorCheck.cpp
    M clang-tools-extra/clang-tidy/utils/TypeTraits.cpp
    M clang-tools-extra/clang-tidy/utils/TypeTraits.h
    M clang-tools-extra/unittests/clang-tidy/CMakeLists.txt
    A clang-tools-extra/unittests/clang-tidy/TypeTraitsTest.cpp
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Analysis/Analyses/LifetimeSafety/Checker.h
    M clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeSafety.h
    M clang/include/clang/Basic/AttrDocs.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/AST/ByteCode/Compiler.cpp
    M clang/lib/AST/ByteCode/Context.cpp
    M clang/lib/AST/ByteCode/EvalEmitter.cpp
    M clang/lib/AST/ByteCode/Interp.cpp
    M clang/lib/AST/ByteCode/Interp.h
    M clang/lib/AST/ByteCode/InterpFrame.cpp
    M clang/lib/AST/ByteCode/InterpState.h
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/Analysis/FlowSensitive/WatchedLiteralsSolver.cpp
    M clang/lib/Analysis/LifetimeSafety/Checker.cpp
    M clang/lib/Analysis/LifetimeSafety/LifetimeSafety.cpp
    M clang/lib/CIR/CodeGen/CIRGenExprCXX.cpp
    M clang/lib/CIR/CodeGen/CIRGenFunction.h
    M clang/lib/CIR/CodeGen/CIRGenOpenMPClause.cpp
    A clang/lib/CIR/CodeGen/CIRGenOpenMPClause.h
    M clang/lib/CIR/CodeGen/CIRGenStmt.cpp
    M clang/lib/CIR/CodeGen/CIRGenStmtOpenMP.cpp
    M clang/lib/Headers/__clang_hip_libdevice_declares.h
    M clang/lib/Sema/AnalysisBasedWarnings.cpp
    M clang/lib/Sema/SemaLifetimeSafety.h
    M clang/lib/Sema/SemaType.cpp
    M clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
    A clang/test/AST/ByteCode/evaluate-dtor.cpp
    A clang/test/CIR/CodeGen/new-array-init.cpp
    M clang/test/CIR/CodeGen/new.cpp
    M clang/test/CIR/CodeGen/paren-list-agg-init.cpp
    M clang/test/CIR/CodeGenCXX/new-array-init.cpp
    M clang/test/CIR/CodeGenOpenMP/not-yet-implemented.c
    A clang/test/CIR/CodeGenOpenMP/target-map-llvm-device.c
    A clang/test/CIR/CodeGenOpenMP/target-map-llvm-host.c
    A clang/test/CIR/CodeGenOpenMP/target-map.c
    M clang/test/CXX/expr/expr.const/p6-2a.cpp
    M clang/test/CodeGenCXX/const-init-cxx2a.cpp
    M clang/test/CodeGenCXX/non-const-init-cxx2a.cpp
    M clang/test/CodeGenOpenCL/address-spaces-conversions.cl
    M clang/test/CodeGenOpenCL/address-spaces.cl
    M clang/test/CodeGenOpenCL/amdgpu-sizeof-alignof.cl
    M clang/test/CodeGenOpenCL/func-call-dbg-loc.cl
    M clang/test/CodeGenSYCL/address-space-conversions.cpp
    M clang/test/CodeGenSYCL/amd-address-space-conversions.cpp
    M clang/test/CodeGenSYCL/cuda-address-space-conversions.cpp
    M clang/test/Sema/LifetimeSafety/safety.cpp
    M clang/test/SemaCXX/constant-expression-p2280r4.cpp
    M clang/test/SemaOpenCL/usm-address-spaces-conversions.cl
    M clang/test/SemaSYCL/address-space-conversions.cpp
    M compiler-rt/lib/tysan/tysan.cpp
    M compiler-rt/lib/tysan/tysan_interceptors.cpp
    M compiler-rt/test/tysan/global.c
    A compiler-rt/test/tysan/memcpy_doesnt_change_shadow.c
    M flang-rt/lib/runtime/CMakeLists.txt
    M flang-rt/lib/runtime/__fortran_type_info.f90
    M flang-rt/lib/runtime/cooperative_groups.f90
    M flang-rt/lib/runtime/cudadevice.f90
    M flang/lib/Optimizer/OpenACC/Support/FIROpenACCTypeInterfaces.cpp
    M flang/lib/Semantics/openmp-utils.cpp
    M flang/test/Fir/OpenACC/openacc-mappable.fir
    M flang/test/Lower/OpenMP/metadirective-construct.f90
    M libc/config/baremetal/aarch64/entrypoints.txt
    M libc/config/baremetal/arm/entrypoints.txt
    M libc/config/baremetal/riscv/entrypoints.txt
    M libc/config/darwin/aarch64/entrypoints.txt
    M libc/config/darwin/x86_64/entrypoints.txt
    M libc/config/freebsd/x86_64/entrypoints.txt
    M libc/config/gpu/amdgpu/entrypoints.txt
    M libc/config/gpu/nvptx/entrypoints.txt
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/aarch64/headers.txt
    M libc/config/linux/arm/entrypoints.txt
    M libc/config/linux/arm/headers.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/riscv/headers.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/config/linux/x86_64/headers.txt
    M libc/config/windows/entrypoints.txt
    A libc/docs/dev/builtin_compatibility.rst
    M libc/docs/dev/index.rst
    M libc/docs/headers/math/index.rst
    M libc/include/stdlib.yaml
    M libc/shared/math.h
    A libc/shared/math/tanbf16.h
    M libc/src/CMakeLists.txt
    M libc/src/__support/math/CMakeLists.txt
    A libc/src/__support/math/tanbf16.h
    M libc/src/math/CMakeLists.txt
    M libc/src/math/generic/CMakeLists.txt
    A libc/src/math/generic/tanbf16.cpp
    A libc/src/math/tanbf16.h
    M libc/src/stdlib/CMakeLists.txt
    M libc/src/stdlib/environ_internal.cpp
    M libc/src/stdlib/environ_internal.h
    M libc/src/stdlib/linux/CMakeLists.txt
    A libc/src/stdlib/linux/unsetenv.cpp
    A libc/src/stdlib/unsetenv.h
    M libc/test/integration/src/stdlib/CMakeLists.txt
    A libc/test/integration/src/stdlib/unsetenv_test.cpp
    M libc/test/shared/CMakeLists.txt
    M libc/test/shared/shared_math_test.cpp
    M libc/test/src/math/CMakeLists.txt
    M libc/test/src/math/smoke/CMakeLists.txt
    A libc/test/src/math/smoke/tanbf16_test.cpp
    A libc/test/src/math/tanbf16_test.cpp
    M libcxx/include/__algorithm/simd_utils.h
    M libcxx/include/__locale_dir/num.h
    M libcxx/include/__memory/shared_ptr.h
    M libsycl/docs/index.rst
    M libsycl/include/sycl/__impl/index_space_classes.hpp
    A libsycl/test/basic/index_space_classes.cpp
    A libsycl/test/basic/index_space_classes_negative.cpp
    M lldb/examples/python/templates/scripted_process.py
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
    M lldb/source/Utility/VirtualDataExtractor.cpp
    A lldb/test/Shell/SymbolFile/DWARF/wasm-function-display-name.yaml
    M lldb/unittests/Utility/VirtualDataExtractorTest.cpp
    M llvm/docs/CommandGuide/index.md
    M llvm/docs/GettingInvolved.md
    M llvm/docs/GlobalISel/Pipeline.rst
    M llvm/docs/GlobalISel/Porting.rst
    M llvm/docs/GlobalISel/index.rst
    M llvm/docs/Reference.md
    M llvm/docs/UserGuides.md
    M llvm/docs/conf.py
    M llvm/docs/tutorial/MyFirstLanguageFrontend/index.rst
    M llvm/include/llvm/IR/InstrTypes.h
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/include/llvm/IR/PatternMatch.h
    M llvm/include/llvm/Transforms/Scalar/NaryReassociate.h
    M llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64SchedA510.td
    M llvm/lib/Target/NVPTX/CMakeLists.txt
    M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp
    M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.h
    M llvm/lib/Target/NVPTX/NVPTX.h
    A llvm/lib/Target/NVPTX/NVPTXAddressFolder.cpp
    M llvm/lib/Target/NVPTX/NVPTXInstrFormats.td
    M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
    M llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/lib/Transforms/Scalar/NaryReassociate.cpp
    M llvm/lib/Transforms/Scalar/SROA.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
    M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
    A llvm/test/CodeGen/AArch64/complex-deinterleaving-reassoc-duplicates.ll
    A llvm/test/CodeGen/AArch64/sve2-fixed-length-sra-flag.ll
    A llvm/test/CodeGen/AArch64/sve2-fixed-length-sra.ll
    M llvm/test/CodeGen/AArch64/zext-to-tbl.ll
    A llvm/test/CodeGen/NVPTX/address-folder.ll
    A llvm/test/CodeGen/NVPTX/address-folder.mir
    M llvm/test/CodeGen/RISCV/rv32p.ll
    M llvm/test/CodeGen/X86/vec_minmax_match.ll
    M llvm/test/Transforms/InstCombine/assume-loop-align.ll
    M llvm/test/Transforms/InstCombine/assume.ll
    M llvm/test/Transforms/InstSimplify/maxmin.ll
    M llvm/test/Transforms/LoopInterchange/reductions-non-wrapped-operations.ll
    M llvm/test/Transforms/LoopUnroll/runtime-unroll-reductions-min-max.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/pr33053.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/scalable-reductions.ll
    M llvm/test/Transforms/LoopVectorize/ARM/mve-reduction-predselect.ll
    M llvm/test/Transforms/LoopVectorize/ARM/mve-reduction-types.ll
    M llvm/test/Transforms/LoopVectorize/ARM/tail-fold-multiple-icmps.ll
    M llvm/test/Transforms/LoopVectorize/ARM/tail-folding-not-allowed.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/inloop-reduction.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/reductions.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-inloop-reduction.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-reduction.ll
    M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-reductions-tail-folded.ll
    M llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-reductions.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
    M llvm/test/Transforms/LoopVectorize/minmax-extra-outside-users.ll
    M llvm/test/Transforms/LoopVectorize/minmax_reduction.ll
    M llvm/test/Transforms/LoopVectorize/reduction-inloop-min-max.ll
    M llvm/test/Transforms/LoopVectorize/reduction-inloop-pred.ll
    M llvm/test/Transforms/LoopVectorize/reduction-predselect.ll
    M llvm/test/Transforms/LoopVectorize/runtime-checks-hoist.ll
    M llvm/test/Transforms/LoopVectorize/scalable-first-order-recurrence.ll
    M llvm/test/Transforms/LoopVectorize/select-reduction.ll
    M llvm/test/Transforms/LowerSwitch/do-not-handle-impossible-values.ll
    A llvm/test/Transforms/NaryReassociate/nary-gep-zero-sized-element.ll
    M llvm/test/Transforms/NaryReassociate/nary-req.ll
    M llvm/test/Transforms/NaryReassociate/nary-smax.ll
    M llvm/test/Transforms/NaryReassociate/nary-smin.ll
    M llvm/test/Transforms/NaryReassociate/nary-umax.ll
    M llvm/test/Transforms/NaryReassociate/nary-umin.ll
    M llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/horizontal-store.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/reduction.ll
    A llvm/test/Transforms/SLPVectorizer/WebAssembly/or-reduction-zero-test.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extractelement-single-use-many-nodes.ll
    M llvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
    A llvm/test/Transforms/SLPVectorizer/X86/reduction-zero-test-ctpop.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reduction.ll
    M llvm/test/Transforms/SLPVectorizer/X86/undef_vect.ll
    M llvm/test/Transforms/SLPVectorizer/X86/used-reduced-op.ll
    M llvm/test/Transforms/SROA/struct-to-vector-fp-store-only-tail.ll
    M llvm/test/Transforms/SROA/struct-to-vector.ll
    A llvm/test/Verifier/anyptr-bad.ll
    M llvm/test/tools/llvm-mca/AArch64/Cortex/A510-neon-instructions.s
    M llvm/test/tools/llvm-mca/AArch64/Cortex/A510-writeback.s
    M llvm/tools/llvm-debuginfo-analyzer/README.md
    M mlir/include/mlir/Dialect/OpenACC/Transforms/Passes.td
    M mlir/include/mlir/Dialect/OpenMP/OpenMPDialect.h
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVCLOps.td
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVGLOps.td
    A mlir/lib/Dialect/OpenACC/Transforms/ACCEmitRemarksPrivate.cpp
    M mlir/lib/Dialect/OpenACC/Transforms/ACCSpecializeForHost.cpp
    M mlir/lib/Dialect/OpenACC/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
    A mlir/test/Dialect/OpenACC/acc-emit-remarks-private.mlir
    M mlir/test/Dialect/OpenACC/acc-if-clause-lowering.mlir
    A mlir/test/Dialect/OpenACC/acc-specialize-for-host-deep-nesting.mlir
    M mlir/test/Dialect/SPIRV/IR/gl-ops.mlir
    M mlir/test/Dialect/SPIRV/IR/ocl-ops.mlir
    M mlir/test/Target/SPIRV/gl-ops.mlir
    M mlir/test/Target/SPIRV/ocl-ops.mlir
    M offload/test/offloading/fortran/target-no-loop.f90
    M openmp/module/CMakeLists.txt
    M openmp/module/omp_lib.F90.var
    M runtimes/cmake/config-Fortran.cmake
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
    M utils/bazel/llvm-project-overlay/llvm/driver.bzl
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
    A utils/docs/llvm_sphinx/ext/checks.py

  Log Message:
  -----------
  Merge branch 'main' into users/c8ef/atomic_minmax


Compare: https://github.com/llvm/llvm-project/compare/d3bb0ca5badb...57716361f7d5

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list