LLVM/project 0899273llvm/lib/Transforms/Vectorize LoopVectorize.cpp

[VPlan] Use early continue in ::buildVPlansWithVPRecipes (NFC). (#193979)

Reduce nesting by using early continue, split off from
https://github.com/llvm/llvm-project/pull/192868
DeltaFile
+25-22llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+25-221 files

LLVM/project 4837b0aclang/lib/Analysis/LifetimeSafety Checker.cpp, clang/test/Sema warn-lifetime-safety-suggestions.cpp

[LifetimeSafety] Suppress suggestion/inference for moved loans (#193899)

Fixes https://github.com/llvm/llvm-project/issues/193747
DeltaFile
+17-0clang/test/Sema/Inputs/lifetime-analysis.h
+17-0clang/test/Sema/warn-lifetime-safety-suggestions.cpp
+9-4clang/lib/Analysis/LifetimeSafety/Checker.cpp
+43-43 files

LLVM/project 785d724llvm/lib/Target/AMDGPU VOPDInstructions.td, llvm/test/MC/Disassembler/AMDGPU gfx1250_dasm_vopd3_unused_operands.txt

[AMDGPU][Disassembler] Permit unneeded VOPD3 operands to be non-zero (#193974)

Use ? instead of 0 in the tablegen definitions for those unused operands
of VOPD3 instructions.
This enables the instruction to be disassembled regardless of what bits
are in those fields, which helps diagnose broken code. Previously, the
disassembler would reject these.
DeltaFile
+36-0llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_vopd3_unused_operands.txt
+4-4llvm/lib/Target/AMDGPU/VOPDInstructions.td
+40-42 files

LLVM/project c92bf56lldb/docs/use aarch64-linux.md, lldb/source/Plugins/ABI/AArch64 ABISysV_arm64.cpp

[lldb][AArch64][Linux] Rename "por" register to "por_el0" (#193983)

As agreed with my Arm colleagues working on GDB.

The suffix means we are matching the architectural name exactly, and
reducing confusion if you're
debuging multiple exception levels where there could be por_el<N> as
well.

In the process of updating the tests I found some
"register read" output has changed alignment so I
have fixed that too.
DeltaFile
+29-21lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp
+11-11lldb/test/API/linux/aarch64/permission_overlay/TestAArch64LinuxPOE.py
+11-10lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.cpp
+6-6lldb/docs/use/aarch64-linux.md
+4-4lldb/test/API/linux/aarch64/permission_overlay/main.c
+3-3lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.h
+64-553 files not shown
+67-589 files

LLVM/project 52534a1clang/lib/AST StmtProfile.cpp, clang/test/Modules callable-require-clause-merge.cppm polluted-operator.cppm

Revert "[C++20] [Modules] Don't profiling the callee of CXXFoldExpr (#190732)" (#193975)

This reverts commit 4c2e49dc5ce3125be9fb07dcefe9be970ce739ec.

See the discussion in https://github.com/llvm/llvm-project/pull/193885
for detail
DeltaFile
+0-35clang/test/Modules/callable-require-clause-merge.cppm
+1-29clang/lib/AST/StmtProfile.cpp
+7-0clang/test/Modules/polluted-operator.cppm
+8-643 files

LLVM/project f1f2022libc/docs CMakeLists.txt, libc/docs/headers index.rst

[libc][docs] Add sys/uio.h implementation status (#122006) (#193980)

Add sys/uio.h implementation-status docs to llvm-libc.
DeltaFile
+5-0libc/utils/docgen/sys/uio.yaml
+1-0libc/docs/CMakeLists.txt
+1-0libc/docs/headers/index.rst
+7-03 files

LLVM/project 2168f4bflang/test/Lower pointer-assignments.f90 pointer-association-polymorphic.f90

[flang][NFC] Converted five tests from old lowering to new lowering (part 48) (#193889)

Tests converted from test/Lower: pointer-args-caller.f90,
pointer-assignments.f90, pointer-association-polymorphic.f90,
pointer-default-init.f90, pointer-disassociate.f90
DeltaFile
+159-146flang/test/Lower/pointer-assignments.f90
+66-86flang/test/Lower/pointer-association-polymorphic.f90
+38-36flang/test/Lower/pointer-disassociate.f90
+38-27flang/test/Lower/pointer-args-caller.f90
+5-4flang/test/Lower/pointer-default-init.f90
+306-2995 files

LLVM/project c49b177clang-tools-extra/clangd ModulesBuilder.cpp, clang-tools-extra/clangd/unittests PrerequisiteModulesTest.cpp

[clangd] [C++20] [Modules] Introduce GC for clangd built modules (#193973)

This patch introduces simple GC for clangd built module files to avoid
the clangd built module cache to increase infinitely.

The strategy is, in a clangd built module file cache, if the clangd
built module (we think all PCM files in clangd cache are built by
clangd) was not accessed in a time (by default 3 day, controlled by
--modules-builder-versioned-gc-threshold-seconds),clangd will remove it.

The strategy is not perfect. e.g., I heard in some systems, the atime
was forbid or not update. But given a trade off between usability and
maintainability. I feel the current stategy is fine.

AI assisted.
DeltaFile
+169-0clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
+89-0clang-tools-extra/clangd/ModulesBuilder.cpp
+258-02 files

LLVM/project 771440flibc/docs CMakeLists.txt, libc/docs/headers index.rst

[libc][docs] Add dlfcn.h implementation status (#122006) (#193972)

Add dlfcn.h implementation-status docs to llvm-libc.
DeltaFile
+21-0libc/utils/docgen/dlfcn.yaml
+1-0libc/docs/CMakeLists.txt
+1-0libc/docs/headers/index.rst
+23-03 files

LLVM/project c35ef8aflang/lib/Parser openmp-parsers.cpp, libclc CMakeLists.txt

Merge branch 'main' into users/usx95/04-24-shared_ptr_false_positive
DeltaFile
+10-10flang/lib/Parser/openmp-parsers.cpp
+1-1libclc/CMakeLists.txt
+11-112 files

LLVM/project 6c7d16clibclc CMakeLists.txt

[libclc] Use 'LLVM_DEFAULT_TARGET_TRIPLE' instead of 'LLVM_RUNTIMES_TARGET' (#193969)

Summary:
The 'LLVM_RUNTIMES_TARGET' variable is the raw value used by the LLVM
CMake. It can contain multilib arguments which will not compile when
used as a triple. The more canonical value is
`LLVM_DEFAULT_TARGET_TRIPLE`, which is used by flang-rt, libc, openmp,
etc.
DeltaFile
+1-1libclc/CMakeLists.txt
+1-11 files

LLVM/project 38c0b52clang/lib/Analysis/LifetimeSafety Checker.cpp

address comments
DeltaFile
+9-8clang/lib/Analysis/LifetimeSafety/Checker.cpp
+9-81 files

LLVM/project d76fcadclang/lib/Analysis/LifetimeSafety Checker.cpp

fix docs
DeltaFile
+2-2clang/lib/Analysis/LifetimeSafety/Checker.cpp
+2-21 files

LLVM/project 57d0dd3clang/lib/Analysis/LifetimeSafety Checker.cpp, clang/test/Sema warn-lifetime-safety-suggestions.cpp

shared_ptr_false_positive
DeltaFile
+17-0clang/test/Sema/Inputs/lifetime-analysis.h
+17-0clang/test/Sema/warn-lifetime-safety-suggestions.cpp
+4-0clang/lib/Analysis/LifetimeSafety/Checker.cpp
+38-03 files

LLVM/project 8e5b383flang/lib/Parser openmp-parsers.cpp

[flang][OpenMP] Rename dirSpec to spec in openmp-parsers.cpp, NFC (#193967)
DeltaFile
+10-10flang/lib/Parser/openmp-parsers.cpp
+10-101 files

LLVM/project 8baf335bolt/lib/Passes JTFootprintReduction.cpp, bolt/test/AArch64 unsupported-passes.test

[BOLT][AArch64] Refuse to run JTFootprintReduction pass (#193946)

JTFootprintReduction results in a no-op on AArch64. This is because it
emits createIJmp32Frag() which is unimplemented for AArch64 and is only
overridden by x86.

- Add a guard for non-x86
- Update unsupported-passes.test with expected error message
DeltaFile
+5-0bolt/lib/Passes/JTFootprintReduction.cpp
+2-1bolt/test/AArch64/unsupported-passes.test
+7-12 files

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

[LifetimeSafety] Remerge "Add support for `new`/`delete`" (#193776)

This PR extends LifetimeSafety to support heap allocations via
`new`/`delete`.

# Contents

* Adds a new warning emitted for use-after-free.

* Renames `reportUseAfterFree` to `reportUseAfterScope`, since the old
name was misleading (the warnings are still called `use_after_scope`).

* Adds a new `AccessPath::Kind` value, `NewAllocation`, which is used
for loans issued from `new` allocations.

* Adds `VisitCXXNewExpr` and `VisitCXXDeleteExpr`, which handle loan
issuance and origin propagation for `new` and `delete`.

* Comes with extensive test coverage for the new features, including new

    [15 lines not shown]
DeltaFile
+235-0clang/test/Sema/warn-lifetime-safety.cpp
+50-0clang/test/Sema/warn-lifetime-safety-suggestions.cpp
+32-0clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+21-10clang/lib/Sema/SemaLifetimeSafety.h
+10-2clang/include/clang/Analysis/Analyses/LifetimeSafety/Loans.h
+10-2clang/include/clang/Basic/DiagnosticGroups.td
+358-147 files not shown
+378-2013 files

LLVM/project 97b7ceeclang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/CodeGen CIRGenCXX.cpp

[CIR] Introduce LocalInitOp, & lower static locals (#193576)

During an investigation of something else, I discovered that our
handling of static-local as a ctor/dtor on a GlobalOp meant that it
couldn't actually be initialized with reference to any local, parameter,
or member declarations. This is obviously problematic.

This patch instead introduces a `LocalInitOp`, which is an operation
that represents the location of initialization for the static local.
This is lowered during lowering-prepare, same as we did previously (in
fact, it uses basically the exact same lowering code, with some slight
modifications).

Lowering from AST itself splits slightly from global declarations, but
the two share implementation as closely as possible.

At the moment, this operation only works for static-locals, and has a
handful of asserts to do the same. It is intended that the
thread-local-storage use the exact same mechanism, with some slight
modifications to the lowering-prepare pass to introduce the different
init behavior.
DeltaFile
+571-90clang/test/CIR/CodeGen/static-local.cpp
+125-96clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
+53-21clang/lib/CIR/CodeGen/CIRGenCXX.cpp
+64-2clang/include/clang/CIR/Dialect/IR/CIROps.td
+65-0clang/test/CIR/IR/invalid-static-local.cir
+42-0clang/test/CIR/IR/static-local.cir
+920-2096 files not shown
+993-21312 files

LLVM/project 242baabflang/lib/Parser openmp-parsers.cpp

[flang][OpenMP] Rename dirSpec to spec in openmp-parsers.cpp, NFC
DeltaFile
+10-10flang/lib/Parser/openmp-parsers.cpp
+10-101 files

LLVM/project ee4d927mlir/lib/Conversion/TosaToLinalg TosaToLinalg.cpp, mlir/test/Conversion/TosaToLinalg tosa-to-linalg-resize.mlir

[mlir][tosa] Fix integer bilinear (quantized) tosa.resize lowering to use floordivsi (#193821)

## Background

`tosa.resize` in bilinear integer (quantized) mode lowers to a
`linalg.generic`
body that, for each output pixel, computes a corresponding input
coordinate and
blends the four neighboring input pixels. The mapping is:

```
val   = out_coord * scale_d + offset
index = val / scale_n          // integer part — which input pixel to start from
delta = val - index * scale_n  // fractional part, scaled to [0, scale_n)
```

`delta` is the interpolation weight toward the next pixel. The bilinear
formula
(integer path) is:

    [133 lines not shown]
DeltaFile
+5-4mlir/test/Conversion/TosaToLinalg/tosa-to-linalg-resize.mlir
+1-1mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
+6-52 files

LLVM/project b5d253cflang/test/Lower optional-value-caller.f90 nested-where.f90, flang/test/Lower/OpenMP/Todo omp-default-clause-inner-loop.f90

[flang][NFC] Converted five tests from old lowering to new lowering (part 47) (#193886)

Tests converted from test/Lower: namelist-common-block.f90,
nested-where.f90, nullify.f90,
OpenMP/Todo/omp-default-clause-inner-loop.f90, optional-value-caller.f90
DeltaFile
+235-294flang/test/Lower/optional-value-caller.f90
+28-304flang/test/Lower/nested-where.f90
+15-10flang/test/Lower/nullify.f90
+7-9flang/test/Lower/OpenMP/Todo/omp-default-clause-inner-loop.f90
+1-1flang/test/Lower/namelist-common-block.f90
+286-6185 files

LLVM/project 7231527clang/include/clang/Basic arm_sve.td, clang/test/CodeGen/AArch64/sve-intrinsics acle_sve_bfmmla.c

[AArch64][llvm][clang] Remove `int_aarch64_sve_bfmmla` and reuse existing def (NFC)

Remove the dedicated (superfluous) `int_aarch64_sve_bfmmla` def and
changed `svbfmmla` to use the existing shared fmmla intrinsic instead.

No functional change.
DeltaFile
+4-4llvm/test/Instrumentation/MemorySanitizer/AArch64/sve-intrinsics-bfloat.ll
+2-2clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_bfmmla.c
+2-2llvm/test/CodeGen/AArch64/sve-intrinsics-bfloat.ll
+0-3llvm/include/llvm/IR/IntrinsicsAArch64.td
+1-1llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
+1-1clang/include/clang/Basic/arm_sve.td
+10-136 files

LLVM/project c975326llvm/lib/Target/LoongArch LoongArchInstrInfo.cpp, llvm/test/CodeGen/LoongArch stackslot.mir

address wangleiat's comments
DeltaFile
+245-0llvm/test/CodeGen/LoongArch/stackslot.mir
+4-4llvm/lib/Target/LoongArch/LoongArchInstrInfo.cpp
+249-42 files

LLVM/project 48e0e16lldb/packages/Python/lldbsuite/test/tools/lldb-dap dap_server.py

[lldb-dap] extend env when testing reverse request (#193743)

When testing lldb-dap's "runInTerminal" mode, the `"env"` argument is
meant to extend/override the current environment, not replace it.

This causes issues on Windows when Python is not in the System's Path.
The reverse request fails because lldb-dap can't find Python.
DeltaFile
+5-1lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py
+5-11 files

LLVM/project 629f815llvm/test/CodeGen/X86 freeze-binary.ll

[X86] freeze-binary.ll - regenerate to show VPADD constant asm comments (#193953)
DeltaFile
+5-5llvm/test/CodeGen/X86/freeze-binary.ll
+5-51 files

LLVM/project 7b68b4blldb/docs/use aarch64-linux.md, llvm/docs ReleaseNotes.md

[lldb][docs] Document AArch64 Linux Permission Overlay support (#184119)

This change adds a user guide and release notes for POE.
DeltaFile
+59-0lldb/docs/use/aarch64-linux.md
+4-0llvm/docs/ReleaseNotes.md
+63-02 files

LLVM/project 6c9c91dclang/lib/Analysis/LifetimeSafety Checker.cpp

address comments
DeltaFile
+9-8clang/lib/Analysis/LifetimeSafety/Checker.cpp
+9-81 files

LLVM/project b2f02dcclang/test/CodeGen/AArch64/sve-intrinsics acle_sve_mmla-bf16.c, llvm/include/llvm/IR IntrinsicsAArch64.td

fixup! Remove `int_aarch64_sve_bfmmla_bf16` and remove `HasSVE_F16MM`
DeltaFile
+5-5llvm/test/MC/AArch64/SVE2p2/fmmla.s
+0-5llvm/include/llvm/IR/IntrinsicsAArch64.td
+2-2clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_mmla-bf16.c
+1-3llvm/lib/Target/AArch64/AArch64InstrInfo.td
+2-2llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
+1-1llvm/test/CodeGen/AArch64/sve-intrinsics-matmul-bf16.ll
+11-181 files not shown
+12-197 files

LLVM/project 2c34525llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/AArch64 slp-fma-loss.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+12-12llvm/test/Transforms/SLPVectorizer/AArch64/slp-fma-loss.ll
+2-1llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+14-132 files

LLVM/project 4d085bbllvm/lib/Target/AArch64 AArch64InstrInfo.td AArch64SVEInstrInfo.td, llvm/test/MC/AArch64/SVE2p2 fmmla.s

fixup! Add `HasSVE_F16MM` and use `Has_F16MM` just for Neon.
DeltaFile
+5-5llvm/test/MC/AArch64/SVE2p2/fmmla.s
+2-0llvm/lib/Target/AArch64/AArch64InstrInfo.td
+1-1llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
+8-63 files