LLVM/project 1cea4a0llvm/lib/Target/AMDGPU SIInstrInfo.cpp

[AMDGPU][NPM] Fix CFG invalidation detection in insertSimulatedTrap (#169290)

When SIMULATED_TRAP is at the end of a block with no successors,
insertSimulatedTrap incorrectly returns the original MBB despite adding
HaltLoopBB to the CFG.

EmitInstrWithCustomInserter detects CFG changes by comparing the
returned MBB with the original. When they match, it assumes no
modification occurred and skips MachineLoopInfo invalidation. This
causes stale loop information in subsequent passes, particularly when
using the NPM which relies on accurate invalidation signals.

Fix: Return HaltLoopBB to properly signal the CFG modification.
DeltaFile
+4-0llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+4-01 files

LLVM/project bd0769ellvm/lib/Target/LoongArch LoongArchISelLowering.cpp LoongArchLSXInstrInfo.td, llvm/test/CodeGen/LoongArch/lasx rotl-rotr.ll

[LoongArch] Make rotl/rotr custom for lsx/lasx (#161154)

DeltaFile
+36-71llvm/test/CodeGen/LoongArch/lasx/rotl-rotr.ll
+34-71llvm/test/CodeGen/LoongArch/lsx/rotl-rotr.ll
+59-0llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+5-0llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
+5-0llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
+1-0llvm/lib/Target/LoongArch/LoongArchISelLowering.h
+140-1426 files

LLVM/project 1e7efcaclang/docs ReleaseNotes.rst, clang/lib/Sema SemaTemplateInstantiateDecl.cpp

[clang] fix crash when template with constructor attribute is instantiated without a priority (#169282)

fixes: https://github.com/llvm/llvm-project/issues/169072

The current implementation expects the priority argument to be provided
to `[[gnu::constructor(<priority>)]]`, but the argument is really
optional. This was causing a segfault when instantiating the
function-template because we were trying to fold an `Expr*` that was a
nullptr.

This change skips the evaluation of the priority argument when it is
missing; this will instantiate a function declaration with the default
priority (65535).
DeltaFile
+11-9clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+20-0clang/test/SemaTemplate/attributes.cpp
+2-0clang/docs/ReleaseNotes.rst
+33-93 files

LLVM/project 1100917llvm/lib/Target/X86 X86InstrAMX.td X86ISelLowering.cpp, llvm/test/CodeGen/MIR2Vec/Inputs reference_x86_vocab_print.txt reference_x86_vocab_wo=0.5_print.txt

[AMX][NFC] Organize tilerow (#168193)

Organizing tilerow for an extension.

---------

Co-authored-by: mattarde <mattarde at intel.com>
DeltaFile
+12-12llvm/lib/Target/X86/X86InstrAMX.td
+12-12llvm/lib/Target/X86/X86ISelLowering.cpp
+12-12llvm/lib/Target/X86/X86ExpandPseudo.cpp
+2-2llvm/test/CodeGen/MIR2Vec/Inputs/reference_x86_vocab_print.txt
+2-2llvm/test/CodeGen/MIR2Vec/Inputs/reference_x86_vocab_wo=0.5_print.txt
+40-405 files

LLVM/project f342d79llvm/lib/Target/ARM ARMInstrThumb2.td ARMInstrThumb.td, llvm/lib/Target/ARM/Disassembler ARMDisassembler.cpp

[ARM] Auto-decode pred operands of Thumb instructions (#156540)

Most predicable Thumb instructions do not encode the predicate operand,
but rather take it from an enclosing IT block.
Add `bits<0> p` to the encoding of these instructions to make the
predicate operand decodable by the generated code.

The previous approach was to analyze an instruction after it has been
decoded and add missing predicate operand if necessary. The
post-decoding pass is still required to check predicate applicability
and advance IT block state, but it no longer modifies a decoded
instruction.

Some of the custom decoder methods have become redundant and can be
removed in the future, delegating the decoding task to TableGen-erated
decoder.

Pull Request: https://github.com/llvm/llvm-project/pull/156540
DeltaFile
+125-63llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
+20-3llvm/lib/Target/ARM/ARMInstrThumb2.td
+10-0llvm/lib/Target/ARM/ARMInstrThumb.td
+6-0llvm/lib/Target/ARM/ARMInstrFormats.td
+1-4llvm/utils/gn/secondary/llvm/lib/Target/ARM/Disassembler/BUILD.gn
+1-4utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+163-742 files not shown
+167-768 files

LLVM/project a013bc2mlir/include/mlir/Transforms Passes.td, mlir/lib/Transforms RemoveDeadValues.cpp CMakeLists.txt

address comments
DeltaFile
+35-30mlir/lib/Transforms/RemoveDeadValues.cpp
+16-0mlir/test/Transforms/remove-dead-values.mlir
+1-0mlir/lib/Transforms/CMakeLists.txt
+1-0mlir/include/mlir/Transforms/Passes.td
+53-304 files

LLVM/project 9021c66llvm/lib/Target/LoongArch LoongArchISelLowering.cpp

fix accroding reviews
DeltaFile
+3-4llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+3-41 files

LLVM/project 0fab7ebllvm/lib/Target/LoongArch LoongArchISelLowering.cpp

modify comment
DeltaFile
+1-1llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+1-11 files

LLVM/project 132969cllvm/test/CodeGen/LoongArch/lasx rotl-rotr.ll, llvm/test/CodeGen/LoongArch/lsx rotl-rotr.ll

add tests
DeltaFile
+36-71llvm/test/CodeGen/LoongArch/lasx/rotl-rotr.ll
+34-71llvm/test/CodeGen/LoongArch/lsx/rotl-rotr.ll
+70-1422 files

LLVM/project c9d56c4llvm/lib/Target/LoongArch LoongArchISelLowering.cpp LoongArchLASXInstrInfo.td

[LoongArch] Make rotl/rotr custom for lsx/lasx
DeltaFile
+60-0llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+5-0llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
+5-0llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
+1-0llvm/lib/Target/LoongArch/LoongArchISelLowering.h
+71-04 files

LLVM/project d2349camlir/include/mlir/Transforms Passes.td, mlir/lib/Transforms RemoveDeadValues.cpp CMakeLists.txt

address comments
DeltaFile
+35-30mlir/lib/Transforms/RemoveDeadValues.cpp
+16-0mlir/test/Transforms/remove-dead-values.mlir
+1-0mlir/include/mlir/Transforms/Passes.td
+1-0mlir/lib/Transforms/CMakeLists.txt
+53-304 files

LLVM/project c1b8c55mlir/lib/Transforms RemoveDeadValues.cpp, mlir/test/Transforms remove-dead-values.mlir

[mlir][Transforms] Fix crash in `-remove-dead-values` for private functions
DeltaFile
+38-0mlir/lib/Transforms/RemoveDeadValues.cpp
+11-0mlir/test/Transforms/remove-dead-values.mlir
+49-02 files

LLVM/project f18d72fllvm/test/CodeGen/AMDGPU shufflevector.v4i64.v4i64.ll shufflevector.v4p0.v4p0.ll, llvm/test/tools/llvm-dwarfdump/X86 simplified-template-names.s

Merge branch 'main' into users/s.barannikov/decoder-operands-7-arm
DeltaFile
+5,975-8,879llvm/test/CodeGen/AMDGPU/shufflevector.v4i64.v4i64.ll
+5,975-8,879llvm/test/CodeGen/AMDGPU/shufflevector.v4p0.v4p0.ll
+7,387-7,087llvm/test/tools/llvm-dwarfdump/X86/simplified-template-names.s
+5,420-8,636llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+3,880-6,644llvm/test/CodeGen/AMDGPU/shufflevector.v4i64.v3i64.ll
+3,880-6,644llvm/test/CodeGen/AMDGPU/shufflevector.v4p0.v3p0.ll
+32,517-46,7694,626 files not shown
+248,246-315,1834,632 files

LLVM/project 3e3ccdcclang/include/clang/Analysis/Analyses/LifetimeSafety Origins.h, clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp Origins.cpp

Multi-origin changes
DeltaFile
+153-371clang/test/Sema/warn-lifetime-safety-dataflow.cpp
+384-30clang/test/Sema/warn-lifetime-safety.cpp
+235-89clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+119-64clang/lib/Analysis/LifetimeSafety/Origins.cpp
+102-22clang/include/clang/Analysis/Analyses/LifetimeSafety/Origins.h
+55-30clang/unittests/Analysis/LifetimeSafetyTest.cpp
+1,048-6068 files not shown
+1,120-64314 files

LLVM/project b9bdec3llvm/include/llvm/Analysis TargetTransformInfo.h, llvm/include/llvm/CodeGen BasicTTIImpl.h

[TTI][Vectorize] Migrate masked/gather-scatter/strided/expand-compress costing (NFCI) (#165532)

In #160470, there is a discussion about the possibility to explored a
general approach for handling memory intrinsics.

API changes:
- Remove getMaskedMemoryOpCost, getGatherScatterOpCost,
getExpandCompressMemoryOpCost, getStridedMemoryOpCost from
Analysis/TargetTransformInfo.
- Add getMemIntrinsicInstrCost.

In BasicTTIImpl, map intrinsic IDs to existing target implementation
until the legacy TTI hooks are retired.
- masked_load/store → getMaskedMemoryOpCost
- masked_/vp_gather/scatter → getGatherScatterOpCost
- masked_expandload/compressstore → getExpandCompressMemoryOpCost
- experimental_vp_strided_{load,store} → getStridedMemoryOpCost
TODO: add support for vp_load_ff.

No functional change intended; costs continue to route to the same
target-specific hooks.
DeltaFile
+87-28llvm/include/llvm/CodeGen/BasicTTIImpl.h
+57-37llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+17-38llvm/include/llvm/Analysis/TargetTransformInfo.h
+8-35llvm/lib/Analysis/TargetTransformInfo.cpp
+20-12llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+9-4llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+198-1541 files not shown
+203-1547 files

LLVM/project 561b6camlir/include/mlir/Dialect/ControlFlow/IR ControlFlowOps.td, mlir/include/mlir/Dialect/UB/IR UBOps.h

[mlir][UB] Add `ub.unreachable` canonicalization
DeltaFile
+31-1mlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.cpp
+26-0mlir/lib/Dialect/UB/IR/UBOps.cpp
+25-0mlir/test/Dialect/ControlFlow/canonicalize.mlir
+10-0mlir/test/Dialect/UB/canonicalize.mlir
+4-0mlir/include/mlir/Dialect/UB/IR/UBOps.h
+1-1mlir/include/mlir/Dialect/ControlFlow/IR/ControlFlowOps.td
+97-22 files not shown
+99-28 files

LLVM/project bc96208mlir/include/mlir/Dialect/ControlFlow/IR ControlFlowOps.td, mlir/include/mlir/Dialect/UB/IR UBOps.h

[mlir][UB] Add `ub.unreachable` canonicalization
DeltaFile
+31-1mlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.cpp
+26-0mlir/lib/Dialect/UB/IR/UBOps.cpp
+25-0mlir/test/Dialect/ControlFlow/canonicalize.mlir
+10-0mlir/test/Dialect/UB/canonicalize.mlir
+4-0mlir/include/mlir/Dialect/UB/IR/UBOps.h
+1-1mlir/include/mlir/Dialect/ControlFlow/IR/ControlFlowOps.td
+97-22 files not shown
+99-28 files

LLVM/project a47b28cmlir/include/mlir/Dialect/UB/IR UBOps.td, mlir/lib/Conversion/UBToLLVM UBToLLVM.cpp

[mlir][UB] Add `ub.unreachable` operation
DeltaFile
+28-7mlir/lib/Conversion/UBToLLVM/UBToLLVM.cpp
+20-0mlir/include/mlir/Dialect/UB/IR/UBOps.td
+15-0mlir/test/Conversion/UBToSPIRV/ub-to-spirv.mlir
+13-1mlir/lib/Conversion/UBToSPIRV/UBToSPIRV.cpp
+6-0mlir/test/Conversion/UBToLLVM/ub-to-llvm.mlir
+6-0mlir/test/Dialect/UB/ops.mlir
+88-86 files

LLVM/project 2703bd8mlir/include/mlir/Dialect/UB/IR UBOps.td, mlir/lib/Conversion/UBToLLVM UBToLLVM.cpp

[mlir][UB] Add `ub.unreachable` operation
DeltaFile
+28-7mlir/lib/Conversion/UBToLLVM/UBToLLVM.cpp
+20-0mlir/include/mlir/Dialect/UB/IR/UBOps.td
+15-0mlir/test/Conversion/UBToSPIRV/ub-to-spirv.mlir
+13-1mlir/lib/Conversion/UBToSPIRV/UBToSPIRV.cpp
+6-0mlir/test/Conversion/UBToLLVM/ub-to-llvm.mlir
+82-85 files

LLVM/project f40c694llvm/include/llvm/Analysis TargetTransformInfo.h TargetTransformInfoImpl.h, llvm/include/llvm/CodeGen BasicTTIImpl.h

[TTI] Use MemIntrinsicCostAttributes for getExpandCompressMemoryOpCost (#168677)

- Following #168029. This is a step toward a unified interface for
masked/gather-scatter/strided/expand-compress cost modeling.
- Replace the ad-hoc parameter list with a single attributes object.

API change:
```
- InstructionCost getExpandCompressMemoryOpCost(Opcode, DataTy,
-                                               VariableMask, Alignment,
-                                               CostKind, Inst);

+ InstructionCost getExpandCompressMemoryOpCost(MemIntrinsicCostAttributes,
+                                               CostKind);
```

Notes:
- NFCI intended: callers populate MemIntrinsicCostAttributes with same
information as before.
DeltaFile
+18-10llvm/include/llvm/Analysis/TargetTransformInfo.h
+15-9llvm/include/llvm/CodeGen/BasicTTIImpl.h
+9-4llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
+3-4llvm/lib/Analysis/TargetTransformInfo.cpp
+3-3llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
+2-3llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
+50-336 files

LLVM/project fc6ab75llvm/lib/Target/LoongArch LoongArchISelLowering.cpp

fix accroding reviews
DeltaFile
+3-4llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+3-41 files

LLVM/project 0c6d7a4lld/ELF Target.cpp, lld/ELF/Arch RISCVInternalRelocations.h RISCV.cpp

[LLD] Add support for statically resolved vendor-specific RISCV relocations. (#169273)

This is achieved by using some of the bits of RelType to tag vendor namespaces. This change also adds a relocation iterator for RISCV that folds vendor namespaces into the RelType of the following relocation.

This patch is extracted from the implementation of RISCV vendor-specific relocations in the CHERIoT LLVM downstream: https://github.com/CHERIoT-Platform/llvm-project/commit/3d6d6f7d9480b590731cbcf4b4817e1fa3049854
DeltaFile
+113-0lld/ELF/Arch/RISCVInternalRelocations.h
+41-8lld/ELF/Arch/RISCV.cpp
+11-4lld/test/ELF/riscv-vendor-relocations.s
+9-0lld/ELF/Target.cpp
+174-124 files

LLVM/project 14d1f7cllvm/include/llvm/Passes CodeGenPassBuilder.h, llvm/lib/Target/AMDGPU AMDGPUTargetMachine.cpp R600TargetMachine.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+291-344llvm/include/llvm/Passes/CodeGenPassBuilder.h
+148-138llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
+7-7llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
+6-6llvm/lib/Target/AMDGPU/R600TargetMachine.cpp
+452-4954 files

LLVM/project b142912mlir/include/mlir/Conversion/LLVMCommon VectorPattern.h, mlir/lib/Conversion/ArithToLLVM ArithToLLVM.cpp

[mlir][arith] Fix `arith.cmpf` lowering with unsupported FP types (#166684)

The `arith.cmpf` lowering pattern used to generate invalid IR when an
unsupported floating-point type was used.
DeltaFile
+16-28mlir/include/mlir/Conversion/LLVMCommon/VectorPattern.h
+21-0mlir/lib/Conversion/LLVMCommon/VectorPattern.cpp
+7-3mlir/test/Conversion/ArithToLLVM/arith-to-llvm.mlir
+4-0mlir/lib/Conversion/ArithToLLVM/ArithToLLVM.cpp
+48-314 files

LLVM/project a6287dcmlir/include/mlir/Conversion/LLVMCommon VectorPattern.h, mlir/lib/Conversion/ArithToLLVM ArithToLLVM.cpp

[mlir][arith] Fix `arith.cmpf` lowering with unsupported FP types
DeltaFile
+16-28mlir/include/mlir/Conversion/LLVMCommon/VectorPattern.h
+21-0mlir/lib/Conversion/LLVMCommon/VectorPattern.cpp
+7-3mlir/test/Conversion/ArithToLLVM/arith-to-llvm.mlir
+4-0mlir/lib/Conversion/ArithToLLVM/ArithToLLVM.cpp
+48-314 files

LLVM/project 6f7ea34llvm/docs QualGroup.rst GettingInvolved.rst

[QualGroup][docs] Update meeting schedule and link for slides (#169458)

Summary
======
This PR update the schedule for online sync-up and update link for past
meeting slides.

Changes
======
* Remove the wednesday schedule, since we did not have the meeting for
Americas-friendly timezones.
* Use a single folder for past meeting slides instead of individual
links.

Related Links
=========
* [Meeting materials for Qualification Working
Group](https://llvm.org/docs/QualGroup.html#meeting-materials)
* [Online

    [4 lines not shown]
DeltaFile
+2-9llvm/docs/QualGroup.rst
+1-1llvm/docs/GettingInvolved.rst
+3-102 files

LLVM/project aa2a7f4libcxx/include/__locale_dir/support linux.h

[libc++] Fix the locale base API on Linux with musl (#167980)

This pull request addresses an issue encountered when building
**libcxx** with certain configurations (`-D_LIBCPP_HAS_MUSL_LIBC` &
`-D__linux__`) that lack the `_GNU_SOURCE` definition. Specifically,
this issue arises if the system **musl libc** is built with
`_BSD_SOURCE` instead of `_GNU_SOURCE`. The resultant configuration
leads to problems with the "Strtonum functions" in the file
[libcxx/include/__locale_dir/support/linux.h](https://github.com/llvm/llvm-project/tree/master/libcxx/include/__locale_dir/support/linux.h),
affecting the following functions:

- `__strtof`
- `__strtod`
- `__strtold`

**Error messages displayed include**:
```console
error: no member named 'strtof_l' in the global namespace
```

    [9 lines not shown]
DeltaFile
+15-0libcxx/include/__locale_dir/support/linux.h
+15-01 files

LLVM/project 56c1063llvm/include/llvm/CodeGen ValueTypes.td, llvm/test/CodeGen/AArch64 fixed-length-bf16-arith.ll

Merge branch 'main' into users/ylzsx/rotr-custom
DeltaFile
+3,019-0llvm/test/Transforms/AggressiveInstCombine/umulh_carry4.ll
+936-0llvm/test/CodeGen/AArch64/fixed-length-bf16-arith.ll
+858-0llvm/test/Transforms/AggressiveInstCombine/umulh_ladder.ll
+755-0llvm/test/Transforms/AggressiveInstCombine/umulh_carry.ll
+282-289llvm/include/llvm/CodeGen/ValueTypes.td
+530-0llvm/test/Transforms/AggressiveInstCombine/umulh_ladder4.ll
+6,380-289259 files not shown
+13,601-3,948265 files

LLVM/project 583fba3llvm/lib/Transforms/InstCombine InstCombineCompares.cpp, llvm/test/Transforms/InstCombine icmp-select.ll

[InstCombine] fold icmp of select with invertible shl (#147182)

Proof: https://alive2.llvm.org/ce/z/a5fzlJ
Closes https://github.com/llvm/llvm-project/issues/146642

---------

Co-authored-by: Yingwei Zheng <dtcxzyw at qq.com>
DeltaFile
+117-0llvm/test/Transforms/InstCombine/icmp-select.ll
+30-2llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
+147-22 files

LLVM/project 06c8ee6llvm/test/CodeGen/DirectX/CBufferAccess gep-ce-two-uses.ll

[NFC] [DirectX] Make DirectX codegen test `CBufferAccess/gep-ce-two-uses.ll` more strict (#169855)

Continuation of PR #169848 to address PR comments.

This PR makes the test more strict by adding CHECKs to ensure the loads
are indeed using the same or different GEPs.
DeltaFile
+8-5llvm/test/CodeGen/DirectX/CBufferAccess/gep-ce-two-uses.ll
+8-51 files