LLVM/project 12dd342lldb/test/API/commands/help TestHelp.py

[lldb][test] Add tests for formatting of command option descriptions (#178235)

These test the existing behaviour before I work on #177570.
    
I chose "breakpoint set" because it has options with ANSI underlines
in the description.
    
The tests cover no ANSI (use-colour off) and with ANSI (use-color on).
The latter is where we have problems right now.
DeltaFile
+56-0lldb/test/API/commands/help/TestHelp.py
+56-01 files

LLVM/project a5ffce0lldb/include/lldb/Host MemoryMonitor.h, lldb/source/Host/common MemoryMonitor.cpp

[lldb] Fix memory monitor shutdown on Linux using eventfd (#178083)

The current linux implementation has a 1 second timeout when polling for
memory pressure. lldb-dap may take up to an extra 1 second to shutdown.
Use an event file descriptor to immediately stop the memory monitor
thread.

Fixes #150220
DeltaFile
+102-31lldb/source/Host/common/MemoryMonitor.cpp
+2-1lldb/include/lldb/Host/MemoryMonitor.h
+104-322 files

LLVM/project 822756cllvm/lib/Target/RISCV RISCVInstrInfoZb.td, llvm/test/CodeGen/RISCV rv32zbs.ll rv64zbs.ll

[RISCV] Add ISEL pattern to convert add (shl -1, X), Y to sub Y, (bset zero, X) (#178601)

Fixes #178588
DeltaFile
+30-12llvm/test/CodeGen/RISCV/rv32zbs.ll
+22-4llvm/test/CodeGen/RISCV/rv64zbs.ll
+2-0llvm/lib/Target/RISCV/RISCVInstrInfoZb.td
+54-163 files

LLVM/project 655c31dllvm/lib/Target/AMDGPU VOP3PInstructions.td, llvm/lib/Target/AMDGPU/MCTargetDesc AMDGPUMCCodeEmitter.cpp

[AMDGPU] Change scale_src2 encoding from vgpr0 to literal 0 (#178404)

This changes the fix from #167777 to use the encoding for literal 0
instead of the encoding for vgpr0, to match new SP3 behaviour and for
consistency with all other unused VALU source operands since #175753.
DeltaFile
+122-122llvm/test/MC/AMDGPU/gfx1250_asm_wmma_w32.s
+106-106llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_wmma_w32.txt
+0-13llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.cpp
+3-3llvm/lib/Target/AMDGPU/VOP3PInstructions.td
+231-2444 files

LLVM/project ba0cddblibcxx/include __config, libcxx/include/__cxx03 __config

[libc++][NFC] Remove _LIBCPP_FREESTANDING (#176907)

`_LIBCPP_FREESTANDING` isn't used and it is unclear what libc++'s
strategy is going to be for implementing freestanding at the moment.
Therefore, remove the macro.
DeltaFile
+0-20libcxx/test/libcxx/libcpp_freestanding.sh.cpp
+0-20libcxx/test/libcxx-03/libcpp_freestanding.sh.cpp
+0-4libcxx/include/__config
+0-4libcxx/include/__cxx03/__config
+0-484 files

LLVM/project 12c13e0llvm/lib/Target/AMDGPU AMDGPURegisterBankInfo.cpp SIISelLowering.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.s.buffer.load.ll

[AMDGPU][GFX1250] Implement offset handling in s.buffer.load (#178389)

Divergent path of s.buffer.load must handle 32b offset extension
behaviour on GFX1250.
Tests in llvm.amdgcn.s.buffer.load.ll are rewritten to avoid using
export instructions not available on GFX1250.
DeltaFile
+2,801-1,573llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.s.buffer.load.ll
+2,635-1,150llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.buffer.load.ll
+452-517llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.buffer.load.ll
+6-2llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
+5-1llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+5,899-3,2435 files

LLVM/project 0dd61b2llvm/lib/Target/WebAssembly WebAssemblyISelLowering.cpp, llvm/test/CodeGen/WebAssembly simd-shuffle-widen.ll

[WebAssembly] Fix crash in ReplaceNodeResults for ANY_EXTEND_VECTOR_INREG (#178374)

Fixes a crash during type legalization by allowing
ISD::ANY_EXTEND_VECTOR_INREG to fall back to default expansion instead
of hitting llvm_unreachable.

Fixed: #177209
(cherry picked from commit 16d8d4b84edd257a81b243767d7b6bd62bbfb9fa)
DeltaFile
+50-0llvm/test/CodeGen/WebAssembly/simd-shuffle-widen.ll
+1-0llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
+51-02 files

LLVM/project 399f25fclang/include/clang/Analysis/Analyses/LifetimeSafety FactsGenerator.h, clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp

[LifetimeSafety] Handle temporaries of non-trivial view types (#177878)

Fixes https://github.com/llvm/llvm-project/issues/177802

This enables the analysis to correctly track lifetimes through
non-trivial view types that require temporary binding due to having a
destructor.

This is fixed by handling `MaterializeTemporaryExpr` even for
lifetime-extended temporaries and fixing the flow of origins.
DeltaFile
+22-0clang/test/Sema/warn-lifetime-safety.cpp
+10-7clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+1-0clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
+33-73 files

LLVM/project 2c8fa3c.github/workflows release-tasks.yml

workflows/release-tasks: Add missing needs tag to release-lit job (#178224)

The job references variables from the validate-tag job, so it needs to
have it listed in the 'needs' tag. This is why this job failed for the
22.1.0-rc2 release.

(cherry picked from commit 7901e2d04c553f6b9e17800059be8cd702c65bac)
DeltaFile
+2-0.github/workflows/release-tasks.yml
+2-01 files

LLVM/project bc063ffflang/include/flang/Support Fortran-features.h, flang/lib/Semantics expression.cpp

[flang] Remove `AmbiguousStructureConstructor` warnings (#178088)

Remove `AmbiguousStructureConstructor` warnings. This removes harmless
warnings about standards-conforming generic function references that
are never ambiguous with structure constructors.

(cherry picked from commit 5136b04dd2aaeb3cbc724c0015e7f06ed2408e1a)
DeltaFile
+1-52flang/lib/Semantics/expression.cpp
+4-4flang/include/flang/Support/Fortran-features.h
+2-4flang/test/Semantics/c7108.f90
+2-4flang/test/Semantics/resolve17.f90
+1-2flang/test/Semantics/resolve11.f90
+0-3flang/test/Semantics/generic09.f90
+10-693 files not shown
+12-749 files

LLVM/project a3e5186flang/docs FortranStandardsSupport.md ParallelMultiImageFortranRuntime.md

[flang] Document experimental support for multi-image features (#178011)

This PR updates flang's Fortran standard conformance documentation to
reflect the recent addition of experimental support for multi-image
features.

PRs implementing that support include:
* #151675
* #154081
* #154770
* #154166
* #165573

(cherry picked from commit a58038307a604096bcc2ba0e6635be339ea704b7)
DeltaFile
+10-11flang/docs/FortranStandardsSupport.md
+5-0flang/docs/ParallelMultiImageFortranRuntime.md
+15-112 files

LLVM/project 1db8077lldb/tools/lldb-dap DAP.cpp

[lldb-dap] Fix debugger initialisation order in DAP::InitializeDebugger (#178022)

Validate the debugger before assigning it to the member debugger to
avoid setting an invalid debugger on error.

We usually have an existing session with that debugger ends up messing
with that session.

(cherry picked from commit fa3b3a0be13c3921d983375b1d0ac03d3d2b725d)
DeltaFile
+6-4lldb/tools/lldb-dap/DAP.cpp
+6-41 files

LLVM/project e297883llvm/lib/CodeGen ShrinkWrap.cpp, llvm/test/CodeGen/AArch64 shrink-wrap-unreachable.ll

[ShrinkWrap] Ensure we do not crash on unreachable blocks. (#178009)

Since we started optimizating always-true branches in the AArch64
backend (like cbz wzr), shrink wrap has been exposed to some block
structures that it does not handle correctly, usually with unreachable
blocks. This prevents the call to FindIDom/findNearestCommonDominator
from failing when looking at the predecessors of a loop if one is
unreachable.

Fixes: #177866
(cherry picked from commit f5de33dbf59a30246a6113e507e0cb41c21b9e45)
DeltaFile
+36-0llvm/test/CodeGen/AArch64/shrink-wrap-unreachable.ll
+5-1llvm/lib/CodeGen/ShrinkWrap.cpp
+41-12 files

LLVM/project 8bca4e5llvm/lib/Linker IRMover.cpp, llvm/test/Transforms/FunctionImport attr_fixup_dae_noundef.ll

[IRMover] Use signature for exact definition (#177381)

It is possible for optimizations to modify attributes on exact
definitions. In particular, DeadArgumentElimination may find that a
certain argument is dead, and replace arguments in calls with `poison`.
This requires dropping the `noundef` attribute on the argument.

When ThinLTO import is performed, the destination module already has a
declaration for the function, and the definition is not imported (e.g.
because it is noinline), we currently simply retain the original
declaration. This is incorrect if call with poison arguments were
imported, as the calls become immediate UB.

There was a previous attempt to address this in
https://reviews.llvm.org/D139209. What that patch did was to fix up the
attributes of the declaration after the fact, dropping UB implying
attributes that are not present on the definition. It was reverted
because it made an incorrect assumption that the signature between the
declaration and definition must match.

    [12 lines not shown]
DeltaFile
+38-0llvm/test/Transforms/FunctionImport/attr_fixup_dae_noundef.ll
+19-0llvm/test/Transforms/FunctionImport/Inputs/attr_fixup_dae_noundef.ll
+10-0llvm/lib/Linker/IRMover.cpp
+67-03 files

LLVM/project 70c3505llvm/docs AMDGPUUsage.rst

Modelled fmin/fmax similar to llvm.minimumnum/maximumnum
DeltaFile
+8-2llvm/docs/AMDGPUUsage.rst
+8-21 files

LLVM/project 43459d5llvm/docs AMDGPUUsage.rst

[AMDGPU] Update documentation for wave reduction intrinsics
DeltaFile
+70-4llvm/docs/AMDGPUUsage.rst
+70-41 files

LLVM/project 318091dclang/include/clang/Basic BuiltinsAMDGPU.td, clang/test/Sema wave-reduce-builtins-validate-amdgpu.cl

Mark stratergy argument as constant
DeltaFile
+86-0clang/test/Sema/wave-reduce-builtins-validate-amdgpu.cl
+26-26clang/include/clang/Basic/BuiltinsAMDGPU.td
+112-262 files

LLVM/project fffd58bclang/include/clang/Analysis/Analyses/LifetimeSafety FactsGenerator.h, clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp

[LifetimeSafety] Handle temporaries of non-trivial view types
DeltaFile
+22-0clang/test/Sema/warn-lifetime-safety.cpp
+10-7clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+1-0clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
+33-73 files

LLVM/project 19b5300llvm/lib/Target/SystemZ SystemZISelLowering.cpp SystemZISelLowering.h

[SystemZ] Precommit for moving some functions around. (#177441)

In preparation for #171066 (FP16 vector support).

(cherry picked from commit e0a132691fe9499857d95dc1d26994f82f7f4a44)
DeltaFile
+38-27llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
+1-8llvm/lib/Target/SystemZ/SystemZISelLowering.h
+39-352 files

LLVM/project ffb940dllvm/test/CodeGen/SystemZ vec-abi-01.ll vec-abi-02.ll

[SystemZ] Support fp16 vector ABI and basic codegen. (#171066)

- Make v8f16 a legal type so that arguments can be passed in vector
registers. Handle fp16 vectors so that they have the same ABI as other
fp vectors.

- Set the preferred vector action for fp16 vectors to "split". This will
scalarize all operations, which is not always necessary (like with
memory operations), but it avoids the superfluous operations that result
after first widening and then scalarizing a narrow vector (like v4f16).

Fixes #168992

(cherry picked from commit c999e9a4fe8870f7943551d9ff8b575eb282d16d)
DeltaFile
+2,489-0llvm/test/CodeGen/SystemZ/vec-abi-01.ll
+1,751-0llvm/test/CodeGen/SystemZ/vec-abi-02.ll
+0-725llvm/test/CodeGen/SystemZ/fp-half-vector.ll
+519-0llvm/test/CodeGen/SystemZ/fp-half-vector-binops.ll
+503-0llvm/test/CodeGen/SystemZ/fp-half-vector-fcmp-select.ll
+349-0llvm/test/CodeGen/SystemZ/vec-abi-04.ll
+5,611-72524 files not shown
+6,938-1,00130 files

LLVM/project e636639flang/include/flang/Optimizer/Builder HLFIRTools.h, flang/include/flang/Optimizer/Dialect FIROpsSupport.h

[flang] fix DIR IVDEP for array assignments inside loops (#177940)

The access attribute set on hlfir.assign for arrays was lost in
InlineHLFIRAssign.cpp. This patch propagates it to the creates loads and
stores.

(cherry picked from commit c2d510f5bdabf71f4f5fde36a37faf5565762195)
DeltaFile
+22-10flang/lib/Optimizer/Builder/HLFIRTools.cpp
+20-0flang/test/Lower/ivdep-array.f90
+7-4flang/include/flang/Optimizer/Builder/HLFIRTools.h
+6-1flang/lib/Optimizer/HLFIR/Transforms/InlineHLFIRAssign.cpp
+5-0flang/include/flang/Optimizer/Dialect/FIROpsSupport.h
+2-1flang/lib/Lower/Bridge.cpp
+62-161 files not shown
+63-177 files

LLVM/project 2dc6da5llvm/lib/Target/ARM ARMTargetTransformInfo.h ARMTargetTransformInfo.cpp, llvm/test/Transforms/Inline/ARM inline-dotprod.ll

[ARM] Fix inlining issue in ARM (#169337)

There is an issue on ARM where a function wont be inlined due to
mismatching target features between caller and callee.
The caller has `HasV8Ops` and `FeatureDotProd` and the callee does not,
but AFAIK this should not be a problem.
https://godbolt.org/z/f19h3zT66 is an example showing how the call is
not inlined on armv7.
The expected asm output would be something like:
```asm
.fnstart
        vsdot.s8        q0, q1, d4[0]
        bx      lr
.Lfunc_end0:

```
Thanks to @Amichaxx we managed to narrow it down and now can resolve
this problem by adding `ARM::FeatureDotProd, ARM::HasV8Ops` to
InlineFeaturesAllowed in llvm/lib/Target/ARM/ARMTargetTransformInfo.h,

    [10 lines not shown]
DeltaFile
+132-34llvm/lib/Target/ARM/ARMTargetTransformInfo.h
+49-0llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
+35-0llvm/test/Transforms/Inline/ARM/inline-dotprod.ll
+216-343 files

LLVM/project 91f102ellvm/lib/CodeGen/SelectionDAG TargetLowering.cpp, llvm/test/CodeGen/LoongArch/lsx issue177155.ll

[SelectionDAG] Use promoted types when creating nodes after type legalization

When creating new nodes with illegal types after type legalization,
we should try to use promoted type to avoid creating nodes with
illegal types.

Fixes: https://github.com/llvm/llvm-project/issues/177155
DeltaFile
+26-0llvm/test/CodeGen/LoongArch/lsx/issue177155.ll
+7-0llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+33-02 files

LLVM/project d8da229mlir/include/mlir/Dialect/Utils StaticValueUtils.h, mlir/lib/Dialect/SCF/IR SCF.cpp

[mlir][scf] Interpret trip counts as unsigned integers   (#178060)

Trip counts represent iteration counts and are always non-negative. This
PR fixes all call sites to correctly use `getZExtValue()` instead of
`getSExtValue()` when extracting trip count values from `APInt`. Also
documents to clarify results are unsigned.
DeltaFile
+101-0mlir/test/Dialect/SCF/trip_count.mlir
+12-6mlir/lib/Dialect/SCF/Utils/Utils.cpp
+8-2mlir/lib/Dialect/Utils/StaticValueUtils.cpp
+5-4mlir/include/mlir/Dialect/Utils/StaticValueUtils.h
+1-1mlir/test/lib/Dialect/SCF/TestSCFUtils.cpp
+1-1mlir/lib/Dialect/SCF/IR/SCF.cpp
+128-141 files not shown
+129-147 files

LLVM/project 507d185clang/unittests/DirectoryWatcher CMakeLists.txt

[clang][unittests] Fix linker error for DirectoryWatcherTest with CLANG_LINK_CLANG_DYLIB (#178455)

Move clangDirectoryWatcher from LINK_LIBS to CLANG_LIBS so it gets
replaced by clang-cpp when building with CLANG_LINK_CLANG_DYLIB=ON.

When using both CLANG_LINK_CLANG_DYLIB=ON and LLVM_ENABLE_LTO=Thin, the
test would fail with:
ld.lld: error: undefined symbol:
clang::DirectoryWatcher::create(llvm::StringRef, std::function<void
(llvm::ArrayRef

This happens because clangDirectoryWatcher was being linked as a
separate library alongside clang-cpp (which already contains
clangDirectoryWatcher), causing duplicate symbol issues with LTO.

The fix correctly categorizes:
- clangDirectoryWatcher → CLANG_LIBS (Clang library, bundled in
clang-cpp)
- LLVMTestingSupport → LINK_LIBS (LLVM library, always linked directly)

#178302
DeltaFile
+2-1clang/unittests/DirectoryWatcher/CMakeLists.txt
+2-11 files

LLVM/project 2b14f33.github new-prs-labeler.yml

[GitHub] Include memory tagging sources in sanitizer (#178604)

These are part of sanitizer implementation.
DeltaFile
+2-0.github/new-prs-labeler.yml
+2-01 files

LLVM/project 0b11a34llvm/lib/Target/AMDGPU AMDGPUInstructionSelector.cpp AMDGPUISelDAGToDAG.cpp, llvm/test/CodeGen/AMDGPU load-saddr-offset-imm.ll

[AMDGPU] Support one immediate folding for global load

The address calculation may happen on i32 and be sign extended to the
i64 offset.
DeltaFile
+47-12llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
+27-3llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
+6-10llvm/test/CodeGen/AMDGPU/load-saddr-offset-imm.ll
+80-253 files

LLVM/project 198baf1llvm/test/CodeGen/AMDGPU load-saddr-offset-imm.ll

[AMDGPU] Add a test to show later optimization
DeltaFile
+56-0llvm/test/CodeGen/AMDGPU/load-saddr-offset-imm.ll
+56-01 files

LLVM/project e5d6ed6mlir/include/mlir/Dialect/LLVMIR NVVMOps.td, mlir/lib/Conversion/GPUToNVVM LowerGpuOpsToNVVMOps.cpp

[mlir][NVVM] Add support for tcgen05.ld.red Op (#177330)

The commit adds the following:
- Adds tcgen05.ld.red Op with tests under tcgen05-ld-red.mlir and
tcgen05-ld-red-invalid.mlir
- Renamed ReduxKind to ReductionKind and renamed it across NVVM and GPU
Dialects
- Replaced Tcgen05LdRedOperationAtr with ReductionKindAttr
- Updated tcgen05.ld.red and nvvm.redux.sync tests
DeltaFile
+475-0mlir/test/Target/LLVMIR/nvvm/tcgen05-ld-red.mlir
+115-23mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
+100-13mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
+48-0mlir/test/Target/LLVMIR/nvvm/tcgen05-ld-red-invalid.mlir
+12-12mlir/lib/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.cpp
+12-11mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
+762-592 files not shown
+774-718 files

LLVM/project f6f858blldb/source/Commands CommandObjectDWIMPrint.cpp

[lldb] Make `print` delegate to synthetic frames.

This patch is more of a proposal in that it's a pretty dramatic change to the way that `print` works. It completely delegates getting values to the frame if the frame is synthetic, and does not redirect at all if the frame fails.

For this patch, the main goal was to allow the synthetic frame to bubble up its own errors in expression evaluation, rather than having errors come back with an extra "could not find identifier <blah>" or worse, simply get swallowed. If there's a better way to handle this, I'm more than happy to change this as long as the core goals of 'delegate variable/value extraction to the synthetic frame', and 'allow the synthetic frame to give back errors that are displayed to the user' can be met.

stack-info: PR: https://github.com/llvm/llvm-project/pull/178602, branch: users/bzcheeseman/stack/7
DeltaFile
+23-2lldb/source/Commands/CommandObjectDWIMPrint.cpp
+23-21 files