LLVM/project 1fbc28allvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV/rvv vector-interleave-fixed.ll

fixup! Simplify the combine conditions
DeltaFile
+1,792-4,579llvm/test/CodeGen/RISCV/rvv/vector-interleave-fixed.ll
+19-53llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+1,811-4,6322 files

LLVM/project e8bdb0eutils/bazel/llvm-project-overlay/libc/test libc_test_rules.bzl, utils/bazel/llvm-project-overlay/libc/test/UnitTest BUILD.bazel

[bazel][test][libc] Use clock LLVM-libc entrypoint in overlay tests
DeltaFile
+2-6utils/bazel/llvm-project-overlay/libc/test/libc_test_rules.bzl
+1-1utils/bazel/llvm-project-overlay/libc/test/UnitTest/BUILD.bazel
+3-72 files

LLVM/project f5b5ff6utils/bazel/llvm-project-overlay/libc/test libc_test_rules.bzl, utils/bazel/llvm-project-overlay/libc/test/include BUILD.bazel

[test][bazel][libc] Fix dependencies for some tests under full-build
DeltaFile
+82-59utils/bazel/llvm-project-overlay/libc/test/include/BUILD.bazel
+37-4utils/bazel/llvm-project-overlay/libc/test/src/stdio/BUILD.bazel
+16-4utils/bazel/llvm-project-overlay/libc/test/src/string/BUILD.bazel
+6-2utils/bazel/llvm-project-overlay/libc/utils/MPCWrapper/BUILD.bazel
+3-3utils/bazel/llvm-project-overlay/libc/test/libc_test_rules.bzl
+4-1utils/bazel/llvm-project-overlay/libc/utils/MPFRWrapper/BUILD.bazel
+148-736 files

LLVM/project 2243fc1utils/bazel/llvm-project-overlay/libc/startup/linux startup_rules.bzl, utils/bazel/llvm-project-overlay/libc/test libc_test_rules.bzl

[test][bazel][libc] Allow LLVM-libc tests to be run in full-build mode

This PR makes the required changes to run LLVM-libc full build tests in Bazel. After this PR, most tests pass:

```
bazel test @llvm-project//libc/test/... --config=ci --@llvm-project//libc:build_mode=full --keep_going
Executed 680 out of 853 tests: 681 tests pass and 172 fail to build.
```

Follow on PRs will fix specific tests that are failing (lots of missing deps etc).

