LLVM/project ce9aabeclang/lib/ScalableStaticAnalysis/Analyses/OperatorNewDelete OperatorNewDeletePointers.cpp OperatorNewDeletePointersExtractor.cpp, clang/test/Analysis/Scalable/OperatorNewDelete operator-new-delete.cpp

[SSAF][WPA] Operator new/delete overload entities that shall retain their types

A follow-up change to #206600.  This commit adds the WPA
implementation for those operator new/delete overload entities that
shall retain their types.  This WPA result will later be used to
filter unsafe buffer analysis results.

rdar://179151541
DeltaFile
+259-0clang/lib/ScalableStaticAnalysis/Analyses/OperatorNewDelete/OperatorNewDeletePointers.cpp
+0-118clang/lib/ScalableStaticAnalysis/Analyses/OperatorNewDelete/OperatorNewDeletePointersExtractor.cpp
+71-0clang/test/Analysis/Scalable/OperatorNewDelete/Inputs/tu-summary.json
+58-0clang/test/Analysis/Scalable/OperatorNewDelete/operator-new-delete.cpp
+40-0clang/test/Analysis/Scalable/OperatorNewDelete/Inputs/tu-summary-bad-id.json
+38-0clang/test/Analysis/Scalable/OperatorNewDelete/Inputs/tu-summary-no-key.json
+466-1188 files not shown
+569-12014 files

LLVM/project f8e1856flang/lib/Optimizer/Transforms/CUDA CUFAllocDelay.cpp, flang/test/Transforms/CUF cuf-alloc-delay.fir

