LLVM/project a166f0bllvm/lib/Target/AMDGPU AMDGPUISelLowering.cpp, llvm/test/CodeGen/AMDGPU load-constant-i1.ll sra.ll

[AMDGPU] performSraCombine - SRA(X,BW-1) - don't freeze HI operand for single (repeated) shift (#193468)

When splitting i64 SRA(X,BW-1) sign splat shifts, don't both freezing the HI upper i32 as only a single (repeated) shift will be generated

Noticed in a regression in #188206
DeltaFile
+318-320llvm/test/CodeGen/AMDGPU/load-constant-i1.ll
+28-25llvm/test/CodeGen/AMDGPU/sra.ll
+9-19llvm/test/CodeGen/AMDGPU/fptoi.i128.ll
+9-3llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+364-3674 files

LLVM/project fa6b47cclang/include/clang/Analysis/Analyses/LifetimeSafety Loans.h, clang/include/clang/Basic DiagnosticGroups.td

Revert "[LifetimeSafety] Add support for `new`/`delete` (#192504)"

This reverts commit b1175088531de1a3bae9942ef50d880fab6fe144.
DeltaFile
+0-230clang/test/Sema/warn-lifetime-safety.cpp
+0-50clang/test/Sema/warn-lifetime-safety-suggestions.cpp
+0-32clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+10-21clang/lib/Sema/SemaLifetimeSafety.h
+5-12clang/include/clang/Analysis/Analyses/LifetimeSafety/Loans.h
+2-10clang/include/clang/Basic/DiagnosticGroups.td
+17-3557 files not shown
+23-37513 files

LLVM/project d88a8a1clang/lib/CIR/Dialect/IR CIRDialect.cpp, mlir/include/mlir/Interfaces ControlFlowInterfaces.td ControlFlowInterfaces.h

[mlir][Interfaces] Use single interface method to query region-based control flow
DeltaFile
+40-40mlir/include/mlir/Interfaces/ControlFlowInterfaces.td
+43-19mlir/lib/Dialect/SCF/IR/SCF.cpp
+19-27clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+46-0mlir/include/mlir/Interfaces/ControlFlowInterfaces.h
+28-10mlir/lib/Interfaces/ControlFlowInterfaces.cpp
+17-4mlir/lib/Dialect/EmitC/IR/EmitC.cpp
+193-1009 files not shown
+229-11615 files

LLVM/project 2495863llvm/test/Transforms/LoopInterchange dependency-all-eq.ll

[LoopInterchange] Add test with dependency `[* =]` and `[= *]` (NFC)
DeltaFile
+117-0llvm/test/Transforms/LoopInterchange/dependency-all-eq.ll
+117-01 files

LLVM/project cdef7e6llvm/lib/Transforms/Scalar LoopInterchange.cpp, llvm/test/Transforms/LoopInterchange profitability-instorder.ll

[LoopInterchange] Take base pointer into account in profitability check
DeltaFile
+18-7llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+7-17llvm/test/Transforms/LoopInterchange/profitability-instorder.ll
+25-242 files

LLVM/project ab3e820llvm/lib/Transforms/Scalar LoopInterchange.cpp, llvm/test/Transforms/LoopInterchange dependency-all-eq.ll

[LoopInterchange] Change the cost model to interchange `[* =]`
DeltaFile
+30-53llvm/test/Transforms/LoopInterchange/dependency-all-eq.ll
+33-2llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+63-552 files

LLVM/project cd04215llvm/lib/Transforms/Scalar LoopInterchange.cpp, llvm/test/Transforms/LoopInterchange dependency-all-eq.ll pr43176-move-to-new-latch.ll

[LoopInterchange] Relax legality check to accept more patterns
DeltaFile
+103-42llvm/test/Transforms/LoopInterchange/dependency-all-eq.ll
+15-0llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+8-6llvm/test/Transforms/LoopInterchange/pr43176-move-to-new-latch.ll
+4-6llvm/test/Transforms/LoopInterchange/inner-only-reductions.ll
+6-3llvm/test/Transforms/LoopInterchange/legality-check.ll
+0-8llvm/test/Transforms/LoopInterchange/innermost-latch-uses-values-in-middle-header.ll
+136-651 files not shown
+140-697 files

LLVM/project 5fd8303llvm/test/Transforms/LoopInterchange profitability-instorder.ll

