LLVM/project 635f308 — clang/lib/Serialization ModuleCache.cpp, clang/unittests/Serialization ModuleCacheTest.cpp

[clang][Modules] Refresh a module file's access time when it is read (#239747)
DeltaFile
+35-1clang/unittests/Serialization/ModuleCacheTest.cpp
+29-0clang/lib/Serialization/ModuleCache.cpp
+64-12 files

LLVM/project 7eb1158 — llvm/lib/Target/BPF BPFUnwind.cpp, llvm/test/CodeGen/BPF unwind-reject-typed-catch.ll unwind-reject-nounwind.ll

Lower unwinding after reporting an error
DeltaFile
+3-4llvm/lib/Target/BPF/BPFUnwind.cpp
+1-0llvm/test/CodeGen/BPF/unwind-reject-typed-catch.ll
+1-0llvm/test/CodeGen/BPF/unwind-reject-nounwind.ll
+1-0llvm/test/CodeGen/BPF/unwind-reject-no-uwtable.ll
+1-0llvm/test/CodeGen/BPF/unwind-reject-filter.ll
+7-45 files

LLVM/project 1e99f72 — llvm/lib/Target/BPF BPFUnwind.cpp, llvm/test/Assembler invoke-bpf-unwind-exit.ll

BPF: Stop lowering unwinding through nonexistent unwinder calls

BPF borrowed the DWARF EH pipeline in an unsound way. DwarfEHPrepare
turned resume into a call of _Unwind_Resume, which will never be
linked in. BPFUnwindLower later replaced it, and calls of
_Unwind_RaiseException, by matching callee names after register
allocation. This fixes the pass pipeline relying on these transient
calls to phantom functions.

Instead add an invokable llvm.bpf.unwind.exit intrinsic, similar to
wasm's throw intrinsics. BPFUnwindPrepare replaces resume with it so
no impossible call to _Unwind_Resume reaches selection.

The intrinsic selects to a pseudo which BPFUnwindLower turns into
either unwind_exit or a branch to the landing pad when invoked. The
pseudo clobbers nothing, so register allocation can be more aggressive
than when the function looked like an ordinary call.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+39-66llvm/lib/Target/BPF/BPFUnwind.cpp
+61-0llvm/test/CodeGen/BPF/unwind-prepare.ll
+55-0llvm/test/CodeGen/BPF/unwind-lower.mir
+4-25llvm/test/CodeGen/BPF/unwind.ll
+0-20llvm/test/CodeGen/BPF/unwind-own-raise.ll
+16-0llvm/test/Assembler/invoke-bpf-unwind-exit.ll
+175-1116 files not shown
+205-11712 files

LLVM/project fb9c029 — llvm/include/llvm/CodeGen CommandFlags.h, llvm/include/llvm/MC MCTargetOptionsCommandFlags.h

[Support] Pass tool options to parseCommandLineOptions

Follow-up to #239920: `RegisterMCToolOptions` adds `MCToolOptions` to
the process-wide registry. Once lld registers them, every later parse in
the process accepts `-crel`, including clang's `-mllvm`, which then
ignores it.

Add a `parseCommandLineOptions` overload that takes the libraries a tool
opts in to. Replace `RegisterMCToolOptions` with `mc::getToolOptions`
and `codegen::getToolOptions`, which tools pass where they parse,
including lld's `-mllvm`, gold's `-plugin-opt`, and libLTO's debug
options. `RegisterCodeGenFlags` no longer registers the MC options. When
CodeGen's options move to TableGen, their parser joins
`codegen::getToolOptions` without changing these call sites.

`LibraryOptionsContext` records the library that parsed each argument,
so `assign`, which runs on each ThinLTO backend thread, replays without
looking up the registry.

LLM-aided
DeltaFile
+62-27llvm/lib/Support/CommandLine.cpp
+31-0llvm/unittests/Option/LibraryOptionsTest.cpp
+13-0llvm/include/llvm/Support/CommandLine.h
+5-5llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
+9-0llvm/include/llvm/CodeGen/CommandFlags.h
+4-2llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
+124-3428 files not shown
+192-6134 files

LLVM/project bc0d038 — mlir/lib/Dialect/Vector/IR VectorOps.cpp, mlir/test/Dialect/Vector canonicalize.mlir

