LLVM/project f4de9b8utils/bazel/llvm-project-overlay/llvm BUILD.bazel

[bazel] Fix llvm-ir2vec
DeltaFile
+2-1utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+2-11 files

LLVM/project 104c30bmlir/include/mlir/Interfaces ControlFlowInterfaces.h, mlir/lib/Dialect/SCF/IR SCF.cpp

[mlir][Interfaces] Add generic pattern for region inlining
DeltaFile
+160-0mlir/lib/Interfaces/ControlFlowInterfaces.cpp
+50-23mlir/lib/Dialect/SCF/IR/SCF.cpp
+21-0mlir/include/mlir/Interfaces/ControlFlowInterfaces.h
+231-233 files

LLVM/project a4975a8llvm/lib/CodeGen CodeGenPrepare.cpp, llvm/test/Transforms/CodeGenPrepare/AArch64 sink-free-instructions.ll

[CGP][AArch64] Do not sink instructions that might read/write memory. (#176182)

The test case's call instruction was being sank past the point where the
memory
it accessed was valid. Add a check that CGP does not try to sink
instruction that
might be invalid to move.

Fixes #176095
DeltaFile
+92-6llvm/test/Transforms/CodeGenPrepare/AArch64/sink-free-instructions.ll
+1-1llvm/lib/CodeGen/CodeGenPrepare.cpp
+93-72 files

LLVM/project 8640fb3llvm/lib/CodeGen DwarfEHPrepare.cpp, llvm/test/CodeGen/AArch64 dwarf-eh-prepare-dbg.ll

DwarfEHPrepare: Use LibcallLoweringInfo analysis (#176380)

DeltaFile
+39-15llvm/lib/CodeGen/DwarfEHPrepare.cpp
+7-0llvm/test/Transforms/DwarfEHPrepare/missing-analysis.ll
+1-1llvm/test/CodeGen/X86/dwarf_eh_resume.ll
+1-1llvm/test/CodeGen/X86/dwarf-eh-prepare.ll
+1-1llvm/test/CodeGen/X86/dwarf-eh-prepare-dbg.ll
+1-1llvm/test/CodeGen/AArch64/dwarf-eh-prepare-dbg.ll
+50-196 files

LLVM/project 36801a5llvm/lib/CodeGen AtomicExpandPass.cpp, llvm/test/Transforms/AtomicExpand/AMDGPU expand-atomic-v2f16-agent.ll expand-atomic-f32-agent.ll

AtomicExpand: Use LibcallLoweringInfo analysis (#176384)

DeltaFile
+36-8llvm/lib/CodeGen/AtomicExpandPass.cpp
+8-8llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-v2f16-agent.ll
+8-8llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f32-agent.ll
+8-8llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f32-system.ll
+8-8llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f64-agent.ll
+8-8llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f64-system.ll
+76-4855 files not shown
+220-18561 files

LLVM/project 5475cabllvm/lib/CodeGen StackProtector.cpp, llvm/test/CodeGen/NVPTX no-stack-protector-libcall-error.ll

StackProtector: Use LibcallLoweringInfo analysis (#170329)

DeltaFile
+55-27llvm/lib/CodeGen/StackProtector.cpp
+7-0llvm/test/Transforms/StackProtector/missing-analysis.ll
+2-2llvm/test/CodeGen/X86/stack-protector-atomicrmw-xchg.ll
+1-1llvm/test/CodeGen/NVPTX/no-stack-protector-libcall-error.ll
+1-1llvm/test/Transforms/StackProtector/cross-dso-cfi-stack-chk-fail.ll
+1-1llvm/test/Transforms/StackProtector/stack-chk-fail-alias.ll
+67-326 files

LLVM/project 4ea2517clang-tools-extra/clang-tidy doc8.ini

[clang-tidy][NFC] Update doc8 config (#176622)

DeltaFile
+1-2clang-tools-extra/clang-tidy/doc8.ini
+1-21 files

LLVM/project e8a0b40llvm/lib/Transforms/Utils SCCPSolver.cpp, llvm/test/Transforms/SCCP get_vector_length-intrinsic.ll

[SCCP] Correct range calculation for get.vector.length to use getUnsignedMax instead of getUpper. (#176493)

getUpper returns 1 more than the maxium value included in the range.
This may be 0. We should not use this in a umin. Instead we should
get the maximum value included in the range and use that for the umin.
Then convert that to Upper for the new range by adding 1.

The test was manually reduced from a downstream failure, but I couldn't
get it behave exactly the same way without more instructions. It should
be enough to show an incorrect range being calculated.

Fixes #176471
DeltaFile
+40-1llvm/test/Transforms/SCCP/get_vector_length-intrinsic.ll
+3-2llvm/lib/Transforms/Utils/SCCPSolver.cpp
+43-32 files

LLVM/project 5ff8d3allvm/utils/TableGen DAGISelMatcherEmitter.cpp

[TableGen] Print MCRegister::NoRegister instead of 0 in generated isel table. NFC (#176295)

DeltaFile
+3-6llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
+3-61 files

LLVM/project 0a7cafcllvm/utils/TableGen DAGISelMatcherOpt.cpp DAGISelMatcher.h

[TableGen] Remove temporary vector from FactorScope. NFC (#176547)

Operate directly on the vector in the ScopeMatcher.
DeltaFile
+15-16llvm/utils/TableGen/DAGISelMatcherOpt.cpp
+1-8llvm/utils/TableGen/DAGISelMatcher.h
+16-242 files

LLVM/project 4c49144mlir/lib/Dialect/MemRef/IR MemRefOps.cpp, mlir/test/Dialect/MemRef canonicalize.mlir

[mlir][memref] Refactor `ViewOpShapeFolder` (#176567)

This PR makes the following changes to ViewOpShapeFolder:
- Add comments for `ViewOpShapeFolder`.
- Drop the redundant offset check.
- Simplify the implementation by introducing
`foldDynamicToStaticDimSizes`.
- Add missing test coverage.
DeltaFile
+52-54mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
+28-0mlir/test/Dialect/MemRef/canonicalize.mlir
+80-542 files

LLVM/project 74379c2clang/include/clang/AST VTableBuilder.h, llvm/include/llvm/ADT ArrayRef.h

[llvm][clang] Remove `llvm::OwningArrayRef` (#169126)

`OwningArrayRef` has several problems.

The naming is strange: `ArrayRef` is specifically a non-owning view, so
the name means "owning non-owning view".

It has a const-correctness bug that is inherent to the interface.
`OwningArrayRef<T>` publicly derives from `MutableArrayRef<T>`. This
means that the following code compiles:

```c++
void const_incorrect(llvm::OwningArrayRef<int> const a) {
        a[0] = 5;
}
```

It's surprising for a non-reference type to allow modification of its
elements even when it's declared `const`. However, the problems from

    [55 lines not shown]
DeltaFile
+0-23llvm/include/llvm/ADT/ArrayRef.h
+6-5llvm/include/llvm/CodeGen/PBQP/Math.h
+0-7llvm/unittests/ADT/ArrayRefTest.cpp
+4-3llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+3-3llvm/include/llvm/CGData/CGDataPatchItem.h
+3-2clang/include/clang/AST/VTableBuilder.h
+16-431 files not shown
+17-467 files

LLVM/project 6eb0f5allvm/lib/Transforms/Utils ControlFlowUtils.cpp, llvm/test/Transforms/Util control-flow-hub-finalize-same-succ-crash.ll

[ControlFlowHub] Fix duplicate DomTree updates when branch successors are identical

When a conditional branch has both successors pointing to the same block (e.g., `br i1 %cond, label %bb, label %bb`), `ControlFlowHub::finalize` generates duplicate `Delete` updates for the same CFG edge. This can cause assertion in `fix-irreducible` pass.

Fixes #176553.
DeltaFile
+105-0llvm/test/Transforms/Util/control-flow-hub-finalize-same-succ-crash.ll
+13-5llvm/lib/Transforms/Utils/ControlFlowUtils.cpp
+118-52 files

LLVM/project 5b91175clang-tools-extra/docs/clang-tidy/checks/abseil unchecked-statusor-access.rst

[NFC][clang-tidy] Update documentation for StatusOr check. (#176498)

Specifically:
1. Avoid the "or" suffix for variable names per
[abseil.io/tips/181](https://abseil.io/tips/181)
2. Replace DCHECK with CHECK which works in non-debug mode
3. Suggest init-capture in workaround for lambda captures
4. Reduce one line length to satisfy `doc8`
DeltaFile
+61-61clang-tools-extra/docs/clang-tidy/checks/abseil/unchecked-statusor-access.rst
+61-611 files

LLVM/project 2e57b8dllvm/lib/Transforms/Utils ControlFlowUtils.cpp, llvm/test/Transforms/Util control-flow-hub-finalize-same-succ-crash.ll

[ControlFlowHub] Fix duplicate DomTree updates when branch successors are identical

When a conditional branch has both successors pointing to the same block (e.g., `br i1 %cond, label %bb, label %bb`), `ControlFlowHub::finalize` generates duplicate `Delete` updates for the same CFG edge. This can cause assertion in `fix-irreducible` pass.

Fixes #176553.
DeltaFile
+37-0llvm/test/Transforms/Util/control-flow-hub-finalize-same-succ-crash.ll
+8-5llvm/lib/Transforms/Utils/ControlFlowUtils.cpp
+45-52 files

LLVM/project 2f3fd3fllvm/lib/Transforms/Utils ControlFlowUtils.cpp, llvm/test/Transforms/Util control-flow-hub-finalize-same-succ-crash.ll

[ControlFlowHub] Fix duplicate DomTree updates when branch successors are identical

When a conditional branch has both successors pointing to the same block (e.g., `br i1 %cond, label %bb, label %bb`), `ControlFlowHub::finalize` generates duplicate `Delete` updates for the same CFG edge. This can cause assertion in `fix-irreducible` pass.

Fixes #176553.
DeltaFile
+37-0llvm/test/Transforms/Util/control-flow-hub-finalize-same-succ-crash.ll
+2-1llvm/lib/Transforms/Utils/ControlFlowUtils.cpp
+39-12 files

LLVM/project b0eddb4.github/workflows release-binaries-all.yml

workflows/release-binaries: Run this job once a week to catch regressions (#176008)

This will increase the chances that we can have this job working for the
first release candidate.
DeltaFile
+3-1.github/workflows/release-binaries-all.yml
+3-11 files

LLVM/project e1f9ee8clang/lib/CodeGen CodeGenModule.cpp, clang/test/CodeGenOpenCL amdgpu-features.cl amdgpu-features-default-delta.cl

[RFC][Clang][AMDGPU] Emit only delta target-features to reduce IR bloat

Currently, AMDGPU functions have `target-features` attribute populated with all default features for the target GPU. This is redundant because the backend can derive these defaults from the `target-cpu` attribute via `AMDGPUTargetMachine::getFeatureString()`.

In this PR, for AMDGPU targets only:

- Functions without explicit target attributes no longer emit `target-features`
- Functions with `__attribute__((target(...)))` or `-target-feature` emit only features that differ from the target's defaults (delta)

The backend already handles missing `target-features` correctly by falling back to the TargetMachine's defaults.

A new cc1 flag `-famdgpu-emit-full-target-features` is added to emit full features when needed.

Example:

Before:

```llvm
attributes #0 = { "target-cpu"="gfx90a" "target-features"="+16-bit-insts,+atomic-buffer-global-pk-add-f16-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot1-insts,+dot2-insts,..." }

    [13 lines not shown]
DeltaFile
+341-12clang/test/OpenMP/amdgcn-attributes.cpp
+53-53clang/test/CodeGenOpenCL/amdgpu-features.cl
+70-0clang/test/CodeGenOpenCL/amdgpu-features-default-delta.cl
+43-5clang/lib/CodeGen/CodeGenModule.cpp
+4-6clang/test/CodeGenOpenCL/amdgpu-readonly-features-written-with-no-target.cl
+4-4clang/test/CodeGenOpenCL/amdgpu-enqueue-kernel.cl
+515-804 files not shown
+528-8310 files

LLVM/project 38be580.github/workflows release-binaries.yml

workflows/release-binaries: Fix attestation artifact name (#176417)

We were contructing the attestation artifact name using the arch and the
OS of the current runner instead of using the runner that the builds
were done on. This led to a conflict in artifact names between all the
release binary jobs.
DeltaFile
+3-1.github/workflows/release-binaries.yml
+3-11 files

LLVM/project 1529433clang/lib/CodeGen CodeGenModule.cpp, clang/test/CodeGenOpenCL amdgpu-features.cl amdgpu-features-default-delta.cl

[RFC][Clang][AMDGPU] Emit only delta target-features to reduce IR bloat

Currently, AMDGPU functions have `target-features` attribute populated with all default features for the target GPU. This is redundant because the backend can derive these defaults from the `target-cpu` attribute via `AMDGPUTargetMachine::getFeatureString()`.

In this PR, for AMDGPU targets only:

- Functions without explicit target attributes no longer emit `target-features`
- Functions with `__attribute__((target(...)))` or `-target-feature` emit only features that differ from the target's defaults (delta)

The backend already handles missing `target-features` correctly by falling back to the TargetMachine's defaults.

A new cc1 flag `-famdgpu-emit-full-target-features` is added to emit full features when needed.

Example:

Before:

```llvm
attributes #0 = { "target-cpu"="gfx90a" "target-features"="+16-bit-insts,+atomic-buffer-global-pk-add-f16-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot1-insts,+dot2-insts,..." }

    [13 lines not shown]
DeltaFile
+341-12clang/test/OpenMP/amdgcn-attributes.cpp
+53-53clang/test/CodeGenOpenCL/amdgpu-features.cl
+70-0clang/test/CodeGenOpenCL/amdgpu-features-default-delta.cl
+43-5clang/lib/CodeGen/CodeGenModule.cpp
+4-6clang/test/CodeGenOpenCL/amdgpu-readonly-features-written-with-no-target.cl
+4-4clang/test/CodeGenOpenCL/amdgpu-enqueue-kernel.cl
+515-804 files not shown
+528-8310 files

LLVM/project 739e997libc/src/__support/GPU allocator.cpp

[libc] Remove ballot on slab find (#176606)

Summary:
This negatively impacts performance, while the other changes in the
initial PR slightly improved it. This was originally done to make Volta
independent thread scheduling work, but that doesn't seem to work
correctly all the time either so we should make this faster.
DeltaFile
+9-8libc/src/__support/GPU/allocator.cpp
+9-81 files

LLVM/project 49cd842mlir/utils/vscode package-lock.json

[mlir][vscode] Remove resolved from lock file (#176611)

DeltaFile
+457-4,789mlir/utils/vscode/package-lock.json
+457-4,7891 files

LLVM/project 032eb06clang/test/CodeGenOpenCL amdgpu-features-illegal.cl, clang/test/SemaOpenCL builtins-amdgcn-wave32-func-attr.cl builtins-amdgcn-error-wave32.cl

[Clang][AMDGPU] Handle `wavefrontsize32` and `wavefrontsize64` features more robustly

We should also not allow `-wavefrontsize32` and `-wavefrontsize64` to be specified at the same time.
DeltaFile
+30-9llvm/lib/TargetParser/TargetParser.cpp
+14-7clang/test/CodeGenOpenCL/amdgpu-features-illegal.cl
+6-2flang/test/Driver/target-cpu-features-invalid.f90
+2-2clang/test/SemaOpenCL/builtins-amdgcn-wave32-func-attr.cl
+2-2clang/test/SemaOpenCL/builtins-amdgcn-error-wave32.cl
+54-225 files

LLVM/project d3dad64llvm/utils/gn/secondary/clang/lib/Analysis BUILD.gn

[gn build] Port 17ff9b3c67ab
DeltaFile
+0-1llvm/utils/gn/secondary/clang/lib/Analysis/BUILD.gn
+0-11 files

LLVM/project b8e3276mlir/utils/vscode package-lock.json

[mlir][vscode] Update lock file to match (#176608)

DeltaFile
+5,759-343mlir/utils/vscode/package-lock.json
+5,759-3431 files

LLVM/project 676b292mlir/utils/vscode package.json

[mlir][vscode] Update engine (#176605)

DeltaFile
+1-1mlir/utils/vscode/package.json
+1-11 files

LLVM/project 462673amlir/utils/vscode package.json

[mlir][vscode] Update dev dependencies (#176604)

Update to match vscode-clangd.
DeltaFile
+4-4mlir/utils/vscode/package.json
+4-41 files

LLVM/project 17ff9b3clang-tools-extra/clang-tidy/bugprone UnsafeFunctionsCheck.cpp, clang/include/clang/Analysis AnnexKDetection.h

Revert "[clang][analyzer] Add ReportInC99AndEarlier option to DeprecatedOrUnsafeBuf…" (#176603)

Reverts llvm/llvm-project#168704
Checking what causes the clang-bolt buildbot failure.
DeltaFile
+12-76clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp
+0-43clang/lib/Analysis/AnnexKDetection.cpp
+0-40clang/include/clang/Analysis/AnnexKDetection.h
+0-40clang/test/Analysis/security-deprecated-buffer-handling-report-modes.c
+6-19clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
+20-2clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp
+38-2204 files not shown
+38-23610 files

LLVM/project d5e14afmlir/utils/vscode language-configuration.json package.json

[mlir][vscode] Add angle bracket support to MLIR language configuration (#176602)

Add angle brackets (<>) to brackets, autoClosingPairs, and
surroundingPairs for better editing of types like tensor<3xf32>. Also
add colorizedBracketPairs for visual distinction between nested bracket
types.
DeltaFile
+10-1mlir/utils/vscode/language-configuration.json
+1-1mlir/utils/vscode/package.json
+11-22 files

LLVM/project f64b69bmlir/utils/vscode pdll-grammar.json

[mlir][vscode] Fix PDLL grammar character class regex (#176601)

The character class [aA-zZ_0-9] incorrectly matches characters between
ASCII 90-97 (Z-a range), which includes: [ \ ] ^ _ `. This should be
[a-zA-Z_0-9] for proper identifier matching.
DeltaFile
+8-8mlir/utils/vscode/pdll-grammar.json
+8-81 files