LLVM/project 4ebb19e — llvm/test/tools/yaml2obj help.test, llvm/tools/yaml2obj CMakeLists.txt Opts.td

[yaml2obj] Migrate to OptTable (#224964)

yaml2obj is one of three tools that parse with
cl::ParseCommandLineOptions(LongOptionsUseDoubleDash=true). Parse its
options with an OptTable instead, so that the mode can be removed from
cl::. Spellings follow the other migrated tools: -D<macro>=<v> and
-D <macro>=<v>, -o<file> and -o <file>, --docnum=<n> and --docnum <n>,
--max-size likewise, -E, -h/--help and --version. `-o=<file>` is no
longer accepted; the tests that used it are updated. `--help` lists
only yaml2obj's options.

LLM-aided
DeltaFile
+63-34llvm/tools/yaml2obj/yaml2obj.cpp
+18-0llvm/tools/yaml2obj/Opts.td
+11-0utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+3-6llvm/test/tools/yaml2obj/help.test
+9-0llvm/utils/gn/secondary/llvm/tools/yaml2obj/BUILD.gn
+7-0llvm/tools/yaml2obj/CMakeLists.txt
+111-401 files not shown
+112-417 files

LLVM/project 08ee0ef — lldb/source/Plugins/ObjectContainer/Clang-Offload-Bundle CMakeLists.txt ObjectContainerClangOffloadBundle.h, lldb/source/Symbol ObjectFile.cpp

[lldb] Add plugin for Clang offload bundle object container (#222362)

## Summary

Clang supports embedding binaries using the clang offload bundler:

https://clang.llvm.org/docs/ClangOffloadBundler.html

This patch creates an ObjectContainer plug-in that allows us to get the
contained binaries within any executable.

### why we need this? 
AMD/HIP host binaries may contain a .hip_fatbin section holding a Clang
offload bundle with one or more AMDGPU ELF code objects, typically for
different GPU architectures. Each ELF code object can contain multiple
ml kernels.


### Test 

    [11 lines not shown]
DeltaFile
+350-0lldb/unittests/ObjectContainer/ObjectContainerClangOffloadBundleTest.cpp
+261-0lldb/source/Plugins/ObjectContainer/Clang-Offload-Bundle/ObjectContainerClangOffloadBundle.cpp
+76-0lldb/source/Plugins/ObjectContainer/Clang-Offload-Bundle/ObjectContainerClangOffloadBundle.h
+14-7lldb/source/Symbol/ObjectFile.cpp
+13-0lldb/source/Plugins/ObjectContainer/Clang-Offload-Bundle/CMakeLists.txt
+3-0lldb/unittests/ObjectContainer/CMakeLists.txt
+717-71 files not shown
+718-77 files

LLVM/project dd17367 — clang/lib/Basic/Targets PPC.cpp, clang/lib/CodeGen CodeGenFunction.cpp

[FMV][AIX] Implement target_clones part 2 (target-features) (#206786)

This is part 2 (of 2) of FMV on AIX that would allow specifying
target-feature strings on the ``target_clones`` attribute. Part 1 was in
#177428.

The list of attributes supported is a subset of the attribute accepted
on the `target` attribute on AIX, specifically those that are runtime
detectable via the `__builtin_cpu_supports` builtin.

---------

Co-authored-by: Wael Yehia <wyehia at ca.ibm.com>
DeltaFile
+101-0clang/test/CodeGen/PowerPC/attr-target-clones.c
+96-0clang/test/Sema/PowerPC/attr-target-clones.c
+66-0llvm/include/llvm/TargetParser/PPCTargetParser.def
+53-7clang/lib/Basic/Targets/PPC.cpp
+47-11clang/lib/CodeGen/CodeGenFunction.cpp
+27-3clang/lib/Sema/SemaPPC.cpp
+390-218 files not shown
+441-2614 files

LLVM/project 2ed7faf — llvm/lib/Target/DirectX DXILOpLowering.cpp DXILResourceAccess.cpp, llvm/test/CodeGen/DirectX ResourceAtomicCompareExchange-texture-unsupported-kind.ll ResourceAtomicCompareExchange.ll

[DirectX] Support `cmpxchg` on buffer resources in DXIL lowering (#222162)

This PR is a backend change alone. It teaches DXIL lowering to handle a
`cmpxchg` on a buffer resource pointer, which the
`InterlockedCompareStore`
and `InterlockedCompareExchange` PRs above it in this stack need.

The PR adds:

- the `llvm.dx.resource.atomic.compare.exchange` intrinsic,
- its DXIL operation and op lowering,
- the `DXILResourceAccess` handling that turns a `cmpxchg` on a value
  returned by `llvm.dx.resource.getpointer` into that intrinsic.

DXIL has no atomic compare exchange for texture resources, so the pass
reports an error for them. A test covers that path.

There is no Clang change here, and no HLSL function becomes available.

Assisted by: Github Copilot
DeltaFile
+151-30llvm/lib/Target/DirectX/DXILResourceAccess.cpp
+82-0llvm/test/CodeGen/DirectX/ResourceAtomicCompareExchange-texture.ll
+69-0llvm/test/CodeGen/DirectX/ResourceAtomicCompareExchange-texture-nonscalar.ll
+53-0llvm/test/CodeGen/DirectX/ResourceAtomicCompareExchange.ll
+41-0llvm/lib/Target/DirectX/DXILOpLowering.cpp
+36-0llvm/test/CodeGen/DirectX/ResourceAtomicCompareExchange-texture-unsupported-kind.ll
+432-304 files not shown
+509-3210 files

LLVM/project 62fd85f — clang/test/CodeGenHLSL/builtins RasterizerOrderedByteAddressBuffer-InterlockedExchange.hlsl RWByteAddressBuffer-InterlockedExchange.hlsl, clang/test/SemaHLSL/BuiltIns ByteAddressBuffer-InterlockedExchange-sm65-errors.hlsl ByteAddressBuffer-InterlockedExchange-errors.hlsl

[HLSL] Add `InterlockedExchange` function and resource methods (#222161)

This PR adds the `InterlockedExchange` standalone function and resource
methods. The operation lowers to `atomicrmw xchg`.

`InterlockedExchange` is the first interlocked operation that reports
the
previous value. It takes that value through an `original_value`
reference
parameter, so this PR adds a `RequiresOriginalValue` flag to
`HLSLBuiltinTypeDeclBuilder` and a matching overload shape to
`HLSLExternalSemaSource`. The later compare operations reuse both.

The float overload of `InterlockedExchange` follows in a separate PR in
this
stack. This PR covers the integer overloads alone, so it links
https://github.com/llvm/llvm-project/issues/99129 without closing it.

Assisted by: Github Copilot
DeltaFile
+107-0clang/test/SemaHLSL/BuiltIns/InterlockedExchange-errors.hlsl
+44-0clang/test/CodeGenHLSL/builtins/InterlockedExchange.hlsl
+41-0clang/test/SemaHLSL/BuiltIns/ByteAddressBuffer-InterlockedExchange-errors.hlsl
+40-0clang/test/CodeGenHLSL/builtins/RWByteAddressBuffer-InterlockedExchange.hlsl
+27-0clang/test/CodeGenHLSL/builtins/RasterizerOrderedByteAddressBuffer-InterlockedExchange.hlsl
+26-0clang/test/SemaHLSL/BuiltIns/ByteAddressBuffer-InterlockedExchange-sm65-errors.hlsl
+285-014 files not shown
+365-3620 files

LLVM/project 7215a8a — llvm/test/CodeGen/AArch64/GlobalISel legalize-sinh.mir legalize-sin.mir

AArch64: Mark the LR def of GlobalISel calls dead

In SelectionDAG InstrEmitter would have marked this dead.

Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+22-22llvm/test/CodeGen/AArch64/GlobalISel/legalize-pow.mir
+21-21llvm/test/CodeGen/AArch64/GlobalISel/legalize-sinh.mir
+21-21llvm/test/CodeGen/AArch64/GlobalISel/legalize-sin.mir
+21-21llvm/test/CodeGen/AArch64/GlobalISel/legalize-fexp2.mir
+21-21llvm/test/CodeGen/AArch64/GlobalISel/legalize-exp.mir
+21-21llvm/test/CodeGen/AArch64/GlobalISel/legalize-atan2.mir
+127-12738 files not shown
+264-26044 files

LLVM/project 6ca0abd — clang-tools-extra/docs conf.py, clang/docs conf.py

[docs] Require MyST for Sphinx documentation builds (#223829)

Fedora plans to use the separate llvm_man_pages package that we build as part of our release process now:

https://discourse.llvm.org/t/rfc-make-myst-markdown-the-llvm-docs-format-rip-rest/90840/37

I'm assuming that other distributions are either going to be able to
install the necessary Python modules that we depend on (myst_parser
etc), or will use this man page package if they need it. Therefore, I think we
can remove this enum and associated complexity.

Assisted-by: codex
DeltaFile
+4-25utils/docs/llvm_sphinx/__init__.py
+10-0llvm/docs/ReleaseNotes.md
+1-1libc/docs/conf.py
+1-1clang/docs/conf.py
+1-1clang/docs/analyzer/conf.py
+1-1clang-tools-extra/docs/conf.py
+18-295 files not shown
+23-3411 files

LLVM/project 606e2ac — mlir/include/mlir/Dialect/Bufferization/Transforms OneShotAnalysis.h, mlir/lib/Dialect/Bufferization/Transforms OneShotAnalysis.cpp

[mlir][bufferization] Relax happens-before analysis (#223777)

On unstructured control-flow, the one-shot analysis is rather
conservative in regards to computing RaW conflicts, requiring strict
dominance which may not always be satisfied.

Relax this requirement to allow more cases to not be marked as
conflicting. Notably, readers/writers within a region that contains a
"diamond" or multiple loops are now handled.

This is a simpler version of
https://github.com/llvm/llvm-project/pull/223006 without the CFGLoopInfo
analysis, meaning it is a bit more conservative when analyzing regions
with nested loops.
DeltaFile
+714-0mlir/test/Dialect/ControlFlow/one-shot-bufferize-analysis.mlir
+276-40mlir/lib/Dialect/Bufferization/Transforms/OneShotAnalysis.cpp
+40-1mlir/include/mlir/Dialect/Bufferization/Transforms/OneShotAnalysis.h
+1,030-413 files

LLVM/project 915c3bd — llvm/lib/Transforms/InstCombine InstCombineVectorOps.cpp, llvm/test/Transforms/InstCombine extractelement-strided-ptr-vector.ll

[InstCombine] Fold variable extract of a constant-strided pointer vector (#217078)

A vector built from pointers that all point into the same object at a
constant stride is a table of addresses, so a variable extract from it
is address arithmetic:

  %v0 = insertelement <4 x ptr> poison, ptr %b,      i64 0
  %v1 = insertelement <4 x ptr> %v0,    ptr %b + 8,  i64 1
  %v2 = insertelement <4 x ptr> %v1,    ptr %b + 16, i64 2
  %v3 = insertelement <4 x ptr> %v2,    ptr %b + 24, i64 3
  %r  = extractelement <4 x ptr> %v3, i32 %i
  -->
  %r  = getelementptr i8, ptr %b, i64 %i * 8

Fold it to a single GEP. Every element must be reachable from one base
pointer at a constant byte offset, every lane of the vector must be
defined, and the offsets must form an arithmetic sequence; otherwise the
pattern is left alone.
DeltaFile
+272-0llvm/test/Transforms/InstCombine/extractelement-strided-ptr-vector.ll
+62-0llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
+334-02 files

LLVM/project 55ce386 — llvm/lib/CodeGen SpillPlacement.cpp, llvm/test/CodeGen/AMDGPU wave-profile-spill.mir

[CodeGen] Use validated wave counts for AMDGPU spill costs

Lane-based block frequencies can understate the cost of a spill in
divergent GPU code: a wave still executes a block with only some lanes
active. Use measured block-wave counts to weight SpillPlacement's costs
relative to the original entry-wave count.

Opt in on AMDGPU only. Accept a measured count only when its IR block
maps uniquely to a machine block with matching predecessors and
successors. Keep the existing MBFI cost for unmeasured or rejected
blocks, and leave branch probabilities and general BFI unchanged.

DeltaFile
+251-0llvm/test/CodeGen/AMDGPU/wave-profile-spill.mir
+97-1llvm/lib/CodeGen/SpillPlacement.cpp
+348-12 files

LLVM/project 4584e4b — lld/MachO Relocations.cpp SyntheticSections.cpp, lld/test/MachO tlv-dynamic-lookup-x86.s got-to-tlv-reference.s

[lld][MachO] Remove `__thread_ptrs` section so TLV can relocate against dynamic-lookup symbols (#221364)

lld/MachO rejects a relocation whenever `hasAttr(TLV) != sym->isTlv()`, but
`isTlv()` cannot separate "not thread-local" from "unknown", so that one
inequality rejects three unrelated cases and only one of them is ill-formed.
C++20 `constinit` made another of them common: it lets the compiler elide the
thread-local wrapper and access a cross-TU object directly ([folly 2c666105](https://github.com/facebook/folly/commit/2c666105e9a694aef7290cce3da14ed1ebf14462)),
producing a TLV relocation against a dynamic-lookup symbol. The check was also
masking a defect — `Symbol::gotIndex` is one field indexing whichever of `__got`
or `__thread_ptrs` holds the symbol — and never enforced it anyway, since
`UnwindInfoSection` and the stub paths call `in.got->addEntry` directly, so a
thread-local personality already collided on stock lld.

Both pools hold the same value, the descriptor's address, and ld-prime never
synthesizes `__thread_ptrs` at all. Make `__got` the sole non-lazy pointer
section, deleting `TlvPointerSection`, `NonLazyPointerSectionBase`,
`in.tlvPointers`, `Symbol::getTlvVA` and the indirect-symbol-table
special-casing, and collapsing `resolveGotVA`/`resolveTlvVA` into
`resolveNonLazyPtrVA`. One section, one index, so the collision becomes

    [9 lines not shown]
DeltaFile
+265-0lld/test/MachO/tlv-dynamic-lookup.s
+170-0lld/test/MachO/tlv-non-lazy-pointer.s
+128-0lld/test/MachO/got-to-tlv-reference.s
+52-0lld/test/MachO/tlv-dynamic-lookup-x86.s
+8-27lld/MachO/SyntheticSections.cpp
+31-3lld/MachO/Relocations.cpp
+654-3017 files not shown
+704-14423 files

LLVM/project dcef585 — llvm/lib/Transforms/Vectorize VPlanRecipes.cpp, llvm/test/Transforms/LoopVectorize/VPlan execution-frequencies-match-bfi.ll

[VPlan] Compute execution probability via APFloat for printing. (#226135)

Similar to #201824 (8e517e1d17b1), use APFloat to compute the execution
probability. This ensures the output is independent of the underlying
libc/OS/architecture.

Suggested in https://github.com/llvm/llvm-project/pull/203982.
DeltaFile
+9-9llvm/test/Transforms/LoopVectorize/VPlan/execution-frequencies-match-bfi.ll
+8-5llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+17-142 files

LLVM/project f676944 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp

[SLP][NFC] Use BoUpSLP::getNumberOfParts() where appropriate (#225995)

Caches the results for better performance rather than directly calling
slpvectorizer::getNumberOrParts().

Small improvement in compile time.
DeltaFile
+18-31llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+18-311 files

LLVM/project 666f22b — llvm/lib/Target/SPIRV SPIRVStructurizer.cpp, llvm/test/CodeGen/SPIRV/structurizer cf.while.short-circuited-cond.ll cf.for.short-circuited-cond.ll

[SPIRV] Support structurizing nested break chains (#222459)

This PR updates the SPIRVStructurizer to handle nested break chains.
This pattern occurs when switch statements are lowered instead as branch
instructions and break statements need to exit out to an outer
containing block.

This is a required change to support #112056.

Assisted-by: GitHub Copilot
DeltaFile
+165-0llvm/test/CodeGen/SPIRV/structurizer/branch-no-switch.ll
+4-12llvm/test/CodeGen/SPIRV/structurizer/cf.for.short-circuited-cond.ll
+3-8llvm/test/CodeGen/SPIRV/structurizer/cf.while.short-circuited-cond.ll
+4-3llvm/lib/Target/SPIRV/SPIRVStructurizer.cpp
+176-234 files

LLVM/project 06d6747 — llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp, mlir/lib/Target/LLVMIR/Dialect/OpenMP OpenMPToLLVMIRTranslation.cpp

[Flang][OpenMP][MLIR] Attach source location to target/target-data runtime c… (#222389)

…alls

This commit adds ident info to the OpenMP target call so the runtime now
reports the kernels source location in -g and non -g builds

Of note this does diverge from clang where the file info is only
provided with `-g` builds, however similar work is done in
`createMappingInformation` in
`mlir/lib/Target/LLVMIR/Dialect/OpenMPCommon.cpp`.
DeltaFile
+43-9mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+40-0mlir/test/Target/LLVMIR/omptarget-target-region-source-loc.mlir
+28-0mlir/test/Target/LLVMIR/omptarget-target-data-source-loc-nodebug.mlir
+15-11llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+23-0mlir/test/Target/LLVMIR/omptarget-target-region-source-loc-nodebug.mlir
+5-5mlir/test/Target/LLVMIR/omptarget-llvm.mlir
+154-253 files not shown
+161-299 files

LLVM/project 52d7449 — llvm/lib/Target/AMDGPU SILowerControlFlow.cpp, llvm/test/CodeGen/AMDGPU lower-control-flow-live-intervals.mir branch-folding-implicit-def-subreg.ll

AMDGPU: Mark the SCC def dead when expanding CF pseudos

The control flow pseudos start with dead flags on the implicit scc def,
but did not transfer to the replacement instruction

Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+25-28llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-used-outside-loop.ll
+25-25llvm/test/CodeGen/AMDGPU/collapse-endcf.mir
+20-20llvm/test/CodeGen/AMDGPU/branch-folding-implicit-def-subreg.ll
+16-16llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-temporal-divergent-i1.ll
+19-6llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
+10-10llvm/test/CodeGen/AMDGPU/lower-control-flow-live-intervals.mir
+115-10513 files not shown
+165-15619 files

LLVM/project 0b2b0cc — llvm/test/tools/obj2yaml help.test, llvm/tools/obj2yaml CMakeLists.txt Opts.td

[obj2yaml] Migrate to OptTable (#224965)

obj2yaml is one of three tools that parse with
cl::ParseCommandLineOptions(LongOptionsUseDoubleDash=true). Parse its
options with an OptTable instead, so that the mode can be removed from
cl::. Spellings follow the other migrated tools: -o<file> and -o <file>,
--raw-segment=<segment> and --raw-segment <segment>, -h/--help and
--version. `--help` lists only obj2yaml's options.

LLM-aided
DeltaFile
+58-25llvm/tools/obj2yaml/obj2yaml.cpp
+15-0llvm/tools/obj2yaml/Opts.td
+11-0utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+3-6llvm/test/tools/obj2yaml/help.test
+9-0llvm/utils/gn/secondary/llvm/tools/obj2yaml/BUILD.gn
+7-0llvm/tools/obj2yaml/CMakeLists.txt
+103-316 files

LLVM/project becb38d — llvm/test/tools/split-file help.test, llvm/utils/gn/secondary/llvm/utils/split-file BUILD.gn

[split-file] Migrate to OptTable (#224966)

split-file is one of three tools that parse with
cl::ParseCommandLineOptions(LongOptionsUseDoubleDash=true). Parse its
options with an OptTable instead, so that the mode can be removed from
cl::. --no-leading-lines now overrides an earlier --leading-lines
rather than being ignored, and `--help` lists only split-file's
options. `--version` still exits 0, which libc++'s test configuration
relies on to detect the tool.

LLM-aided
DeltaFile
+46-27llvm/utils/split-file/split-file.cpp
+12-1llvm/utils/gn/secondary/llvm/utils/split-file/BUILD.gn
+11-0utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+10-0llvm/utils/split-file/Opts.td
+7-0llvm/utils/split-file/CMakeLists.txt
+2-3llvm/test/tools/split-file/help.test
+88-316 files

LLVM/project 5dac0fe — llvm/test/ObjectYAML/MachO function_starts.yaml export_trie_lc_dyld_info_only.yaml, llvm/test/tools/llvm-readobj/COFF codeview-merging-ghash.test

[test] Use -o <file> for yaml2obj (#226245)

`-o <file>` is the preferred form. Prepare for the OptTable migration of
yaml2obj, where -o=<file> is no longer accepted.
DeltaFile
+2-2llvm/test/tools/llvm-tli-checker/ps4-tli-check.yaml
+1-1llvm/test/tools/llvm-tli-checker/ifuncs.yaml
+1-1llvm/test/tools/llvm-readobj/COFF/codeview-merging-ghash.test
+1-1llvm/test/ObjectYAML/MachO/function_starts.yaml
+1-1llvm/test/ObjectYAML/MachO/export_trie_lc_dyld_info_only.yaml
+1-1llvm/test/ObjectYAML/MachO/export_trie_lc_dyld_exports_trie.yaml
+7-71 files not shown
+8-87 files

LLVM/project e27c743 — libc/test/src/sys/xattr flistxattr_test.cpp llistxattr_test.cpp

[libc] Add the get and set sys/xattr.h entrypoints. (#224729)

This is a follow-up to #224357, implementing more of sys/xattr.h. As
before, these are non-POSIX APIs.

The list of entrypoints is: `fgetxattr`, `getxattr`, `lgetxattr`,
`fsetxattr`, `setxattr`, and `lsetxattr`.

Assisted-by: Automated tooling, human reviewed.
DeltaFile
+336-0libc/test/src/sys/xattr/xattr_test.cpp
+302-0libc/test/src/sys/xattr/lxattr_test.cpp
+273-0libc/test/src/sys/xattr/fxattr_test.cpp
+0-150libc/test/src/sys/xattr/listxattr_test.cpp
+0-148libc/test/src/sys/xattr/llistxattr_test.cpp
+0-102libc/test/src/sys/xattr/flistxattr_test.cpp
+911-40038 files not shown
+1,937-42444 files

LLVM/project d968b5f — lldb/source/Plugins/SymbolFile/NativePDB SymbolFileNativePDB.cpp, lldb/test/Shell/SymbolFile/NativePDB dedupe-exported-public-symbols.cpp

[lldb][NativePDB] Don't duplicate public symbols that restate a PE export (#226200)

`SymbolFileNativePDB::AddSymbols` adds every
[`S_PUB32`](https://llvm.org/docs/PDB/CodeViewSymbols.html#s-pub32-0x110e)
to the symtab, but `ObjectFilePECOFF` has usually already added the same
name and address from the PE export table, so the symbol resolves to two
entries.

On the other hand, `ObjectFilePECOFF` already solves this for its own
`export`/`symtab` overlap by marking the duplicate entry as
`eSymbolTypeAdditional`:

https://github.com/llvm/llvm-project/blob/d1106deb71cc81016406a1917d0508d2df296266/lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp#L839-L844

This patch implements the same for `SymbolFileNativePDB::AddSymbols`.

In swiftlang, this fixes
`lang/swift/expression/exclusivity_suppression/TestExclusivitySuppression.py`
on Windows.
DeltaFile
+33-14lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
+22-0lldb/test/Shell/SymbolFile/NativePDB/dedupe-exported-public-symbols.cpp
+55-142 files

LLVM/project 23a4893 — llvm/lib/TargetParser IntelGPUTargetParser.cpp

[TargetParser] Fix -Wunused-variable in #222072 (#226243)

Use [[maybe_unused]] as the name is a lot nicer than the raw constant.
DeltaFile
+1-1llvm/lib/TargetParser/IntelGPUTargetParser.cpp
+1-11 files

LLVM/project 78a1fe9 — utils/bazel .bazelversion .bazelrc, utils/bazel/llvm-project-overlay/mlir/examples/transform/Ch2 BUILD.bazel

[bazel] Update to 9.x (#225466)

Mostly just staying up to date, but this has performance improvements
with remote exec too
DeltaFile
+51-986utils/bazel/MODULE.bazel.lock
+4-1utils/bazel/.bazelrc
+1-1utils/bazel/.bazelversion
+1-0utils/bazel/llvm-project-overlay/mlir/examples/transform/Ch4/BUILD.bazel
+1-0utils/bazel/llvm-project-overlay/mlir/examples/transform/Ch3/BUILD.bazel
+1-0utils/bazel/llvm-project-overlay/mlir/examples/transform/Ch2/BUILD.bazel
+59-9887 files not shown
+66-98813 files

LLVM/project e12fc28 — lldb/source/Plugins/SymbolFile/DWARF DWARFASTParserFortran.cpp, lldb/unittests/SymbolFile/DWARF DWARFASTParserFortranTests.cpp

[lldb][Fortran] Moved break in case and fixed failing test
DeltaFile
+7-3lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserFortran.cpp
+4-4lldb/unittests/SymbolFile/DWARF/DWARFASTParserFortranTests.cpp
+11-72 files

LLVM/project d1c2388 — llvm/docs/CommandGuide llvm-cov.md, llvm/tools/llvm-cov CMakeLists.txt GcovOpts.td

[llvm-cov] Migrate gcov to OptTable (#224955)

llvm-cov gcov is the last user of cl::Grouping. Parse its options with
an OptTable that enables grouped short options, as the other
binutils-style tools do, so that cl::Grouping can be removed.

Spellings follow the other migrated tools: long options take `--` only,
so `-gcno` and `-gcda=` become `--gcno` and `--gcda=`. `--help` now
lists only gcov's options rather than every cl:: option linked into
llvm-cov, and an unknown option or a missing source file is reported
as `llvm-cov gcov: error: ...`.

LLM-aided
DeltaFile
+68-96llvm/tools/llvm-cov/gcov.cpp
+51-0llvm/tools/llvm-cov/GcovOpts.td
+11-0utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+9-0llvm/utils/gn/secondary/llvm/tools/llvm-cov/BUILD.gn
+7-0llvm/tools/llvm-cov/CMakeLists.txt
+2-2llvm/docs/CommandGuide/llvm-cov.md
+148-986 files

LLVM/project b1ba3d5 — llvm/test/tools/llvm-reduce/mir parallel-jobs-unsupported.mir, llvm/tools/llvm-reduce llvm-reduce.cpp

llvm-reduce: Error on -j with MIR inputs (#226225)

Parallel chunk processing distributes work by serializing the program to
bitcode and reparsing it in each worker thread. Bitcode cannot represent
MachineFunctions, so readBitcode leaves ReducerWorkItem::MMI null and
the reparsed item reports isMIR() == false. The delta pass list is still the
MIR one, chosen from the original program, so the worker runs a MIR pass
over an item with no MachineModuleInfo and dereferences null.

This broke every MIR reduction using -j > 1, though not immediately: the
parallel path is only taken once there is more than one chunk left to
process, so the crash appeared after the first granularity increase.

Reject the combination up front instead of crashing partway through a
reduction. Supporting it would mean exchanging MIR text rather than
bitcode, and giving each worker its own TargetMachine.

Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+10-0llvm/test/tools/llvm-reduce/mir/parallel-jobs-unsupported.mir
+9-0llvm/tools/llvm-reduce/llvm-reduce.cpp
+3-0llvm/tools/llvm-reduce/deltas/Delta.h
+2-0llvm/tools/llvm-reduce/deltas/Delta.cpp
+24-04 files

LLVM/project 3ab91ef — flang/include/flang/Lower SymbolMap.h, flang/lib/Lower OpenACC.cpp ConvertCall.cpp

[flang][cuda][openacc] Resolve DEVICE dummies against !$acc data mapped objects (#225899)

CUDA Fortran generic resolution rejects a call when an actual argument
with
no CUDA data attribute is associated with an ATTRIBUTES(DEVICE) dummy.
That
makes cuBLAS-style generic interfaces unusable inside a structured
OpenACC
data region, even though the mapped objects do have a device copy there:

```
  !$acc data copyin(a, b) copyout(c)
    call cublaszgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
  !$acc end data

  error: No specific subroutine of generic 'cublaszgemm' matches the actual
  arguments
    dummy argument 'a=' has ATTRIBUTES(DEVICE) but its associated actual
    argument has no CUDA data attribute

    [32 lines not shown]
DeltaFile
+149-0flang/test/Lower/OpenACC/acc-data-cuda-device.f90
+48-1flang/lib/Lower/ConvertCall.cpp
+31-14flang/lib/Lower/OpenACC.cpp
+33-0flang/include/flang/Lower/SymbolMap.h
+23-4flang/lib/Semantics/expression.cpp
+25-0flang/lib/Semantics/resolve-directives.cpp
+309-197 files not shown
+382-1913 files

LLVM/project 3447490 — llvm/lib/Target/SystemZ SystemZXPLINKAsmPrinter.cpp, llvm/test/CodeGen/SystemZ zos-ppa2.ll

[SystemZ][z/OS] Fix product version format in PPA2 on z/OS. (#225749)

The product version in PPA2 should be right-aligned (e.g. 090807)
instead of left-aligned (e.g. 908070) on z/OS.
DeltaFile
+5-2llvm/test/CodeGen/SystemZ/zos-ppa2.ll
+1-1llvm/lib/Target/SystemZ/SystemZXPLINKAsmPrinter.cpp
+6-32 files

LLVM/project 585b10b — llvm/include/llvm/Transforms/Vectorize LoopVectorizationLegality.h, llvm/lib/Transforms/Vectorize LoopVectorize.cpp LoopVectorizationPlanner.cpp

[LV] Remove unused functions (NFC) (#226048)

isInductionVariable:
The last caller was removed on December 19, 2025 in commit
1f78f6a2d629b0dd410a3d20429f76377ac5d6c3, leaving
isCastedInductionVariable without any callers and
InductionCastsToIgnore without any readers.

getNumStores, getNumLoads:
The last callers were removed on August 5, 2025 in commit
c9dd14d1d4c357ad29e0e5c446f1bb8f596ab9c0.

hasVector:
The last caller was removed on June 24, 2024 in commit
abf5969f76c6b4196b08fe5ea9c2890e97a61357.

getInLoopReductionImmediateChain:
The last caller was removed on September 4, 2026 in commit
278d9f76594de1ad0fac669468bf083ad6616a0f, leaving

    [6 lines not shown]
DeltaFile
+0-19llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
+0-18llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+0-17llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
+1-8llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.cpp
+0-6llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+1-685 files

LLVM/project 92488bc — llvm/lib/Target/RISCV/MCTargetDesc RISCVTargetStreamer.h RISCVELFStreamer.h

use recommended approach
DeltaFile
+17-12llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp
+3-2llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.h
+1-1llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.h
+21-153 files