LLVM/project bb40c7elibcxx/utils/ci run-buildbot

[libc++] Add dry-run coverage for the LNT tooling to the test-tools builder (#214028)

This provides better-than-nothing coverage at a low cost.
DeltaFile
+20-0libcxx/utils/ci/run-buildbot
+20-01 files

LLVM/project 9b32a7f.github/workflows release-documentation.yml, llvm/utils/release build-docs.sh

workflows/release-documentation: Rework workflow to make it testable

Removed the environment declaration from the validation job and split
out the www-releases update into a separate job.  This makes it safe
and possible to add a pull_request trigger so we can at least test
building the documentation when someone submits a pull request.
DeltaFile
+57-66.github/workflows/release-documentation.yml
+0-6llvm/utils/release/build-docs.sh
+57-722 files

LLVM/project 2437b03.github/workflows release-documentation.yml release-sources.yml

workflows: Remove unnecessary checkouts before uses of upload-release-artifact (#213830)

The workflow is now self-contained and checks out its own scripts, so we
don't need to do this in the calling workflow. The '$' prefix in the
uses tag tells github actions to load the action from the repository
directly rather than searching for it on the local file system.


https://github.blog/changelog/2026-07-30-reference-same-repository-actions-with-self-repository-syntax/
DeltaFile
+1-13.github/workflows/release-binaries.yml
+1-11.github/workflows/release-sources.yml
+1-8.github/workflows/release-documentation.yml
+3-323 files

LLVM/project 1289511lldb/bindings/python python-extensions.swig, lldb/test/API/python_api/value/value_wrap TestValueAPIWrapper.py

[lldb] Raise error if in-place operators can't modify lldb.value
DeltaFile
+21-14lldb/bindings/python/python-extensions.swig
+6-6lldb/test/API/python_api/value/value_wrap/TestValueAPIWrapper.py
+27-202 files

LLVM/project 58d3164lldb/bindings/python python-extensions.swig, lldb/test/API/python_api/value/value_wrap TestValueAPIWrapper.py

[lldb] Fix existing operators on lldb.value
DeltaFile
+42-14lldb/test/API/python_api/value/value_wrap/TestValueAPIWrapper.py
+12-12lldb/bindings/python/python-extensions.swig
+54-262 files

LLVM/project d9a8344lldb/bindings/python python-extensions.swig

[lldb] Remove Python 2 operators from lldb.value
DeltaFile
+0-12lldb/bindings/python/python-extensions.swig
+0-121 files

LLVM/project 70ed456lldb/test/API/python_api/value/value_wrap Makefile main.c

[lldb] Add tests for `lldb.value`
DeltaFile
+269-0lldb/test/API/python_api/value/value_wrap/TestValueAPIWrapper.py
+39-0lldb/test/API/python_api/value/value_wrap/main.c
+3-0lldb/test/API/python_api/value/value_wrap/Makefile
+311-03 files

LLVM/project 990e4f9utils/bazel/llvm-project-overlay/compiler-rt BUILD.bazel

[compiler-rt][Bazel] Support profile runtime on macOS and iOS (#214154)
DeltaFile
+11-5utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel
+11-51 files

LLVM/project 959eb3dllvm/lib/Target/AMDGPU AMDGPURegBankLegalizeRules.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.tanh.ll

[AMDGPU][GISel] Add RegBankLegalize rules for amdgcn_tanh

Enable the existing gfx1250 and gfx13 GlobalISel coverage now that tanh operands are assigned to VGPRs.

Change-Id: I38b5693015550df52042dc52d1151ed4b7fea118
DeltaFile
+570-31llvm/test/CodeGen/AMDGPU/llvm.amdgcn.tanh.ll
+1-1llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+571-322 files

LLVM/project 25e1c16clang/lib/Lex Lexer.cpp

[clang][Lex] Fix ambiguous reference to Token error (#214300)

At least with GCC 11.4.0 this is deemed an error.

Fixes: 56dc58dc2550 ("[Clang][Preprocessor] Unify header-name lookahead
for import and include (#191004)")
DeltaFile
+2-2clang/lib/Lex/Lexer.cpp
+2-21 files

LLVM/project b3e79b7clang/lib/Sema SemaAMDGPU.cpp, clang/test/SemaHIP amdgpu-builtin-fence.hip

[AMDGPU][Clang] Handle instantiation-dependent fence arguments

Refactor atomic builtin checks into their switch case and defer constant
evaluation of dependent arguments until instantiation, avoiding a potential
crash during template definition.

Fixes ROCM-29058.
DeltaFile
+47-50clang/lib/Sema/SemaAMDGPU.cpp
+33-0clang/test/SemaHIP/amdgpu-builtin-fence.hip
+80-502 files

LLVM/project 9a793fdllvm/test/CodeGen/AMDGPU llvm.amdgcn.rsq.bf16.ll llvm.amdgcn.rcp.bf16.ll

[AMDGPU] Autogen tests with new changes (#214286)

Missed in https://github.com/llvm/llvm-project/pull/214040
DeltaFile
+12-12llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rcp.bf16.ll
+8-8llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.bf16.ll
+20-202 files

LLVM/project 1e9d4f4llvm/lib/CodeGen/AsmPrinter AsmPrinter.cpp

[AsmPrinter] Use DenseMap instead of MapVector (NFC) (#214256)

MBBSectionNumBlocks is accessed only via MapVector::operator[].

This patch changes its type to DenseMap to avoid populating the vector
portion of MapVector.
DeltaFile
+1-1llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+1-11 files

LLVM/project dfa41fflldb/bindings/python python-extensions.swig, lldb/test/API/python_api/value/value_wrap TestValueAPIWrapper.py

[lldb] Raise error if in-place operators can't modify lldb.value
DeltaFile
+21-14lldb/bindings/python/python-extensions.swig
+6-6lldb/test/API/python_api/value/value_wrap/TestValueAPIWrapper.py
+27-202 files

LLVM/project 2663466lldb/bindings/python python-extensions.swig, lldb/test/API/python_api/value/value_wrap TestValueAPIWrapper.py

[lldb] Fix existing operators on lldb.value
DeltaFile
+42-14lldb/test/API/python_api/value/value_wrap/TestValueAPIWrapper.py
+12-12lldb/bindings/python/python-extensions.swig
+54-262 files

LLVM/project f241796lldb/bindings/python python-extensions.swig

[lldb] Remove Python 2 operators from lldb.value
DeltaFile
+0-12lldb/bindings/python/python-extensions.swig
+0-121 files

LLVM/project c458d56lldb/test/API/python_api/value/value_wrap Makefile main.c

[lldb] Add tests for `lldb.value`
DeltaFile
+269-0lldb/test/API/python_api/value/value_wrap/TestValueAPIWrapper.py
+39-0lldb/test/API/python_api/value/value_wrap/main.c
+3-0lldb/test/API/python_api/value/value_wrap/Makefile
+311-03 files

LLVM/project 2b6ed08.github/workflows release-documentation.yml release-sources.yml

workflows: Remove unnecessary checkouts before uses of upload-release-artifact

The workflow is on self-contained and checks out its own scripts, so we
don't need to do this in the calling workflow.  The '$' prefix in the
uses tag tells github actions to load the action from the repository
directly rather than searching for it on the local file system.

https://github.blog/changelog/2026-07-30-reference-same-repository-actions-with-self-repository-syntax/
DeltaFile
+1-13.github/workflows/release-binaries.yml
+1-11.github/workflows/release-sources.yml
+1-8.github/workflows/release-documentation.yml
+3-323 files

LLVM/project dd70646clang/lib/Sema SemaAMDGPU.cpp, clang/test/SemaHIP amdgpu-builtin-fence.hip

[AMDGPU][Clang] Handle instantiation-dependent fence arguments

Refactor atomic builtin checks into their switch case and defer constant
evaluation of dependent arguments until instantiation, avoiding a potential
crash during template definition.

Fixes ROCM-29058.
DeltaFile
+47-50clang/lib/Sema/SemaAMDGPU.cpp
+33-0clang/test/SemaHIP/amdgpu-builtin-fence.hip
+80-502 files

LLVM/project 9937874clang-tools-extra/clangd Hover.cpp, clang-tools-extra/clangd/unittests HoverTests.cpp

[clangd][HLSL] Add hover support for vector swizzle and matrix element access (#212741)

Hovering over a vector swizzle expression (e.g. `.xyz`) or a matrix
element access (e.g. `._m00`) previously produced no hover information,
since ExtVectorElementExpr and MatrixElementExpr were not handled in
getHoverContents(const Expr *E).

This patch adds support for these expressions within `getHoverContents`
by extracting the accessor name and resolved type for both node kinds.

Fixes #212612
DeltaFile
+101-0clang-tools-extra/clangd/unittests/HoverTests.cpp
+13-0clang-tools-extra/clangd/Hover.cpp
+114-02 files

LLVM/project ec62b5aflang/lib/Optimizer/OpenMP LowerWorkshare.cpp, flang/test/Transforms/OpenMP lower-workshare-nowait.mlir lower-workshare-thread-local.mlir

[flang][OpenMP] Fix wrong results for FORALL in a workshare construct (#211371)

A FORALL in a workshare construct could produce wrong results
non-deterministically. This is caused by two issues in the workshare
lowering:

1. A FORALL whose left-hand side may overlap its right-hand side is
lowered into two loop nests around a runtime value stack: the first nest
evaluates each right-hand side and pushes it, the second one fetches the
saved values back with a running counter. That counter lives in a
fir.alloca which, since omp.parallel is an alloca scope, is thread
private. The counter is read, incremented and written back from inside
the omp.single generated for the fetch, because the incremented value is
only available there. Only the thread which executed the omp.single
therefore bumped its own copy of the counter, and all the other threads
kept a stale one and refetched an already consumed element on the
following iterations.

Collect the thread local memory which is only updated by the thread

    [15 lines not shown]
DeltaFile
+250-2flang/test/Transforms/OpenMP/lower-workshare-thread-local.mlir
+220-29flang/lib/Optimizer/OpenMP/LowerWorkshare.cpp
+47-0flang/test/Transforms/OpenMP/lower-workshare-nowait.mlir
+517-313 files

LLVM/project 1738ac2clang/lib/CodeGen CodeGenFunction.h CGExpr.cpp, clang/test/CodeGen attr-sized-by-for-pointers.c attr-counted-by-or-null-for-pointers.c

[CodeGen] Fix -fsanitize=array-bounds for __sized_by / _or_null pointers

`EmitCountedByBoundsChecking()` assumed a CountAttributedType is always
a __counted_by pointer. That isn't true, there are four versions of the
attribute:

* `__counted_by`: Already handled correctly.
* `__counted_by_or_null`: Incorectly handled.
* `__sized_by`: Incorreclty handled.
* `__sized_by_or_null`: Incorreclty handled.

In particular:

* __sized_by / __sized_by_or_null: the loaded bound is a byte count, but the
  element index was compared against it directly, so an access was only
  flagged once the index exceeded the byte count -- missing out-of-bounds
  accesses for a pointee larger than one byte. Scale the index to bytes
  ('index * sizeof(element)') before comparing. counted_by counts elements
  and is unchanged; a void (or otherwise zero-sized) pointee uses the GNU

    [13 lines not shown]
DeltaFile
+396-173clang/test/CodeGen/attr-sized-by-or-null-for-pointers.c
+295-98clang/test/CodeGen/attr-counted-by-or-null-for-pointers.c
+291-81clang/test/CodeGen/attr-sized-by-for-pointers.c
+43-9clang/lib/CodeGen/CGExpr.cpp
+2-1clang/lib/CodeGen/CodeGenFunction.h
+1,027-3625 files

LLVM/project 6acd217clang/lib/CodeGen CGBuiltin.cpp, clang/test/CodeGen attr-counted-by-for-pointers.c attr-sized-by-for-pointers.c

[CodeGen] Fix __builtin_dynamic_object_size for __sized_by / _or_null pointers

`emitCountedByPointerSize()` assumed a CountAttributedType is always
a __counted_by pointer. That isn't true, there are four versions of the
attribute:

* `__counted_by`: Already handled correctly.
* `__counted_by_or_null`: Incorectly handled.
* `__sized_by`: Incorreclty handled.
* `__sized_by_or_null`: Incorreclty handled.

In particular:

* __sized_by / __sized_by_or_null: the attribute argument is a byte count,
  but the object size was computed as count * sizeof(*ptr), over-reporting by
  the element size for any pointee larger than one byte. Use the count
  directly for the byte-counting variants.

* __counted_by_or_null / __sized_by_or_null: a null pointer describes no

    [20 lines not shown]
DeltaFile
+655-0clang/test/CodeGen/attr-sized-by-or-null-for-pointers.c
+514-0clang/test/CodeGen/attr-counted-by-or-null-for-pointers.c
+401-2clang/test/CodeGen/attr-sized-by-for-pointers.c
+169-5clang/test/CodeGen/attr-counted-by-for-pointers.c
+98-43clang/lib/CodeGen/CGBuiltin.cpp
+1,837-505 files

LLVM/project e5a8b53clang/lib/CodeGen CodeGenFunction.h CGExpr.cpp, clang/test/CodeGen attr-sized-by-for-pointers.c attr-counted-by-or-null-for-pointers.c

[CodeGen] Fix -fsanitize=array-bounds for __sized_by / _or_null pointers

`EmitCountedByBoundsChecking()` assumed a CountAttributedType is always
a __counted_by pointer. That isn't true, there are four versions of the
attribute:

* `__counted_by`: Already handled correctly.
* `__counted_by_or_null`: Incorectly handled.
* `__sized_by`: Incorreclty handled.
* `__sized_by_or_null`: Incorreclty handled.

In particular:

* __sized_by / __sized_by_or_null: the loaded bound is a byte count, but the
  element index was compared against it directly, so an access was only
  flagged once the index exceeded the byte count -- missing out-of-bounds
  accesses for a pointee larger than one byte. Scale the index to bytes
  ('index * sizeof(element)') before comparing. counted_by counts elements
  and is unchanged; a void (or otherwise zero-sized) pointee uses the GNU

    [13 lines not shown]
DeltaFile
+396-173clang/test/CodeGen/attr-sized-by-or-null-for-pointers.c
+295-98clang/test/CodeGen/attr-counted-by-or-null-for-pointers.c
+291-81clang/test/CodeGen/attr-sized-by-for-pointers.c
+43-9clang/lib/CodeGen/CGExpr.cpp
+2-1clang/lib/CodeGen/CodeGenFunction.h
+1,027-3625 files

LLVM/project 5924784clang/lib/CodeGen CGBuiltin.cpp, clang/test/CodeGen attr-counted-by-for-pointers.c attr-sized-by-for-pointers.c

[CodeGen] Fix __builtin_dynamic_object_size for __sized_by / _or_null pointers

`emitCountedByPointerSize()` assumed a CountAttributedType is always
a __counted_by pointer. That isn't true, there are four versions of the
attribute:

* `__counted_by`: Already handled correctly.
* `__counted_by_or_null`: Incorectly handled.
* `__sized_by`: Incorreclty handled.
* `__sized_by_or_null`: Incorreclty handled.

In particular:

* __sized_by / __sized_by_or_null: the attribute argument is a byte count,
  but the object size was computed as count * sizeof(*ptr), over-reporting by
  the element size for any pointee larger than one byte. Use the count
  directly for the byte-counting variants.

* __counted_by_or_null / __sized_by_or_null: a null pointer describes no

    [20 lines not shown]
DeltaFile
+655-0clang/test/CodeGen/attr-sized-by-or-null-for-pointers.c
+514-0clang/test/CodeGen/attr-counted-by-or-null-for-pointers.c
+401-2clang/test/CodeGen/attr-sized-by-for-pointers.c
+169-5clang/test/CodeGen/attr-counted-by-for-pointers.c
+98-43clang/lib/CodeGen/CGBuiltin.cpp
+1,837-505 files

LLVM/project e0d05a1clang/test/CodeGen attr-sized-by-for-pointers.c attr-counted-by-for-pointers.c

[CodeGen][NFC] Split __sized_by tests into their own file and rename test cases (#213793)

In future patches the coverage of the `__counted_by` family of
attributes
will be increased. To help with this, this patch refactors the existing
test file.

1. Split `__sized_by` tests into their own file. In later patches files
will be added for each attribute, so it makes sense for each attribute
   to have its own file.
2. Replace `testN` test case names with human-readable descriptions. Not
   all test cases that will be added in the future will apply to all
   attributes. If we kept using the `testN` naming convention it would
   leave odd gaps in the test numbering, because we try to keep what a
   test case tests consistent across files (i.e. `testN` would roughly
   test the same thing but with a different attribute). Using named test
   cases completely avoids this.
DeltaFile
+150-287clang/test/CodeGen/attr-counted-by-for-pointers.c
+158-0clang/test/CodeGen/attr-sized-by-for-pointers.c
+308-2872 files

LLVM/project 41d5f4coffload/test/unit lit.site.cfg.in lit.cfg.py

[offload] Add CUDA_ROOT to path for unit tests (#214282)

We need this to fix the test added in
https://github.com/llvm/llvm-project/pull/212860. Right now it errors
saying it can't find `ptxas`.
We already have code doing this for the e2e tests, but we also need it
for the unit tests.
We had a similar fix for AMDGPU in
https://github.com/llvm/llvm-project/pull/213149.
Locally reproduced the issue and verified the fix.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply at anthropic.com>
DeltaFile
+15-6offload/test/unit/lit.cfg.py
+1-0offload/test/unit/lit.site.cfg.in
+16-62 files

LLVM/project 4e725a2.github/workflows/upload-release-artifact action.yml

workflows/upload-release-artifact: Make this action self-contained (#213828)

The action now checks out its own files so calling workflows don't need
to do this.  This helps prevent mistakes where the calling workflow
does not checkout the right files causing this action to fail.
DeltaFile
+20-9.github/workflows/upload-release-artifact/action.yml
+20-91 files

LLVM/project 6e366dellvm/docs/CommandGuide llvm-objcopy.rst

[llvm-objcopy] Add elf64-amdgpu to supported formats in command guide

Update the llvm-objcopy command guide's "Supported formats" section to
include elf64-amdgpu, added in the preceding commit.
DeltaFile
+1-0llvm/docs/CommandGuide/llvm-objcopy.rst
+1-01 files

LLVM/project 56dc58dclang/lib/Lex Lexer.cpp Preprocessor.cpp, clang/lib/Parse Parser.cpp

[Clang][Preprocessor] Unify header-name lookahead for import and include (#191004)

Introduce Preprocessor::isNextPPTokenHeaderNameOrOneOf to centralize
lookahead logic for header-name formation and token classification under
ParsingFilename mode.
    
Refactor handling of C++20 module/import contextual keywords and
LexHeaderName to use the new helper, ensuring consistent behavior
between `import` and `#include`.
    
Try to form a valid header-name token during lookahead. If that fails
and the next token is not one of the expected alternatives, treat it as
not an `import` directive or as an invalid `#include` (missing
<FILENAME>/"FILENAME").

```cpp    
#define FOO foo>
#include <:FOO
```

    [13 lines not shown]
DeltaFile
+100-28clang/unittests/Lex/PPDependencyDirectivesTest.cpp
+51-2clang/test/CXX/module/cpp.pre/p1.cpp
+24-23clang/lib/Lex/Preprocessor.cpp
+22-13clang/lib/Lex/Lexer.cpp
+10-0clang/lib/Parse/Parser.cpp
+5-0clang/test/CXX/cpp/cpp.include/p3.cpp
+212-661 files not shown
+213-667 files