[mlir][vector] Fix foldInsertUseChain to return getDest() (#239714)

Fixes a regression introduced in #238070, which changed `return
insertOp.getResult()` to `return insertOp.getDest()` in
`foldInsertUseChain`. `dest` is `InsertOp`'s destination vector rather
than its result.

Because of this change, folding `vector.insert` ops at the same position
replaced `insertOp` with its destination operand instead of signaling an
in-place fold, dropping the final insertion.

We also add a test to prevent this regression from happening again. 

cc @banach-space
DeltaFile
+6-6mlir/test/Dialect/Vector/canonicalize.mlir
+1-1mlir/lib/Dialect/Vector/IR/VectorOps.cpp
+7-72 files

LLVM/project 4039e79 — llvm/test/Transforms/SLPVectorizer/X86 fma-copyable.ll

[SLP][NFC]Add fmuladd missing copyable case, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/240016
DeltaFile
+558-0llvm/test/Transforms/SLPVectorizer/X86/fma-copyable.ll
+558-01 files

LLVM/project f0afbed — llvm/include/llvm/CodeGen CommandFlags.h, llvm/include/llvm/MC MCTargetOptionsCommandFlags.h

[Support] Pass tool options to parseCommandLineOptions

`RegisterMCToolOptions` adds `MCToolOptions` to the process-wide
registry. Once lld registers them, every later parse in the process
accepts `-crel`, including clang's `-mllvm`, which then ignores it.

Add a `parseCommandLineOptions` overload that takes the libraries a tool
opts in to. Replace `RegisterMCToolOptions` with `mc::getToolOptions`
and `codegen::getToolOptions`, which tools pass where they parse,
including lld's `-mllvm`, gold's `-plugin-opt`, and libLTO's debug
options. `RegisterCodeGenFlags` no longer registers the MC options.

`LibraryOptionsContext` records the library that parsed each argument,
so `assign` replays without looking up the registry, which does not
contain tool options.

LLM-aided
DeltaFile
+68-26llvm/lib/Support/CommandLine.cpp
+33-0llvm/unittests/Option/LibraryOptionsTest.cpp
+13-0llvm/include/llvm/Support/CommandLine.h
+5-5llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
+9-0llvm/include/llvm/CodeGen/CommandFlags.h
+4-2llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
+132-3328 files not shown
+202-6234 files

LLVM/project 28df8c4 — llvm/lib/CodeGen MachineVerifier.cpp, llvm/test/CodeGen/AMDGPU si-fold-operands-bundle.mir

MachineVerifier: Remove dead virtual register kill tracking

Kill flags on virtual registers are now rejected, so the per-block
tracking of killed virtual registers can never report anything
new. Physical register kills are handled separately.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+9-30llvm/lib/CodeGen/MachineVerifier.cpp
+5-6llvm/test/CodeGen/AMDGPU/si-fold-operands-bundle.mir
+14-362 files

LLVM/project ae4efc0 — llvm/lib/Target/AArch64 AArch64MIPeepholeOpt.cpp AArch64InstrInfo.cpp

AArch64: Remove clearKillFlags calls (#239892)

Kill flags are no longer permitted on virtual registers, but these
contexts may also see physical registers. Those physical register
kills are either never set by the time this code runs or are on
reserved or constant registers where they carry no information.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+0-2llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+0-1llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp
+0-32 files

LLVM/project a16ebff — llvm/include/llvm/Analysis LibcallLoweringInfo.h, llvm/lib/Analysis LibcallLoweringInfo.cpp

LibcallLoweringInfo: Use unique_ptr for map entries.

ModuleLibcallLoweringInfo stored each context's LibcallLoweringInfo by
value in a DenseMap, so returned references dangled once a later
insertion grew the map. Current users look the entry up again for each
function, but future changes will introduce long lived references.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+7-8llvm/include/llvm/Analysis/LibcallLoweringInfo.h
+3-2llvm/lib/Analysis/LibcallLoweringInfo.cpp
+10-102 files

LLVM/project 01b6afb — llvm/lib/CodeGen PreISelIntrinsicLowering.cpp

CodeGen: Stop using TargetLowering's libcall info in PreISelIntrinsicLowering (#239898)

The TargetLowering copy of RuntimeLibcallsInfo should be deleted and
only the analysis should be used.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+6-3llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
+6-31 files

LLVM/project ea8f595 — llvm/lib/Target/Sparc SparcISelLowering.cpp, llvm/test/CodeGen/SPARC fp128-strict.ll fp-strict.ll

[SPARC] Branch directly on the result of a constrained FP compare (#239385)

A branch on a constrained FP compare currently materializes the compare
result with a select of 1/0 and then branches on an integer compare of
that value against zero.

Branch on the FP condition codes directly when the compare's output
chain feeds only the branch, either directly or through a token factor
used only by the branch. The compare is glued to the branch, so this
is not done when another node is ordered after the compare, such as a
call.

Also look through the "and X, 1" that brcond expansion inserts when X
is already a SELECT_[IF]CC of 1 and 0, which lets the existing
LookThroughSetCC fold the soft-quad f128 compare as well.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+145-236llvm/test/CodeGen/SPARC/fp-strict-cmp.ll
+111-18llvm/test/CodeGen/SPARC/fp-strict.ll
+89-0llvm/test/CodeGen/SPARC/fp128-strict.ll
+79-0llvm/lib/Target/Sparc/SparcISelLowering.cpp
+424-2544 files

LLVM/project ed640e9 — llvm/lib/Target/Hexagon HexagonOptAddrMode.cpp HexagonInstrInfo.cpp

Hexagon: Remove redundant clearKillFlags calls (#239894)

HexagonOptAddrMode recomputes kill flags with Liveness::resetKills
after any change, so its clears are redundant.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+0-12llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
+0-2llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp
+0-142 files

LLVM/project 3512521 — llvm/lib/Target/AArch64 AArch64PTrueCoalescing.cpp AArch64InstrInfo.cpp

AArch64: Remove clearKillFlags calls on virtual registers (#239782)

Kill flags are no longer permitted on virtual registers, so clearing
them is a no-op. Remove the calls where the register can only be
virtual.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+0-3llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp
+0-1llvm/lib/Target/AArch64/AArch64PTrueCoalescing.cpp
+0-1llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+0-53 files

LLVM/project 4152af1 — llvm/lib/Target/ARC/MCTargetDesc ARCMCTargetDesc.cpp, llvm/lib/Target/BPF/MCTargetDesc BPFMCTargetDesc.cpp

BPF, Lanai, ARC, M68k: Register null target streamer (#239823)

Since 44a08dc732c5, llc -filetype=null is a fatal error on targets
that do not register a null target streamer. These targets do not need
a target specific streamer for the null case, so register the base
MCTargetStreamer.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+7-0llvm/lib/Target/M68k/MCTargetDesc/M68kMCTargetDesc.cpp
+7-0llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp
+7-0llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp
+7-0llvm/lib/Target/ARC/MCTargetDesc/ARCMCTargetDesc.cpp
+5-0llvm/test/CodeGen/Lanai/null-target-streamer.ll
+5-0llvm/test/CodeGen/M68k/null-target-streamer.ll
+38-02 files not shown
+48-08 files

LLVM/project 56feb67 — llvm/lib/Target/RISCV RISCVTargetTransformInfo.h

[RISCV] isLegalToVectorizeReduction - fix MSVC "not all control paths return a value" warning (#240010)
DeltaFile
+1-1llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
+1-11 files

LLVM/project c1bd381 — llvm/include/llvm/CodeGen CommandFlags.h, llvm/include/llvm/MC MCTargetOptionsCommandFlags.h

[Support] Pass tool options to parseCommandLineOptions

`RegisterMCToolOptions` adds `MCToolOptions` to the process-wide
registry. Once lld registers them, every later parse in the process
accepts `-crel`, including clang's `-mllvm`, which then ignores it.

Add a `parseCommandLineOptions` overload that takes the libraries a tool
opts in to. Replace `RegisterMCToolOptions` with `mc::getToolOptions`
and `codegen::getToolOptions`, which tools pass where they parse,
including lld's `-mllvm`, gold's `-plugin-opt`, and libLTO's debug
options. `RegisterCodeGenFlags` no longer registers the MC options.

`LibraryOptionsContext` records the library that parsed each argument,
so `assign` replays without looking up the registry, which does not
contain tool options.

LLM-aided
DeltaFile
+64-26llvm/lib/Support/CommandLine.cpp
+25-0llvm/unittests/Option/LibraryOptionsTest.cpp
+12-0llvm/include/llvm/Support/CommandLine.h
+5-5llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
+9-0llvm/include/llvm/CodeGen/CommandFlags.h
+4-2llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
+119-3326 files not shown
+182-6232 files

LLVM/project 5ec3fb3 — llvm/include/llvm/MC MCTargetOptionsCommandFlags.h, llvm/lib/MC CMakeLists.txt MCToolOptions.td

[MC] Declare the MCTargetOptions command line options in TableGen (#239920)

Move RegisterMCTargetOptionsFlags options into a private `MCToolOptions`
struct, different from MCCLOptions since `MCToolOptions` requires tool
opt-in. RegisterMCToolOptions, renamed from RegisterMCTargetOptionsFlags
(LLVMOption and clang driver use "flags" for boolean options), registers
the struct, so `clang -mllvm -crel` remains an error.

Remove the getters without outside readers. llc reads `MCRelaxAll`
instead of `getExplicitRelaxAll`, so `-mc-relax-all=false` no longer
warns with a non-object file type.

LLM-aided
DeltaFile
+34-218llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
+64-0llvm/lib/MC/MCToolOptions.td
+2-51llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
+10-0utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+6-0llvm/utils/gn/secondary/llvm/lib/MC/BUILD.gn
+4-0llvm/lib/MC/CMakeLists.txt
+120-2695 files not shown
+125-27411 files

LLVM/project 1491d92 — llvm/include/llvm/ADT TinyPtrVector.h StringSet.h

[ADT] Add LLVM_ATTRIBUTE_WARN_UNUSED to ADT classes (#239908)

This patch adds LLVM_ATTRIBUTE_WARN_UNUSED to various ADT classes so
that compilers can diagnose unused variables of these types even though
they have non-trivial constructors or destructors.

Remarks:

- Local testing confirms that unused direct-constructed variables of
  each touched class trigger -Wunused-variable if and only if the
  attribute is present.

- Derived classes such as SmallPriorityWorklist and SmallSetVector are
  annotated explicitly because compilers do not inherit warn_unused from
  base classes.

- Other ADT classes are left alone for now because adding the attribute
  to them would trigger warnings in existing code.


    [5 lines not shown]
DeltaFile
+5-4llvm/include/llvm/ADT/PriorityQueue.h
+4-3llvm/include/llvm/ADT/MapVector.h
+4-2llvm/include/llvm/ADT/DenseSet.h
+3-2llvm/include/llvm/ADT/SetVector.h
+2-2llvm/include/llvm/ADT/TinyPtrVector.h
+3-1llvm/include/llvm/ADT/StringSet.h
+21-1415 files not shown
+47-3121 files

LLVM/project cab6aba — llvm/include/llvm/CodeGen CommandFlags.h, llvm/include/llvm/MC MCTargetOptionsCommandFlags.h

[Support] Pass tool options to parseCommandLineOptions

`RegisterMCToolOptions` adds `MCToolOptions` to the process-wide
registry. Once lld registers them, every later parse in the process
accepts `-crel`, including clang's `-mllvm`, which then ignores it.

Add a `parseCommandLineOptions` overload that takes the libraries a tool
opts in to. Replace `RegisterMCToolOptions` with `mc::getToolOptions`
and `codegen::getToolOptions`, which tools pass where they parse,
including lld's `-mllvm`, gold's `-plugin-opt`, and libLTO's debug
options. `RegisterCodeGenFlags` no longer registers the MC options.

`LibraryOptionsContext` records the library that parsed each argument,
so `assign` replays without looking up the registry, which does not
contain tool options.

LLM-aided
DeltaFile
+64-26llvm/lib/Support/CommandLine.cpp
+25-0llvm/unittests/Option/LibraryOptionsTest.cpp
+12-0llvm/include/llvm/Support/CommandLine.h
+5-5llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
+9-0llvm/include/llvm/CodeGen/CommandFlags.h
+4-2llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
+119-3326 files not shown
+182-6232 files

LLVM/project b69fb35 — llvm/include/llvm/MC MCTargetOptionsCommandFlags.h, llvm/lib/MC CMakeLists.txt MCToolOptions.td

[MC] Declare the MCTargetOptions command line options in TableGen

Move RegisterMCTargetOptionsFlags options into a private `MCToolOptions`
struct, different from MCCLOptions since `MCToolOptions` requires tool
opt-in. RegisterMCToolOptions, renamed from RegisterMCTargetOptionsFlags
(LLVMOption and clang driver use "flags" for boolean options), registers
the struct, so `clang -mllvm -crel` remains an error.

Remove the getters without outside readers. llc reads `MCRelaxAll`
instead of `getExplicitRelaxAll`, so `-mc-relax-all=false` no longer
warns with a non-object file type.

LLM-aided
DeltaFile
+34-218llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
+64-0llvm/lib/MC/MCToolOptions.td
+2-51llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
+10-0utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+6-0llvm/utils/gn/secondary/llvm/lib/MC/BUILD.gn
+4-0llvm/lib/MC/CMakeLists.txt
+120-2695 files not shown
+125-27411 files

LLVM/project 355c2ab — lld/test/ELF/lto mllvm.ll

[ELF,test] Test that -mllvm sets MCTargetOptions for LTO (#240013)
DeltaFile
+2-1lld/test/ELF/lto/mllvm.ll
+2-11 files

LLVM/project ab600e7 — llvm/include/llvm/CodeGen CommandFlags.h, llvm/include/llvm/MC MCTargetOptionsCommandFlags.h

[Support] Pass tool options to parseCommandLineOptions

`RegisterMCToolOptions` adds `MCToolOptions` to the process-wide
registry. Once lld registers them, every later parse in the process
accepts `-crel`, including clang's `-mllvm`, which then ignores it.

Add a `parseCommandLineOptions` overload that takes the libraries a tool
opts in to. Replace `RegisterMCToolOptions` with `mc::getToolOptions`
and `codegen::getToolOptions`, which tools pass where they parse,
including lld's `-mllvm`, gold's `-plugin-opt`, and libLTO's debug
options. `RegisterCodeGenFlags` no longer registers the MC options.

`LibraryOptionsContext` records the library that parsed each argument,
so `assign` replays without looking up the registry, which does not
contain tool options.

LLM-aided
DeltaFile
+64-26llvm/lib/Support/CommandLine.cpp
+25-0llvm/unittests/Option/LibraryOptionsTest.cpp
+12-0llvm/include/llvm/Support/CommandLine.h
+5-5llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
+9-0llvm/include/llvm/CodeGen/CommandFlags.h
+4-2llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
+119-3326 files not shown
+182-6232 files

LLVM/project 5efc9d5 — llvm/include/llvm/MC MCTargetOptionsCommandFlags.h, llvm/lib/MC CMakeLists.txt MCToolOptions.td

[MC] Declare the MCTargetOptions command line options in TableGen

Move RegisterMCTargetOptionsFlags options into a private `MCToolOptions`
struct, different from MCCLOptions since `MCToolOptions` requires tool
opt-in. RegisterMCToolOptions, renamed from RegisterMCTargetOptionsFlags
(LLVMOption and clang driver use "flags" for boolean options), registers
the struct, so `clang -mllvm -crel` remains an error.

Remove the getters without outside readers. llc reads `MCRelaxAll`
instead of `getExplicitRelaxAll`, so `-mc-relax-all=false` no longer
warns with a non-object file type.

LLM-aided
DeltaFile
+34-218llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
+64-0llvm/lib/MC/MCToolOptions.td
+2-51llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
+10-0utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+6-0llvm/utils/gn/secondary/llvm/lib/MC/BUILD.gn
+4-0llvm/lib/MC/CMakeLists.txt
+120-2696 files not shown
+127-27512 files

LLVM/project 7b6cf9d — clang/tools/clang-linker-wrapper ClangLinkerWrapper.cpp, llvm/include/llvm/MC MCTargetOptionsCommandFlags.h

[CodeGen][MC] Pass a LibraryOptionsContext to the MC option readers. NFC (#239919)

Rename `InitMCTargetOptionsFromFlags` to `getMCTargetOptions` and
`InitTargetOptionsFromCodeGenFlags` to `getTargetOptions`. Most of these
options take values, so "Flags" is a misnomer.

These functions and `getABIName` now take the `LibraryOptionsContext` to
read from. A per-context option declared in TableGen has no global value.

LLM-aided
DeltaFile
+13-9clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
+10-9llvm/tools/lto/lto.cpp
+9-3llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
+6-5llvm/lib/CodeGen/CommandFlags.cpp
+4-4llvm/tools/llvm-lto/llvm-lto.cpp
+6-2llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
+48-3219 files not shown
+77-5625 files

LLVM/project faf098e — libc/config/uefi config.json

[libc][uefi] Tune the libc configuration for UEFI (#239334)
DeltaFile
+48-0libc/config/uefi/config.json
+48-01 files

LLVM/project 56f352a — clang/lib/CIR/CodeGen CIRGenBuiltinX86.cpp, clang/test/CodeGen/X86 adx-builtins.c adc-builtins.c

[CIR][X86] Add support for addcarryx and subborrow builtins (#239685)

Lower __builtin_ia32_addcarryx_u32/u64 and
__builtin_ia32_subborrow_u32/u64
to the llvm.x86.addcarry.* and llvm.x86.subborrow.* intrinsics, matching
classic CodeGen.

These builtins support `_addcarryx_*` (adxintrin.h) as well as
`_addcarry_*` and
`_subborrow_*` (adcintrin.h) intrinsics, which previously were NYI.

The tests add ClangIR RUN lines to the existing
clang/test/CodeGen/X86/{adx,adc}-builtins.c: `-fclangir -emit-llvm` runs
checked
against the existing CHECK lines, and `-fclangir -emit-cir` runs with
new CIR
checks.

Assisted-by: Claude Code (Claude Opus 5.5)
DeltaFile
+36-5clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
+32-0clang/test/CodeGen/X86/adc-builtins.c
+18-0clang/test/CodeGen/X86/adx-builtins.c
+86-53 files

LLVM/project fff83e8 — mlir/include/mlir/Dialect/Vector/IR VectorOps.td

[mlir][vector] Update doc for vector.broadcast (nfc) (#239707)

Follow-up for #228727:

* Simplify the formula for computing the source index (no need for a
  special case when source_dim == 1)
* Add more examples.

The examples were created by @yueshengys in #227574, thank you!
DeltaFile
+32-12mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
+32-121 files

LLVM/project 1807eba — lld/include/lld/Common TargetOptionsCommandFlags.h, llvm/include/llvm/CodeGen CommandFlags.h

[Support] Pass tool options to parseCommandLineOptions

`RegisterMCToolOptions` adds `MCToolOptions` to the process-wide
registry. Once lld registers them, every later parse in the process
accepts `-crel`, including clang's `-mllvm`, which then ignores it.

Add a `parseCommandLineOptions` overload that takes the libraries a tool
opts in to. Replace `RegisterMCToolOptions` with `mc::getToolOptions`
and `codegen::getToolOptions`, which tools pass where they parse,
including lld's `-mllvm`, gold's `-plugin-opt`, and libLTO's debug
options. `RegisterCodeGenFlags` no longer registers the MC options.

`LibraryOptionsContext` records the library that parsed each argument,
so `assign` replays without looking up the registry, which does not
contain tool options.

LLM-aided
DeltaFile
+64-26llvm/lib/Support/CommandLine.cpp
+25-0llvm/unittests/Option/LibraryOptionsTest.cpp
+12-0llvm/include/llvm/Support/CommandLine.h
+5-5llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
+9-0llvm/include/llvm/CodeGen/CommandFlags.h
+6-0lld/include/lld/Common/TargetOptionsCommandFlags.h
+121-3126 files not shown
+182-6232 files

LLVM/project de0ca8e — llvm/lib/Target/X86 X86Options.td X86FixupLEAs.cpp

[X86] X86FixupLEAs.cpp - move x86-fixup-leas-search-distance-threshold cl::opt to TableGen (#239992)
DeltaFile
+2-7llvm/lib/Target/X86/X86FixupLEAs.cpp
+4-0llvm/lib/Target/X86/X86Options.td
+6-72 files