LLVM/project 07b5dfeclang/include/clang/Options Options.td, clang/lib/CodeGen CGCall.cpp CodeGenModule.h

 [clang] Integrate LLVMABI for function call ABI lowering  (#194460)

This PR wires the LLVM ABI library (prototyped in
https://github.com/llvm/llvm-project/pull/140112) into Clang's function
call ABI lowering pipeline, behind a new `-fexperimental-abi-lowering`
cc1 flag.

When the flag is enabled and the active target has an LLVMABI
implementation, `CodeGenTypes::arrangeLLVMFunctionInfo` constructs an
`llvm::abi::FunctionInfo` from the call's argument and result types
(using QualTypeMapper(https://github.com/llvm/llvm-project/pull/174634)
to translate Clang QualTypes into ABI types).

Asks the target's `llvm::abi::TargetInfo` to classify it, and then
translates each `llvm::abi::ArgInfo` back into the ABIArgInfo consumed
by the rest of CodeGen. The translation is handled by a new
`convertABIArgInfo` helper covering the Direct, Extend, Indirect, and
Ignore kinds, with coerce-to types lifted back into LLVM IR via a new
IRTypeMapper.

    [3 lines not shown]
DeltaFile
+162-0llvm/lib/ABI/IRTypeMapper.cpp
+69-1clang/lib/CodeGen/CGCall.cpp
+60-0llvm/include/llvm/ABI/IRTypeMapper.h
+43-0clang/lib/CodeGen/CodeGenModule.h
+26-0clang/lib/CodeGen/CodeGenModule.cpp
+4-0clang/include/clang/Options/Options.td
+364-17 files not shown
+374-213 files

LLVM/project 5d0a634mlir/include/mlir/Dialect/SPIRV/IR SPIRVControlFlowOps.td, mlir/test/Dialect/SPIRV/IR tosa-ops-verification.mlir graph-ops.mlir

[MLIR][SPIRV] Enable strict property assembly format

Enable strict property assembly format mode for SPIR-V and add property
dictionaries to declarative formats that still carry inherent attributes outside
explicit operands or clauses.

Refresh ARM graph and TOSA tests so GraphConstant uses prop-dict spelling for
its inherent constant identifier.

Assisted-by: Codex
DeltaFile
+6-6mlir/test/Dialect/SPIRV/IR/tosa-ops-verification.mlir
+3-3mlir/test/Dialect/SPIRV/IR/graph-ops.mlir
+2-2mlir/test/Target/SPIRV/graph-ops.mlir
+1-1mlir/test/Dialect/SPIRV/IR/tosa-ops.mlir
+1-1mlir/test/Target/SPIRV/tosa-ops.mlir
+1-1mlir/include/mlir/Dialect/SPIRV/IR/SPIRVControlFlowOps.td
+14-142 files not shown
+16-158 files

LLVM/project e572b6fmlir/include/mlir/Dialect/LLVMIR NVVMOps.td, mlir/test/Target/LLVMIR/nvvm tcgen05-mma-tensor.mlir tcgen05-mma-sp-tensor.mlir

[MLIR][NVVM] Enable strict property assembly format

Enable strict property assembly format mode for the NVVM dialect and update
custom assembly formats to expose property dictionaries explicitly.

Refresh NVVM tests so inherent operation properties are printed and parsed
through the property dictionary while non-property attributes remain in the
attribute dictionary.

Assisted-by: Codex
DeltaFile
+144-144mlir/test/Target/LLVMIR/nvvm/tcgen05-mma-tensor.mlir
+144-144mlir/test/Target/LLVMIR/nvvm/tcgen05-mma-sp-tensor.mlir
+128-128mlir/test/Target/LLVMIR/nvvm/tma_store_reduce.mlir
+112-111mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
+108-108mlir/test/Target/LLVMIR/nvvm/tma_load_cluster_im2col.mlir
+96-96mlir/test/Target/LLVMIR/nvvm/tcgen05-mma-sp-shared.mlir
+732-73173 files not shown
+2,267-2,26679 files

LLVM/project 43d1336flang/include/flang/Semantics openmp-directive-sets.h, flang/lib/Semantics resolve-directives.cpp

[Flang][OpenMP] Fix Flang crash and incorrect ordering with OpenMP detached task (#194840)

Fixes - [#194563](https://github.com/llvm/llvm-project/issues/194563)

This PR fixes the runtime crash and incorrect task ordering reported in
the testcase involving:
```
!$omp task if(.false.) depend(out:x) detach(ev)
```
The testcase had two issues:

**1. Segmentation fault near omp_fulfill_event(ev)**
The detach event handle was not being initialized or preserved correctly
before the nested task used it.
**2. Incorrect execution order**
The task with depend(in:x) was running before the detach event was
fulfilled, which violates OpenMP dependency semantics.

#### Changes in this PR

    [9 lines not shown]
DeltaFile
+20-4mlir/test/Target/LLVMIR/omptask_if_false.mlir
+17-0flang/test/Semantics/OpenMP/detach-symbols.f90
+10-4llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+11-0flang/lib/Semantics/resolve-directives.cpp
+2-0flang/include/flang/Semantics/openmp-directive-sets.h
+60-85 files

LLVM/project 89efe1bmlir/include/mlir/Dialect/ControlFlow/IR ControlFlowOps.td, mlir/test/Conversion/ControlFlowToLLVM branch.mlir

[MLIR][ControlFlow] Enable strict property assembly format

Enable the strict properties assembly format mode for the ControlFlow dialect.
The dialect formats already cover their inherent attributes, except for a test
that still used attr-dict spelling for branch weights.

Update that test to use the existing weights(...) syntax so the inherent
attribute is parsed through the declarative format.

Assisted-by: Codex
DeltaFile
+1-1mlir/test/Conversion/ControlFlowToLLVM/branch.mlir
+1-0mlir/include/mlir/Dialect/ControlFlow/IR/ControlFlowOps.td
+2-12 files

LLVM/project 240d7c2flang/lib/Optimizer/OpenMP MapInfoFinalization.cpp, flang/test/Transforms omp-map-info-finalization-name-loc.fir

[Flang][OpenMP] Preserve MapInfoOp loc on descriptor base-address maps (#196086)

This PR tries to fix another issue which was discovered after
https://github.com/llvm/llvm-project/issues/195333 was fixed. Now when
we run the same steps, we see the following output

```
omptarget device 0 info: Entering OpenMP data region with being_mapper at test.f90:18:9 with 5 arguments:
omptarget device 0 info: alloc(ptr(1:1024))[48] 
omptarget device 0 info: to(ptr(1:1024))[0] 
omptarget device 0 info: to(ptr(1:1024))[40] 
omptarget device 0 info: to(unknown)[8] 
omptarget device 0 info: to(unknown)[4096] 
```
Notice "unknown" in the last 2 lines. This happens because
`MapInfoFinalization` splits box descriptor `omp.map.info` ops into a
parent map and a base-address member map (fir.box_offset + inner map
with var_ptr_ptr). The `genBaseAddrMap` used `descriptor.getLoc()` for
those new ops, which dropped the `NameLoc` that lowering attaches for

    [6 lines not shown]
DeltaFile
+34-0flang/test/Transforms/omp-map-info-finalization-name-loc.fir
+12-7flang/lib/Optimizer/OpenMP/MapInfoFinalization.cpp
+46-72 files

LLVM/project bdba997clang/utils/TableGen ClangAttrEmitter.cpp

[Clang] Avoid some copies in ClangAttrEmitter. NFC. (#193928)

Fixes #94372
DeltaFile
+4-4clang/utils/TableGen/ClangAttrEmitter.cpp
+4-41 files

LLVM/project ac9e437llvm/docs LangRef.rst

[LangRef] Fix typo in cross-reference (#196273)
DeltaFile
+2-2llvm/docs/LangRef.rst
+2-21 files

LLVM/project 0e568e1bolt/lib/Passes RetpolineInsertion.cpp, bolt/test/AArch64 unsupported-passes.test

[BOLT][AArch64] Refuse to run retpoline insertion pass (#196179)

RetpolineInsertion (`--insert-retpolines`) is specific to X86, but
currently rejects non-X86 targets with an assert. For consistency, this
should be an error message.

- Add a non-X86 guard
- Add the error message to unsupported-passes.test
DeltaFile
+4-2bolt/lib/Passes/RetpolineInsertion.cpp
+2-0bolt/test/AArch64/unsupported-passes.test
+6-22 files

LLVM/project e097b77bolt/lib/Passes BinaryPasses.cpp, bolt/test/AArch64 unsupported-passes.test

[BOLT][AArch64] Refuse to run memcpy1 specialization (#196196)

SpecializeMemcpy1 (`--memcpy1-spec=main`) is implemented only for X86.
It does not crash but would be useful to inform the user that it is a
no-op.

- Guard against non-X86
- Add error to unsupported-passes.test
DeltaFile
+5-2bolt/lib/Passes/BinaryPasses.cpp
+2-0bolt/test/AArch64/unsupported-passes.test
+7-22 files

LLVM/project 8b507a1flang/test/Driver hlfir-no-hlfir-error.f90, flang/test/HLFIR hlfir-flags.f90

[flang] Remove legacy (non-HLFIR) lowering options from tests (#196137)

Update flang LIT tests to drop references to compiler options that
controlled legacy non-HLFIR lowering: `-flang-experimental-hlfir`,
`-flang-deprecated-no-hlfir`, the bbc `-hlfir`/`--hlfir` switch, and
`--use-desc-for-alloc=false`. The dropped flags were either no-ops or
selected behavior that is now the only supported lowering path.

Delete `Driver/hlfir-no-hlfir-error.f90`, which existed solely to test
mutual exclusion of `-flang-experimental-hlfir` and
`-flang-deprecated-no-hlfir`.

This commit contains only test changes; the option/code removal will be
done in separate commits.

Assisted-by: AI
DeltaFile
+0-16flang/test/Driver/hlfir-no-hlfir-error.f90
+1-5flang/test/HLFIR/hlfir-flags.f90
+2-2flang/test/Lower/OpenMP/hlfir-wsloop.f90
+2-2flang/test/Lower/OpenMP/simd.f90
+2-2flang/test/Lower/OpenMP/simple-barrier.f90
+2-2flang/test/Lower/OpenMP/stop-stmt-in-region.f90
+9-2936 files not shown
+54-7642 files

LLVM/project 605feedlldb/include/lldb/DataFormatters StringPrinter.h, lldb/source/DataFormatters StringPrinter.cpp

[lldb] Trim and show embedded zeros in `charN_t` arrays (#195514)

When formatting `char[N]` (N > 0), the read buffer is limited to the
array size and trailing zeros are trimmed.

`charN_t[N]` was treated like a `charN_t *` and the formatter read until
the first zero byte.
If the array doesn't have any zero bytes in it, this will read too much.
If the array has zero bytes in it, it will show too little.

With this PR, `wchar_t[N]` and `charN_t[N]` are printed like `char[N]`.
DeltaFile
+25-9lldb/source/DataFormatters/StringPrinter.cpp
+14-10lldb/source/Plugins/Language/ObjC/NSString.cpp
+21-3lldb/source/Plugins/Language/CPlusPlus/CxxStringTypes.cpp
+12-10lldb/include/lldb/DataFormatters/StringPrinter.h
+12-0lldb/test/API/lang/cpp/char8_t/TestCxxChar8_t.py
+7-2lldb/test/API/lang/cpp/wchar_t/main.cpp
+91-346 files not shown
+118-3712 files

LLVM/project f93fc5elldb/tools/lldb-dap/extension/src debug-configuration-provider.ts, lldb/tools/lldb-dap/tool lldb-dap.cpp

[lldb-dap][vscode][windows] check if Python is installed properly before starting lldb-dap (#181124)
DeltaFile
+20-4lldb/tools/lldb-dap/extension/src/debug-configuration-provider.ts
+4-0lldb/tools/lldb-dap/tool/lldb-dap.cpp
+24-42 files

LLVM/project 37ff1f2.ci compute_projects.py compute_projects_test.py

[lldb][windows] build lldb and lldb-dap in PR testing (#195884)
DeltaFile
+24-6.ci/compute_projects.py
+18-6.ci/compute_projects_test.py
+42-122 files

LLVM/project e878583mlir/docs/DefiningDialects _index.md Operations.md, mlir/include/mlir/IR DialectBase.td

[MLIR][ODS] Add strict property assembly format mode

Introduce a dialect-level ODS flag for strict property handling in declarative
assembly formats. It is disabled by default for now, preserving existing parser
behavior unless a dialect opts in.

Enable the mode immediately for dialects whose declarative assembly formats
already satisfy these binding rules.

When enabled, a property-backed op format must bind every inherent attribute
and property directly or include prop-dict.

Generated parsers for opted-in dialects also reject inherent attributes that
arrive through attr-dict, preventing Operation::setAttrs from populating
properties through that path.

Add mlir-tblgen coverage and document default and strict dialect behavior.

Assisted-by: Codex
DeltaFile
+57-3mlir/tools/mlir-tblgen/OpFormatGen.cpp
+58-0mlir/test/mlir-tblgen/op-format.td
+26-0mlir/test/mlir-tblgen/op-format-invalid.td
+20-0mlir/docs/DefiningDialects/_index.md
+7-0mlir/docs/DefiningDialects/Operations.md
+6-0mlir/include/mlir/IR/DialectBase.td
+174-322 files not shown
+202-328 files

LLVM/project 535814fllvm/lib/CodeGen/SelectionDAG LegalizeDAG.cpp TargetLowering.cpp, llvm/test/CodeGen/AMDGPU arbitrary-fp-to-float.ll

[SelectionDAG] Support vector types in llvm.convert.from.arbitrary.fp expansion (#196185)

Move the bit-twiddling expansion of ISD::CONVERT_FROM_ARBITRARY_FP from
LegalizeDAG to TargetLowering and make it working on vector destination
types.
DeltaFile
+665-0llvm/test/CodeGen/NVPTX/arbitrary-fp-to-float.ll
+595-8llvm/test/CodeGen/AMDGPU/arbitrary-fp-to-float.ll
+3-224llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+69-151llvm/test/CodeGen/X86/arbitrary-fp-to-float.ll
+190-0llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+6-0llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
+1,528-3831 files not shown
+1,534-3837 files

LLVM/project 75f8a17llvm/lib/Target/AMDGPU AMDGPURegBankLegalizeRules.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.rsq.ll llvm.amdgcn.rsq.f16.ll

[AMDGPU][GlobalISel] Add register bank legalize rules for PST rsq. (#196116)
DeltaFile
+71-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.ll
+8-2llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.f16.ll
+4-2llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+83-43 files

LLVM/project 32f909ellvm/test/TableGen/GlobalISelEmitter RegSequenceBadSubReg.td, llvm/utils/TableGen GlobalISelEmitter.cpp

[TableGen][GlobalISel] Skip REG_SEQUENCE with incompatible subreg index (#196184)

The REG_SEQUENCE branch of GlobalISelEmitter::constrainOperands called
SuperClass->getMatchingSubClassWithSubRegs(...) and dereferenced the
returned SrcRCDstRCPair unconditionally, aborting on a libstdc++
optional assertion when incorrect subreg index was passed.

Add the missing guard so the malformed pattern is reported via
failedImport (a skipped pattern) instead of crashing tblgen.

Assisted by Claude.

Fixes https://github.com/llvm/llvm-project/issues/172690
DeltaFile
+14-0llvm/test/TableGen/GlobalISelEmitter/RegSequenceBadSubReg.td
+3-0llvm/utils/TableGen/GlobalISelEmitter.cpp
+17-02 files

LLVM/project 02b072emlir/include/mlir/Dialect/SPIRV/IR SPIRVBase.td, mlir/test/Dialect/SPIRV/IR logical-ops.mlir

[mlir][spirv] Allow composite types in SelectOp (#196105)

This is allowed from the version 1.4 of the spec.
DeltaFile
+25-0mlir/test/Target/SPIRV/logical-ops.mlir
+18-0mlir/test/Dialect/SPIRV/IR/logical-ops.mlir
+2-2mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
+45-23 files

LLVM/project 9dc3d00clang/lib/Basic TargetInfo.cpp

Update clang/lib/Basic/TargetInfo.cpp
DeltaFile
+1-1clang/lib/Basic/TargetInfo.cpp
+1-11 files

LLVM/project f5d3d6allvm/lib/Target/AMDGPU BUFInstructions.td, llvm/test/MC/AMDGPU gfx13_asm_vbuffer_mubuf.s gfx13_asm_vbuffer_mubuf_format.s

[AMDGPU] Add VBUFFER encoding for gfx13
DeltaFile
+2,662-0llvm/test/MC/AMDGPU/gfx13_asm_vbuffer_mubuf.s
+699-0llvm/test/MC/AMDGPU/gfx13_asm_vbuffer_mubuf_format.s
+663-0llvm/test/MC/AMDGPU/gfx13_asm_vbuffer_mtbuf.s
+205-73llvm/lib/Target/AMDGPU/BUFInstructions.td
+201-0llvm/test/MC/AMDGPU/gfx13_asm_vbuffer_mubuf_alias.s
+27-0llvm/test/MC/AMDGPU/gfx13_asm_vbuffer_mtbuf_alias.s
+4,457-733 files not shown
+4,470-799 files

LLVM/project 272c8c7mlir/include/mlir/Target/SPIRV SPIRVBinaryUtils.h, mlir/lib/Target/SPIRV/Deserialization DeserializeOps.cpp Deserializer.h

[mlir][SPIR-V] Add support for SPV_INTEL_long_composites extension (#195685)

Add serialization and deserialization support for the
SPV_INTEL_long_composites extension, which allows splitting
composite/struct instructions that exceed the SPIR-V 16-bit word count
limit (65535 words) into a head instruction followed by one or more
continuation instructions
DeltaFile
+321-0mlir/unittests/Dialect/SPIRV/SerializationTest.cpp
+89-5mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
+34-0mlir/lib/Target/SPIRV/Deserialization/DeserializeOps.cpp
+20-0mlir/include/mlir/Target/SPIRV/SPIRVBinaryUtils.h
+15-0mlir/lib/Target/SPIRV/Serialization/Serializer.h
+9-0mlir/lib/Target/SPIRV/Deserialization/Deserializer.h
+488-52 files not shown
+498-78 files

LLVM/project aa70135llvm/test/Transforms/MemCpyOpt byval-src-move.ll

pre-commit tests
DeltaFile
+343-0llvm/test/Transforms/MemCpyOpt/byval-src-move.ll
+343-01 files

LLVM/project dff7e98llvm/include/llvm/Transforms/Scalar MemCpyOptimizer.h, llvm/lib/Transforms/Scalar MemCpyOptimizer.cpp

[memcpyopt] forward stores into byval through memcpy to dest
DeltaFile
+140-0llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
+6-8llvm/test/Transforms/MemCpyOpt/byval-src-move.ll
+1-0llvm/include/llvm/Transforms/Scalar/MemCpyOptimizer.h
+147-83 files

LLVM/project 6b5dcb2utils/bazel/llvm-project-overlay/mlir/test BUILD.bazel

[Bazel] Fixes dd57b0c (#196253)

This fixes dd57b0c9728a512e4409980829f97f2b3728a45d.

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

LLVM/project 6391c90llvm/test/Transforms/LoopVectorize if-pred-stores.ll float-induction.ll, llvm/test/Transforms/LoopVectorize/AArch64 masked-call.ll

[LV][NFC] Remove simplifycfg pass from RUN lines (#195817)

All the simplifycfg pass really did was remove empty blocks. I don't
believe it added any real value, but it does make the tests run slower.
DeltaFile
+259-137llvm/test/Transforms/LoopVectorize/if-pred-stores.ll
+214-86llvm/test/Transforms/LoopVectorize/ARM/mve-reductions.ll
+182-93llvm/test/Transforms/LoopVectorize/ARM/pointer_iv.ll
+164-62llvm/test/Transforms/LoopVectorize/X86/x86-interleaved-accesses-masked-group.ll
+140-76llvm/test/Transforms/LoopVectorize/AArch64/masked-call.ll
+97-50llvm/test/Transforms/LoopVectorize/float-induction.ll
+1,056-50416 files not shown
+1,394-67022 files

LLVM/project 1c06885llvm/test/MC/AMDGPU gfx13_asm_vop3.s gfx13_asm_vop3-fake16.s

[AMDGPU] Add VOP3 encoding for gfx13
DeltaFile
+8,195-0llvm/test/MC/AMDGPU/gfx13_asm_vop3.s
+8,182-0llvm/test/MC/AMDGPU/gfx13_asm_vop3-fake16.s
+5,587-0llvm/test/MC/AMDGPU/gfx13_asm_vop3_dpp16.s
+5,574-0llvm/test/MC/AMDGPU/gfx13_asm_vop3_dpp16-fake16.s
+4,106-0llvm/test/MC/AMDGPU/gfx13_asm_vop3_from_vop1-fake16.s
+3,524-0llvm/test/MC/AMDGPU/gfx13_asm_vop3_dpp8.s
+35,168-010 files not shown
+39,624-30216 files

LLVM/project 3ce28a3llvm/include/llvm/Transforms/Scalar MemCpyOptimizer.h, llvm/lib/Transforms/Scalar MemCpyOptimizer.cpp

[memcpyopt] forward stores into byval through memcpy to dest

Co-authored-by: Copilot <copilot at github.com>
DeltaFile
+145-0llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
+6-8llvm/test/Transforms/MemCpyOpt/byval-src-move.ll
+1-0llvm/include/llvm/Transforms/Scalar/MemCpyOptimizer.h
+152-83 files

LLVM/project e01ea6cclang-tools-extra/test/clang-tidy check_clang_tidy.py

[clang-tidy] Reject malformed -std spellings in `check_clang_tidy.py`. NFC. (#195609)

`check_clang_tidy.py` expanded any `-std` value containing `-or-later`,
even when extra text followed the suffix. e.g. `c++20-or-latermisc` was
treated like `c++20-or-later`.

This commit requires `-or-later` to be the actual end of the spelling
before expanding it, so malformed values are passed through and
diagnosed by clang.
DeltaFile
+5-1clang-tools-extra/test/clang-tidy/check_clang_tidy.py
+5-11 files

LLVM/project 74cadb8llvm/test/CodeGen/AArch64 bf16-v8-instructions.ll bf16-v4-instructions.ll

[AArch64][GlobalISel] Clean up and extend BF16 tests. NFC (#196175) (#196255)

This attempts to fill in the gap between the different bf16 test files,
making sure they all contain the same tests.
DeltaFile
+5,910-880llvm/test/CodeGen/AArch64/bf16-v8-instructions.ll
+3,306-504llvm/test/CodeGen/AArch64/bf16-v4-instructions.ll
+40-9llvm/test/CodeGen/AArch64/bf16-instructions.ll
+0-1llvm/test/CodeGen/AArch64/itofp-bf16.ll
+9,256-1,3944 files