Remove .. from clang resource path when specified with CLANG_RESOURCE_DIR (#216996)
As discussed here:
https://discourse.llvm.org/t/removing-clang-version-number-from-resource-dir-in-a-distribution/90234
If a distributor wishes to have stable include paths across LLVM
versions, then they can build with `CLANG_RESOURCE_DIR=../lib/clang`.
This results in a slightly untidy include path (E.g.`C:\Program
Files\LLVM\bin\..\lib\clang\include`). This removes the ".." to make it
`C:\Program Files\LLVM\lib\clang\include` in this configuration.
Also added test. This uses "SIE" vendor. Since
https://github.com/llvm/llvm-zorg/commit/eac6791821f5104eb4c2b32f39ef5d20cda535a9,
PS4 and PS5 buildbots use this configuration and define the vendor so
the lack of version number and ".." should be tested on at least these
buildbots.
[libc] Implement fstatat in sys/stat (#224334)
### Summary
Implement the standard POSIX.1-2008 function `fstatat` in
`<sys/stat.h>`.
Fixes #224327
### Changes
- Added `fstatat` function specification to
`libc/include/sys/stat.yaml`.
- Added internal header `libc/src/sys/stat/fstatat.h`.
- Implemented `fstatat` in `libc/src/sys/stat/linux/fstatat.cpp` using
the existing `internal::stat_via_statx`.
- Registered `fstatat` entrypoint in `libc/src/sys/stat/CMakeLists.txt`
and `libc/src/sys/stat/linux/CMakeLists.txt`.
- Added entrypoint across Linux targets (`x86_64`, `aarch64`, `riscv`).
- Added hermetic unit tests in
`libc/test/src/sys/stat/fstatat_test.cpp`.
[12 lines not shown]
[libc] Implement mkfifoat in sys/stat (#224628)
### Summary
Implement the standard POSIX.1-2008 function `mkfifoat` in
`<sys/stat.h>`.
Fixes #224587
### Changes
- Added `mkfifoat` function specification to
`libc/include/sys/stat.yaml`.
- Added internal header `libc/src/sys/stat/mkfifoat.h`.
- Implemented `mkfifoat` in `libc/src/sys/stat/linux/mkfifoat.cpp` using
the existing `linux_syscalls::mknodat`.
- Registered `mkfifoat` entrypoint in `libc/src/sys/stat/CMakeLists.txt`
and `libc/src/sys/stat/linux/CMakeLists.txt`.
- Added entrypoint across Linux targets (`x86_64`, `aarch64`, `riscv`).
- Added hermetic unit tests in
`libc/test/src/sys/stat/mkfifoat_test.cpp` using `cpp::scope_exit`
[9 lines not shown]
[SCEVExpander] Mark selects with unknown profile. (#224362)
SCEVExpander creates selects when expanding min/max expressions for
pointers and predicates. In neither case there is any information on how
likely either arm of the select is. Annotate with unknown profile.
This is part of addressing the remaining profcheck failures in
LoopVectorize: https://github.com/llvm/llvm-project/issues/161235.
PR: https://github.com/llvm/llvm-project/pull/224362
vmm(4): Skip VMCALL/VMMCALL at CPL 0; otherwise abort by signal
On Intel we have to use #GP(0), on AMD #UD. Adjust regression test.
With Miguel Landaeta (miguel at miguel cc), thanks!
go ahead mlarkin
[llvm-pdbutil] Avoid reading EC names from non-EC modules (#223253)
The module dumper resolves the PDB and source file name indices for
every module, even when the module does not contain Edit and Continue
information. If the DBI stream has no EC names table, `dump --modules`
fails with:
Unexpected error processing modules: Stream Error: The stream is too
short
to perform the requested operation.
Only resolve and print the EC names when the module's EC flag is set.
snappy: updated to 1.3.1
Snappy v1.3.1, Sep 18th 2026:
* Fixed a uint32_t overflow when decompressor accepted an input with incorrect format
* Significant RISC-V efficiency improvements
* New API on providing your own memory context
* Supporting compression levels (1-2) in C API
* Various other small fixes
py-tifffile: updated to 2026.9.20
2026.9.20
- Fix TiffPage.delete corrupting NDPI files.
- Fix unwrapping offsets in LSM files > 4GB with T, P, and M dimensions.
- Support Mikroscan and Motic formats (structurally identical to SVS).
- Support MedScan Trestle series and metadata.
[X86] Correct folded insert costs for partial vector loads (#220174)
The SLP vectorizer can form non-power-of-two trees, including width-3
trees, but relies on target costs to determine profitability: #194189
X86 getMemoryOpCost overestimated non-power-of-two vector loads by
counting a folded PINSR*(mem) chunk as both a memory operation and a
separate lane insertion.
Recognize non-0th folded load-insert chunks and charge each once.
Leading sub-dword loads, stores, and 8-byte chunks remain unchanged.
x11/blueprint-compiler: import blueprint-compiler-0.22.2
GtkBuilder XML format is quite verbose, and many app developers don't like
using WYSIWYG editors for creating UIs. Blueprint files are intended to be a
concise, easy-to-read format that makes it easier to create and edit GTK UIs.
Internally, it compiles to GtkBuilder XML as part of an app's build system. It
adds no new features, just makes the features that exist more accessible.
Another goal is to have excellent developer tooling--including a language
server--so that less knowledge of the format is required. Hopefully this will
increase adoption of cool advanced features like GtkExpression.
ARM: Don't duplicate the LR def when expanding call pseudos (#225062)
Several pseudo expansions in ARMExpandPseudoInsts built a real call and then
copied the pseudo's operands onto the new instruction. Each of these call opcodes
declares LR as an implicit-def, but the original instruction already had that. The original
def may have been marked as dead, so the result would be a redundant operand with an
inconsistent dead flag. This avoids a failure in a future verifier check.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>