LLVM/project 58b65facross-project-tests lit.cfg.py

[cross-project-tests][lit] Print LLDB version when configuring tests (#192614)

Useful when debugging issues with the LLDB tests.
DeltaFile
+10-1cross-project-tests/lit.cfg.py
+10-11 files

LLVM/project a4cccdcllvm/lib/Transforms/Vectorize VPlanTransforms.cpp VPlan.cpp, llvm/test/Transforms/LoopVectorize/VPlan first-order-recurrence-sink-replicate-region.ll vplan-sink-scalars-and-merge.ll

[VPlan] Remove constant branches early. (#183397)

Simplify constant branches early, after introducing the check in the
middle block.

This removes any trivial branches in the input CFG (e.g. over-reduced
test cases) early and also folds branches on true/false created by
addMiddleChecks. This allows to check if there's a scalar tail instead
to check if the tail has been folded, as mentioned in
https://github.com/llvm/llvm-project/pull/182507

This requires to remove recipes in the new unreachable blocks, as
otherwise we would fail during verification, due to uses in unreachable
blocks. Alternatively, we may be able to skip verification for uses in
unreachable blocks.

Depends on https://github.com/llvm/llvm-project/pull/181252.

PR: https://github.com/llvm/llvm-project/pull/183397
DeltaFile
+34-5llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+13-26llvm/test/Transforms/LoopVectorize/VPlan/first-order-recurrence-sink-replicate-region.ll
+11-22llvm/test/Transforms/LoopVectorize/VPlan/vplan-sink-scalars-and-merge.ll
+7-6llvm/lib/Transforms/Vectorize/VPlan.cpp
+4-8llvm/test/Transforms/LoopVectorize/VPlan/conditional-scalar-assignment-vplan.ll
+5-3llvm/lib/Transforms/Vectorize/VPlan.h
+74-709 files not shown
+86-9215 files

LLVM/project 98e023dllvm/tools/llvm-readobj ELFDumper.cpp

[llvm-readobj][ELF] Remove redundant error in reportWarning

If MapOrError contains no error, calling takeError() results in
undefined behavior and may crash the program.
DeltaFile
+33-36llvm/tools/llvm-readobj/ELFDumper.cpp
+33-361 files

LLVM/project 1555ad2llvm/test/tools/llvm-readobj/ELF packed-relocs-errors.s dynamic-tags.test, llvm/tools/llvm-readobj ELFDumper.cpp ObjDumper.cpp

[llvm-readobj][ELF] Use WrappedError to filter duplicates

Switch from StringError to WrappedError. Errors of the form "Prefix:
Error" can now be filtered out based on the underlying error while
preserving distinct prefixes, resulting in clearer llvm-readobj output.
DeltaFile
+211-198llvm/tools/llvm-readobj/ELFDumper.cpp
+16-13llvm/test/tools/llvm-readobj/ELF/packed-relocs-errors.s
+20-8llvm/tools/llvm-readobj/ObjDumper.cpp
+0-11llvm/test/tools/llvm-readobj/ELF/dynamic-tags.test
+4-7llvm/test/tools/llvm-readobj/ELF/program-headers.test
+0-7llvm/test/tools/llvm-readobj/ELF/stack-sizes.test
+251-24411 files not shown
+256-26417 files

LLVM/project 0f35a93llvm/include/llvm/Object ELF.h, llvm/lib/Object ELF.cpp

[Object][ELF] Pass Error to WarningHandler

Warning consumers may need to handle errors based on their type. Pass
the Error object instead of a string representation to enable this. This
also brings WarningHandler in line with Support/WithColor.h.
DeltaFile
+29-25llvm/include/llvm/Object/ELF.h
+5-4llvm/tools/llvm-objdump/llvm-objdump.cpp
+4-3llvm/tools/llvm-readobj/ObjDumper.cpp
+2-2llvm/tools/llvm-readobj/ELFDumper.cpp
+2-2llvm/lib/Object/ELF.cpp
+2-2llvm/unittests/Object/ELFObjectFileTest.cpp
+44-382 files not shown
+46-408 files

LLVM/project 3ac04b9mlir/include/mlir/Dialect/SPIRV/IR SPIRVTosaOps.td, mlir/test/Dialect/SPIRV/IR tosa-ops-verification.mlir

[mlir][spirv] Improve type constraints for SPIR-V Tosa CastOp (#192227)

Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>
DeltaFile
+66-0mlir/test/Dialect/SPIRV/IR/tosa-ops-verification.mlir
+47-1mlir/include/mlir/Dialect/SPIRV/IR/SPIRVTosaOps.td
+113-12 files

LLVM/project 8364db5llvm/lib/Transforms/Vectorize VPlanRecipes.cpp LoopVectorize.cpp, llvm/test/Transforms/LoopVectorize/AArch64 splice-cost.ll reduction-recurrence-costs-sve.ll

[LV] Fix the cost of first order recurrence splice (#192473)

The index had the wrong sign (for splice.right, the sign is negative),
which meant that it calculates the cost of a splice.left operation. For
SVE this makes a difference because a splice.left is lowered using an
unpredicated EXT instruction, whereas a splice.right is lowered using a
predicated SPLICE instruction, which needs a slightly higher cost.

The change in `reduction-recurrence-costs-sve.ll` happens because the
vector loop is now less profitable (higher cost) and therefore requires
a higher trip-count to be profitable (hence the extra umax).
DeltaFile
+31-0llvm/test/Transforms/LoopVectorize/AArch64/splice-cost.ll
+3-7llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+1-4llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+2-1llvm/test/Transforms/LoopVectorize/AArch64/reduction-recurrence-costs-sve.ll
+37-124 files

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

[LifetimeSafety] Handle xvalue operand of LValueToRValue cast (#192312)

Under C++23, P2266 wraps the operand of `return p;` in an xvalue NoOp
cast for by-value parameters. The `CK_LValueToRValue` branch in
FactsGenerator guarded on `!SubExpr->isLValue()`, breaking origin flow
and silencing the suggestion for `int* id(int* p) { return p; }`.

Use `isGLValue()`, matching how origins are built and stripped elsewhere
in the analysis.

Only add a RUN in suggestion test file, since some tests in
`warn-lifetime-safety.cpp` cause a hard error under C++23. For example:
`MyObj& f() { MyObj s; return s; }`. `error: non-const lvalue reference
to type 'MyObj' cannot bind to a temporary of type 'MyObj'`.

Fixes: #176292
DeltaFile
+1-2clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+1-0clang/test/Sema/warn-lifetime-safety-suggestions.cpp
+2-22 files

LLVM/project 92f7daellvm/test/tools/llvm-ar error-opening-directory.test

[llvm-ar] Enable failed testacase on FreeBSD
DeltaFile
+1-1llvm/test/tools/llvm-ar/error-opening-directory.test
+1-11 files

LLVM/project 6b0d268flang/lib/Lower MultiImageFortran.cpp, flang/lib/Optimizer/Dialect/MIF MIFOps.cpp

[Flang] Adding first lowering for the allocation and deallocation of coarrays (#182110)

This PR add support of coarray allocation and deallocation in Flang and
adds two new operations to MIF:
- `mif::AllocaCoarrayOp` : Allocates a coarray
using `prif_allocate_coarray` PRIF procedure.
- `mif::DeallocaCoarrayOp` : Deallocates a coarray
using `prif_deallocate_coarray` PRIF procedure

This PR does not yet handle allocation for the following cases (which
will be added in future PRs):
- Coarrays with ALLOCATABLE and/or POINTER components (PRIF has
procedures (`prif_(de)allocate`) for this).
- Coarray dummy arguments (PRIF has also procedures for this)
- Finalization of coarrays
- non-ALLOCATABLE SAVE coarrays outside the scoping unit of the main
program (e.g. non-ALLOCATABLE coarrays declared in a module or a
procedure)


    [5 lines not shown]
DeltaFile
+325-9flang/lib/Optimizer/Transforms/MIFOpConversion.cpp
+244-0flang/test/Fir/MIF/coarray-alloc.mlir
+193-0flang/lib/Lower/MultiImageFortran.cpp
+64-62flang/test/Fir/MIF/change_team2.mlir
+51-49flang/test/Fir/MIF/get_team.mlir
+67-0flang/lib/Optimizer/Dialect/MIF/MIFOps.cpp
+944-12020 files not shown
+1,442-23326 files

LLVM/project b2317ccmlir/include/mlir/Dialect/Arith/IR ArithOps.td, mlir/lib/Conversion/ArithToLLVM ArithToLLVM.cpp

[mlir][arith] Add rounding mode flags to binary arithmetic operations (#188458)

Add rounding mode flags for `addf`, `subf`, `mulf`, `divf`. This
addresses a TODO in the op description.

The folder now takes into account the specified rounding mode. If no
rounding mode is specified, the folders/canonicalizations default to
`rmNearestTiesToEven`. (This behavior has not changed.) This is
documented in the top-level arith dialect documentation. The default
arith rounding mode applies only to "internal" transformations such as
foldings/canonicalizations. In case of an unspecified explicit rounding
mode, the runtime behavior is up to the target backend.

Also add a lowering to LLVM intrinsics such as
`llvm.intr.experimental.constrained.fadd`.

Assisted-by: claude-4.6-opus-high
DeltaFile
+75-28mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
+75-0mlir/test/Dialect/Arith/canonicalize.mlir
+49-21mlir/lib/Conversion/ArithToLLVM/ArithToLLVM.cpp
+62-0mlir/test/Conversion/ArithToLLVM/arith-to-llvm.mlir
+38-19mlir/lib/Dialect/Arith/IR/ArithOps.cpp
+12-8mlir/lib/Dialect/Arith/IR/ArithCanonicalization.td
+311-764 files not shown
+342-8110 files

LLVM/project 1963febllvm/lib/Transforms/Vectorize VPlanTransforms.cpp

[LV] Replace "BinOp" with "ExtendedOp" in partial reduction transforms (NFCI) (#192422)

"BinOp" as not been accurate for a while (as it's sometime just an
extend). After #188043, it can now also be an "abs" in some cases.

This patch renames "BinOp" to "ExtendedOp" (in line with
matchExtendedReductionOperand). It also updates some doc comments and
tweaks matching the "ExtendedOp" in transformToPartialReduction.
DeltaFile
+38-38llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+38-381 files

LLVM/project 7f5588fmlir/lib/Dialect/Bufferization/IR BufferizableOpInterface.cpp, mlir/lib/Dialect/Bufferization/Transforms OneShotAnalysis.cpp OneShotModuleBufferize.cpp

[MLIR] make One-Shot and SCF bufferization TensorLikeType-aware (#189073)

Fix bufferization inconsistencies between builtin tensor types and
custom TensorLikeType implementations across One-Shot analysis/module
paths and SCF bufferization interfaces.

The main issue was a mix of TensorType/RankedTensorType checks in places
that need TensorLikeType-aware handling. This could leave
function-boundary equivalence/aliasing incomplete for custom tensor-like
types, leading to spurious SCF loop equivalence verification failures.

This change:
- switches relevant One-Shot analysis/module checks from TensorType/
RankedTensorType to TensorLikeType;
- updates generic/default aliasing utilities to treat TensorLikeType
consistently;
- updates SCF BufferizableOpInterface implementations
(for/while/if/yield related paths) to use TensorLikeType/BufferLikeType
where appropriate;

    [16 lines not shown]
DeltaFile
+176-0mlir/test/Dialect/Bufferization/Transforms/one-shot-module-bufferize.mlir
+49-37mlir/lib/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.cpp
+39-10mlir/test/lib/Dialect/Test/TestOps.td
+14-14mlir/lib/Dialect/Bufferization/Transforms/OneShotAnalysis.cpp
+10-9mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp
+10-5mlir/lib/Dialect/Bufferization/IR/BufferizableOpInterface.cpp
+298-752 files not shown
+315-798 files

LLVM/project a02d955mlir/lib/Dialect/Vector/IR VectorOps.cpp, mlir/test/Dialect/Vector canonicalize.mlir vector-contract-to-matrix-intrinsics-transforms.mlir

[mlir][vector] Fold poison operands into vector.shuffle mask (#190932)

Fold poison operands into the `vector.shuffle` mask. This commit also
splits up the `vector::ShuffleOp::fold` implementation into multiple
helper functions.

Assisted-by: claude-4.6-opus-high
DeltaFile
+82-27mlir/lib/Dialect/Vector/IR/VectorOps.cpp
+10-0mlir/test/Dialect/Vector/canonicalize.mlir
+2-2mlir/test/Dialect/Vector/vector-contract-to-matrix-intrinsics-transforms.mlir
+2-2mlir/test/Dialect/XeGPU/xegpu-vector-linearize.mlir
+96-314 files

LLVM/project f9934eeclang/test lit.cfg.py

[clang][FreeBSD] Re-enable the crush-recovery test on FreeBSD

All of the tests work now on FreeBSD, so we re-enable the feature again
on FreeBSD.
DeltaFile
+1-3clang/test/lit.cfg.py
+1-31 files

LLVM/project 2fdd23fcompiler-rt/lib/builtins/cpu_model/aarch64 hwcap.inc

[compiler-rt][AArch64][NFC] Sort HWCAP entries (#192370)
DeltaFile
+6-6compiler-rt/lib/builtins/cpu_model/aarch64/hwcap.inc
+6-61 files

LLVM/project 93abb81llvm/test/CodeGen/LoongArch/lasx/ir-instruction shuffle-as-xvextrins.ll

[LoongArch][NFC] Pre-commit tests for `xvextrins`
DeltaFile
+78-0llvm/test/CodeGen/LoongArch/lasx/ir-instruction/shuffle-as-xvextrins.ll
+78-01 files

LLVM/project bcc606cmlir/lib/Dialect/Shard/Transforms Partition.cpp

[NFC][mlir][shard] Unify MoveLastSplitAxisPattern/MoveLastSplitAxisPattern (#192295)

Made MoveLastSplitAxisPattern more general to also cover MoveLastSplitAxisPattern.
Less code, same functionality.
Assisted by claude.
DeltaFile
+7-99mlir/lib/Dialect/Shard/Transforms/Partition.cpp
+7-991 files

LLVM/project 8671b79llvm/test/Transforms/LoopVectorize/RISCV tail-folding-interleave.ll

[LV][RISCV] Fix incorrect pointer operand in interleaved access tests. nfc (#192464)

In some load cases, the index 1 member used the same pointer as the
index 0 member. This patch corrected the pointer use.
DeltaFile
+40-47llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-interleave.ll
+40-471 files

LLVM/project 10536d4clang/lib/CodeGen BackendUtil.cpp, llvm/include/llvm/Transforms/IPO LowerTypeTests.h

[CFI] Extract DropTypeTestsPass from LowerTypeTestsPass (#192578)

This patch introduces `DropTypeTestsPass` as a dedicated pass
to handle the dropping of type tests. Previously, this was handled
by `LowerTypeTestsPass` with a specific parameter.

By splitting this into its own pass, we simplify the pass pipeline
construction and make the intent clearer in `PassRegistry.def` and
various pipeline builders.

It's almost NFC, if not opt command line changes.
DeltaFile
+50-47llvm/lib/Transforms/IPO/LowerTypeTests.cpp
+16-8llvm/include/llvm/Transforms/IPO/LowerTypeTests.h
+8-15llvm/lib/Passes/PassBuilderPipelines.cpp
+20-0llvm/lib/Passes/PassBuilder.cpp
+1-4clang/lib/CodeGen/BackendUtil.cpp
+5-0llvm/lib/Passes/PassRegistry.def
+100-7410 files not shown
+112-8616 files

LLVM/project b4e75e1libc/src/ucontext getcontext.h setcontext.h, libc/src/ucontext/x86_64 getcontext.cpp setcontext.cpp

[libc][nfc] Fix ucontext buildbot failure with noexcept (#192343) (#192601)

Added noexcept to getcontext and setcontext declarations and definitions
to resolve missing attribute warning on aliases.

This fixes failures on builders using GCC like
libc-x86_64-debian-gcc-fullbuild-dbg.
DeltaFile
+2-1libc/src/ucontext/x86_64/getcontext.cpp
+1-1libc/src/ucontext/getcontext.h
+1-1libc/src/ucontext/setcontext.h
+1-1libc/src/ucontext/x86_64/setcontext.cpp
+5-44 files

LLVM/project 19463aallvm/lib/DebugInfo/DWARF DWARFCFIPrinter.cpp

[llvm][DebugInfo] Use formatv in DWARFCFIPrinter (#191982)

This relates to #35980.
DeltaFile
+10-10llvm/lib/DebugInfo/DWARF/DWARFCFIPrinter.cpp
+10-101 files

LLVM/project ede75e5clang/lib/AST/ByteCode Interp.cpp, clang/test/AST/ByteCode cxx20.cpp

[clang][bytecode] Don't diagnose const assignments... (#192593)

... when we're in CPCE mode.
DeltaFile
+9-0clang/test/AST/ByteCode/cxx20.cpp
+5-3clang/lib/AST/ByteCode/Interp.cpp
+14-32 files

LLVM/project 81af175llvm/tools/llvm-readobj ELFDumper.cpp

fixup! [Object][ELF] Pass Error to WarningHandler
DeltaFile
+32-34llvm/tools/llvm-readobj/ELFDumper.cpp
+32-341 files

LLVM/project 218e747clang/lib/CIR/CodeGen CIRGenBuiltinAMDGPU.cpp, clang/test/CIR/CodeGenHIP builtins-amdgcn-logb-scalbn.hip

[CIR][AMDGPU] Fix FltSemantics, naming convention, and CIR APIs
DeltaFile
+52-61clang/lib/CIR/CodeGen/CIRGenBuiltinAMDGPU.cpp
+12-0clang/test/CIR/CodeGenHIP/builtins-amdgcn-logb-scalbn.hip
+64-612 files

LLVM/project 95b516eclang/lib/CIR/CodeGen CIRGenBuiltinAMDGPU.cpp, clang/test/CIR/CodeGenHIP builtins-amdgcn-logb-scalbn.hip

[CIR][AMDGPU] Adds amdgcn logb and scalebn builtins
DeltaFile
+89-10clang/lib/CIR/CodeGen/CIRGenBuiltinAMDGPU.cpp
+42-0clang/test/CIR/CodeGenHIP/builtins-amdgcn-logb-scalbn.hip
+131-102 files

LLVM/project 02bee9aclang/lib/CIR/CodeGen CIRGenBuiltin.cpp CIRGenBuiltinAMDGPU.cpp, clang/test/CIR/CodeGenHIP builtins-amdgcn-logb-scalbn.hip

[CIR][AMDGPU] Fix constrained FP and library calls path
DeltaFile
+26-1clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
+9-17clang/test/CIR/CodeGenHIP/builtins-amdgcn-logb-scalbn.hip
+2-3clang/lib/CIR/CodeGen/CIRGenBuiltinAMDGPU.cpp
+3-0clang/lib/CIR/CodeGen/TargetInfo.h
+2-0clang/lib/CIR/CodeGen/TargetInfo.cpp
+42-215 files

LLVM/project fca80b4llvm/lib/Target/AMDGPU AMDGPUSwLowerLDS.cpp, llvm/test/CodeGen/AMDGPU amdgpu-sw-lower-lds-static-alloca-placement.ll

[AMDGPU][ASAN] Move allocas to entry block in amdgpu-sw-lower-lds pass (#190772)

The `amdgpu-sw-lower-lds` pass inserts a workitem-0 check, malloc, and
barrier before the original entry block, creating a new entry block.
This pushes the original allocas into a non-entry block, causing LLVM to
treat them as dynamic allocas.

AMDGPU backend generates incorrect flat addresses for dynamic alloca
addrspacecasts at -O0, causing memory faults when ASan is enabled with
LDS.

This PR hoists constant-size allocas to the new entry block so they
remain static.
DeltaFile
+61-0llvm/test/CodeGen/AMDGPU/amdgpu-sw-lower-lds-static-alloca-placement.ll
+14-1llvm/lib/Target/AMDGPU/AMDGPUSwLowerLDS.cpp
+75-12 files

LLVM/project 9854bf4llvm/lib/Target/AMDGPU AMDGPUMCResourceInfo.cpp AMDGPUResourceUsageAnalysis.cpp, llvm/test/CodeGen/AMDGPU object-linking-local-resources.ll lds-link-time-codegen-indirect.ll

[AMDGPU] Report only local per-function resource usage when object linking is enabled

With object linking the linker aggregates resource usage across TUs via
`.amdgpu.info`, so compile-time pessimism and call-graph propagation duplicate
the linker's work or pollute its inputs.

In this mode, skip the per-callsite conservative bumps in
`AMDGPUResourceUsageAnalysis` and assign each resource symbol in
`AMDGPUMCResourceInfo` a concrete local constant instead of building call-graph
max/or expressions.
DeltaFile
+104-0llvm/test/CodeGen/AMDGPU/object-linking-local-resources.ll
+26-8llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp
+10-1llvm/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.cpp
+4-0llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.h
+1-1llvm/test/CodeGen/AMDGPU/lds-link-time-codegen-indirect.ll
+145-105 files

LLVM/project 2d70192lldb/include/lldb/Target StackFrame.h, lldb/source/API SBFrame.cpp

[lldb] Add synthetic variable support to Get*VariableList.

This patch adds a new flag to the lldb_private::StackFrame API to get variable lists: `include_synthetic_vars`.  This allows ScriptedFrame (and other future synthetic frames) to construct 'fake' variables and return them in the VariableList, so that commands like `fr v` and `SBFrame::GetVariables` can show them to the user as requested.

This patch includes all changes necessary to call the API the new way - I tried to use my best judgement on when to include synthetic variables or not and leave comments explaining the decision.

As a consequence of producing synthetic variables, this patch means that ScriptedFrame can produce Variable objects with ValueType that contains a ValueTypeExtendedMask in a high bit. This necessarily complicates some of the switch/case handling in places where we would expect to find such variables, and this patch makes best effort to address all such cases as well. From experience, they tend to show up whenever we're dealing with checking if a Variable is in a specified scope, which means we basically have to check the high bit against some user input saying "yes/no synthetic variables".

stack-info: PR: https://github.com/llvm/llvm-project/pull/181501, branch: users/bzcheeseman/stack/9
DeltaFile
+42-11lldb/source/API/SBFrame.cpp
+44-8lldb/source/Plugins/Process/scripted/ScriptedFrame.cpp
+31-11lldb/source/Commands/CommandObjectFrame.cpp
+27-8lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py
+16-2lldb/source/Target/StackFrame.cpp
+16-0lldb/include/lldb/Target/StackFrame.h
+176-407 files not shown
+217-5613 files