LLVM/project efffb04llvm/lib/Target/DirectX/DXILWriter DXILBitcodeWriter.cpp, llvm/test/tools/dxil-dis debug-info.ll

[DirectX] Fix DILocalVariable (#192573)

LLVM 3.7 did not allow the DW_TAG_variable tag for them and had two
custom tags instead.
DeltaFile
+3-3llvm/test/tools/dxil-dis/debug-info.ll
+4-1llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
+7-42 files

LLVM/project 3de3198llvm/lib/Target/DirectX/DXILWriter DXILBitcodeWriter.cpp, llvm/test/tools/dxil-dis vla.ll

[DirectX] Replace non-const count of DISubrange with -1 (#192576)

Non-const count is only emitted for C99 VLA, which are not supported.

Co-authored-by: Andrew Savonichev <andrew.savonichev at gmail.com>
DeltaFile
+38-0llvm/test/tools/dxil-dis/vla.ll
+14-10llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
+52-102 files

LLVM/project ee88788llvm/lib/Target/LoongArch LoongArchISelLowering.cpp LoongArchLASXInstrInfo.td, llvm/test/CodeGen/LoongArch/lasx/ir-instruction avgfloor-ceil.ll

[LoongArch] Set `avg{floor/ceil}{s/u}` as legal for lsx and lasx

Suggested-by: tangaac <tangyan01 at loongson.cn>
Link: https://github.com/llvm/llvm-project/pull/161079#issuecomment-3420763377
DeltaFile
+16-64llvm/test/CodeGen/LoongArch/lasx/ir-instruction/avgfloor-ceil.ll
+16-64llvm/test/CodeGen/LoongArch/lsx/ir-instruction/avgfloor-ceil.ll
+8-0llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+4-0llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
+4-0llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
+48-1285 files

LLVM/project 8b3eac0llvm/lib/Target/DirectX/DXILWriter DXILBitcodeWriter.cpp, llvm/test/tools/dxil-dis di-compile-unit-versioned-language.ll

[DirectX] Convert DICompileUnit versioned language (#192574)

Versioned languages did not exist in LLVM 3.7.
DeltaFile
+13-0llvm/test/tools/dxil-dis/di-compile-unit-versioned-language.ll
+8-1llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
+21-12 files

LLVM/project eb6eb9fllvm/lib/Target/DirectX DXILPrepare.cpp, llvm/test/tools/dxil-dis debug-info.ll

[DirectX] Convert debug values to old style (#192162)
DeltaFile
+0-2llvm/test/tools/dxil-dis/debug-info.ll
+2-0llvm/lib/Target/DirectX/DXILPrepare.cpp
+2-22 files

LLVM/project 6114cbbllvm/lib/Target/DirectX/DXILWriter DXILValueEnumerator.cpp

[DirectX] Fix debug dump of ValueEnumerator (#191251)

Consistently print to OS, and do not try to print uses of values without
a use list.
DeltaFile
+16-12llvm/lib/Target/DirectX/DXILWriter/DXILValueEnumerator.cpp
+16-121 files

LLVM/project 6c16fc8lldb/test/API/commands/command/invalid-args TestInvalidArgsCommand.py, lldb/test/API/commands/frame/recognizer TestFrameRecognizer.py

[lldb][test] Remove full stop from expected error messages (#193748)

I am about to update a bunch of uses of AppendErrorWithFormat to not
have a full stop at the end, to confirm to
https://llvm.org/docs/CodingStandards.html#error-and-warning-messages.

Reviewing all those changes is going to be difficult so I am updating
the tests first and then we can land the other changes in batches
(because the tests will continue to pass as we do that).

Note that I have only run the test suite on Linux AArch64, so there are
probably more that need to be updated. We will catch those in CI or
post-commit.
DeltaFile
+10-10lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py
+2-4lldb/test/API/commands/log/invalid-args/TestInvalidArgsLog.py
+3-3lldb/test/API/functionalities/gdb_remote_client/TestGDBServerTargetXML.py
+2-4lldb/test/API/commands/command/invalid-args/TestInvalidArgsCommand.py
+3-3lldb/test/API/commands/process/signal/TestProcessSignal.py
+2-2lldb/test/API/commands/register/register_command/TestRegisters.py
+22-2612 files not shown
+39-4318 files

LLVM/project 248192dllvm/test/CodeGen/RISCV/rvv vector-interleave-fixed.ll fixed-vectors-shuffle-deinterleave2.ll

[RISCV] Add bf16 tests for interleave and deinterleave (#193720)

Add missing bf16 tests for interleave and deinterleave
DeltaFile
+744-8llvm/test/CodeGen/RISCV/rvv/vector-interleave-fixed.ll
+212-6llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-deinterleave2.ll
+210-4llvm/test/CodeGen/RISCV/rvv/vector-deinterleave-fixed.ll
+32-6llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-zipeven-zipodd.ll
+1,198-244 files

LLVM/project c9ed309llvm/lib/Target/LoongArch LoongArchLSXInstrInfo.td LoongArchLASXInstrInfo.td, llvm/test/CodeGen/LoongArch/lasx/ir-instruction sub.ll add.ll

[LoongArch] Add support for vector add/sub on vNi128 types

Legalize ADD/SUB for v1i128 and v2i128 and extend LSX/LASX instruction
selection patterns to support the Q element size. Update register classes
to include vNi128 types and add codegen tests to verify lowering to
VADD.Q/XVADD.Q and VSUB.Q/XVSUB.Q.
DeltaFile
+6-102llvm/test/CodeGen/LoongArch/lasx/ir-instruction/sub.ll
+6-93llvm/test/CodeGen/LoongArch/lasx/ir-instruction/add.ll
+6-43llvm/test/CodeGen/LoongArch/lsx/ir-instruction/add.ll
+6-42llvm/test/CodeGen/LoongArch/lsx/ir-instruction/sub.ll
+17-4llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
+17-4llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
+58-2882 files not shown
+66-2928 files

LLVM/project 6e6fbd4llvm/test/CodeGen/LoongArch/lasx/ir-instruction sub.ll add.ll, llvm/test/CodeGen/LoongArch/lsx/ir-instruction add.ll sub.ll

[LoongArch][NFC] Add tests for vector add on vNi128
DeltaFile
+108-2llvm/test/CodeGen/LoongArch/lasx/ir-instruction/sub.ll
+99-2llvm/test/CodeGen/LoongArch/lasx/ir-instruction/add.ll
+49-2llvm/test/CodeGen/LoongArch/lsx/ir-instruction/add.ll
+48-2llvm/test/CodeGen/LoongArch/lsx/ir-instruction/sub.ll
+304-84 files

LLVM/project e4f1530flang/include/flang/Optimizer/Dialect FIROps.td, flang/lib/Optimizer/CodeGen CodeGen.cpp

[flang][debug] generate llvm.fake.use for arguments at -g and O0 (#187044)

Fix for https://github.com/llvm/llvm-project/issues/185432.

This patch extends the lifetime of procedure dummy arguments using llvm.fake.use
so that they are accessible in debugger during the whole lifetime of the function.

This is done by:
- adding a new fir.fake_use operation and emitting it in AddDebugInfo.cpp for
   dummy arguments at the end of the procedure scope.
- lower this new fir.fake_use to the llvm.fake.use intrinsic.

This is done under -g at O0 only to avoid pessimizing the generated code when
optimizations are requested.
DeltaFile
+56-0flang/test/Transforms/debug-fake-use.fir
+27-14flang/lib/Optimizer/CodeGen/CodeGen.cpp
+20-1flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
+12-0flang/test/Fir/fake_use-codegen.fir
+10-0flang/include/flang/Optimizer/Dialect/FIROps.td
+8-0flang/lib/Optimizer/Passes/Pipelines.cpp
+133-151 files not shown
+137-177 files

LLVM/project fc9f14elibc/test CMakeLists.txt, libc/test/include CMakeLists.txt

[libc] Switch check-libc from CTest to lit (#193798)

Renamed check-libc-lit to check-libc, replacing the old CTest-driven
target. Dependencies now use -build targets (e.g.
libc-hermetic-tests-build) so that check-libc only builds test
executables and delegates execution to lit.
DeltaFile
+7-10libc/test/CMakeLists.txt
+1-2libc/test/integration/CMakeLists.txt
+1-2libc/test/include/CMakeLists.txt
+9-143 files

LLVM/project 65e766dlibc/cmake/modules prepare_libc_gpu_build.cmake, libc/test lit.site.cfg.py.in

[libc] Honour LIBC_GPU_TEST_JOBS in lit test runs (#193797)

Under CTest, LIBC_GPU_TEST_JOBS controlled a ninja job pool that limited
concurrent GPU test processes. The AMD GPU buildbot sets this to 4 to
avoid overloading the GPU driver.

When running tests via lit, this constraint was lost because lit uses
its own -j flag (defaulting to nproc, or set to 64 on the AMD bot via
LLVM_LIT_ARGS). All GPU loader processes launched simultaneously,
leading to hangs from GPU resource exhaustion.

Propagated LIBC_GPU_TEST_JOBS into the lit site config as a parallelism
group so lit throttles GPU test concurrency independently of the global
-j setting.
DeltaFile
+5-0libc/test/lit.site.cfg.py.in
+1-0libc/cmake/modules/prepare_libc_gpu_build.cmake
+6-02 files

LLVM/project 7758ee5libc/test/src/time mktime_test.cpp

[libc] Fix implicit conversion warning in mktime_test (#193504)

Specified template argument time_t for Succeeds and Fails in
mktime_test.cpp to avoid implicit conversion warnings when matching
time_t results on 64-bit systems.
DeltaFile
+53-41libc/test/src/time/mktime_test.cpp
+53-411 files

LLVM/project eecfc9bllvm/lib/Target/SPIRV SPIRVEmitIntrinsics.cpp, llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_memory_access_aliasing alias-load-store-atomic.ll

[SPIRV] Do not add aliasing decorations to OpAtomicStore/OpAtomicLoad
DeltaFile
+6-19llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
+4-9llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_memory_access_aliasing/alias-load-store-atomic.ll
+10-282 files

LLVM/project 0d33284llvm/lib/Target/SPIRV SPIRVInstructionSelector.cpp SPIRVISelLowering.cpp, llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_memory_access_aliasing alias-load-store-atomic.ll

[SPIRV] Lower load/store atomic to OpAtomicLoad/OpAtomicStore (#185696)

Lower LLVM's `load atomic` `store atomic` as `OpAtomicStore` and
`OpAtomicLoad`.

Closes #185629
DeltaFile
+111-7llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+36-15llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
+28-19llvm/test/CodeGen/SPIRV/transcoding/load-atomic.ll
+28-19llvm/test/CodeGen/SPIRV/transcoding/store-atomic.ll
+41-0llvm/test/CodeGen/SPIRV/transcoding/atomic-load-store-unsupported.ll
+30-7llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_memory_access_aliasing/alias-load-store-atomic.ll
+274-674 files not shown
+310-7410 files

LLVM/project b548387llvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize first-order-recurrence-tail-folding.ll optsize.ll

[LV] Simplify live-out extraction for first-order recurrence phis when tail folding (#176108)

The idea is similar to ba40a7bc2e65be86ac23c9cf6038ac085dda77eb. Due to
tail folding, the recurrence vector in the final iteration may contain
only a single active element, making it impossible to extract the
penultimate active element. This patch instead directly extracts the
last active element from the vector produced by splicing the recurrence
phi and the previous value, without needing to select which value to
extract based on the number of active lanes.
DeltaFile
+19-41llvm/test/Transforms/LoopVectorize/first-order-recurrence-tail-folding.ll
+10-25llvm/test/Transforms/LoopVectorize/optsize.ll
+0-27llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+10-10llvm/test/Transforms/LoopVectorize/tail-folding-vectorization-factor-1.ll
+1-8llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-fixed-order-recurrence.ll
+1-8llvm/test/Transforms/LoopVectorize/RISCV/first-order-recurrence-scalable-vf1.ll
+41-1196 files

LLVM/project e789f1allvm/lib/Target/LoongArch LoongArchISelLowering.cpp, llvm/test/CodeGen/LoongArch/lsx/ir-instruction fptrunc.ll

avoid regression
DeltaFile
+20-7llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+4-8llvm/test/CodeGen/LoongArch/lsx/ir-instruction/fptrunc.ll
+24-152 files

LLVM/project 99c9a1fmlir/test/Dialect/EmitC/arith ops.mlir

[mlir][EmitC] Add tests for arith.max/min float/signed int conversions (#190160)

This patch adds test coverage for the combined `-arith-expand |
-convert-arith-to-emitc` pipeline for selected `arith` max/min operations.

The new tests exercise:

- `arith.maximumf`
- `arith.minimumf`
- `arith.minsi`
- `arith.maxsi`

The intent is not to re-test the individual passes in isolation. Expansion is
already covered in `test/Dialect/Arith/expand-ops.mlir`, and the direct
Arith-to-EmitC lowering is already covered in
`test/Conversion/ArithToEmitC/arith-to-emitc.mlir`. This patch specifically
checks that the combined pipeline produces the expected EmitC operations after
expansion.


    [11 lines not shown]
DeltaFile
+60-0mlir/test/Dialect/EmitC/arith/ops.mlir
+60-01 files

LLVM/project 6b95d09llvm/include/llvm/CodeGen ValueTypes.td, llvm/test/Analysis/CostModel/ARM arith-overflow.ll

[CodeGen] Add <2 x i128> value type
DeltaFile
+6-6llvm/test/Analysis/CostModel/ARM/arith-overflow.ll
+2-2llvm/test/TableGen/CPtrWildcard.td
+1-0llvm/include/llvm/CodeGen/ValueTypes.td
+9-83 files

LLVM/project b565800lldb/test/API/functionalities/statusline TestStatusline.py

[lldb] Add regression test for stale Symbol pointer crash in statusline (#193854)

Add a test that exercises the code path fixed in
[88f024223cc4](https://github.com/llvm/llvm-project/pull/188377)
("[lldb] Fix stale Symbol pointer crash in statusline after 'target
symbols add'").

The bug: when `target symbols add` is called, `Symtab::AddSymbol()` can
reallocate the underlying `std::vector<Symbol>`, invalidating all
existing `Symbol*` pointers. The statusline caches an
`ExecutionContextRef` containing a `StackID` with a
`SymbolContextScope*` (which can be a `Symbol*`). If a concurrent
statusline redraw occurs between the Symtab reallocation and
`Process::Flush()` (e.g. from a progress event on the event handler
thread), the cached `StackID` matches the old frame via pointer-equal
comparison, and `GetSymbolContext()` dereferences the dangling
`Symbol*`.

The test:

    [14 lines not shown]
DeltaFile
+39-0lldb/test/API/functionalities/statusline/TestStatusline.py
+39-01 files

LLVM/project e7e85a7llvm/docs LangRef.rst, llvm/lib/CodeGen/SelectionDAG TargetLowering.cpp LegalizeVectorOps.cpp

[IR] Remove pointer arguments from loop.dependence.{war|raw}.mask (#188248)

Passing pointer arguments is quite inconvenient for practical use. These
intrinincs only care about the difference between the address bits of
two pointers, but by taking pointer arguments it is implying they care
about other details of the pointers (such as addrspace, or other pointer
bits).

This metadata is currently not preserved when gathering diff checks in
the loop vectorizer, so requiring pointers makes emitting these
intrinsic more complex (or requires preserving information that is
ultimately unused).
DeltaFile
+142-142llvm/test/Analysis/CostModel/AArch64/loop_dependence_mask.ll
+96-68llvm/test/CodeGen/AArch64/alias_mask.ll
+64-52llvm/test/CodeGen/AArch64/alias_mask_scalable.ll
+45-41llvm/docs/LangRef.rst
+43-0llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+1-36llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
+391-3399 files not shown
+477-36315 files

LLVM/project 4ef7a2fclang/lib/Analysis/LifetimeSafety Checker.cpp

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

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

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

LLVM/project 347f1acmlir/include/mlir/Dialect/Vector/IR VectorOps.td, mlir/lib/Dialect/Vector/IR VectorOps.cpp

[MLIR][Vector] Add fastmath attribute to vector.contract (#192788)

`vector.contract` has no fastmath attribute, making it impossible to
propagate fast-math flags to lowered ops. This can help backends that
rely on flags like `contract` to enable FMA fusion.

This change adds a `fastmath` attribute to `vector::ContractionOp` and
propagates it to lowered operations.
DeltaFile
+126-0mlir/test/Dialect/Vector/vector-contract-to-dot-transforms.mlir
+29-19mlir/lib/Dialect/Vector/Transforms/LowerVectorContract.cpp
+15-3mlir/lib/Dialect/Vector/IR/VectorOps.cpp
+8-2mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
+178-244 files

LLVM/project a7368c3clang/www cxx_status.html

[NFC][Clang][docs] Clarify the status of P1949R7 (unicode identifiers) (#193483)

Clang does not check identifiers are NFC-normalized, which the standard
requires.
DeltaFile
+6-1clang/www/cxx_status.html
+6-11 files

LLVM/project 3041708clang-tools-extra/docs ReleaseNotes.rst, clang-tools-extra/test/clang-change-namespace argument-parsing-error-no-abort.cpp

[Tooling][clang-tools-extra] Consume CommonOptionsParser errors in tools (#193675)

Several LibTooling-based tools printed errors returned from
CommonOptionsParser::create() directly. However, printing an
`llvm::Error` does not consume it, so argument parsing failures such as
unknown tool options could abort. This commit fixes the problem.

Closes https://github.com/llvm/llvm-project/issues/183009
DeltaFile
+5-3clang-tools-extra/docs/ReleaseNotes.rst
+4-0clang-tools-extra/test/clang-reorder-fields/argument-parsing-error-no-abort.cpp
+4-0clang-tools-extra/test/clang-change-namespace/argument-parsing-error-no-abort.cpp
+4-0clang-tools-extra/test/clang-include-fixer/find-all-symbols/argument-parsing-error-no-abort.cpp
+4-0clang/test/Tooling/argument-parsing-error-no-abort.cpp
+4-0clang-tools-extra/test/clang-include-fixer/argument-parsing-error-no-abort.cpp
+25-310 files not shown
+39-1116 files

LLVM/project aadf395.github/workflows libcxx-build-and-test.yaml, libcxx/utils/ci run-buildbot

[libcxx][Github] Add generic-llvm-libc config to CI (#193822)

Add the generic-llvm-libc config for CI so that we can ensure we do not
regress the config and easily test changes as we do more work.

Only run libcxx/libxxabi tests for now as libunwind fails to build due
to a missing dl_iterate_phdr implementation. It technically passes when
we enable the stub implementation, but we should have a reasonable
implementation before actually enabling.
DeltaFile
+24-2libcxx/utils/ci/run-buildbot
+1-0.github/workflows/libcxx-build-and-test.yaml
+25-22 files

LLVM/project 5d4b17eclang/lib/CodeGen/Targets SPIR.cpp, clang/test/CodeGenCXX no-elide-constructors.cpp

[Clang][SPIRV] Add getSRetAddrSpace() for SPIRV (#193875)

Override getSRetAddrSpace() so that sret pointers for non-trivially-
copyable types use the generic address space (addrspace 4), matching the
"this" pointer convention on spirv64-amd-amdhsa.
DeltaFile
+5-6clang/test/CodeGenHIP/store-addr-space.hip
+11-0clang/lib/CodeGen/Targets/SPIR.cpp
+2-4clang/test/CodeGenHIP/sret-nontrivial-copyable.hip
+1-2clang/test/CodeGenCXX/no-elide-constructors.cpp
+2-1clang/test/CodeGenHIP/sret-lifetime-markers.cpp
+21-135 files

LLVM/project 104ee2aclang-tools-extra/clangd/unittests PrerequisiteModulesTest.cpp

[NFC] [clangd] [C++20] [Modules] Add a test for testing transtive change detection (#193888)
DeltaFile
+43-0clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
+43-01 files