This PR mostly involves propagating the correct dependencies and compiler/linker options from [`add_libc_hermetic`](https://github.com/llvm/llvm-project/blob/4098f568c46e06b6df470111868b4c165dd80f4d/libc/cmake/modules/LLVMLibCTestRules.cmake#L750). Slightly more involved changes:
- `BazelFilePath.cpp` also had to be fixed so that it doesn't depend on the non-namespaced `getenv` function. This PR models after https://github.com/llvm/llvm-project/commit/ee407f7e7069cccfdc1815de07e17cebf83d19f9 in order to conditionally use LLVM-libc's getenv under full-build mode.
- All tests have a dependency against `crt1.o` when run under full-build. This PR updates `merge_relocatable_object` so it also exposes a `CcInfo` with the merged object file and its transitive deps. In order to do so, this PR also makes the logic a little more careful about PIC vs non-PIC deps.
DeltaFile
+59-17utils/bazel/llvm-project-overlay/libc/test/libc_test_rules.bzl
+48-3utils/bazel/llvm-project-overlay/libc/test/UnitTest/BUILD.bazel
+19-0utils/bazel/llvm-project-overlay/libc/startup/linux/startup_rules.bzl
+126-203 files

LLVM/project a9ea77flibc/test/UnitTest BazelFilePath.cpp

[bazel][libc] Do not depend on system `getenv` in BazelFilePath.cpp

This PR models after https://github.com/llvm/llvm-project/commit/ee407f7e7069cccfdc1815de07e17cebf83d19f9 in order to conditionally use LLVM-libc's `getenv` when compiling in full-build mode.
DeltaFile
+13-3libc/test/UnitTest/BazelFilePath.cpp
+13-31 files

LLVM/project 059358autils/bazel/llvm-project-overlay/libc BUILD.bazel

[bazel][libc] Allow libc:types_char8_t to compile in full-build mode (#223872)
DeltaFile
+4-4utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+4-41 files

LLVM/project 756c2fdutils/bazel/llvm-project-overlay/libc/startup/linux BUILD.bazel startup_rules.bzl

[bazel][libc] Be explicit about pic/nopic in startup_rules.bzl (#223851)

Currently, `_get_object_files` gets object files from
`OuputGroupInfo.compilation_outputs`, which isn't very well documented
any will often just choose the PIC variant: see
[`cc_helper.bzl`](https://github.com/bazelbuild/rules_cc/blob/661b75de668c3b673f5550e0340e134ccf923956/cc/common/cc_helper.bzl#L192)
and
[`needs_pic_for_dynamic_libraries`](https://github.com/bazelbuild/rules_cc/blob/b72bca6252e808ac3685a2a627197a151c6bfed9/cc/private/rules_impl/cc_toolchain_info.bzl#L23).

This PR updates `merge_relocatable_object` to propagate both pic/nopic
variants of the merged object, and updates `libc_startup_object` to be
explicit about its choice of pic/nopic.

The exact choice of how to handle pic/nopic may need to be updated in
the future as we add `rcrt1.o`, but the setup in this PR is better than
just using `compilation_outputs` verbatim.
DeltaFile
+103-52utils/bazel/llvm-project-overlay/libc/startup/linux/startup_rules.bzl
+20-3utils/bazel/llvm-project-overlay/libc/startup/linux/BUILD.bazel
+123-552 files

LLVM/project b49c7d0llvm/docs/DirectX SemanticSignatures.md, llvm/include/llvm/Frontend/HLSL SemanticSignaturePacking.h

[HLSLSemanticSignatures] Implement the indexed packing of elements (#218061)

Implements the indexed packing algorithm.

Resolves: #205877

Assisted by: Claude Opus 5 and GPT-5.6 Sol
DeltaFile
+138-19llvm/unittests/Frontend/HLSLSemanticSignaturePackingTest.cpp
+53-0llvm/lib/Frontend/HLSL/SemanticSignaturePacking.cpp
+27-0llvm/docs/DirectX/SemanticSignatures.md
+19-0llvm/include/llvm/Frontend/HLSL/SemanticSignaturePacking.h
+237-194 files

FreeBSD/ports 3f1a145math/octave-forge-statistics Makefile distinfo

math/octave-forge-statistics: Update to 1.9.3.
DeltaFile
+3-3math/octave-forge-statistics/distinfo
+1-1math/octave-forge-statistics/Makefile
+4-42 files

LLVM/project 812c14dclang/lib/Driver/ToolChains WebAssembly.cpp, clang/test/CodeGen exception-model-flag.c

WebAssembly: Drive Emscripten EH from the exception model, drop the cl::opt

Remove the deprecated -enable-emscripten-cxx-exceptions flag. This should now
be driven by the generic exception-model mechanisms. There was also some special
case handling of the -mllvm flag in the clang driver which also needed removal.

Also reverts the test change in b6912258891caefffbf15edb1bceff3724b75af5 now that
the backend doesn't need to be built to test the flag behavior.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+1-25clang/test/Driver/wasm-toolchain.c
+0-16clang/test/CodeGen/WebAssembly/exception-model-flag.c
+2-14llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+3-13clang/lib/Driver/ToolChains/WebAssembly.cpp
+8-0clang/test/CodeGen/exception-model-flag.c
+5-2llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
+19-703 files not shown
+21-789 files

LLVM/project f157f1allvm/include/llvm/Analysis RuntimeLibcallInfo.h, llvm/include/llvm/IR RuntimeLibcalls.h

RuntimeLibcalls: Read exception model from the module flag

Source the exception model in the RuntimeLibcallsInfo(Module) constructor
from the "exception-model" module flag via Module::getExceptionModel(),
instead of forwarding it from TargetOptions. An absent flag resolves to
Default and then to the triple default; an explicit "none" disables
exceptions.

Since the model now comes from the module, drop the ExceptionModel that
RuntimeLibraryAnalysis carried and forwarded, and its argument at every
construction site.

To keep the -exception-model= command-line option working for llc and opt
synthesize the "exception-model" module flag from the option as is done for
"float-abi".

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+20-0llvm/lib/CodeGen/CommandFlags.cpp
+7-7llvm/include/llvm/IR/RuntimeLibcalls.h
+3-7llvm/include/llvm/Analysis/RuntimeLibcallInfo.h
+3-5llvm/lib/IR/RuntimeLibcalls.cpp
+4-4llvm/lib/Analysis/RuntimeLibcallInfo.cpp
+2-2llvm/tools/opt/optdriver.cpp
+39-257 files not shown
+47-3813 files

LLVM/project 4adb36ecompiler-rt/lib/sanitizer_common sanitizer_offload.cpp, compiler-rt/lib/ubsan/offload ubsan_offload_hsa.cpp

Rebase, address comments

Created using spr 1.3.7
DeltaFile
+815-0llvm/test/Transforms/PhaseOrdering/ARM/arm_mat_mult_q31.ll
+616-0llvm/lib/Support/APFloatPowerOfFiveTable.inc
+405-0llvm/test/Transforms/LoopVectorize/select-branch-weights.ll
+214-182flang/test/Lower/split-sum-expression-tree-lowering.f90
+0-368compiler-rt/lib/ubsan/offload/ubsan_offload_hsa.cpp
+348-0compiler-rt/lib/sanitizer_common/sanitizer_offload.cpp
+2,398-550454 files not shown
+14,252-4,301460 files

LLVM/project 0447d79llvm/lib/Target/RISCV RISCVPromoteConstant.cpp

[RISCV] Don't construct a subtarget for function declarations in RISCVPromoteConstant. (#224115)

Intrinsic declarations in particular don't have a target-features
attribute so the subtarget constructor may print warning like:

hard-float 'd' ABI can't be used for a target that doesn't support the D
instruction set extension

This can occur in LTO builds in -mcpu is not passed to the clang driver
on the LTO step. The target-machine won't have any CPU features.
DeltaFile
+2-0llvm/lib/Target/RISCV/RISCVPromoteConstant.cpp
+2-01 files

LLVM/project 2ee0804clang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/Lowering/DirectToLLVM LowerToLLVM.cpp

[CIR] Add cir.ptr_mask

`cir.ptr_mask` ANDs a pointer with an integer mask and gives back a
pointer, lowering to llvm.intr.ptrmask.  Paired with `cir.ptr_stride` it
rounds a pointer up to an alignment the way classic's
emitRoundPointerUpToAlignment does, without the round trip through an
integer that would lose provenance.

llvm.ptrmask needs the mask at exactly the target's pointer index width,
so the lowering extends or truncates it first.  GEP takes an index of
any width, so `cir.ptr_stride` never needed this.

Assisted-by: Cursor / claude-opus-5
DeltaFile
+105-0clang/test/CIR/Lowering/ptr-mask.cir
+36-0clang/include/clang/CIR/Dialect/IR/CIROps.td
+35-0clang/test/CIR/IR/ptr-mask.cir
+28-0clang/test/CIR/IR/invalid-ptr-mask.cir
+21-0clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+225-05 files

LLVM/project e1fb24allvm/include/llvm/CodeGen SlotIndexes.h, llvm/lib/CodeGen SlotIndexes.cpp RegAllocGreedy.cpp

[CodeGen] Size live ranges in real instructions

Slot indexes keep counting instructions that earlier passes erased,
because erasing one only clears the pointer in its index list entry.
The leftovers are not spread evenly, so they inflate some live ranges
more than others and reorder greedy's priority queue, spilling heavily
on register-starved functions.

Add SlotIndexes::getRealInstrSpan(), counting only entries that still
have an instruction, and use it for the size getPriority ranks by.
Off by default behind -greedy-size-in-real-instrs.
DeltaFile
+119-0llvm/unittests/CodeGen/SlotIndexesTest.cpp
+21-1llvm/lib/CodeGen/RegAllocGreedy.cpp
+15-0llvm/lib/CodeGen/SlotIndexes.cpp
+6-0llvm/include/llvm/CodeGen/SlotIndexes.h
+1-0llvm/unittests/CodeGen/CMakeLists.txt
+162-15 files

FreeBSD/src f308d6dshare/man/man4 em.4, sys/dev/e1000 if_igbv.c

igbv: Recover disabled Hyper-V transmit queues

The Windows PF can disable a VF transmit queue while continuing to
report carrier up.  Link polling alone then leaves the VF operationally
up even though it cannot transmit.  The reproduced VLAN failure shows
this state with PF driver 14.1.5.0 and an MDD indication in the host trace.

Check queue zero from the admin path only while the Hyper-V VF is
running with sanitized queues and a completed host handshake.  Report
operational link down and invalidate the statistics baseline when the
queue is disabled.  Request recovery through the normal iflib stop/init
path only when a fresh, accessible STATUS read reports carrier up.
Rate limit requests if the host continues to hold the queue disabled,
and leave recovery pending while carrier is down.

Document the recovery behavior and clarify why the Hyper-V reset retains
the VF-local software reset before its host reset/MAC exchange.

Sponsored by:   BBOX.io
DeltaFile
+35-0sys/dev/e1000/if_igbv.c
+7-1share/man/man4/em.4
+42-12 files

LLVM/project 325e759llvm/lib/Target/RISCV RISCVInstrInfo.td, llvm/lib/Target/RISCV/AsmParser RISCVAsmParser.cpp

[RISCV] Use template PredicateMethod for ImmAsmOperand when suffix is empty. NFC (#224098)

This allows us to remove forwarding wrappers from RISCVAsmParser.cpp.

Assisted-by: Claude
DeltaFile
+1-27llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+3-1llvm/lib/Target/RISCV/RISCVInstrInfo.td
+4-282 files

LLVM/project 205baf1llvm/test/Transforms/SLPVectorizer/X86 bool-mask.ll

[SLP][NFC]Add extra test for bit mask reductions, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/224135
DeltaFile
+206-2llvm/test/Transforms/SLPVectorizer/X86/bool-mask.ll
+206-21 files

LLVM/project e13d9cblldb/test/Shell/SymbolFile/NativePDB unknown-udt-decl.ll rust-unique-name.ll

lldb: Require x86_64 for x86_64-specific NativePDB tests

These tests contained x86_64 datalayout and triples, but only
required system-windows. On an aarch64 windows host, %build will
be an incompatible datalayout, so require exactly x86_64 windows
hosts. Alternatively the test could be changed to not have the
datalayout, but I'm not sure if that's correct here.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+1-1lldb/test/Shell/SymbolFile/NativePDB/unknown-udt-decl.ll
+1-1lldb/test/Shell/SymbolFile/NativePDB/rust-unique-name.ll
+2-22 files

OpenBSD/src ffIvYytusr.sbin/vmd mmio.c

   bring it back
VersionDeltaFile
1.6+0-0usr.sbin/vmd/mmio.c
+0-01 files

OpenBSD/src DReIOedusr.sbin/vmd x86_vm.h x86_mmio.h


   add missing files. noticed by dv
VersionDeltaFile
1.1+163-0usr.sbin/vmd/x86_mmio.h
1.1+24-0usr.sbin/vmd/x86_vm.h
+187-02 files

LLVM/project 0038be8mlir/lib/Conversion/ConvertToEmitC ConvertToEmitCPass.cpp

[MLIR] Wrap block with debug-only loop in LLVM_DEBUG (NFC). (#224124)

This fixes a build-failure with Werror in release builds introduced in
https://github.com/llvm/llvm-project/pull/223974. `iface` is unused in
release builds. Wrap the whole block into `LLVM_DEBUG`

PR: https://github.com/llvm/llvm-project/pull/224124
DeltaFile
+8-6mlir/lib/Conversion/ConvertToEmitC/ConvertToEmitCPass.cpp
+8-61 files

LLVM/project 16fa456utils/bazel/llvm-project-overlay/libc/startup/linux BUILD.bazel

[bazel] Port 2c930a5 (#224130)
DeltaFile
+1-0utils/bazel/llvm-project-overlay/libc/startup/linux/BUILD.bazel
+1-01 files

LLVM/project c1ad400clang/lib/CIR/Dialect/Transforms CallConvLoweringPass.cpp, clang/test/CIR/CodeGen call-conv-lowering-x86_64-non-byval.cpp call-conv-lowering-x86_64-union-no-span.cpp

[CIR] Accept a union whose members do not cover its declared size (#223594)

`union { unsigned Words[3]; void *Ptr; }` is 16 bytes because the
pointer's alignment rounds it up, and no member covers that size. The
pass refused to classify unions like that at all, so anything holding
one failed to compile. Tail padding doesn't change how an eightbyte
classifies, so this drops the precondition and classifies the union from
its own size.
DeltaFile
+46-132clang/test/CIR/Transforms/abi-lowering/x86_64-aggregate-nyi.cir
+162-0clang/test/CIR/CodeGen/call-conv-lowering-x86_64-union-tail-padding.c
+152-0clang/test/CIR/CodeGen/call-conv-lowering-x86_64-union-no-span.cpp
+65-59clang/lib/CIR/Dialect/Transforms/CallConvLoweringPass.cpp
+41-0clang/test/CIR/Transforms/abi-lowering/x86_64-union.cir
+24-0clang/test/CIR/CodeGen/call-conv-lowering-x86_64-non-byval.cpp
+490-1913 files not shown
+507-2059 files

LLVM/project 2558e6d.ci compute_projects_test.py compute_projects.py

[CI] Make updates to .ci actually test everything (#224125)

We ran into an issue where test failures in cross-project-tests were not
surfaced when bumping the image to Ubuntu 26.04 due to the script not
correctly calculating dependencies for changes to .ci and the premerge
workflow. This patch fixes that by ensuring the projects executed for
.ci/workflow changes are derived from everything else which means we do
not need to manually maintain the list and risk leaving it out of date.
DeltaFile
+53-55.ci/compute_projects.py
+7-7.ci/compute_projects_test.py
+60-622 files

LLVM/project 952d860llvm/lib/CAS MappedFileRegionArena.cpp

[CAS] Read a CAS file's reserved size from st_blocks, not st_blksize (#224104)

FileSizeInfo reports how much disk a file already has, which
MappedFileRegionArena records so it knows how far ahead it has reserved.
However the file size was accidentally computed from st_blksize which is
the preferred I/O size, not the number of allocated blocks for the file.

The value is read when a database is created or reopened, so a reopened
database believed almost none of its disk was reserved and reserved it
again from near zero, a megabyte per allocation. Fix the problem by
using the correct size.
DeltaFile
+1-1llvm/lib/CAS/MappedFileRegionArena.cpp
+1-11 files

LLVM/project 3cda174clang/test/CodeGen thread-model.c, llvm/lib/Target/WebAssembly WebAssemblyCoalesceFeaturesAndStripAtomics.cpp

[WebAssembly] Use Single as the default Triple thread model (#223917)

Clang defaults WebAssembly to a single-threaded model unless atomics and
bulk-memory are enabled, whereas Triple::getDefaultThreadModel()
previously defaulted to POSIX for all targets. Because Clang only emits
the "thread-model" module flag when the active thread model differs from
the triple's default, single-threaded Wasm objects recorded
"thread-model"="single" while multithreaded objects omitted the flag.
When linking mixed objects in LTO, the merged module inherited "single",
causing passes like LICM and AtomicExpand to treat multithreaded
programs as single-threaded.

Change Triple::getDefaultThreadModel() to return ThreadModel::Single for
WebAssembly so that multithreaded objects explicitly record
"thread-model"= "posix" and single-threaded objects omit the flag.
Additionally, update WebAssemblyCoalesceFeaturesAndStripAtomics to set
the module thread model to POSIX when threading features are enabled and
no explicit module flag is present, ensuring backend passes like
AtomicExpandPass preserve atomics in raw IR modules compiled via llc.

Assisted-By: Gemini
DeltaFile
+44-0llvm/test/CodeGen/WebAssembly/coalesce-features-thread-model.ll
+9-1llvm/lib/Target/WebAssembly/WebAssemblyCoalesceFeaturesAndStripAtomics.cpp
+8-0clang/test/CodeGen/thread-model.c
+5-1llvm/lib/TargetParser/Triple.cpp
+66-24 files

LLVM/project 29b702ecompiler-rt/lib/scudo/standalone secondary.h, compiler-rt/lib/scudo/standalone/tests secondary_test.cpp

[scudo] Do not trim the secondary cache if releasing is disabled. (#223881)

When the ReleaseInterval is set to less than zero, then releasing has
been disabled. In this case, honor this and do not trim the cache using
the MaxCacheResidentyBytes value.

Add a test to verify this behavior.
DeltaFile
+36-4compiler-rt/lib/scudo/standalone/tests/secondary_test.cpp
+7-1compiler-rt/lib/scudo/standalone/secondary.h
+43-52 files

LLVM/project 55488f9llvm/utils/gn/secondary/compiler-rt/test BUILD.gn

[gn] port 988c5a95ffa7d118 (HIP GPU OFFLOAD compiler-rt lit stuff) (#224129)
DeltaFile
+5-0llvm/utils/gn/secondary/compiler-rt/test/BUILD.gn
+5-01 files

LLVM/project 7b6e373llvm/utils/gn/secondary/llvm/lib/Transforms/Utils BUILD.gn

[gn build] Port d8a3beaf4553 (#224128)
DeltaFile
+0-1llvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn
+0-11 files