[LoopInterchange] Add test for multiple accesses to same base ptr (NFC)
DeltaFile
+96-12llvm/test/Transforms/LoopInterchange/profitability-instorder.ll
+96-121 files

LLVM/project 5bba0dbllvm/lib/Transforms/Scalar LoopInterchange.cpp, llvm/test/Transforms/LoopInterchange profitability-vectorization.ll lcssa-phi-outer-latch.ll

[LoopInterchange] Disable LoopCacheAnalysis-based heuristic by default
DeltaFile
+3-3llvm/test/Transforms/LoopInterchange/profitability-vectorization.ll
+1-2llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+1-1llvm/test/Transforms/LoopInterchange/lcssa-phi-outer-latch.ll
+1-1llvm/test/Transforms/LoopInterchange/loop-interchange-optimization-remarks.ll
+1-1llvm/test/Transforms/LoopInterchange/perserve-lcssa.ll
+1-1llvm/test/Transforms/LoopInterchange/pr57148.ll
+8-91 files not shown
+9-107 files

LLVM/project a12ebf7llvm/lib/Transforms/Scalar LoopInterchange.cpp

update
DeltaFile
+30-28llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+30-281 files

LLVM/project 567583cclang/test/CodeGen/SystemZ builtins-systemz-zvector.c builtins-systemz-vector.c

