LLVM/project ef5e42emlir/include/mlir/Interfaces MemorySlotInterfaces.h, mlir/lib/Interfaces MemorySlotInterfaces.cpp

iterate on aliases, more tests, reword comments
DeltaFile
+61-0mlir/test/Transforms/mem2reg.mlir
+49-0mlir/test/lib/Dialect/Test/TestOpDefs.cpp
+21-14mlir/lib/Transforms/Mem2Reg.cpp
+14-10mlir/include/mlir/Interfaces/MemorySlotInterfaces.h
+19-0mlir/test/lib/Dialect/Test/TestOps.td
+10-8mlir/lib/Interfaces/MemorySlotInterfaces.cpp
+174-326 files

LLVM/project d7d60e1lldb/source/Plugins/SymbolFile/NativePDB PdbAstBuilderClang.cpp PdbAstBuilderClang.h, lldb/test/Shell/SymbolFile/NativePDB ast-methods.cpp

[lldb][NativePDB] Use CV qualifiers from `this` type for methods (#199214)

When we create the Clang types for methods, we ignored the qualifiers.
So `const` methods would become non-const.

With this PR, we use the qualifiers from `*this` for the function type.
DeltaFile
+21-3lldb/test/Shell/SymbolFile/NativePDB/ast-methods.cpp
+14-5lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilderClang.cpp
+2-1lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilderClang.h
+1-1lldb/test/Shell/SymbolFile/PDB/ast-restore.test
+38-104 files

LLVM/project 7aa3039clang/docs ReleaseNotes.rst, clang/lib/AST TextNodeDumper.cpp

[clang] ast-text-dump: fix printing of declref to decomposition with no bindings.

Clang supports empty structured binding groups as an extension,
and the text node dumper has some special handling for giving a name
to anonymous declarations, which assumed a decomposition would have at
least one binding.

Fixes #198842
DeltaFile
+6-4clang/lib/AST/TextNodeDumper.cpp
+8-0clang/test/AST/ast-dump-decl.cpp
+2-0clang/docs/ReleaseNotes.rst
+16-43 files

LLVM/project a6fe380llvm/include/llvm/Transforms/Vectorize SLPVectorizer.h, llvm/lib/Transforms/Vectorize SLPVectorizer.cpp

[SLP] Retry vectorization of FMA candidates after block processing

fadd/fsub instructions that canConvertToFMA returns valid for were
unconditionally skipped in tryToVectorize, causing regressions
where SLP failed to vectorize loops containing such patterns even when
FMA formation never fires.
Collect skipped FMA candidates during vectorizeChainsInBlock and retry
them with AllowFMACandidates=true after all other instructions in the
block have been processed. The cost model still rejects the retry when
actual FMA formation is more profitable (e.g. FMA4 on bdver2), so
existing FMA-profitable cases are unaffected.

Fixes #198040

Reviewers: davemgreen, bababuck, RKSimon, hiraditya

Pull Request: https://github.com/llvm/llvm-project/pull/198174
DeltaFile
+82-50llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+15-24llvm/test/Transforms/SLPVectorizer/RISCV/vec3-base.ll
+14-20llvm/test/Transforms/SLPVectorizer/AArch64/commute.ll
+10-16llvm/test/Transforms/SLPVectorizer/X86/dot-product.ll
+16-9llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h
+8-4llvm/test/Transforms/SLPVectorizer/X86/slp-fma-loss.ll
+145-1231 files not shown
+148-1267 files

LLVM/project 95f9098clang/docs LanguageExtensions.rst, clang/include/clang/Options Options.td

Enable driver changes for fexec-charset
DeltaFile
+14-6clang/lib/Driver/ToolChains/Clang.cpp
+14-4clang/include/clang/Options/Options.td
+11-3clang/test/Driver/clang_f_opts.c
+10-0llvm/lib/Support/TextEncoding.cpp
+4-3clang/test/Driver/cl-options.c
+3-3clang/docs/LanguageExtensions.rst
+56-193 files not shown
+60-199 files

LLVM/project 83b06f8clang/lib/AST ASTContext.cpp

Convert the key before cache lookup to prevent encoding differences
DeltaFile
+9-9clang/lib/AST/ASTContext.cpp
+9-91 files

LLVM/project a79158dflang-rt/lib/runtime io-api-server.cpp main.cpp, flang/include/flang/Runtime io-api.h

[flang-rt] Remove library dependency from flang-rt to offload (#198793)

Summary:
We need the offload project's RPC thread to handle the IO requests
originating from the GPU. Previously we did the 'easy' solution and just
linked this handler directly into the offload proejct. This is not ideal
because it prevents people's ability to build and configure libraries
separately.

This PR inverts the dependency, flang-rt now conditionally enables
support using the existing RPC callback mechanism. The cost is that
every flang-rt program now pays the cost of a boolean compare, the
benefit is the libraries are now independent of each-other.
DeltaFile
+35-4flang-rt/lib/runtime/io-api-server.cpp
+0-10offload/plugins-nextgen/common/src/RPC.cpp
+0-5offload/plugins-nextgen/common/CMakeLists.txt
+5-0flang-rt/lib/runtime/main.cpp
+4-0flang-rt/lib/runtime/io-api-gpu.h
+0-2flang/include/flang/Runtime/io-api.h
+44-211 files not shown
+46-217 files

LLVM/project eb775bellvm/lib/Transforms/Vectorize SLPVectorizer.cpp

[NFC] Remove unused LAA include (#199202)
DeltaFile
+0-1llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+0-11 files

LLVM/project b4d42cfclang/lib/Basic OpenMPKinds.cpp, clang/lib/Parse ParseOpenMP.cpp

[OpenMP] Prevent parser infinite loop on unimplemented clauses (#198796)

This is to fix an infinite loop in the parser when using un-implemented
clauses. See https://godbolt.org/z/f775asrea .
This patch also fixes this crash: https://godbolt.org/z/WKrsbTGGe .
DeltaFile
+93-0clang/test/OpenMP/unimplemented_clause_messages.cpp
+9-0clang/lib/Parse/ParseOpenMP.cpp
+4-0clang/lib/Sema/SemaOpenMP.cpp
+1-0clang/lib/Basic/OpenMPKinds.cpp
+107-04 files

LLVM/project ba46b0bmlir/docs Tokens.md

call out IsolatedFromAbove restriction
DeltaFile
+4-0mlir/docs/Tokens.md
+4-01 files

LLVM/project f571b4amlir/test/Dialect/Builtin/Bytecode builtin_fixed_0.mlirbc

regenerate bytecode
DeltaFile
+0-0mlir/test/Dialect/Builtin/Bytecode/builtin_fixed_0.mlirbc
+0-01 files

LLVM/project 8cc944clibcxx/include mdspan, libcxx/include/__mdspan mdspan.h

[libc++][mdspan] P3383R3: `mdspan.at()` (#175213)

Implements https://wg21.link/P3383R3

Closes #148149

---------

Co-authored-by: A. Jiang <de34 at live.cn>
DeltaFile
+327-0libcxx/test/std/containers/views/mdspan/mdspan/at.pass.cpp
+112-0libcxx/test/libcxx/containers/views/mdspan/mdspan/assert.at.pass.cpp
+37-0libcxx/include/__mdspan/mdspan.h
+8-0libcxx/test/libcxx/containers/views/mdspan/nodiscard.verify.cpp
+7-0libcxx/include/mdspan
+1-1libcxx/utils/generate_feature_test_macro_components.py
+492-12 files not shown
+494-28 files

LLVM/project 79ba0d2clang/docs LanguageExtensions.rst

update backport mode
DeltaFile
+1-1clang/docs/LanguageExtensions.rst
+1-11 files

LLVM/project 5c85342llvm/lib/Transforms/Vectorize VPlanTransforms.cpp VPlan.h, llvm/test/Transforms/LoopVectorize/RISCV riscv-vector-reverse.ll

[VPlan] Assert that replacement types match in VPUser::setOperand (NFC). (#195891)

Add assertion to VPValue::setOperand to check if types of the new
operand matches the old operand.

This makes it easier to catch replacements with incorrect types at the
source, instead only later during verification.

A few places currently preform replacements with mis-matching types,
which only get fixed up later. Update those to avoid type-violation.

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

PR: https://github.com/llvm/llvm-project/pull/195891
DeltaFile
+82-54llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+17-9llvm/lib/Transforms/Vectorize/VPlan.h
+10-8llvm/test/Transforms/LoopVectorize/VPlan/RISCV/vplan-vp-intrinsics-reduction.ll
+6-6llvm/test/Transforms/LoopVectorize/RISCV/riscv-vector-reverse.ll
+8-4llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+5-4llvm/test/Transforms/LoopVectorize/VPlan/RISCV/vplan-vp-intrinsics.ll
+128-858 files not shown
+149-10214 files

LLVM/project b26a70cllvm/lib/Target/X86 X86ISelLowering.cpp

[NFC][X86] Add peekThroughDemandedElts helper for future use (#199195)

Make it easier to bypass unnecessary ops based of DemandedElts
DeltaFile
+10-5llvm/lib/Target/X86/X86ISelLowering.cpp
+10-51 files

LLVM/project d70ddf0mlir/docs Tokens.md

address comments
DeltaFile
+2-3mlir/docs/Tokens.md
+2-31 files

LLVM/project 9a9e502mlir/docs Tokens.md LangRef.md

rewrite design contract
DeltaFile
+13-9mlir/docs/Tokens.md
+9-2mlir/docs/LangRef.md
+22-112 files

LLVM/project 36cbdb3mlir/docs Tokens.md

Update mlir/docs/Tokens.md

Co-authored-by: Mehdi Amini <joker.eph at gmail.com>
DeltaFile
+2-0mlir/docs/Tokens.md
+2-01 files

LLVM/project 1068a3amlir/docs/Dialects LLVM.md, mlir/lib/IR Verifier.cpp

address comments
DeltaFile
+5-9mlir/lib/IR/Verifier.cpp
+1-2mlir/docs/Dialects/LLVM.md
+6-112 files

LLVM/project 3a80f78mlir/docs Tokens.md LangRef.md, mlir/include/mlir/IR CommonTypeConstraints.td

address comments
DeltaFile
+17-21mlir/docs/Tokens.md
+2-17mlir/test/IR/token-type.mlir
+1-8mlir/include/mlir/IR/CommonTypeConstraints.td
+0-7mlir/test/lib/Dialect/Test/TestOps.td
+2-1mlir/docs/LangRef.md
+22-545 files

LLVM/project 44e353bmlir/docs Tokens.md, mlir/docs/Traits _index.md

[mlir][IR] Require token producer and consumer traits

Add marker traits for operations that intentionally produce or consume the
builtin token type. The verifier now rejects token results without
TokenProducerTrait, token operands without TokenConsumerTrait, token entry
block arguments whose parent op does not produce tokens, and token block
arguments outside entry blocks.

Extend the Test dialect token ops to cover valid opt-in cases and each
verifier rejection path.

Assisted-by: Codex
DeltaFile
+100-2mlir/test/IR/token-type.mlir
+93-3mlir/lib/IR/Verifier.cpp
+28-3mlir/test/lib/Dialect/Test/TestOps.td
+14-7mlir/docs/Tokens.md
+14-0mlir/docs/Traits/_index.md
+12-0mlir/include/mlir/IR/OpDefinition.h
+261-152 files not shown
+268-168 files

LLVM/project 17be9c9mlir/include/mlir/Dialect/LLVMIR LLVMIntrinsicOps.td LLVMOps.td, mlir/lib/Dialect/LLVMIR/IR LLVMTypeSyntax.cpp LLVMTypes.cpp

remove LLVM token type
DeltaFile
+23-37mlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp
+15-10mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
+11-11mlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp
+9-9mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir
+7-7mlir/test/Target/LLVMIR/Import/intrinsic.ll
+6-7mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
+71-8112 files not shown
+94-10918 files

LLVM/project d5f5069mlir/docs Tokens.md, mlir/lib/Conversion/AsyncToLLVM AsyncToLLVM.cpp

[mlir][IR] Add builtin `TokenTypeInterface`

type instead of type interface

add bytecode
DeltaFile
+104-0mlir/docs/Tokens.md
+36-24mlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp
+60-0mlir/test/IR/token-type.mlir
+18-17mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp
+30-0mlir/test/lib/Dialect/Test/TestOps.td
+12-12mlir/test/Dialect/SparseTensor/invalid.mlir
+260-5324 files not shown
+365-9530 files

LLVM/project 1f5b5a2llvm/lib/Target/RISCV RISCVTargetTransformInfo.cpp RISCVTargetTransformInfo.h, llvm/test/Analysis/CostModel/RISCV shuffle-load.ll

[RISCV][TTI] Model broadcast loads as zero-stride loads (#198446)

We have done this optimization in ISel and this PR just models it
in TTI.

---------

Co-authored-by: Luke Lau <luke_lau at icloud.com>
DeltaFile
+163-0llvm/test/Analysis/CostModel/RISCV/shuffle-load.ll
+16-0llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
+3-0llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
+182-03 files

LLVM/project 866e9e0llvm/lib/Target/RISCV RISCVVectorPeephole.cpp

[RISCV] Fix RISCVVectorPeephole::ensureDominates doc comment. NFC (#199196)
DeltaFile
+3-3llvm/lib/Target/RISCV/RISCVVectorPeephole.cpp
+3-31 files

LLVM/project 593eb20llvm/utils/lit/tests/unit Util.py

[AIX] Remove unsupported AIX native echo option -n (#199079)

AIX native echo doesn't support the `-n` flag.
Use the POSIX-standard `\c` escape sequence instead to suppress the
trailing newline, ensuring the test works across all systems and make it
portable.


The current test fails as follows:
```
FAIL: lit :: unit/Util.py (1 of 1)
******************** TEST 'lit :: unit/Util.py' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
"/opt/freeware/bin/python3.12" /home/himadhit/llvm/community/build/utils/lit/tests/unit/Util.py
# executed command: /opt/freeware/bin/python3.12 /home/himadhit/llvm/community/build/utils/lit/tests/unit/Util.py

    [20 lines not shown]
DeltaFile
+2-2llvm/utils/lit/tests/unit/Util.py
+2-21 files

LLVM/project 9479c2alld/ELF SyntheticSections.cpp Writer.cpp, llvm/test/CodeGen/AMDGPU wait-xcnt-drain.mir

Merge branch 'main' into users/rampitec/fix-i16-disasm-roundtrip
DeltaFile
+182-888llvm/test/CodeGen/PowerPC/fp-strict-fcmp-spe.ll
+205-608llvm/test/CodeGen/PowerPC/spe.ll
+540-13mlir/test/Dialect/Linalg/specialize-generic-ops.mlir
+177-314lld/ELF/SyntheticSections.cpp
+430-0llvm/test/CodeGen/AMDGPU/wait-xcnt-drain.mir
+158-264lld/ELF/Writer.cpp
+1,692-2,087374 files not shown
+7,248-5,464380 files

LLVM/project c53f299llvm/lib/Target/SPIRV SPIRVModuleAnalysis.cpp SPIRVModuleAnalysis.h

[SPIRV][NFC] Pass function-pointer operand explicitly to visitFunPtrUse (#197667)

Take the function-pointer placeholder operand as a parameter rather
than reading MI.getOperand(2) directly, so visitFunPtrUse can be
reused from instructions with a different operand layout. Pure
refactor.

---------

Co-authored-by: Marcos Maronas <mmaronas at amd.com>
DeltaFile
+11-7llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
+3-2llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.h
+14-92 files

LLVM/project 4ee12eeclang/lib/Sema OpenCLBuiltins.td, clang/test/SemaOpenCL intel-subgroups-builtins.cl intel-subgroups-char-builtins.cl

[OpenCL] Add subgroup UI image overloads builtin functions (#198904)

Add subgroup UI image overloads builtin functions from the OpenCL
extensions available at
https://github.com/KhronosGroup/OpenCL-Docs/blob/main/extensions/cl_intel_subgroups.asciidoc
https://github.com/KhronosGroup/OpenCL-Docs/blob/main/extensions/cl_intel_subgroups_short.asciidoc
https://github.com/KhronosGroup/OpenCL-Docs/blob/main/extensions/cl_intel_subgroups_char.asciidoc
https://github.com/KhronosGroup/OpenCL-Docs/blob/main/extensions/cl_intel_subgroups_long.asciidoc
DeltaFile
+285-0clang/lib/Sema/OpenCLBuiltins.td
+139-0clang/test/SemaOpenCL/intel-subgroups-builtins.cl
+106-0clang/test/SemaOpenCL/intel-subgroups-char-builtins.cl
+106-0clang/test/SemaOpenCL/intel-subgroups-short-builtins.cl
+64-0clang/test/SemaOpenCL/intel-subgroups-long-builtins.cl
+700-05 files

LLVM/project 5fb0fe4lld/ELF SyntheticSections.cpp Writer.cpp, lld/test/ELF partitions.s partition-pack-dyn-relocs.s

[ELF] Remove the symbol partition feature (#199186)

Follow-up to #198718: SHT_LLVM_SYMPART sections are no longer recognized
and are treated as ordinary sections.

The sole user has been retired (crbug.com/401249151).

The per-partition synthetic sections (.dynamic, .dynsym, .gnu.hash,
.eh_frame, .ARM.exidx, ...) move into `ctx.in`; the program headers move
into `ctx.phdrs`. Delete the `Partition` struct, `ctx.mainPart`,
`ctx.partitions`, the
PartitionElfHeaderSection/PartitionProgramHeadersSection shim sections,
and the `.part.end` marker.
DeltaFile
+162-243lld/ELF/SyntheticSections.cpp
+104-167lld/ELF/Writer.cpp
+17-53lld/test/ELF/partitions.s
+0-62lld/ELF/Driver.cpp
+43-19lld/ELF/Config.h
+0-58lld/test/ELF/partition-pack-dyn-relocs.s
+326-60219 files not shown
+371-90325 files