LLVM/project c5b39e5llvm/test/tools/llvm-objcopy/ELF cross-arch-headers.test, llvm/tools/llvm-objcopy ObjcopyOptions.cpp

[AMDGPU] Add AMDGPU support for llvm-objcopy
DeltaFile
+11-2llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test
+2-0llvm/tools/llvm-objcopy/ObjcopyOptions.cpp
+13-22 files

LLVM/project d736e1bllvm/test/tools/llvm-mca/RISCV/SiFiveP600 vlseg-vsseg.s, llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv arithmetic.test fp.test

[RISCV][MCA] Update sifive-p670 tests to consume input files instead (#189785)

Use the new input file system for `sifive-p670`'s llvm-mca tests. Some
of the vector crypto extension tests are left intact, due to the lack of
corresponding input files, and moved under the `rvv` sub-directory.
DeltaFile
+0-4,730llvm/test/tools/llvm-mca/RISCV/SiFiveP600/vlseg-vsseg.s
+4,541-0llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/arithmetic.test
+3,721-0llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/fp.test
+3,141-0llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/vlseg-vsseg.test
+2,893-0llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/bitwise.test
+2,349-0llvm/test/tools/llvm-mca/RISCV/SiFiveP600/rvv/permutation.test
+16,645-4,73040 files not shown
+29,714-9,36646 files

LLVM/project b5745e1libc/config/gpu/amdgpu entrypoints.txt headers.txt, libc/config/gpu/nvptx entrypoints.txt headers.txt

[libc] Support basic 'complex.h' functionality on GPUs (#189999)

Summary:
This PR adds the basic complex functions needed by some targets. This is
an attempt to provide the standard interface needed by
'https://github.com/llvm/llvm-project/pull/187831'
DeltaFile
+14-0libc/config/gpu/amdgpu/entrypoints.txt
+14-0libc/config/gpu/nvptx/entrypoints.txt
+1-0libc/config/gpu/amdgpu/headers.txt
+1-0libc/config/gpu/nvptx/headers.txt
+30-04 files

LLVM/project 5aea543clang/docs ReleaseNotes.rst, clang/lib/Sema SemaObjC.cpp

Revert "[Clang] Fix assertion when __block is used on global variables in C m…"

This reverts commit f1c8b9b4aad9e04501102b48d9abedd7f48b7af3.
DeltaFile
+0-6clang/lib/Sema/SemaObjC.cpp
+0-5clang/test/Sema/gh183974.c
+0-1clang/docs/ReleaseNotes.rst
+0-123 files

LLVM/project 573935dllvm/lib/Analysis DependenceAnalysis.cpp, llvm/test/Analysis/DependenceAnalysis weak-crossing-siv-delta-signed-min.ll weak-crossing-siv-large-btc.ll

[DA] Overflow check in WeakCrossing Delta calculation (#185046)

When subtracting the constant part of two addrecs, we need to ensure the
calculation won't overflow. If it may overflow, we conservatively stop
the analysis and return false.
DeltaFile
+4-1llvm/lib/Analysis/DependenceAnalysis.cpp
+2-2llvm/test/Analysis/DependenceAnalysis/weak-crossing-siv-delta-signed-min.ll
+2-2llvm/test/Analysis/DependenceAnalysis/weak-crossing-siv-large-btc.ll
+2-2llvm/test/Analysis/DependenceAnalysis/weak-crossing-siv-overflow.ll
+10-74 files

LLVM/project 3b3b556mlir/include/mlir/Dialect/LLVMIR NVVMOps.td, mlir/lib/Target/LLVMIR/Dialect/NVVM NVVMToLLVMIRTranslation.cpp

[mlir][NVVM] Add managed attribute for global variables (#189751)

Add support for the `nvvm.managed` attribute on `llvm.mlir.global` ops.
When present, the LLVM IR translation emits `!nvvm.annotations` metadata
with `!"managed"` for the global variable, which the NVPTX backend uses
to generate `.attribute(.managed)` in PTX output.

This enables CUDA managed memory support for frontends that lower
through MLIR.
DeltaFile
+18-1mlir/lib/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.cpp
+10-0mlir/test/Target/LLVMIR/nvvmir.mlir
+3-0mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
+31-13 files

LLVM/project 01cf792clang/lib/Sema SemaLookup.cpp SemaDeclCXX.cpp, clang/test/SemaCXX using-if-exists.cpp

[clang] Fix conflicting declaration error with using_if_exists (#167646)

This fixes an issue with using_if_exists where we would hit `conflicts
with target of using declaration already in scope` with a
using_if_exists attribute referring to a declaration which did not
exist. That is, if we have `using ::bar
__attribute__((using_if_exists))` but `bar` is not in the global
namespace, then nothing should actually be declared here.

This PR contains the following changes:
1. Ensure we only diagnose this error if the target decl and [Non]Tag
decl can be substitutes for each other.
2. Prevent LookupResult from considering UnresolvedUsingIfExistsDecls in
the event of ambiguous results.
3. Update tests. This includes the minimal repo for a regression test,
and changes to existing tests which also seem to exhibit this bug.

Fixes #85335


    [2 lines not shown]
DeltaFile
+53-28clang/test/SemaCXX/using-if-exists.cpp
+29-4clang/lib/Sema/SemaLookup.cpp
+4-12clang/lib/Sema/SemaDeclCXX.cpp
+86-443 files

LLVM/project ca14691clang-tools-extra/test/Unit CMakeLists.txt

[clang-doc] Make test alias depend on the unit test binary

Without depends, this doesn't seem to rebuild the ClangDocTests target.
DeltaFile
+1-0clang-tools-extra/test/Unit/CMakeLists.txt
+1-01 files

LLVM/project 6c7c575clang/lib/CodeGen CGHLSLRuntime.cpp

[clang] fix OutputSemantic list in HLSL (#185550)

Normally sane front-ends with the common calling-conventions avoid
having multiple sret with a return value, so this is NFCI. However,
multiple can be valid. This rewrites an odd looking DenseMap of one
element that was needed for iteration into a more sensible vector.

Noted in https://github.com/llvm/llvm-project/pull/181740 review.
DeltaFile
+7-8clang/lib/CodeGen/CGHLSLRuntime.cpp
+7-81 files

LLVM/project 54e5803llvm/tools/llubi/lib Interpreter.cpp ExecutorBase.cpp

[llubi] Extract reusable methods of InstExecutor into ExecutorBase (#186976)

This PR extracts the non-visitor methods of class InstExecutor into a
separate class ExecutorAPI. This reorganization allows library functions
(and any future extensions) to reuse the functionality of InstExecutor
without introducing cyclic dependencies.

See also #185645 and #185817.
DeltaFile
+4-165llvm/tools/llubi/lib/Interpreter.cpp
+127-0llvm/tools/llubi/lib/ExecutorBase.cpp
+100-0llvm/tools/llubi/lib/ExecutorBase.h
+1-0llvm/tools/llubi/lib/CMakeLists.txt
+232-1654 files

LLVM/project e55c853flang/lib/Lower Bridge.cpp, flang/test/Lower/OpenMP requires-usm.f90

[Flang][OpenMP] Extend omp requires detection in Bridge.cpp (#188106)

Currently, we do not check the module for requires directives, which
means we'll miss these and not set them on the OpenMP module.

Otherwise, due to the first come first serve method we currently check
the symbols, there is certain formats that would mean the compiler would
miss that a user had specified requires somewhere in the module. This is
partially but not fully avoided by the Semantics layer pushing the
requires on to the top most PFT symbol, as it is entirely possible to
create a legal Fortran program where you could have two or more of these
(e.g. module and main program in one file, standalone funcitons
intermixed with modules or main program). Some examples of this are
shown in the added Fortran test. This PR opts to resolve it by gathering
all of the relevant symbols and processing them.

Also removed gathering from BlockDataUnit as I don't think these symbols
ever get the requires applied.
DeltaFile
+56-0flang/test/Lower/OpenMP/requires-usm.f90
+16-11flang/lib/Lower/Bridge.cpp
+72-112 files

LLVM/project fbf4840mlir/include/mlir/Dialect/SparseTensor/Pipelines Passes.h, mlir/lib/Dialect/SparseTensor/Pipelines SparseTensorPipelines.cpp

[mlir][sparse] add GPU num threads to sparsifier options (#189078)

This change adds a `gpu-num-threads` option to the sparsifier. This
allows users to specify the number of threads used for GPU codegen,
similar to the `num-threads` option in the `-sparse-gpu-codegen` pass.
DeltaFile
+7-0mlir/include/mlir/Dialect/SparseTensor/Pipelines/Passes.h
+2-1mlir/lib/Dialect/SparseTensor/Pipelines/SparseTensorPipelines.cpp
+9-12 files

LLVM/project 24b6ee9llvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp

[SelectionDAG] Assert on non-FP operand to `computeKnownFPClass` (#189752)

Assert correct usage of `computeKnownFPClass` or users (i.e.,
`isKnownNeverNaN`).
DeltaFile
+1-0llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+1-01 files

LLVM/project b71eaceutils/bazel/llvm-project-overlay/mlir BUILD.bazel

[Bazel] Fixes 91adaec (#189998)

This fixes 91adaeceb162357a33e2ea6155cb13a4198a981a.

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+1-0utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+1-01 files

LLVM/project 07fc9b8llvm/lib/Target/RISCV RISCVISelLowering.cpp RISCVTargetTransformInfo.h, llvm/test/CodeGen/RISCV/rvv vfmax-vp.ll vfmin-vp.ll

[RISCV] Remove codegen for vp_minnum, vp_maxnum (#189899)

Part of the work to remove trivial VP intrinsics from the RISC-V
backend, see
https://discourse.llvm.org/t/rfc-remove-codegen-support-for-trivial-vp-intrinsics-in-the-risc-v-backend/87999

This splits off 2 intrinsics from #179622.
DeltaFile
+165-233llvm/test/CodeGen/RISCV/rvv/vfmax-vp.ll
+165-233llvm/test/CodeGen/RISCV/rvv/vfmin-vp.ll
+70-113llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmax-vp.ll
+70-113llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmin-vp.ll
+1-7llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+0-2llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
+471-7016 files

LLVM/project 26a5a49llvm/lib/Analysis DependenceAnalysis.cpp

[DA] factor out repetitive code in GCD test (NFCI) (#189461)

The logic for recursively investigating the source and destination
AddRecs in GCD test is the same and can be factored out.
DeltaFile
+27-36llvm/lib/Analysis/DependenceAnalysis.cpp
+27-361 files

LLVM/project 996157cclang/lib/AST/ByteCode Interp.h

Fully disable `preserve_none` under ASan (#190001)

This crashes Clang 19, 21, and 22 on x86-64 that I've tested and I don't
have a ready-to-test build of any other versions but it seems much safer
to just disable for now.
DeltaFile
+5-5clang/lib/AST/ByteCode/Interp.h
+5-51 files

LLVM/project 7c4b6decompiler-rt/lib/scudo/standalone combined.h, compiler-rt/lib/scudo/standalone/tests combined_test.cpp

[scudo] Ensure that reallocate copies everything

getUsableSize returns the actual capacity of the underlying block, which
may be larger than the size originally requested by the user. If the
user writes data into this extra space accessible via getUsableSize and
subsequently calls reallocate, the existing implementation only copies
the original requested number of bytes. This resulted in data loss for
any information stored beyond the requested size but within the usable
bounds.
DeltaFile
+24-0compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
+1-4compiler-rt/lib/scudo/standalone/combined.h
+25-42 files

LLVM/project 33ca7a4llvm/lib/Transforms/Scalar LICM.cpp, llvm/test/Transforms/LICM hoist-binop.ll

[LICM] Reassociate add/sub expressions to hoist invariant computations (#183082)

While `sub` is not associative, we can still reassociate `add` and
`sub`.

## Alive2 proofs

| Case | Transform | Proof |
|------|-----------|-------|
| 1 | `(x + c1) - c2` => `x + (c1 - c2)` |
[proof](https://alive2.llvm.org/ce/z/iofzYy) |
| 2 | `(x - c1) - c2` => `x - (c1 + c2)` |
[proof](https://alive2.llvm.org/ce/z/U4K_tE) |
| 3 | `(x - c1) + c2` => `x + (c2 - c1)` |
[proof](https://alive2.llvm.org/ce/z/moiJVw) |
DeltaFile
+154-5llvm/test/Transforms/LICM/hoist-binop.ll
+92-0llvm/lib/Transforms/Scalar/LICM.cpp
+246-52 files

LLVM/project 66d1dc4lldb/packages/Python/lldbsuite/test lldbutil.py

Revert "[lldb] Increase timeout on lldbutil.wait_for_file_on_target" (#190004)

Reverts llvm/llvm-project#189471 because it seems like this breaks the
Sanitized bots:
https://github.com/llvm/llvm-project/pull/189471#issuecomment-4171688975
DeltaFile
+12-7lldb/packages/Python/lldbsuite/test/lldbutil.py
+12-71 files

LLVM/project 45b932aflang/docs Extensions.md

[flang] Update Flang Extension doc to reflect previous change (#188088)

Update Flang Extension doc to remove note about a warning that was
removed in a previous PR (PR #178088). It is an oversight that this doc
change was not made in that previous PR. The oversight was only recently
discovered and has led to this PR.
DeltaFile
+0-5flang/docs/Extensions.md
+0-51 files

LLVM/project 166806eflang/lib/Semantics mod-file.cpp resolve-names.cpp, flang/test/Semantics modfile84.f90

Revert "[flang] Preserve UseErrorDetails in module files (#189423)" (#189997)

This reverts commit fce3a66f5e2f247890c57ac01a2c9847358c0f27. It broke a
Fortran application in our in-house testing.
DeltaFile
+3-16flang/lib/Semantics/mod-file.cpp
+0-19flang/test/Semantics/modfile84.f90
+0-14flang/test/Semantics/Inputs/modfile84.f90
+1-1flang/lib/Semantics/resolve-names.cpp
+0-1flang/lib/Semantics/mod-file.h
+4-515 files

LLVM/project 809239allvm/lib/Analysis DependenceAnalysis.cpp

address the nit command from code review
DeltaFile
+1-1llvm/lib/Analysis/DependenceAnalysis.cpp
+1-11 files

LLVM/project 8c9a181llvm/test/CodeGen/AMDGPU memory-legalizer-private-singlethread.ll memory-legalizer-private-workgroup.ll

Merge branch 'main' into users/amehsan/weakc-delta-overflow
DeltaFile
+8,544-1,366llvm/test/CodeGen/AMDGPU/memory-legalizer-private-singlethread.ll
+8,544-1,366llvm/test/CodeGen/AMDGPU/memory-legalizer-private-workgroup.ll
+8,544-1,366llvm/test/CodeGen/AMDGPU/memory-legalizer-private-wavefront.ll
+8,449-1,355llvm/test/CodeGen/AMDGPU/memory-legalizer-private-cluster.ll
+8,449-1,355llvm/test/CodeGen/AMDGPU/memory-legalizer-private-agent.ll
+8,069-1,315llvm/test/CodeGen/AMDGPU/memory-legalizer-private-system.ll
+50,599-8,1231,153 files not shown
+235,546-47,6861,159 files

LLVM/project d7e129dllvm/lib/CodeGen/SelectionDAG SelectionDAGBuilder.cpp

[SelectionDAGBuilder] Only check VPCmp for NaNs in fp comparisons (#189749)

`getFCmpCodeWithoutNaN` should only be used for FP comparisons (which is
also the only context in which `isKnownNeverNaN` makes sense).
DeltaFile
+13-8llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+13-81 files

LLVM/project 91adaecclang/include/clang/CIR/Dialect/OpenMP RegisterOpenMPExtensions.h, clang/lib/CIR/CodeGen CIRGenerator.cpp

[CIR][MLIR][OpenMP] Enable the MarkDeclareTarget pass for ClangIR (#189420)

This patch enables the MarkDeclareTarget for CIR by adding the pass to
the lowerings and attaching the declare target interface to the
cir::FuncOp. The MarkDeclareTarget is also generalized to work on the
FunctionOpInterface instead of func::Op since it needs to be able to
handle cir::FuncOp as well.

Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
DeltaFile
+31-29mlir/lib/Dialect/OpenMP/Transforms/MarkDeclareTarget.cpp
+53-0clang/test/CIR/Transforms/omp-mark-declare-target.cir
+26-0clang/lib/CIR/Dialect/OpenMP/RegisterOpenMPExtensions.cpp
+22-0clang/include/clang/CIR/Dialect/OpenMP/RegisterOpenMPExtensions.h
+11-0clang/lib/CIR/Dialect/OpenMP/CMakeLists.txt
+3-1clang/lib/CIR/CodeGen/CIRGenerator.cpp
+146-309 files not shown
+161-3115 files

LLVM/project 44979bellvm/lib/Transforms/Vectorize VPlanUtils.cpp

[VPlan] Strip dead code in isUniformAcrossVFsAndUFs (NFC) (#189687)

Checking a VPInstruction for scalar-cast is equivalent to checking
opcode against Instruction::isCast via preservesUniformity.
DeltaFile
+2-4llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
+2-41 files

LLVM/project 0211c74libunwind/src Registers.hpp

Fix code formatting
DeltaFile
+2-2libunwind/src/Registers.hpp
+2-21 files

LLVM/project 5c36ef8flang/lib/Optimizer/HLFIR/Transforms BufferizeHLFIR.cpp, flang/test/HLFIR bufferize-associate-block-ordering.fir

[flang] fix a dangling else in allOtherUsesAreSafeForAssociate (#189748)

Fix a dangling if condition in allOtherUsesAreSafeForAssociate that
caused isBeforeInBlock to be called even when instructions were known to
not be in the same block, triggering an assertion. The condition was
changed to else if and added brackets.

---------

Co-authored-by: Yebin Chon <ychon at nvidia.com>
DeltaFile
+41-0flang/test/HLFIR/bufferize-associate-block-ordering.fir
+3-2flang/lib/Optimizer/HLFIR/Transforms/BufferizeHLFIR.cpp
+44-22 files

LLVM/project 82e8494llvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize/VPlan dissolve-replicate-regions.ll

[VPlan] Avoid unnecessary BTC SymbolicValue creation (NFC) (#189929)

Don't unnecessarily create a backedge-taken-count SymbolicValue. This
allows us to simplify some code.
DeltaFile
+19-19llvm/test/Transforms/LoopVectorize/VPlan/dissolve-replicate-regions.ll
+5-5llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+24-242 files