LLVM/project 2aec54eclang/include/clang/Analysis/Analyses/LifetimeSafety LifetimeAnnotations.h, clang/lib/Analysis/LifetimeSafety LifetimeAnnotations.cpp

 Merge lifetimebound attribute on implicit 'this' across method redeclarations
DeltaFile
+138-0clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
+20-12clang/lib/Analysis/LifetimeSafety/LifetimeAnnotations.cpp
+22-0clang/test/Sema/warn-lifetime-safety.cpp
+21-0clang/test/SemaCXX/attr-lifetimebound.cpp
+7-0clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeAnnotations.h
+208-125 files

LLVM/project f4d4caallvm/include/llvm/Target CGPassBuilderOption.h, llvm/lib/CodeGen TargetPassConfig.cpp

[LLVM][CodeGen] Rename `gc-empty-basic-blocks` to `enable-gc-empty-basic-blocks` (#176018)

Rename the `gc-empty-basic-blocks` command line option to
`enable-gc-empty-basic-blocks` in preparation of adding calls to
initializing the pass in `initializeCodeGen` and also make the flag more
consistent with other existing flags to enable or disable passes.

Keep `gc-empty-basic-blocks` as an alias to allow all users to migrate
to the new option.
DeltaFile
+12-5llvm/lib/CodeGen/TargetPassConfig.cpp
+4-4llvm/test/CodeGen/X86/gc-empty-basic-blocks.ll
+2-2llvm/test/CodeGen/X86/basic-block-address-map-empty-block.ll
+1-1llvm/include/llvm/Target/CGPassBuilderOption.h
+19-124 files

LLVM/project 8e493b8llvm/include/llvm/Support Compiler.h

[Support] Suppress old MSVC warning for [[msvc::no_unique_address]] (#176130)

MSVC versions prior to 19.43 (Visual Studio 2022 version 17.13) emit a
warning when using the [[msvc::no_unique_address]] attribute prior to
C++20.

This is now considered a bug and fixed in later releases of MSVC.
Suppress the warning for older MSVC versions by disabling the warning
around the attribute usage. This allows for warning-free builds when
targeting older MSVC versions.

More details and discussion about the warning can be found here:
https://developercommunity.visualstudio.com/t/msvc::no_unique_address-Should-Not-W/10118435
DeltaFile
+16-1llvm/include/llvm/Support/Compiler.h
+16-11 files

LLVM/project 6309cd8llvm/docs MIRLangRef.rst, llvm/include/llvm/CodeGen MachineInstrBuilder.h

Revert "[NFC][MI] Tidy Up RegState enum use (1/2)" (#176190)

Reverts llvm/llvm-project#176091

Reverting because some compilers were erroring on the call to
`Reg.isReg()` (which is not `constexpr`) in a `constexpr` function.
DeltaFile
+51-66llvm/include/llvm/CodeGen/MachineInstrBuilder.h
+17-17llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+15-15llvm/docs/MIRLangRef.rst
+10-14llvm/lib/CodeGen/MIRParser/MIParser.cpp
+9-8llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+8-8llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
+110-12817 files not shown
+142-15623 files

LLVM/project e39d44cllvm/test/CodeGen/X86 combine-pclmul.ll

[X86] Add tests showing failure to split/concat X86ISD::PCLMULQDQ nodes (#176179)

DeltaFile
+96-0llvm/test/CodeGen/X86/combine-pclmul.ll
+96-01 files

LLVM/project 1d616cdllvm/docs MIRLangRef.rst, llvm/include/llvm/CodeGen MachineInstrBuilder.h

[NFC][MI] Tidy Up RegState enum use (1/2) (#176091)

This Change is to prepare to make RegState into an enum class. It:
- Updates documentation to match the order in the code.
- Brings the `get<>RegState` functions together and makes them
`constexpr`.
- Adopts the `get<>RegState` where RegStates were being chosen with
ternary operators in backend code.
- Introduces `hasRegState` to make querying RegState easier once it is
an enum class.
- Adopts `hasRegState` where equivalent was done with bitwise
arithmetic.
- Introduces `RegState::NoFlags`, which will be used for the lack of
flags.
- Documents that `0x1` is a reserved flag value used to detect if
someone is passing `true` instead of flags (due to implicit bool to
unsigned conversions).
- Updates two calls to `MachineInstrBuilder::addReg` which were passing
`false` to the flags operand, to no longer pass a value.
- Documents that `getRegState` seems to have forgotten a call to
`getEarlyClobberRegState`.
DeltaFile
+66-51llvm/include/llvm/CodeGen/MachineInstrBuilder.h
+17-17llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+15-15llvm/docs/MIRLangRef.rst
+14-10llvm/lib/CodeGen/MIRParser/MIParser.cpp
+8-9llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+8-8llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
+128-11017 files not shown
+156-14223 files

LLVM/project 1ea3bd4clang/include/clang/Analysis/Analyses/LifetimeSafety LifetimeAnnotations.h, clang/lib/Analysis/LifetimeSafety LifetimeAnnotations.cpp

 Merge lifetimebound attribute on implicit 'this' across method redeclarations
DeltaFile
+138-0clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
+18-12clang/lib/Analysis/LifetimeSafety/LifetimeAnnotations.cpp
+22-0clang/test/Sema/warn-lifetime-safety.cpp
+21-0clang/test/SemaCXX/attr-lifetimebound.cpp
+7-0clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeAnnotations.h
+206-125 files

LLVM/project 444adbellvm/lib/Target/RISCV RISCVRegisterInfo.td

[RISCV] Change FPR256 to use the same allocation order as FPR16/32/64/128. (#176097)

The previous order was the LLVM 11 order for FPR16/32/64/128.
DeltaFile
+1-7llvm/lib/Target/RISCV/RISCVRegisterInfo.td
+1-71 files

LLVM/project 282a065llvm/include/llvm/Support KnownFPClass.h, llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp

InstCombine: Handle multiple uses fabs in SimplifyDemandedFPClass (#176035)

DeltaFile
+85-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass.ll
+28-0llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+6-0llvm/include/llvm/Support/KnownFPClass.h
+119-03 files

LLVM/project a866030clang/test/Sema warn-lifetime-analysis-nocfg.cpp, clang/test/Sema/Inputs lifetime-analysis.h

[LifetimeSafety] Test lifetime safety on stmt-local analysis test suite (#175906)

Add CFG-based lifetime analysis tests for dangling pointer detection
alongside the existing AST-based analysis.

This change helps validate that the new CFG-based lifetime analysis
correctly detects the same dangling pointer issues as the existing
AST-based analysis. It also documents current limitations of the
CFG-based approach with FIXME comments, providing a roadmap for future
improvements. The test ensures that both analysis methods can work
side-by-side, with the CFG-based analysis eventually intended to replace
the AST-based approach.
DeltaFile
+219-56clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
+10-1clang/test/Sema/Inputs/lifetime-analysis.h
+229-572 files

LLVM/project 513062dclang-tools-extra/clang-tidy/performance MoveConstArgCheck.cpp, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] Fix performance-move-const-arg for trivially copyable types with private copy constructor (#175449)

Closes [#174826](https://github.com/llvm/llvm-project/issues/174826)
DeltaFile
+34-0clang-tools-extra/test/clang-tidy/checkers/performance/move-const-arg.cpp
+4-0clang-tools-extra/docs/ReleaseNotes.rst
+2-1clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp
+40-13 files

LLVM/project fc10fbbllvm/lib/Target/AMDGPU AMDGPUAttributor.cpp, llvm/test/CodeGen/AMDGPU amdgpu-attributor-nocallback-intrinsics.ll amdgpu-attributor-intrinsic-missing-nocallback.ll

Reapply "AMDGPU: Do not infer implicit inputs for !nocallback intrinsics" (#176081)

This reverts #174224 and re-applies #131759 .

Note: If #117544 is reverted, this should also be reverted.
DeltaFile
+74-0llvm/test/CodeGen/AMDGPU/amdgpu-attributor-nocallback-intrinsics.ll
+31-0llvm/test/CodeGen/AMDGPU/amdgpu-attributor-intrinsic-missing-nocallback.ll
+23-4llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp
+128-43 files

LLVM/project 72a20b8llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 crash_getpointersdiff-nullopt.ll

[SLPVectorizer] Check std::optional coming out of getPointersDiff (#175784)

Fixes https://github.com/llvm/llvm-project/issues/175768 
There are other unchecked uses std::optional in this pass but I couldn't
figure out a test that triggers them
DeltaFile
+109-0llvm/test/Transforms/SLPVectorizer/X86/crash_getpointersdiff-nullopt.ll
+20-7llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+129-72 files

LLVM/project 6fd8c36llvm/lib/CodeGen/AsmPrinter DwarfDebug.cpp, llvm/test/DebugInfo/MIR/AArch64 dbgcall-site-expr-entry-value.mir

[DebugInfo] Drop stale entry value-limitation for call site values (#172340)

Entry value operations could previously not be combined with other
operations in debug expressions, meaning that we had to skip emitting
call site values in such cases. This DIExpression limitation was removed
in 57a371d7010802804343d17b85ac5e0d28d0f309, so we should be free to
emit call site values for such cases now, for example:

    extern void call(int, int);
    void entry_value (int param) {
        call(param + 222, param - 444);
    }

This change exposed a call site parameter entry order issue in the
dbgcall-site-expr-entry-value.mir test case. That ordering issue is
tracked in #43998, and I don't think there is anything inherent in this
patch that caused that.
DeltaFile
+8-5llvm/test/DebugInfo/MIR/AArch64/dbgcall-site-expr-entry-value.mir
+0-5llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+8-102 files

LLVM/project f8e8383clang/lib/Driver/ToolChains Clang.cpp, clang/lib/Lex LiteralSupport.cpp

remove implementation details from driver, use const reference
DeltaFile
+6-10clang/lib/Driver/ToolChains/Clang.cpp
+11-2llvm/lib/Support/TextEncoding.cpp
+1-2llvm/include/llvm/Support/TextEncoding.h
+1-1llvm/include/llvm/TargetParser/Triple.h
+1-1clang/lib/Lex/LiteralSupport.cpp
+20-165 files

LLVM/project bfb973bopenmp CMakeLists.txt

Standalone removal message
DeltaFile
+8-0openmp/CMakeLists.txt
+8-01 files

LLVM/project 7f3bd45openmp/docs SupportAndFAQ.rst

Undo docs change
DeltaFile
+0-16openmp/docs/SupportAndFAQ.rst
+0-161 files

LLVM/project bde808bclang/include/clang/AST OpenMPClause.h, clang/test/OpenMP task_transparent_serialization.cpp taskloop_codegen.cpp

[CLANG][OpenMP] Add support for OpenMP6.0 transparent clause. (#174646)

Add basic parsing and semantic support for transparent clause for task
andtaskloop directives described in Section 17.9.6 of
https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-6-0.pdf
.
DeltaFile
+118-0clang/test/OpenMP/task_transparent_serialization.cpp
+93-0clang/test/OpenMP/taskloop_codegen.cpp
+88-0clang/test/OpenMP/task_ast_print.cpp
+74-0clang/test/OpenMP/task_codegen.cpp
+74-0clang/test/OpenMP/task_transparent_messages.cpp
+72-0clang/include/clang/AST/OpenMPClause.h
+519-018 files not shown
+704-224 files

LLVM/project 7cb3928openmp CMakeLists.txt

Merge commit '46dd36594239439a802ef705b3ac2d8f40cd273e' into HEAD
DeltaFile
+0-2openmp/CMakeLists.txt
+0-21 files

LLVM/project 36a72cfllvm/test/MC/AMDGPU gfx8_asm_vop3.s gfx7_asm_vop3.s, llvm/test/MC/Disassembler/AMDGPU gfx9_vop3.txt

Merge branch 'main' into users/meinersbur/openmp_remove-standalone-build
DeltaFile
+42,349-42,348llvm/test/MC/AMDGPU/gfx8_asm_vop3.s
+41,419-41,418llvm/test/MC/AMDGPU/gfx7_asm_vop3.s
+36,428-36,427llvm/test/MC/AMDGPU/gfx9_asm_vop3.s
+28,175-28,174llvm/test/MC/AMDGPU/gfx9_asm_vopc.s
+22,711-22,884llvm/test/MC/Disassembler/AMDGPU/gfx9_vop3.txt
+22,276-22,275llvm/test/MC/AMDGPU/gfx8_asm_vopc.s
+193,358-193,52611,882 files not shown
+1,892,593-1,394,87411,888 files

LLVM/project d012dafllvm/lib/Target/AMDGPU GCNRegPressure.cpp GCNSchedStrategy.cpp, llvm/test/CodeGen/AMDGPU swdev-549940.ll

[AMDGPU] Rematerialize VGPR candidates when SGPR spills to VGPR over the VGPR limit

Before, when selecting candidates to rematerialize, we would only
consider SGPR candidates when there was an excess of SGPR registers.

Failing to eliminate the excess would result in spills to VGPRs.
This is normally not an issue, unless spilling to VGPRs results in
excess VGPRs.

This patch does 2 things:
* It relaxes the GCNRPTarget success criteria: now we accept regions
  where we spill SGPRs to VGPRs, as long as this does not end up in
  excess VGPRs.
* It changes isSaveBeneficial to consider the excess VGPRs (which
  includes the SGPRs that would be spilled to VGPR).

With these changes, the compiler rematerializes VGPRs when the excess
SGPRs would result in VGPR excess.


    [4 lines not shown]
DeltaFile
+29-19llvm/lib/Target/AMDGPU/GCNRegPressure.cpp
+12-1llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
+6-0llvm/lib/Target/AMDGPU/GCNRegPressure.h
+1-1llvm/test/CodeGen/AMDGPU/swdev-549940.ll
+48-214 files

LLVM/project 6bb2e77llvm/test/CodeGen/X86 combine-pclmul.ll

[X86] combine-pclmul.ll - use non-constant values for demanded elts tests (#176165)

DeltaFile
+120-124llvm/test/CodeGen/X86/combine-pclmul.ll
+120-1241 files

LLVM/project 537544cllvm/test/CodeGen/AMDGPU swdev-549940.ll

[NFC] Pre-Commit big problematic test derived from the issue we're trying to solve
DeltaFile
+609-0llvm/test/CodeGen/AMDGPU/swdev-549940.ll
+609-01 files

LLVM/project 41f66ballvm/lib/Target/AMDGPU GCNRegPressure.cpp

[NFC][AMDGPU] Refactor common code computing excess register preassure into RegExcess class
DeltaFile
+47-45llvm/lib/Target/AMDGPU/GCNRegPressure.cpp
+47-451 files

LLVM/project d17e7b6clang/test/Sema warn-lifetime-analysis-nocfg.cpp, clang/test/Sema/Inputs lifetime-analysis.h

[LifetimeSafety] Test lifetime safety on stmt-local analysis test suite
DeltaFile
+219-56clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
+10-1clang/test/Sema/Inputs/lifetime-analysis.h
+229-572 files

LLVM/project f997a1ellvm CMakeLists.txt, llvm/runtimes CMakeLists.txt

[openmp] Add support for Arm64X to libomp

This patch allows building libomp.dll and libomp.lib as Arm64X binaries
containing both arm64 and arm64ec code and useable from applications
compiled for both architectures.
DeltaFile
+97-0openmp/runtime/cmake/arm64x.cmake
+16-0llvm/CMakeLists.txt
+11-0openmp/runtime/CMakeLists.txt
+6-0llvm/runtimes/CMakeLists.txt
+130-04 files

LLVM/project 4d315aellvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp, llvm/test/Transforms/InstCombine simplify-demanded-fpclass.ll

InstCombine: Consider nsz when simplifying fabs/fneg uses

Later this trick should also be applied in the single use
case.
DeltaFile
+11-2llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+3-3llvm/test/Transforms/InstCombine/simplify-demanded-fpclass.ll
+14-52 files

LLVM/project 0379e6bllvm/include/llvm/Support KnownFPClass.h, llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp

InstCombine: Handle multiple use fneg(fabs(x)) in SimplifyDemandedFPClass

This ends up being smarter than the single use case, so these should
be merged at some point.
DeltaFile
+169-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass.ll
+43-10llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+6-0llvm/include/llvm/Support/KnownFPClass.h
+218-103 files

LLVM/project 2622087clang/docs MSVCCompatibility.rst

Fix typo in MSVCCompatibility.rst (#176057)

DeltaFile
+1-1clang/docs/MSVCCompatibility.rst
+1-11 files

LLVM/project 0c5c920llvm/lib/Target/SPIRV SPIRVLegalizerInfo.cpp SPIRVPostLegalizer.cpp, llvm/test/CodeGen/SPIRV/legalization vector-index-scalarization.ll spv-extractelt-legalization.ll

[SPIRV] Improve vector legalization and type deduction (#175067)

This patch adds support for scalarizing vector loads in the legalizer
and
implements legalization for the spv_const_composite intrinsic. It also
refactors stack temporary creation for vector operations to ensure
correct
SPIR-V types are assigned. Additionally, type deduction in the
PostLegalizer is improved to handle GEP and Load instructions.

Fixes https://github.com/llvm/llvm-project/issues/170534
DeltaFile
+170-0llvm/test/CodeGen/SPIRV/legalization/vector-index-scalarization.ll
+129-30llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
+84-1llvm/lib/Target/SPIRV/SPIRVPostLegalizer.cpp
+6-8llvm/test/CodeGen/SPIRV/legalization/spv-extractelt-legalization.ll
+389-394 files