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

LLVM/project 081d688utils/bazel/llvm-project-overlay/clang/unittests BUILD.bazel

[Bazel] Fixes 08124b7 (#199180)

This fixes 08124b704f9412c1be116d791eefdf01f4c588e1.

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

LLVM/project 63391e9flang-rt/test lit.cfg.py, runtimes/cmake config-Fortran.cmake

Enable modules only with Fortran enabled
DeltaFile
+3-1flang-rt/test/lit.cfg.py
+1-3runtimes/cmake/config-Fortran.cmake
+4-42 files

LLVM/project 5eefd3dmlir/lib/Dialect/Linalg/Transforms Specialize.cpp, mlir/test/Dialect/Linalg specialize-generic-ops.mlir transform-op-specialize-elemwise-binary.mlir

[MLIR][Linalg] Specialize more binary elementwise ops (#192290)

Extends the matching logic for `linalg.generic` ops that can be
represented as named op or `linalg.elementwise` to cover all variants
currently supported by `RegionBuilderHelper::buildBinaryFn`. We
previously detected only `add`, `sub`, `mul` and `div` for floating
point types.

I combined the detection for unary and binary functions to make it
tractable to morph operations such as
```mlir
#map = affine_map<(d0) -> (d0)>
// ...
%c123_i32 = arith.constant 123 : i32
%0 = linalg.generic
  {indexing_maps = [#map, #map], iterator_types = ["parallel"]}
  ins(%A : tensor<?xi32>) outs(%Out : tensor<?xi32>) {
^bb0(%in: i32, %out: i32):
  %v = arith.addi %c123_i32 , %in : i32

    [12 lines not shown]
DeltaFile
+540-13mlir/test/Dialect/Linalg/specialize-generic-ops.mlir
+239-32mlir/test/Dialect/Linalg/transform-op-specialize-elemwise-binary.mlir
+171-81mlir/lib/Dialect/Linalg/Transforms/Specialize.cpp
+199-0mlir/test/Dialect/Linalg/roundtrip-morphism-linalg-category-ops.mlir
+139-3mlir/test/Dialect/Linalg/linalg-morph-multi-step.mlir
+126-12mlir/test/Dialect/Linalg/roundtrip-morphism-linalg-named-ops.mlir
+1,414-1412 files not shown
+1,423-1458 files

LLVM/project 19ebf52clang/include/clang/Basic DiagnosticFrontendKinds.td, clang/lib/Frontend CompilerInstance.cpp

Issue a warning if signaling-nans is requested but not supported
DeltaFile
+5-0clang/lib/Frontend/CompilerInstance.cpp
+3-1clang/test/CodeGen/attr-signaling-nans.c
+2-0clang/include/clang/Basic/DiagnosticFrontendKinds.td
+10-13 files

LLVM/project 984cb6clldb/include/lldb/Utility Locked.h, lldb/source/Target Target.cpp

Merge remote-tracking branch 'official/users/meinersbur/flang_builtin-mods_3' into users/meinersbur/flang_builtin-mods_3
DeltaFile
+182-888llvm/test/CodeGen/PowerPC/fp-strict-fcmp-spe.ll
+205-608llvm/test/CodeGen/PowerPC/spe.ll
+430-0llvm/test/CodeGen/AMDGPU/wait-xcnt-drain.mir
+225-0lldb/unittests/Utility/LockedTest.cpp
+173-0lldb/include/lldb/Utility/Locked.h
+44-43lldb/source/Target/Target.cpp
+1,259-1,539259 files not shown
+2,590-2,824265 files

LLVM/project c91847cflang-rt CMakeLists.txt, flang-rt/lib/runtime iso_fortran_env_impl.cpp

Fix REAL16 support propagation
DeltaFile
+5-5flang-rt/lib/runtime/iso_fortran_env_impl.cpp
+5-0flang-rt/test/lit.cfg.py
+2-2llvm/runtimes/CMakeLists.txt
+2-0flang-rt/test/lit.site.cfg.py.in
+1-1flang-rt/CMakeLists.txt
+1-0flang-rt/test/CMakeLists.txt
+16-86 files

LLVM/project 08124b7clang/lib/Serialization ASTReader.cpp, clang/test/PCH ftime-trace-specialization-lookup.cpp

[clang] Avoid invalidating specialization lookup (#196533)

Fixes a use-after-free in `ASTReader::LoadExternalSpecializationsImpl`
when loading external specializations with `-ftime-trace` enabled.

This resolves the https://github.com/llvm/llvm-project/issues/196482 and
builds upon the https://github.com/llvm/llvm-project/pull/172658

The function kept a pointer into `SpecLookups`:

```cpp
LookupTable = &It->getSecond();
```

Then it constructed a `TimeTraceScope` whose name callback calls
`getNameForDiagnostic`. That call may deserialize additional AST state
and mutate `SpecLookups`, invalidating the saved pointer before it is
later used for:


    [27 lines not shown]
DeltaFile
+250-8clang/unittests/Support/TimeProfilerTest.cpp
+104-0clang/test/PCH/ftime-trace-specialization-lookup.cpp
+8-13clang/lib/Serialization/ASTReader.cpp
+362-213 files

LLVM/project 5162d2aclang/lib/Driver/ToolChains MSVC.cpp

[Driver][MSVC] Correctly handle the -fuse-ld=(empty) case (#199167)

We need to distinguish the case where `-fuse-ld` is unspecified and when
`-fuse-ld=(empty)` as is already done in the generic `ToolChain`
implementation but wasn't done in the MSVC driver to correctly handle
the `CLANG_DEFAULT_LINKER` CMake option.
DeltaFile
+6-8clang/lib/Driver/ToolChains/MSVC.cpp
+6-81 files

LLVM/project 352fb9alld/ELF Writer.cpp SyntheticSections.cpp, lld/docs Partitions.rst partitions.svg

[ELF] Reduce symbol partitions to shim binaries (#198718)

The experimental symbol partition feature can move arbitrary symbols and
input sections out of the main partition into named loadable partitions
that consumers extract with `llvm-objcopy --extract-partition`. It is
incompatible with many features, has seen no adoption beyond Chromium's
`build/extract_partition.py`. Chrome hasn't needed this feature for many
years.

The partitioning machinery (per-partition `MarkLive` runs, `moveToMain`,
cross-partition pull in `InputSection::replace`, per-symbol
dynsym/gnuhash/thunk-compat filters, `PartitionIndexSection`,
`copySectionsIntoPartitions`, etc.) does not pull its weight for that.

Remove the partitioning brain and keep a minimal shim shell.
`Symbol::partition` is deleted; every dynsym add goes to
`ctx.mainPart`. `ctx.partitions` wraps a `std::vector<Partition>`
whose iterator yields only the main partition; shim partitions live
in `storage[1..]` and are reached via `shims()`. The two paths that

    [10 lines not shown]
DeltaFile
+124-167lld/ELF/Writer.cpp
+0-241lld/test/ELF/partition-synthetic-sections.s
+33-89lld/ELF/SyntheticSections.cpp
+0-116lld/docs/Partitions.rst
+0-110lld/docs/partitions.svg
+10-60lld/ELF/MarkLive.cpp
+167-78321 files not shown
+294-1,11927 files

LLVM/project d50dd10mlir/include/mlir/Dialect/SPIRV/IR SPIRVBase.td SPIRVNonUniformOps.td, mlir/lib/Dialect/SPIRV/IR ImageOps.cpp

[mlir][spirv] Fix `fp8` and `bf16` leaking into unsupported ops (#199102)

Including `SPIRV_AnyFloat` in the majority of types caused fp8 and bf16
to be allowed in ops that are not allowed by float8 and bfloat16
extensions. This patch tries to rectify to only allow fp8 and bf16 in
ops allowed by the respective specs. Additional tests have been also
added to increase the coverage with respect to those types.

Assisted-by: Codex + Claude Code
DeltaFile
+84-2mlir/test/Dialect/SPIRV/IR/non-uniform-ops.mlir
+48-0mlir/test/Dialect/SPIRV/IR/image-ops.mlir
+15-6mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
+9-9mlir/include/mlir/Dialect/SPIRV/IR/SPIRVNonUniformOps.td
+10-6mlir/lib/Dialect/SPIRV/IR/ImageOps.cpp
+16-0mlir/test/Dialect/SPIRV/IR/atomic-ops.mlir
+182-236 files not shown
+214-3112 files

LLVM/project 0f12556llvm/lib/IR Verifier.cpp, llvm/test/Verifier value-profile.ll

[Verifier] Add missing null-check. (#199170)

[Verifier] Add missing null-check.

visitProfMetadata's was using the result of dyn_extract without first
checkout that it's non-null.  Thus one could crash the verifier by
providing invalid IR.

This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.
DeltaFile
+9-0llvm/test/Verifier/value-profile.ll
+1-0llvm/lib/IR/Verifier.cpp
+10-02 files

LLVM/project 5ee840coffload/plugins-nextgen/level_zero/include L0Device.h L0Interop.h, offload/plugins-nextgen/level_zero/src L0Device.cpp L0Kernel.cpp

[OFFLOAD][L0] Remove support for non-immediate command lists (#198894)

The code was in a dead path as immediate command lists are always used.
DeltaFile
+36-261offload/plugins-nextgen/level_zero/src/L0Device.cpp
+1-90offload/plugins-nextgen/level_zero/include/L0Device.h
+3-59offload/plugins-nextgen/level_zero/src/L0Kernel.cpp
+9-39offload/plugins-nextgen/level_zero/src/L0Plugin.cpp
+0-3offload/plugins-nextgen/level_zero/include/L0Interop.h
+49-4525 files

LLVM/project 7447887lldb/include/lldb/Utility Locked.h, lldb/source/Target Target.cpp

Merge branch 'main' into users/meinersbur/flang_builtin-mods_3
DeltaFile
+182-888llvm/test/CodeGen/PowerPC/fp-strict-fcmp-spe.ll
+205-608llvm/test/CodeGen/PowerPC/spe.ll
+430-0llvm/test/CodeGen/AMDGPU/wait-xcnt-drain.mir
+225-0lldb/unittests/Utility/LockedTest.cpp
+173-0lldb/include/lldb/Utility/Locked.h
+44-43lldb/source/Target/Target.cpp
+1,259-1,539259 files not shown
+2,590-2,824265 files

LLVM/project c20020elibc/include search.yaml math.yaml, libc/utils/hdrgen/hdrgen header.py yaml_to_classes.py

[libc] Enforce standard identifier validation in hdrgen (#198971)

Implemented validation for standard identifiers in the hdrgen tool to
catch typos and unknown standards. Aggregated standards from all entity
types (macros, types, etc.) for validation, addressing a TODO in
header.py.

Added llvm_libc_ext, stdc_ext, and llvm_libc_stdfix_ext to the canonical
identifiers. Standardised invalid or inconsistently formatted standards
in several YAML files.

This enforces the correctness of any provided standards field but does
not yet require that every entity has one (many entities still inherit
standards from the header level).

Assisted-by: Automated tooling, human reviewed.
DeltaFile
+29-6libc/utils/hdrgen/hdrgen/header.py
+15-14libc/utils/hdrgen/hdrgen/yaml_to_classes.py
+10-5libc/include/search.yaml
+6-4libc/include/math.yaml
+2-1libc/include/stdfix.yaml
+2-1libc/include/pthread.yaml
+64-314 files not shown
+70-3310 files