[Clang][SystemZ] Fix unwanted unsequenced volatile accesses in codegen tests (#190212)

This PR  fix(as I hope)  #186584 

For fix I write one-use program that found and renamed volatile var in
funcall. After use tests seems valid(but more verbose) and it's pass.

Link to script: https://pastebin.com/QR71We5b
DeltaFile
+897-867clang/test/CodeGen/SystemZ/builtins-systemz-zvector.c
+220-200clang/test/CodeGen/SystemZ/builtins-systemz-vector.c
+165-146clang/test/CodeGen/SystemZ/builtins-systemz-zvector2.c
+148-116clang/test/CodeGen/SystemZ/builtins-systemz-zvector5.c
+84-80clang/test/CodeGen/SystemZ/builtins-systemz-i128.c
+82-66clang/test/CodeGen/SystemZ/builtins-systemz-zvector3.c
+1,596-1,47510 files not shown
+1,873-1,71816 files

LLVM/project b965d52llvm/lib/CodeGen/GlobalISel InstructionSelect.cpp

[LLVM][GlobalISel] Remove unnecessary comment (#193333)

Remove unnecessary FIXME from
`InstructionSelect.cpp:selectMachineFunction()`.
Reference: [[LLVM][GlobalISel] Support Blocks Created During Instruction
Selection #192625](https://github.com/llvm/llvm-project/pull/192625)
DeltaFile
+1-2llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp
+1-21 files

LLVM/project 2c8d22dclang/lib/CIR/Dialect/IR CIRDialect.cpp, mlir/include/mlir/Interfaces ControlFlowInterfaces.td ControlFlowInterfaces.h

[mlir][Interfaces] Use single interface method to query region-based control flow
DeltaFile
+56-54mlir/include/mlir/Interfaces/ControlFlowInterfaces.td
+43-19mlir/lib/Dialect/SCF/IR/SCF.cpp
+62-0mlir/include/mlir/Interfaces/ControlFlowInterfaces.h
+19-27clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+13-10mlir/lib/Interfaces/ControlFlowInterfaces.cpp
+17-4mlir/lib/Dialect/EmitC/IR/EmitC.cpp
+210-1149 files not shown
+246-13015 files

LLVM/project c80aca5llvm/lib/Debuginfod Debuginfod.cpp

Review: debuginfod, warn but not fail
DeltaFile
+3-1llvm/lib/Debuginfod/Debuginfod.cpp
+3-11 files

LLVM/project 90cb394llvm/include/llvm/Support CachePruning.h

Review: move the on failure line
DeltaFile
+2-2llvm/include/llvm/Support/CachePruning.h
+2-21 files

LLVM/project f418a7bllvm/lib/Debuginfod Debuginfod.cpp, llvm/lib/LTO ThinLTOCodeGenerator.cpp

Review: ErrOrPruned->PrunedOrErr
DeltaFile
+3-3llvm/lib/Debuginfod/Debuginfod.cpp
+3-3llvm/lib/LTO/ThinLTOCodeGenerator.cpp
+6-62 files

LLVM/project 695a2ccllvm/lib/Support CachePruning.cpp

Review: More verbose error on disk space failure
DeltaFile
+7-5llvm/lib/Support/CachePruning.cpp
+7-51 files

LLVM/project 2f0b934llvm/include/llvm/Support CachePruning.h

Review: typo Peform->Perform
DeltaFile
+1-1llvm/include/llvm/Support/CachePruning.h
+1-11 files

LLVM/project 666c568llvm/lib/Debuginfod Debuginfod.cpp, llvm/lib/LTO ThinLTOCodeGenerator.cpp

Review: no-auto, use Expected<bool>
DeltaFile
+2-1llvm/lib/Debuginfod/Debuginfod.cpp
+1-1llvm/lib/LTO/ThinLTOCodeGenerator.cpp
+3-22 files

LLVM/project f8c660flldb/source/Core DataFileCache.cpp

Missing LLDB side
DeltaFile
+6-1lldb/source/Core/DataFileCache.cpp
+6-11 files

LLVM/project 1a67675lld/ELF LTO.cpp, lld/wasm LTO.cpp

[Support][Cache] Make `pruneCache` return an `Expected`

When `sys::fs::disk_space` would fail in during a call to `pruneCache`,
it would report a `fatal_error`. However, a failure to prune doesn't
mean the caller should fail catastrophically.

Downstream, we use LLVM's cache in the OpenCL runtime. A failure to prune
the cache can be safely ignored without stopping the user's application.
DeltaFile
+4-4llvm/lib/Support/CachePruning.cpp
+5-1llvm/lib/LTO/ThinLTOCodeGenerator.cpp
+4-1llvm/lib/Debuginfod/Debuginfod.cpp
+3-1llvm/include/llvm/Support/CachePruning.h
+2-1lld/wasm/LTO.cpp
+2-1lld/ELF/LTO.cpp
+20-93 files not shown
+24-129 files

LLVM/project 6ec142fllvm/lib/LTO ThinLTOCodeGenerator.cpp

Extra )
DeltaFile
+2-1llvm/lib/LTO/ThinLTOCodeGenerator.cpp
+2-11 files

LLVM/project 5659f86clang/docs UsersManual.rst, clang/include/clang/Basic CodeGenOptions.h

[clang] Implement -fstrict-bool (#160790)

This PR implements the [-fstrict-bool
RFC](https://discourse.llvm.org/t/defining-what-happens-when-a-bool-isn-t-0-or-1/86778/).

``bool`` values are stored as i8 in memory, and it is undefined behavior
for a ``bool`` value to be any value other than 0 or 1. Clang exploits
this with range metadata: ``bool`` load instructions at any optimization
level above -O0 are assumed to only have their lowest bit set. This can
create memory safety problems when other bits are set, for instance
through ``memcpy``.

This change allows users to configure this behavior in three ways:

* ``-fstrict-bool`` represents the status quo; range metadata is added
at levels above -O0 and allows the compiler to assume in-memory ``bool``
values are always either 0 or 1.
* ``-fno-strict-bool[={truncate|nonzero}]`` disables range metadata on
``bool`` loaded values and offers two ways to interpret the loaded

    [7 lines not shown]
DeltaFile
+176-0clang/test/CodeGenHLSL/builtins/BoolSwizzles.hlsl
+72-0clang/test/CodeGen/strict-bool.c
+46-17clang/lib/CodeGen/CGExpr.cpp
+30-0clang/docs/UsersManual.rst
+28-0clang/test/Driver/strict-bool.c
+26-0clang/include/clang/Basic/CodeGenOptions.h
+378-178 files not shown
+463-3914 files

LLVM/project 2a3639cllvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp, llvm/test/CodeGen/RISCV combine-is_fpclass.ll

[DAG] computeKnownFPClass - add ISD::EXTRACT_VECTOR_ELT handling (#190307)

This PR implements `ISD::EXTRACT_VECTOR_ELT` in
`SelectionDAG::computeKnownFPClass` to propagate floating-point class
information from vector sources to extracted scalar elements.

Additionally, added RISC-V test coverage for `ISD::EXTRACT_VECTOR_ELT`.

Fixes #189585
DeltaFile
+164-0llvm/test/CodeGen/RISCV/combine-is_fpclass.ll
+19-0llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+183-02 files

LLVM/project 6fcc4d7clang/docs ReleaseNotes.rst, clang/include/clang/Basic DiagnosticSemaKinds.td

Revert "[Clang] Diagnose UB and emit error when identifier has both internal and external linkage" (#193462)

Reverts llvm/llvm-project#192116

See comments at
https://github.com/llvm/llvm-project/pull/192116#pullrequestreview-4153002566
DeltaFile
+0-36clang/test/Sema/linkage-internal-extern.c
+0-19clang/test/Sema/linkage-internal-extern.cpp
+0-19clang/lib/Sema/SemaDecl.cpp
+6-4clang/test/C/C2y/n3410.c
+0-6clang/docs/ReleaseNotes.rst
+0-3clang/include/clang/Basic/DiagnosticSemaKinds.td
+6-871 files not shown
+7-887 files

LLVM/project 17be5a7lldb/tools/debugserver/source RNBRemote.cpp RNBRemote.h

[debugserver][NFCI] Factor out logic handling breakpoint packets (#192912)

This creates a helper function that can be shared with the upcoming
MultiBreakpoint packet.

It is largely NFC with one logging exception: where we were previously
sending an "ILL_FORMED" error, we would identify the file/line in the
location where the error was emitted. This has been lost, however the
error messages are still unique enough that the line can be recovered
from the error message, and this is a principle we've been trying to
follow.

There was also a comment about gdb and refcounting of breakpoints. Such
comment was removed as it did not seem applicable to any line of code.
DeltaFile
+41-28lldb/tools/debugserver/source/RNBRemote.cpp
+24-0lldb/tools/debugserver/source/RNBRemote.h
+65-282 files

LLVM/project 5fc5c11clang-tools-extra/clang-tidy/readability IdentifierLengthCheck.cpp IdentifierLengthCheck.h, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy][readability-identifier-length] Add a line count threshold (without std::transform_reduce) (#193276)

This PR is a new attempt at implementing the feature described in
#185318 after the rollback of #185319.
DeltaFile
+85-0clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-line-count-threshold.cpp
+57-1clang-tools-extra/clang-tidy/readability/IdentifierLengthCheck.cpp
+18-0clang-tools-extra/docs/clang-tidy/checks/readability/identifier-length.rst
+5-0clang-tools-extra/docs/ReleaseNotes.rst
+2-0clang-tools-extra/clang-tidy/readability/IdentifierLengthCheck.h
+167-15 files

LLVM/project 6d097d2clang/tools/c-index-test CMakeLists.txt

[clang] Suppress glibc C11 extension warning in `c-index-test` (#193335)

`c-index-test.c` is still compiled with `-std=gnu89` on purpose. That acts
as a useful guard rail: it helps keep the file compatible with older C
dialects instead of silently picking up newer C features because Clang
defaults to a newer language mode.

Ubuntu 26.04 LTS updates glibc's `string.h` so `strchr`, `strrchr` and
`strstr` are routed through `_Generic`-based macros. When Clang compiles
`c-index-test.c` with `-std=gnu89` and `-pedantic`, that now triggers
`-Wc11-extensions` warnings even though the source itself is not using
C11 features.

Keep the gnu89 check in place and suppress this warning only for Clang
when building c-index-test.

Fixes #193356
DeltaFile
+6-0clang/tools/c-index-test/CMakeLists.txt
+6-01 files

LLVM/project 9486367clang/docs ReleaseNotes.rst, clang/include/clang/Basic DiagnosticSemaKinds.td

Revert "[Clang] Diagnose UB and emit error when identifier has both internal …"

This reverts commit 1e2175ec4df79de3c18c504dea0dcbaab4b38306.
DeltaFile
+0-36clang/test/Sema/linkage-internal-extern.c
+0-19clang/lib/Sema/SemaDecl.cpp
+0-19clang/test/Sema/linkage-internal-extern.cpp
+6-4clang/test/C/C2y/n3410.c
+0-6clang/docs/ReleaseNotes.rst
+0-3clang/include/clang/Basic/DiagnosticSemaKinds.td
+6-871 files not shown
+7-887 files

LLVM/project b2f3532utils/bazel/llvm-project-overlay/clang BUILD.bazel

Revert "[Bazel] Fixes 8e56a89" (#193459)

Reverts llvm/llvm-project#193450

Since original change was also reverted in
582958c4337f539e650096c0257a322315298e1a
DeltaFile
+1-4utils/bazel/llvm-project-overlay/clang/BUILD.bazel
+1-41 files