[flang][cuda] Switch CUFAllocDelay to operate on fir.declare (#208334)

CUFAllocDelay previously matched hlfir.declare, requiring it to run
before HLFIR-to-FIR lowering. Match fir.declare instead so the pass can
be scheduled with the other CUF preparation passes (which also operate
on fir.declare), before cuf.alloc is lowered. The delay logic is
unchanged.
DeltaFile
+62-62flang/test/Transforms/CUF/cuf-alloc-delay.fir
+6-6flang/lib/Optimizer/Transforms/CUDA/CUFAllocDelay.cpp
+68-682 files

LLVM/project 0842f3cllvm/test/Transforms/ConstraintElimination induction-condition-in-loop-exit.ll constraint-overflow.ll

[ConstraintEli] Add more tests with latch guarded loops+overflows (NFC) (#208328)

Add additional tests with latch controlled loops and cases where we
currently bail out due to constraint-system overflows.
DeltaFile
+272-0llvm/test/Transforms/ConstraintElimination/induction-condition-in-loop-exit.ll
+32-0llvm/test/Transforms/ConstraintElimination/constraint-overflow.ll
+304-02 files

LLVM/project 6627c8fclang/test/SemaCXX deduced-return-type-cxx14.cpp

[clang] add triple to `test/SemaCXX/deduced-return-type-cxx14.cpp`

Fixes issue reported here: https://github.com/llvm/llvm-project/pull/208285#issuecomment-4919717057

Since that test file now uses the `cdecl` attribute, which is not supported
in some targets, pin that test to x86_64 triple.
DeltaFile
+6-6clang/test/SemaCXX/deduced-return-type-cxx14.cpp
+6-61 files

LLVM/project 7526131utils/bazel/llvm-project-overlay/clang BUILD.bazel

[bazel] Add missing deps from 1321b17
DeltaFile
+5-1utils/bazel/llvm-project-overlay/clang/BUILD.bazel
+5-11 files

LLVM/project 3b0e6e4clang/test/CodeGen/AArch64 elf-pauthabi.c

Add missing test case of version = 0
DeltaFile
+6-0clang/test/CodeGen/AArch64/elf-pauthabi.c
+6-01 files

LLVM/project bc97c56llvm/include/llvm/IR IntrinsicsDirectX.td, llvm/lib/Target/DirectX DXILIntrinsicExpansion.cpp DXIL.td

[DirectX] Expand {u,s}mul.with.overflow in DXILIntrinsicExpansion (#207297)

DXIL has no op for the llvm.{u,s}mul.with.overflow intrinsics. These can
be emulated by performing the full multiply using double-width values
and then checking the high-part of the result. However, this should be
avoided for 32-bit values since we don't want to make the shader start
using 64-bit values if it wasn't before. In this case we can use the
UMul and IMul DXIL operations that return the result as separate low &
high values.

Wider (64-bit) multiplies, which can't widen further, compute the high
half with same-width arithmetic instead.

Fixes #207090

---------

Co-authored-by: Copilot <223556219+Copilot at users.noreply.github.com>
Co-authored-by: Farzon Lotfi <farzonl at gmail.com>
DeltaFile
+100-0llvm/lib/Target/DirectX/DXILIntrinsicExpansion.cpp
+87-0llvm/test/CodeGen/DirectX/overflow_intrinsics.ll
+57-0llvm/test/CodeGen/DirectX/imul_umul.ll
+23-0llvm/lib/Target/DirectX/DXIL.td
+9-0llvm/lib/Target/DirectX/DXILOpBuilder.cpp
+4-0llvm/include/llvm/IR/IntrinsicsDirectX.td
+280-06 files

LLVM/project 1321b17utils/bazel/llvm-project-overlay/clang BUILD.bazel, utils/bazel/llvm-project-overlay/clang/unittests BUILD.bazel

[bazel] Port 01846f68e5 (#208325)

Assisted-by: Gemini
DeltaFile
+16-0utils/bazel/llvm-project-overlay/clang/BUILD.bazel
+1-0utils/bazel/llvm-project-overlay/clang/unittests/BUILD.bazel
+17-02 files

LLVM/project 8975a68llvm/test/CodeGen/AArch64 arm64-tls-dynamics.ll tiny-model-static.ll

Do not clutter tests with split-file logic
DeltaFile
+0-14llvm/test/CodeGen/AArch64/arm64-tls-dynamics.ll
+0-10llvm/test/CodeGen/AArch64/tiny-model-static.ll
+0-10llvm/test/CodeGen/AArch64/extern-weak.ll
+0-10llvm/test/CodeGen/AArch64/tiny-model-pic.ll
+0-9llvm/test/CodeGen/AArch64/tagged-globals-pic.ll
+0-8llvm/test/CodeGen/AArch64/got-abuse.ll
+0-612 files not shown
+0-758 files

LLVM/project 6c428aaclang/include/clang/Basic AttrDocs.td

[clang][docs] Fix coro_await_elidable bullet list rendering

Add the blank line required before the reStructuredText bullet list and indent the continuation line for the second item. Without this, the generated AttributeReference page does not render the coro_await_elidable safe-elide-context bullets correctly.
DeltaFile
+2-1clang/include/clang/Basic/AttrDocs.td
+2-11 files

LLVM/project c2f5040clang/include/clang/AST DeclFriend.h, clang/lib/AST ASTImporter.cpp

Revert "[Clang] support friend declarations with a dependent nested-name-specifier" (#208302)

Reverts llvm/llvm-project#191268

---

Revert dependent friend support due to a crash in access checking
https://github.com/llvm/llvm-project/issues/208290
DeltaFile
+105-658clang/lib/Sema/SemaAccess.cpp
+10-257clang/test/CXX/temp/temp.decls/temp.friend/p5.cpp
+90-131clang/lib/Sema/SemaDeclCXX.cpp
+62-141clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+101-24clang/include/clang/AST/DeclFriend.h
+18-92clang/lib/AST/ASTImporter.cpp
+386-1,30335 files not shown
+596-1,82641 files

LLVM/project 9f709fbmlir/lib/Dialect/OpenACC/Transforms ACCSpecializeForHost.cpp, mlir/test/Dialect/OpenACC acc-specialize-for-host-fallback.mlir

[flang][OpenACC] Fix host fallback for acc.atomic.update (#207597)

The host fallback for `acc.atomic.update` only processed the first
operation in the region and used its result for the store, ignoring the
remaining operations and the `acc.yield` terminator. This generated
invalid IR when the region contained multiple operations.

1.Fix this by cloning all operations in the region and using the operand
of `acc.yield` as the final result to store.
2.Add tests for atomic read, write, update, and capture operations to
cover the host fallback path.

---------

Co-authored-by: ES3Q <ES3Q at QQ.COM>
DeltaFile
+70-0mlir/test/Dialect/OpenACC/acc-specialize-for-host-fallback.mlir
+7-3mlir/lib/Dialect/OpenACC/Transforms/ACCSpecializeForHost.cpp
+77-32 files

LLVM/project 5c93fcellvm/lib/Transforms/Vectorize VPlanUtils.cpp VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize/VPlan vplan-printing-reductions-tail-folded.ll vplan-sink-scalars-and-merge.ll

[VPlan] Model initial header mask as region value. (#196199)

Introduce a new VPRegionValue for the header mask, managed by loop
regions similar to the canonical IV.

The main benefit is we do not need to materialize the mask early and it
is trivial to find (no more need for patterns hard-coded in findHeaderMask).

It is currently materialized before computing costs, as we compute costs
for part of it currently.

PR: https://github.com/llvm/llvm-project/pull/196199
DeltaFile
+137-137llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-reductions-tail-folded.ll
+83-83llvm/test/Transforms/LoopVectorize/VPlan/vplan-sink-scalars-and-merge.ll
+47-55llvm/test/Transforms/LoopVectorize/VPlan/tail-folding.ll
+6-93llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
+49-49llvm/test/Transforms/LoopVectorize/VPlan/first-order-recurrence-sink-replicate-region.ll
+46-42llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+368-45948 files not shown
+621-68254 files

LLVM/project 90bf6bfclang/docs OpenMPSupport.md PointerAuthentication.md

[docs] Finish MyST migration for selected docs
DeltaFile
+83-3clang/docs/OpenMPSupport.md
+23-23clang/docs/PointerAuthentication.md
+27-11clang/docs/UsersManual.md
+10-15clang/docs/MisExpect.md
+10-2clang/docs/OpenCLSupport.md
+3-6clang/docs/Modules.md
+156-6011 files not shown
+174-8817 files

LLVM/project d09d245mlir/include/mlir/Dialect/OpenACC/Transforms Passes.h Passes.td, mlir/lib/Dialect/OpenACC/Transforms ACCSpecializeForDevice.cpp

[acc] Specialize acc.on_device with constant arg for device (#208099)

Fold known result acc.on_device to a constant in device-side code.
DeltaFile
+72-1mlir/test/Dialect/OpenACC/acc-specialize-for-device.mlir
+38-2mlir/lib/Dialect/OpenACC/Transforms/ACCSpecializeForDevice.cpp
+8-1mlir/include/mlir/Dialect/OpenACC/Transforms/Passes.h
+5-0mlir/include/mlir/Dialect/OpenACC/Transforms/Passes.td
+123-44 files

LLVM/project 2a0213fclang/docs UsersManual.md StandardCPlusPlusModules.md

[docs] Convert selected rst docs with rst2myst
DeltaFile
+2,637-2,453clang/docs/UsersManual.md
+1,466-1,537clang/docs/StandardCPlusPlusModules.md
+579-713clang/docs/PointerAuthentication.md
+482-521clang/docs/HIPSupport.md
+550-444clang/docs/Modules.md
+231-612clang/docs/OpenMPSupport.md
+5,945-6,28014 files not shown
+7,534-8,03520 files

LLVM/project fd00ac7clang/docs UsersManual.rst UsersManual.md

[docs] Rename selected Clang docs to Markdown
DeltaFile
+0-6,268clang/docs/UsersManual.rst
+6,268-0clang/docs/UsersManual.md
+2,512-0clang/docs/StandardCPlusPlusModules.md
+0-2,512clang/docs/StandardCPlusPlusModules.rst
+1,749-0clang/docs/PointerAuthentication.md
+0-1,749clang/docs/PointerAuthentication.rst
+10,529-10,52938 files not shown
+17,214-17,21544 files

LLVM/project 42316e8utils/bazel/llvm-project-overlay/clang BUILD.bazel, utils/bazel/llvm-project-overlay/clang/unittests BUILD.bazel

[bazel] Port 01846f68e5
DeltaFile
+16-0utils/bazel/llvm-project-overlay/clang/BUILD.bazel
+1-0utils/bazel/llvm-project-overlay/clang/unittests/BUILD.bazel
+17-02 files

LLVM/project 470e52cllvm/lib/Target/PowerPC PPCFrameLowering.cpp

[PowerPC] Use INT64_MAX instead of LONG_MAX. (#208249)

The value of LONG_MAX is dependent on the host environment used to build
the compiler. For example, X86-64 Windows has a different value than
X86-64 Linux. Using LONG_MAX would give inconsistent results when cross
compiling.
DeltaFile
+2-2llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
+2-21 files

LLVM/project 69e2ec6utils/docs/llvm_sphinx __init__.py

[docs] Enable colon_fence myst extension, fix admonitions (#208322)

The colon_fence myst extension enables triple-colon fences for
admonitions, as in:

:::{note}
**Regular** _markdown_ text, not code.
:::

Using triple colon fences for admonition blocks helps markdown editors
treat the body as markdown text, rather than fixed-width code with a
syntax highlight.

This change fixes a live doc bug in MyFirstTypoFix.md, which uses this
admonition style:
https://llvm.org/docs/MyFirstTypoFix.html

Currently ":::{note} The code changes presented" leaks through in the
HTML, and this one line change fixes it.
DeltaFile
+1-1utils/docs/llvm_sphinx/__init__.py
+1-11 files

LLVM/project 0bd936ebolt/include/bolt/Core BinaryFunction.h, bolt/lib/Core BinaryFunction.cpp

[BOLT] Register PIE indirect goto relocations (#206819)

PIE binaries use R_*_RELATIVE dynamic relocations for indirect goto jump
tables. BOLT creates entry points for their targets but does not mark
these addresses as targets from data relocations, so indirect jumps with
unknown control flow (which originates from indirect goto) have no CFG
successors and are interpreted as potential tail calls, while the jump
targets are incorrectly identified as additional entry points.

Add these offsets to the function's list of non-entry relocation
references instead of marking them as entry points. Extend relocation
rewriting to also check whether a block is externally referenced. This
mirrors behavior of data-to-code relocations in non-pie binaries.
DeltaFile
+16-7bolt/lib/Rewrite/RewriteInstance.cpp
+9-10bolt/test/AArch64/computed-goto.s
+8-6bolt/test/indirect-goto-relocs.test
+6-0bolt/include/bolt/Core/BinaryFunction.h
+6-0bolt/test/X86/indirect-goto.test
+5-1bolt/lib/Core/BinaryFunction.cpp
+50-246 files

LLVM/project 790fbc8mlir/include/mlir/Dialect/OpenACC OpenACCOps.td, mlir/test/Dialect/OpenACC ops.mlir

[mlir][acc] Add acc.on_device op (#208096)

Add an operation to represent the runtime call to acc_on_device.

This runtime call is important to fold early in the compilation pipeline
and having an operation allows us to easily recognize it when emitted by
frontends.
DeltaFile
+27-0mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
+12-0mlir/test/Dialect/OpenACC/ops.mlir
+39-02 files

LLVM/project 4ae0064mlir/lib/Dialect/OpenACC/Transforms ACCSpecializeForDevice.cpp

remove unused struct
DeltaFile
+0-7mlir/lib/Dialect/OpenACC/Transforms/ACCSpecializeForDevice.cpp
+0-71 files

LLVM/project 362cd64llvm/lib/Transforms/Scalar SimpleLoopUnswitch.cpp, llvm/test/Transforms/SimpleLoopUnswitch trivial-unswitch-convergent.ll

[SimpleLoopUnswitch] Don't latch-redirect trivial unswitch across convergent ops (#207047)

The trivial-unswitch case added in #204934 can redirect a loop-invariant
branch's latch edge to the loop exit, turning it into an exit branch
that then gets hoisted to the preheader. That changes how many
iterations (and, on GPUs, which lanes) execute the loop body.

When the loop contains a convergent operation that runs each iteration,
hoisting the branch lets one (possibly non-uniform) path bypass the loop
entirely and skip the convergent op. Concretely, this miscompiles an
AMDGPU warp reduction (llvm.amdgcn.update.dpp): lanes drop out of the
cross-lane shuffle, so block reductions come back with partial results.

Guard the new latch-redirect transform with the same convergent /
cross-block-token check that isSafeForNonTrivialUnswitching already
applies (refactored into a shared loopContainsConvergentOrTokenOp
helper). Adds a target-independent lit test that fails before this
change and passes after.

Co-authored-by: Claude Opus
DeltaFile
+84-0llvm/test/Transforms/SimpleLoopUnswitch/trivial-unswitch-convergent.ll
+15-5llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
+99-52 files

LLVM/project b8cc845utils/bazel/llvm-project-overlay/llvm config.bzl

[bazel] Correct config.h definitions for musl (#207295)

The Bazel overlay encodes several configure-time config.h results
manually. It currently treats all Linux platforms as having
execinfo.h/backtrace() and mallinfo(). That matches glibc, but is false
when the build is configured for musl libc.

The upstream .bazelrc provides --config=hermetic-toolchain. A musl build
can be selected by pairing that with the platform labels from the
external Bazel module named llvm, for example:

  bazel build --config=hermetic-toolchain \
    --platforms=@llvm//platforms:linux_x86_64_musl \
    --extra_execution_platforms=@llvm//toolchain:linux_x86_64_platform \
    @llvm-project//llvm:not

Only define HAVE_BACKTRACE/BACKTRACE_HEADER when not targeting musl, and
only define HAVE_MALLINFO for GNU libc. With the old definitions, this
fails in LLVM Support, e.g.:

    [5 lines not shown]
DeltaFile
+15-4utils/bazel/llvm-project-overlay/llvm/config.bzl
+15-41 files

LLVM/project e6b0517llvm/test/Transforms/IndVarSimplify eliminate-max-from-min-exit.ll, llvm/test/Transforms/LoopVectorize single-early-exit-deref-assumptions.ll

[LV,IndVars] Add tests for missed SCEV min/max reasoning (NFC) (#208314)

Add extra tests for missed SCEV min/max reasoning, including 
https://github.com/llvm/llvm-project/pull/204083.
DeltaFile
+164-0llvm/test/Transforms/LoopVectorize/single-early-exit-deref-assumptions.ll
+160-0llvm/test/Transforms/IndVarSimplify/eliminate-max-from-min-exit.ll
+324-02 files

LLVM/project 482013eclang/docs UsersManual.md StandardCPlusPlusModules.md

[docs] Convert selected rst docs with rst2myst
DeltaFile
+2,637-2,453clang/docs/UsersManual.md
+1,466-1,537clang/docs/StandardCPlusPlusModules.md
+568-701clang/docs/PointerAuthentication.md
+482-521clang/docs/HIPSupport.md
+550-444clang/docs/Modules.md
+231-612clang/docs/OpenMPSupport.md
+5,934-6,26814 files not shown
+7,523-8,02320 files

LLVM/project 70a9894clang/docs UsersManual.md UsersManual.rst

[docs] Rename selected Clang docs to Markdown
DeltaFile
+6,268-0clang/docs/UsersManual.md
+0-6,268clang/docs/UsersManual.rst
+2,512-0clang/docs/StandardCPlusPlusModules.md
+0-2,512clang/docs/StandardCPlusPlusModules.rst
+0-1,729clang/docs/PointerAuthentication.rst
+1,729-0clang/docs/PointerAuthentication.md
+10,509-10,50938 files not shown
+17,194-17,19544 files

LLVM/project d969b55clang/docs OpenMPSupport.md PointerAuthentication.md

[docs] Finish MyST migration for selected docs
DeltaFile
+83-3clang/docs/OpenMPSupport.md
+22-22clang/docs/PointerAuthentication.md
+27-11clang/docs/UsersManual.md
+10-15clang/docs/MisExpect.md
+10-2clang/docs/OpenCLSupport.md
+4-5clang/docs/StandardCPlusPlusModules.md
+156-5811 files not shown
+173-8717 files

LLVM/project 2ba7a61clang/lib/Sema SemaTemplateInstantiate.cpp SemaTemplateInstantiateDecl.cpp, llvm/docs LangRef.rst LangRef.md

Merge branch 'main' of https://github.com/llvm/llvm-project into revert-191268-feat/104057
DeltaFile
+0-33,233llvm/docs/LangRef.rst
+30,305-0llvm/docs/LangRef.md
+0-2,759llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-memops.ll
+496-176llvm/test/CodeGen/AMDGPU/global-saddr-atomics.ll
+194-429clang/lib/Sema/SemaTemplateInstantiate.cpp
+301-165clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+31,296-36,762118 files not shown
+34,081-38,222124 files