LLVM/project aa513cbclang/test/OpenMP target_codegen.cpp target_simd_codegen.cpp, llvm/include/llvm/Frontend/Offloading Utility.h

Revert "[OpenMP] Use ext linkage for kernels handles and globals handles keep…" (#201698)

Reverts llvm/llvm-project#200964

This patch breaks flang declare target on a common block
DeltaFile
+11-11clang/test/OpenMP/target_codegen.cpp
+8-8clang/test/OpenMP/target_simd_codegen.cpp
+8-8mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-host.mlir
+6-7llvm/lib/Frontend/Offloading/Utility.cpp
+4-4clang/test/OpenMP/target_indirect_codegen.cpp
+4-4llvm/include/llvm/Frontend/Offloading/Utility.h
+41-4214 files not shown
+68-7020 files

LLVM/project ee69af8llvm/docs MIRLangRef.md Extensions.md

Fix LoopTerminology footnotes

Add paragraph breaks after block close
DeltaFile
+47-0llvm/docs/MIRLangRef.md
+31-0llvm/docs/Extensions.md
+22-0llvm/docs/LibFuzzer.md
+11-0llvm/docs/BitCodeFormat.md
+11-0llvm/docs/ExceptionHandling.md
+7-0llvm/docs/MemorySSA.md
+129-03 files not shown
+135-59 files

LLVM/project bea8fa2llvm/test/CodeGen/DirectX ResourceGlobalElimination.ll debug-info.ll, llvm/test/CodeGen/DirectX/DebugInfo di-compile-unit-versioned-language.ll di-subprogram.ll

[DirectX] Remove --filetype=asm from tests (#201600)

--filetype=asm is the default. Suggested by arsenm.
DeltaFile
+2-2llvm/test/CodeGen/DirectX/ResourceGlobalElimination.ll
+1-1llvm/test/CodeGen/DirectX/debug-info.ll
+1-1llvm/test/CodeGen/DirectX/DebugInfo/di-compile-unit-versioned-language.ll
+1-1llvm/test/CodeGen/DirectX/DebugInfo/di-subprogram.ll
+1-1llvm/test/CodeGen/DirectX/Metadata/cbuffer-metadata.ll
+1-1llvm/test/CodeGen/DirectX/Metadata/dx_precise.ll
+7-712 files not shown
+19-1918 files

LLVM/project 01c00d1mlir/lib/Conversion/VectorToXeGPU VectorToXeGPU.cpp, mlir/test/Conversion/VectorToXeGPU transfer-read-to-xegpu.mlir

[MLIR][XeGPU] Promote memref.alloca to SLM in convert-vector-to-xegpu (#197978)

Run a small pre-pass at the start of convert-vector-to-xegpu that
rewrites every memref.alloca to address space 3, so allocations coming
out of bufferization carry the SLM attribute by the time the conversion
patterns run.
DeltaFile
+78-0mlir/lib/Conversion/VectorToXeGPU/VectorToXeGPU.cpp
+54-0mlir/test/Conversion/VectorToXeGPU/transfer-read-to-xegpu.mlir
+132-02 files

LLVM/project b0b433cllvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize/AArch64 transform-narrow-interleave-to-widen-memory-with-wide-ops.ll

[VPlan] Intersect IR flags across interleave members when narrowing. (#201682)

Update narrowInterleaveGroupOp to properly intersect flags for all wide
members, to make sure we only use the flags common across all combined
members.
DeltaFile
+16-9llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+1-1llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-with-wide-ops.ll
+17-102 files

LLVM/project f76f26dllvm/lib/Transforms/IPO MemProfContextDisambiguation.cpp, llvm/test/ThinLTO/X86 memprof-icp-metadata.ll

[MemProf] Fix incorrect VP metadata update during ICP promotion (#201658)

Track unpromoted candidates explicitly when performing ICP during
MemProf
context disambiguation. Previously, the code assumed that the first N
candidates were always the ones promoted, which led to incorrect
metadata
on the fallback indirect call if a candidate was skipped (e.g. due to
missing definition or being illegal to promote).
DeltaFile
+96-0llvm/test/ThinLTO/X86/memprof-icp-metadata.ll
+6-6llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
+102-62 files

LLVM/project 7e2c705lldb/docs python_api_enums.md python_api_enums.rst

[lldb][docs] Convert top-level RST docs to Markdown (NFC) (#201674)

Convert the two remaining top-level RST docs, index and
python_api_enums, to MyST Markdown. This is the final batch of an
incremental RST -> Markdown migration.

After this change, the only RST sources left under lldb/docs/ are
man/lldb.rst and man/lldb-server.rst, which conf.py intentionally keeps
as RST so the man-page builder can run without myst_parser installed
(this reduces dependencies for some llvm distributions).

Verified by building the docs on origin/main and on this branch with
identical sphinx flags and diffing both the warnings and the rendered
HTML. After file extension and line numbers are normalized, the warning
sets match exactly. index.html is byte-identical; python_api_enums.html
differs in a single line where CommonMark collapses two spaces after a
period to one.

The diff also surfaced two semantic regressions in the conversion, fixed

    [10 lines not shown]
DeltaFile
+3,288-0lldb/docs/python_api_enums.md
+0-1,434lldb/docs/python_api_enums.rst
+225-0lldb/docs/index.md
+0-223lldb/docs/index.rst
+3,513-1,6574 files

LLVM/project 717e3c7libcxx/include/__locale_dir wstring_convert.h, libcxx/test/libcxx/localization/locales/locale.convenience/conversions/conversions.string pragma_suppress.compile.pass.cpp

[libc++] Suppress deprecation warning around wstring_convert::to_bytes (#201633)

The deprecation warning for wstring_convert::to_bytes fires from inside
the libc++ header, so users can't suppress it with their own diagnostic
pragmas around the call site. Wrap the definition with
_LIBCPP_SUPPRESS_DEPRECATED_PUSH/POP, mirroring what's already done for
the destructor and from_bytes just above.

Add a regression test under test/libcxx.

rdar://173319468

Assisted-by: Claude
DeltaFile
+28-0libcxx/test/libcxx/localization/locales/locale.convenience/conversions/conversions.string/pragma_suppress.compile.pass.cpp
+2-0libcxx/include/__locale_dir/wstring_convert.h
+30-02 files

LLVM/project 2dce119libcxx/include/__expected expected.h, libcxx/test/std/utilities/expected/expected.expected/equality equality.T2.pass.cpp

[libc++] Fix constraint recursion in std::expected's operator== (#201455)

The C++26 constraint added to operator==(const expected& x, const T2& v)
by P3379R0 evaluates *x == v as part of constraint satisfaction. When
ADL on a comparison reaches this hidden friend through a type whose
associated namespaces include std::expected -- for example std::pair<T,
std::expected<U, V>> -- the constraint check ends up considering the
same overload again with the original type as T2, producing a
"satisfaction of constraint depends on itself" error.

Parameterize the expected operand with an extra template parameter
constrained to be the same type as the enclosing expected's value type.
This is observationally equivalent but makes template argument deduction
fail for non-expected operands before the constraint is evaluated, so
the recursion never starts.

Fixes #160431
rdar://178226313

Assisted-by: Claude
DeltaFile
+10-0libcxx/test/std/utilities/expected/expected.expected/equality/equality.T2.pass.cpp
+6-2libcxx/include/__expected/expected.h
+16-22 files

LLVM/project cc377f7llvm/lib/Analysis ScalarEvolution.cpp

[SCEV] Batch common-factor folding in getAddExpr (#184258)

The existing pairwise common-factor fold in getAddExpr handles two
patterns:
  `W + X + (X * Y * Z)  -->  W + (X * ((Y*Z)+1))`
  `X + (A*B*C) + (A*D*E) --> X + (A*(B*C+D*E))`

Both fold exactly two terms sharing a common factor, then re-enter
getAddExpr() with the partially-simplified Ops. When n terms share a
common factor X, this requires n-1 re-entries through the full
getAddExpr normalization pipeline.

Replace this with a single-pass scan that collects all terms sharing the
common factor and folds them in one shot:
  `A1*X + A2*X + ... + An*X  -->  X * (A1 + A2 + ... + An)`

This reduces the number of top-level re-entries into getAddExpr() for
this fold from n-1 to 1, improving compile time for expressions with
many terms sharing a common factor.

    [2 lines not shown]
DeltaFile
+59-56llvm/lib/Analysis/ScalarEvolution.cpp
+59-561 files

LLVM/project 0027d89llvm/docs/CommandGuide llvm-install-name-tool.rst, llvm/test/tools/llvm-objcopy/MachO install-name-tool-output.test

[llvm-objcopy] Add -o to install_name_tool (#189495)

This allows copying the binary vs updating it in place
DeltaFile
+37-0llvm/test/tools/llvm-objcopy/MachO/install-name-tool-output.test
+8-0llvm/tools/llvm-objcopy/InstallNameToolOpts.td
+4-0llvm/docs/CommandGuide/llvm-install-name-tool.rst
+2-1llvm/tools/llvm-objcopy/ObjcopyOptions.cpp
+51-14 files

LLVM/project 6b3aeb8mlir/include/mlir/Dialect/LLVMIR LLVMOps.td, mlir/lib/Target/LLVMIR ModuleImport.cpp

[MLIR][LLVMIR] Add support for intrinsics with metadata arguments (#200308)

This updates the LLVM dialect to properly handle intrinsics with
metadata arguments.

The primary goal of this change is to support the constrained FP
intrinsics, but support for other intrinsics with metadata arguments
came along with the change.

I have not yet added the RoundingModeOpInterface and
FPExceptionBehaviorOpInterface to CallIntrinsicOp. I intend to do that
as a follow up change if this direction is accepted. I have also not yet
removed existing specialized operations that explicitly handle a subset
of the constrained intrinsics.

Assisted-by: Cursor / claude-opus-4.7
DeltaFile
+84-3mlir/lib/Target/LLVMIR/ModuleImport.cpp
+65-0mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
+38-0mlir/test/Target/LLVMIR/Import/intrinsic-unregistered.ll
+26-0mlir/test/Dialect/LLVMIR/roundtrip.mlir
+24-0mlir/test/Dialect/LLVMIR/call-intrin.mlir
+16-0mlir/test/Dialect/LLVMIR/canonicalize.mlir
+253-34 files not shown
+288-310 files

LLVM/project 6ecdfcfllvm/test/Transforms/LoopVectorize/AArch64 transform-narrow-interleave-to-widen-memory-with-wide-ops.ll

[LV] Add test showing incorrect flag merging in narrowIG (NFC). (#201673)

Add test showing narrowInterleaveGroups incorrectly using the flags from
the first member, even if other members do not have the same flags.
DeltaFile
+76-0llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-with-wide-ops.ll
+76-01 files

LLVM/project 6e310bfclang/docs ReleaseNotes.rst

[clang][doc][SYCL] Expand SYCL driver release notes (#200449)

## Summary

The SYCL Support section in the release notes previously had a single
entry for the default SPIR-V target change. This PR adds driver-level
entries covering all notable SYCL changes landed upstream:

- `-fsycl`, `-fsycl-device-only`, `-fsycl-host-only` flag introduction
(#GH117268)
- C++17 default enforcement and sub-C++17 rejection (#GH194014)
- Runtime library rename from `libsycl.so` to `libLLVMSYCL.so` and
automatic runtime path / header include injection (#GH188770, #GH174877)
- Windows SYCL runtime library linking support with CRT management
(#GH194744)
- Fix for `-nolibsycl` being silently ignored and spurious spirv-link
  flags forwarded to `clang-sycl-linker` (#GH200252)

Addresses the review comment on #200200 requesting that notable SYCL

    [5 lines not shown]
DeltaFile
+20-0clang/docs/ReleaseNotes.rst
+20-01 files

LLVM/project 5e1cba8.ci compute_projects_test.py compute_projects.py, .github/workflows libclang-python-tests.yml

CI: move libclang python byindings tests to main CI

This removes the separate python bindings CI, which run on the GitHub free
runners and take more than one hour to build libclang.

The tests are executed instead in the monolithic pipelines,
whenever clang would be tested.

This is fine in terms of resources because all the dependencies are
built anyway, and the tests themselves take less than one second to
run on the free runners.
DeltaFile
+0-60.github/workflows/libclang-python-tests.yml
+13-12.ci/compute_projects_test.py
+1-1.ci/compute_projects.py
+14-733 files

LLVM/project 687f254clang/include/clang/Serialization ASTRecordReader.h, clang/lib/AST ASTContext.cpp Type.cpp

trivial changes
DeltaFile
+20-14clang/lib/Sema/SemaOpenMP.cpp
+18-14clang/lib/AST/ASTContext.cpp
+16-15clang/lib/Sema/SemaTemplate.cpp
+14-11clang/lib/AST/Type.cpp
+14-8clang/lib/AST/ASTDiagnostic.cpp
+11-6clang/include/clang/Serialization/ASTRecordReader.h
+93-6833 files not shown
+207-15939 files

LLVM/project c1cfb39clang/lib/AST ASTContext.cpp ItaniumMangle.cpp, clang/lib/Sema SemaCXXScopeSpec.cpp SemaTemplate.cpp

[clang] implement CWG2064: ignore value dependence for decltype

The 'decltype' for a value-dependent (but non-type-dependent) should be known,
so this patch makes them non-opaque instead.

This patch also implements what's neceessary to allow overloading
on pure differences in instantiation dependence, making `std::void_t`
usable for SFINAE purposes.

This also readds a few test cases from da98651, which was a previous attempt
at resolving CWG2064.

Fixes #8740
Fixes #61818
Fixes #190388
DeltaFile
+888-161clang/lib/AST/ASTContext.cpp
+328-12clang/test/SemaTemplate/instantiation-dependence.cpp
+178-96clang/lib/AST/ItaniumMangle.cpp
+100-98clang/lib/Sema/SemaCXXScopeSpec.cpp
+62-57clang/lib/AST/Type.cpp
+71-44clang/lib/Sema/SemaTemplate.cpp
+1,627-46869 files not shown
+2,392-79975 files

LLVM/project 889496cclang/lib/AST ASTContext.cpp, clang/test/SemaTemplate ctad.cpp

[clang] fix assertion for DeducedAsPack DeducedTemplateSpecializationType (#201664)

This fixes a regression introduced in #186727, which was never released,
so there are no release notes.

Fixes #200418
DeltaFile
+16-0clang/test/SemaTemplate/ctad.cpp
+0-5clang/lib/AST/ASTContext.cpp
+16-52 files

LLVM/project 2c75c43llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/AMDGPU dagcombine-freeze-extract-subvector-loop.ll

Style, named test vars
DeltaFile
+25-28llvm/test/CodeGen/AMDGPU/dagcombine-freeze-extract-subvector-loop.ll
+1-2llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+26-302 files

LLVM/project e96bf04llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/AMDGPU dagcombine-freeze-extract-subvector-loop.ll

[SelectionDAG] Fold extracts of subvector inserts

Fold extract_subvector(insert_subvector(...)) when the extraction is
outside the inserted subvector or the inserted subvector only amends
the extracted

In particular,
1. vA extract_subvector (vB insert_subvector(vB X, vC Y, C1), C2) =>
vA extract_subvector(X, C2) when [C2, C2 + A) intersect [C1, C1 + C)
is the empty set
2. ... => extract_subvector(Y, C2 - C1) if [C2, C2 + Y) is a subset of
[C1, C1 + C) - an existing simplification
3. ... => vA insert_subvector(vA extract_subvector(vB X, C2), vC Y, C1 - C2)
if [C1, C1 + C) is a subset of [C2, C2 + A) - that is, if you're only
updating the extracted sub-part.

Adds a regresssion tests for an infinite SelectionDAG cycle that is
fixed by a stack of commits that ends with this one.


    [3 lines not shown]
DeltaFile
+72-56llvm/test/CodeGen/X86/vector-interleaved-store-i64-stride-6.ll
+44-48llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-6.ll
+45-0llvm/test/CodeGen/AMDGPU/dagcombine-freeze-extract-subvector-loop.ll
+28-7llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+15-17llvm/test/CodeGen/X86/vector-replicaton-i1-mask.ll
+4-8llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-3.ll
+208-1361 files not shown
+212-1447 files

LLVM/project 6ec9620llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/X86 vector-shuffle-combining-avx512bwvl.ll

[SelectionDAG] Fold subvector inserts into concat operands

Push insert_subvector into the containing CONCAT_VECTORS operand when the insertion is wholly contained there.

AI note: an LLM generated the code and the test, I've read them

Co-Authored-By: OpenAI Codex <codex at openai.com>
DeltaFile
+34-10llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+8-36llvm/test/CodeGen/X86/vector-shuffle-combining-avx512bwvl.ll
+42-462 files

LLVM/project 3487c7bllvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp

Make this work on scalable vectors
DeltaFile
+12-15llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+12-151 files

LLVM/project a518525llvm/test/CodeGen/AArch64 sve-fixed-vector-llrint.ll sve-fixed-vector-lrint.ll, llvm/test/CodeGen/AMDGPU bf16.ll

[SelectionDAG] Fold extracts spanning concat operands

Factor the extract_subvector-of-CONCAT_VECTORS logic and handle
extracts that cover multiple whole concat operands by rebuilding a
smaller concat directly.

AI note: an LLM generated the code and the test, I've read them

Co-Authored-By: OpenAI Codex <codex at openai.com>
DeltaFile
+992-904llvm/test/CodeGen/AMDGPU/bf16.ll
+187-229llvm/test/CodeGen/AArch64/sve-fixed-vector-llrint.ll
+187-229llvm/test/CodeGen/AArch64/sve-fixed-vector-lrint.ll
+196-176llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-6.ll
+142-140llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-6.ll
+120-120llvm/test/CodeGen/X86/vector-interleaved-store-i32-stride-6.ll
+1,824-1,79811 files not shown
+2,204-2,27917 files

LLVM/project 9148e46llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp

[SelectionDAG] Fold nonzero extract-of-extract indices

Generalize the extract_subvector-of-extract_subvector fold to compose
nonzero indices instead of only handling an outer index of zero.

AI note: an LLM generated the code and the test, I've read them

Co-Authored-By: OpenAI Codex <codex at openai.com>
DeltaFile
+8-8llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+8-81 files

LLVM/project bd4aaeellvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/AArch64 sve-load-store-legalisation.ll

scalable vector test updates
DeltaFile
+772-772llvm/test/CodeGen/RISCV/rvv/vector-interleave.ll
+4-20llvm/test/CodeGen/AArch64/sve-load-store-legalisation.ll
+4-2llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+780-7943 files

LLVM/project 89054bfllvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp

Review feedback I forgot to push lol
DeltaFile
+2-2llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+2-21 files

LLVM/project bcd2e2ellvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp

Review feedback
DeltaFile
+4-8llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+4-81 files

LLVM/project c2fbbafllvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp, llvm/test/CodeGen/X86 freeze-vector.ll

[SelectionDAG] Track demanded select elements in noundef checks

Propagate demanded elements through to the two arms of a select, and
check the condition with or without demanded elements depending on if
it's a vector or not.

AI note: an LLM generated the code and the test, I've read them

Co-Authored-By: OpenAI Codex <codex at openai.com>
DeltaFile
+17-2llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+0-11llvm/test/CodeGen/X86/freeze-vector.ll
+17-132 files

LLVM/project 9c9f0a5llvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp

Review style etc.
DeltaFile
+9-10llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+9-101 files

LLVM/project 1a3285ellvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp

Review comments
DeltaFile
+4-9llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+4-91 files