[all-commits] [llvm/llvm-project] 997f98: [clang][deps] Update header guard (#170769)
Peter Collingbourne via All-commits
all-commits at lists.llvm.org
Fri Dec 12 17:45:59 PST 2025
Branch: refs/heads/users/pcc/spr/main.implement-a-simple-e2e-test-for-pfp
Home: https://github.com/llvm/llvm-project
Commit: 997f981d713fff4258198c75b2665edb420c3ba0
https://github.com/llvm/llvm-project/commit/997f981d713fff4258198c75b2665edb420c3ba0
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M clang/include/clang/DependencyScanning/DependencyScannerImpl.h
Log Message:
-----------
[clang][deps] Update header guard (#170769)
Commit: 772ff0436d8a00c71e8ab026800fe77eeaba6c49
https://github.com/llvm/llvm-project/commit/772ff0436d8a00c71e8ab026800fe77eeaba6c49
Author: Maksim Levental <maksim.levental at gmail.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M mlir/lib/CAPI/ExecutionEngine/ExecutionEngine.cpp
M mlir/test/python/execution_engine.py
Log Message:
-----------
[mlir][ExecutionEngine] propagate errors in mlirExecutionEngineCreate (#170592)
Commit: e067be3389726a5185dd0f1c37d5ba843101f4e8
https://github.com/llvm/llvm-project/commit/e067be3389726a5185dd0f1c37d5ba843101f4e8
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M clang/include/clang/CIR/MissingFeatures.h
M clang/lib/CIR/CodeGen/CIRGenClass.cpp
M clang/lib/CIR/CodeGen/CIRGenCleanup.cpp
M clang/lib/CIR/CodeGen/CIRGenCleanup.h
M clang/lib/CIR/CodeGen/CIRGenDecl.cpp
M clang/lib/CIR/CodeGen/CIRGenDeclOpenACC.cpp
M clang/lib/CIR/CodeGen/CIRGenExprCXX.cpp
M clang/lib/CIR/CodeGen/EHScopeStack.h
Log Message:
-----------
[CIR][NFC] Add flag support for eh cleanups (#170753)
This adds the `flags` variable to the EHScopeStack::Cleanup class and
routes it through the existing handlers. None of the currently
implemented handlers use these flags, but the flag will be needed for
array and NRVO variable cleanup handling.
Commit: bdea6a2dc2f549bb0a2056a5964d9b2853aca1a0
https://github.com/llvm/llvm-project/commit/bdea6a2dc2f549bb0a2056a5964d9b2853aca1a0
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
A llvm/test/MachineVerifier/AMDGPU/hazard-gfx1250-flat-src-hi.mir
Log Message:
-----------
[AMDGPU] Add verifier for flat_scr_base_hi read hazard (#170550)
Commit: 421399d9d36538061a50040ed59c46464870827b
https://github.com/llvm/llvm-project/commit/421399d9d36538061a50040ed59c46464870827b
Author: Kees Cook <kees at kernel.org>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/test/CodeGen/cfi-salt.c
M clang/test/CodeGen/kcfi.c
Log Message:
-----------
[CodeGen][KCFI] Fix asm comment style (#170739)
We can't use "#" in the middle of the asm output, so switch to a /* */
pair instead.
Commit: 9349cb1523ddb88ca9d82bad497bb98082eb6c8d
https://github.com/llvm/llvm-project/commit/9349cb1523ddb88ca9d82bad497bb98082eb6c8d
Author: Paul Kirth <paulkirth at google.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M clang-tools-extra/clang-doc/BitcodeReader.cpp
M clang-tools-extra/clang-doc/BitcodeReader.h
M clang-tools-extra/clang-doc/BitcodeWriter.cpp
M clang-tools-extra/clang-doc/BitcodeWriter.h
M clang-tools-extra/clang-doc/Generators.cpp
M clang-tools-extra/clang-doc/HTMLMustacheGenerator.cpp
M clang-tools-extra/clang-doc/Mapper.cpp
M clang-tools-extra/clang-doc/Representation.cpp
M clang-tools-extra/clang-doc/Representation.h
M clang-tools-extra/clang-doc/Serialize.cpp
M clang-tools-extra/clang-doc/Serialize.h
M clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
M clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp
M clang-tools-extra/unittests/clang-doc/ClangDocTest.cpp
M clang-tools-extra/unittests/clang-doc/ClangDocTest.h
M clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp
M clang-tools-extra/unittests/clang-doc/HTMLMustacheGeneratorTest.cpp
M clang-tools-extra/unittests/clang-doc/JSONGeneratorTest.cpp
M clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp
M clang-tools-extra/unittests/clang-doc/MergeTest.cpp
M clang-tools-extra/unittests/clang-doc/SerializeTest.cpp
M clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp
Log Message:
-----------
[clang-doc] Use DiagnosticsEngine to handle diagnostic output (#170219)
[clang-doc] Use DiagnosticsEngine to handle diagnostic output
Right now we use a combination of outs() and errs() to handle tool
output. Instead, we can use existing diagnostic support in clang and
LLVM to ensure our tool has a consistent behavior with other tools.
Commit: a992999a001ce1a5e5fff016896a873cdad8c698
https://github.com/llvm/llvm-project/commit/a992999a001ce1a5e5fff016896a873cdad8c698
Author: Vy Nguyen <vyng at google.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M lld/MachO/ConcatOutputSection.cpp
M lld/MachO/Config.h
M lld/MachO/Driver.cpp
M lld/MachO/Options.td
A lld/test/MachO/set-slop-scale.s
Log Message:
-----------
[lld-macho]Define a flag for adjusting slop scale (#164295)
Co-authored-by: Ellis Hoag <ellis.sparky.hoag at gmail.com>
Commit: c8fc766aaae3210f0b19704cbdfad23ea5bf2826
https://github.com/llvm/llvm-project/commit/c8fc766aaae3210f0b19704cbdfad23ea5bf2826
Author: Paul Kirth <paulkirth at google.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M clang-tools-extra/clang-doc/Representation.cpp
Log Message:
-----------
[clang-doc] Use static functions over the anonymous namespace (#170221)
Commit: 02ca50e56063e3730731c75e40e1b6048a6de9f1
https://github.com/llvm/llvm-project/commit/02ca50e56063e3730731c75e40e1b6048a6de9f1
Author: Jin Huang <jinhuang1102 at gmail.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/ExpandMemCmp.cpp
M llvm/test/Transforms/ExpandMemCmp/AArch64/memcmp.ll
M llvm/test/Transforms/ExpandMemCmp/X86/memcmp-x32.ll
M llvm/test/Transforms/ExpandMemCmp/X86/memcmp.ll
M llvm/utils/profcheck-xfail.txt
Log Message:
-----------
[profcheck] Fix missing profile metadata in ExpandMemCmp (#169979)
This patch fixes a profile metadata missing in the `ExpandMemCmp` pass
when it expanding `memcmp` calls. This would cause branches between
different blocks to lose their profile data, potentially leading to
suboptimal code generation.
The patch updates the `ExpandMemCmp` pass to set branch weights to a
default `unknown`(50/50 weights) value when a profile is available. This
prevents the expansion from making a previously profiled branch
unprofiled.
The patch also includes updates to the tests to reflect the new branch
weights.
Co-authored-by: Jin Huang <jingold at google.com>
Commit: 834b8b7221b3be7d057a0dd1413158948bba41cc
https://github.com/llvm/llvm-project/commit/834b8b7221b3be7d057a0dd1413158948bba41cc
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/OpenACC/OpenACC.h
M mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
M mlir/lib/Dialect/OpenACC/Transforms/ACCImplicitDeclare.cpp
M mlir/test/Dialect/OpenACC/ops.mlir
Log Message:
-----------
[acc] Add acc.specialized_routine attribute (#170766)
Introduce a new attribute `acc.specialized_routine` to mark functions
that have been specialized from a host function marked with
`acc.routine_info`.
The new attribute captures:
- A SymbolRefAttr referencing the original `acc.routine` operation
- The parallelism level via the new `ParLevel` enum
- The original function name (since specialized functions may be
renamed)
Example - before specialization:
```
acc.routine @routine_gang func(@foo) gang
acc.routine @routine_vector func(@foo) vector
func.func @foo() attributes {
acc.routine_info = #acc.routine_info<[@routine_gang, @routine_vector]>
} { ... }
```
After specialization, there are three functions:
the original function and two specialized versions (one per parallelism
level):
```
acc.routine @routine_gang func(@foo) gang
acc.routine @routine_vector func(@foo) vector
// Original function (unchanged)
func.func @foo() attributes {
acc.routine_info = #acc.routine_info<[@routine_gang, @routine_vector]>
} { ... }
// Specialized for gang parallelism
func.func @foo_gang() attributes {
acc.specialized_routine = #acc.specialized_routine<@routine_gang,
<gang_dim1>, "foo">
} { ... }
// Specialized for vector parallelism
func.func @foo_vector() attributes {
acc.specialized_routine = #acc.specialized_routine<@routine_vector,
<vector>, "foo">
} { ... }
```
Commit: 5defa851bd739d3796816bb412f5855d477bb9e7
https://github.com/llvm/llvm-project/commit/5defa851bd739d3796816bb412f5855d477bb9e7
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
M mlir/test/Dialect/OpenACC/invalid.mlir
Log Message:
-----------
[mlir][acc] Improve verifier messages for device_type duplicates (#170773)
This improves the acc dialect IR verifier messages when duplicate
device_types are found by also noting which device_type is the one
causing the error.
Commit: ed7e66a41d084ca442e6425a29dddfab1e647751
https://github.com/llvm/llvm-project/commit/ed7e66a41d084ca442e6425a29dddfab1e647751
Author: Sterling-Augustine <saugustine at google.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
M libc/config/config.json
M libc/config/linux/arm/config.json
M libc/config/linux/config.json
M libc/config/linux/riscv/config.json
M libc/docs/configure.rst
M libc/src/string/memory_utils/aarch64/inline_strlen.h
M libc/src/string/memory_utils/generic/inline_strlen.h
M libc/src/string/memory_utils/x86_64/inline_strlen.h
A libc/src/string/string_length.h
M libc/src/string/string_utils.h
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/libc_configure_options.bzl
Log Message:
-----------
Reland Refactor WIDE_READ to allow finer control over high-performance function selection (#165613) (#170738)
[Previous commit had an incorrect default case when
FIND_FIRST_CHARACTER_WIDE_READ_IMPL was not specified in config.json.
This PR is identical to that one with one line fixed.]
As we implement more high-performance string-related functions, we have
found a need for better control over their selection than the big-hammer
LIBC_CONF_STRING_LENGTH_WIDE_READ. For example, I have a memchr
implementation coming, and unless I implement it in every variant, a
simple binary value doesn't work.
This PR makes gives finer-grained control over high-performance
functions than the generic LIBC_CONF_UNSAFE_WIDE_READ option. For any
function they like, the user can now select one of four implementations
at build time:
1. element, which reads byte-by-byte (or wchar by wchar)
2. wide, which reads by unsigned long
3. generic, which uses standard clang vector implemenations, if
available
4. arch, which uses an architecture-specific implemenation
(Reading the code carefully, you may note that a user can actually
specify any namespace they want, so we aren't technically limited to
those 4.)
We may also want to switch from command-line #defines as it is currently
done, to something more like
llvm-project/llvm/include/llvm/Config/llvm-config.h.cmake, and
complexity out of the command-line. But that's a future problem.
Commit: 89ae817ee06428da9b6d4e4b79f12ba86d76f9e8
https://github.com/llvm/llvm-project/commit/89ae817ee06428da9b6d4e4b79f12ba86d76f9e8
Author: Sterling-Augustine <saugustine at google.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M libc/config/linux/arm/config.json
M libc/config/linux/riscv/config.json
Log Message:
-----------
Add commas for riscv and arm configs. (#170776)
Fix for breakage introduced by pr170738
Commit: 8f9ef4b52d31044edcff1ca46151052ccc26cee8
https://github.com/llvm/llvm-project/commit/8f9ef4b52d31044edcff1ca46151052ccc26cee8
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
Log Message:
-----------
[RISCV] Add OPERAND_AVL to RISCVInstrInfo::verifyInstruction. (#170770)
Commit: d3b9fd0f86d2936b7ed8446f6d54817772753f52
https://github.com/llvm/llvm-project/commit/d3b9fd0f86d2936b7ed8446f6d54817772753f52
Author: Demetrius Kanios <demetrius at kanios.net>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h
M llvm/lib/Target/WebAssembly/WebAssemblyInstrRef.td
A llvm/test/CodeGen/WebAssembly/addrspacecast-funcref.ll
Log Message:
-----------
[WebAssembly] Implement addrspacecast to funcref (#166820)
Adds lowering of `addrspacecast [0 -> 20]` to allow easy conversion of
function pointers to Wasm `funcref`
When given a constant function pointer, it lowers to a direct
`ref.func`. Otherwise it lowers to a `table.get` from
`__indirect_function_table` using the provided pointer as the index.
Commit: be79a0d90ff700b717e72d7c200f58c5918e4301
https://github.com/llvm/llvm-project/commit/be79a0d90ff700b717e72d7c200f58c5918e4301
Author: theRonShark <ron.lieberman at amd.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.h
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/test/Integration/OpenMP/map-types-and-sizes.f90
M flang/test/Lower/OpenMP/target.f90
M mlir/include/mlir/Dialect/OpenMP/OpenMPEnums.td
M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
M mlir/test/Target/LLVMIR/omptarget-llvm.mlir
M mlir/test/Target/LLVMIR/openmp-todo.mlir
R offload/test/offloading/fortran/target-is-device-ptr.f90
Log Message:
-----------
Revert "[Flang][OpenMP] Add lowering support for is_device_ptr clause" (#170778)
Reverts llvm/llvm-project#169331
Commit: da06d9eeafe29af089fb16ad2af5731205f7e56c
https://github.com/llvm/llvm-project/commit/da06d9eeafe29af089fb16ad2af5731205f7e56c
Author: Philip Reames <preames at rivosinc.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/CFIInstrInserter.cpp
Log Message:
-----------
[CodeGen] Use insert idiom in CFIInstrInserter instead of find [nfc] (#170760)
Commit: 8126baa6d710e064671e2321067eb89e914bcbe3
https://github.com/llvm/llvm-project/commit/8126baa6d710e064671e2321067eb89e914bcbe3
Author: Paul Kirth <paulkirth at google.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M clang-tools-extra/clang-doc/BitcodeReader.cpp
M clang-tools-extra/clang-doc/BitcodeReader.h
Log Message:
-----------
[clang-doc] Remove uses of consumeError (#168759)
In BitcodeReader, we were using consumeError(), which drops the error
and hides it from normal usage. To avoid that, we can just slightly
tweak the API to return an Expected<T>, and propagate the error
accordingly.
Commit: a2032f574d6f7e01d3035a66cb64a70c66ea25be
https://github.com/llvm/llvm-project/commit/a2032f574d6f7e01d3035a66cb64a70c66ea25be
Author: Paul Kirth <paulkirth at google.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M clang-tools-extra/clang-doc/Representation.cpp
M clang-tools-extra/clang-doc/Representation.h
Log Message:
-----------
[clang-doc] Reorder struct fields to have less padding (#170222)
Commit: b75e5649cf46fb5edb9e5659b1b1e2a199a6194f
https://github.com/llvm/llvm-project/commit/b75e5649cf46fb5edb9e5659b1b1e2a199a6194f
Author: Mark Zhuang <mark.zhuang at spacemit.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/docs/RISCVUsage.rst
Log Message:
-----------
[RISCV][docs] Update url for SpacemiT xsmtvdot (#170598)
Commit: 6d60d3d7e408820f8406bda63226f187e3fd626b
https://github.com/llvm/llvm-project/commit/6d60d3d7e408820f8406bda63226f187e3fd626b
Author: Derek Schuff <dschuff at chromium.org>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h
M llvm/lib/Target/WebAssembly/WebAssemblyInstrRef.td
R llvm/test/CodeGen/WebAssembly/addrspacecast-funcref.ll
Log Message:
-----------
Revert "[WebAssembly] Implement addrspacecast to funcref" (#170785)
Reverts llvm/llvm-project#166820
There was a failure in the ENABLE_EXPENSIVE_CHECKS configuration.
Commit: 5c289dac3031e4b4fbaf8604c4520965d8656424
https://github.com/llvm/llvm-project/commit/5c289dac3031e4b4fbaf8604c4520965d8656424
Author: Victor Mustya <victor.mustya at intel.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M clang/lib/Headers/opencl-c.h
Log Message:
-----------
[Clang][OpenCL] Add support for the cl_intel_subgroup_buffer_prefetch (#170532)
The commit adds support for the cl_intel_subgroup_buffer_prefetch OpenCL
extension. The extension introduces a new built-in functions that allow
prefetching data from a global memory to caches as a subgroup-level
operation.
The extension is defined here:
https://registry.khronos.org/OpenCL/extensions/intel/cl_intel_subgroup_buffer_prefetch.html
---------
Co-authored-by: Mészáros Gergely <maetveis at gmail.com>
Commit: f50a0792bea92387f23d314ee50d2be75437d02a
https://github.com/llvm/llvm-project/commit/f50a0792bea92387f23d314ee50d2be75437d02a
Author: Tom Stellard <tstellar at redhat.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M llvm/utils/release/build_llvm_release.bat
Log Message:
-----------
build_llvm_release.bat: Use absolute path when building the tarball (#169951)
The rest of the script uses an absolute path for the llvm source
directory too.
Commit: 2110db0f495932c9d4439c433eb85f6a07838220
https://github.com/llvm/llvm-project/commit/2110db0f495932c9d4439c433eb85f6a07838220
Author: jimingham <jingham at apple.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M lldb/include/lldb/Interpreter/CommandOptionArgumentTable.h
M lldb/include/lldb/Interpreter/OptionValueFileColonLine.h
M lldb/include/lldb/Target/Language.h
M lldb/include/lldb/lldb-enumerations.h
M lldb/packages/Python/lldbsuite/test/lldbutil.py
M lldb/source/Commands/CommandObjectBreakpoint.cpp
M lldb/source/Commands/Options.td
M lldb/source/Interpreter/Options.cpp
M lldb/source/Target/Language.cpp
M lldb/test/API/symbol_ondemand/breakpoint_source_regex/TestSourceTextRegexBreakpoint.py
M lldb/test/Shell/Breakpoint/condition-lang.test
M lldb/test/Shell/Commands/command-wrong-subcommand-error-msg.test
M lldb/unittests/Interpreter/TestOptions.cpp
Log Message:
-----------
Add a `breakpoint add` command to fix the option-madness that is `breakpoint set` (#156067)
Someone came up with a clever idea for a new breakpoint type, but we
couldn't figure out how to add it in an ergonomic way because
`breakpoint set` has used up all the short-option characters. And even
if they did find a way to add it, the help for `break set` is so
confusing - because of the way it is implemented - that very few people
would detect the addition.
The basic problem is that `break set` distinguishes amongst the
fundamental breakpoint types it offers by which "required option" you
provide. If you pass a `-a` you are setting an address breakpoint, if
`-n`, `-F`, etc. a symbol name based breakpoint. And so forth. That is
however pretty hard to discern from the option grouping printing from
`help break set`. `break set` also suffers from the problem that it uses
common options in different ways depending on which "required" option is
present, which makes documenting the various behaviors difficult. And as
we run out of single letters it makes extending it difficult to
impossible.
This PR fixes that situation by adding a new command for adding
breakpoints - `break add`. The new command specifies the "breakpoint
types" as subcommands of `break add` rather than distinguishing them by
their being one of the "required" options the way `break set` does. That
both makes it much clearer what the breakpoint types actually are, and
means that the option set can be dedicated to that particular breakpoint
type, and so the help for each is less cluttered, and can be documented
properly for each usage.
Instead of trying to parse the meaning of:
```
(lldb) help break set
Sets a breakpoint or set of breakpoints in the executable.
Syntax: breakpoint set <cmd-options>
Command Options Usage:
breakpoint set [-DHd] -l <linenum> [-G <boolean>] [-C <command>] [-c <expr>] [-Y <source-language>] [-i <count>] [-o <boolean>] [-q <queue-name>] [-t <thread-id>] [-x <thread-index>] [-T <thread-name>] [-R <address>] [-N <breakpoint-name>] [-u <column>] [-f <filename>] [-m <boolean>] [-s <shlib-name>] [-K <boolean>]
breakpoint set [-DHd] -a <address-expression> [-G <boolean>] [-C <command>] [-c <expr>] [-Y <source-language>] [-i <count>] [-o <boolean>] [-q <queue-name>] [-t <thread-id>] [-x <thread-index>] [-T <thread-name>] [-N <breakpoint-name>] [-s <shlib-name>]
breakpoint set [-DHd] -n <function-name> [-G <boolean>] [-C <command>] [-c <expr>] [-Y <source-language>] [-i <count>] [-o <boolean>] [-q <queue-name>] [-t <thread-id>] [-x <thread-index>] [-T <thread-name>] [-R <address>] [-N <breakpoint-name>] [-f <filename>] [-L <source-language>] [-s <shlib-name>] [-K <boolean>]
breakpoint set [-DHd] -F <fullname> [-G <boolean>] [-C <command>] [-c <expr>] [-Y <source-language>] [-i <count>] [-o <boolean>] [-q <queue-name>] [-t <thread-id>] [-x <thread-index>] [-T <thread-name>] [-R <address>] [-N <breakpoint-name>] [-f <filename>] [-L <source-language>] [-s <shlib-name>] [-K <boolean>]
breakpoint set [-DHd] -S <selector> [-G <boolean>] [-C <command>] [-c <expr>] [-Y <source-language>] [-i <count>] [-o <boolean>] [-q <queue-name>] [-t <thread-id>] [-x <thread-index>] [-T <thread-name>] [-R <address>] [-N <breakpoint-name>] [-f <filename>] [-L <source-language>] [-s <shlib-name>] [-K <boolean>]
breakpoint set [-DHd] -M <method> [-G <boolean>] [-C <command>] [-c <expr>] [-Y <source-language>] [-i <count>] [-o <boolean>] [-q <queue-name>] [-t <thread-id>] [-x <thread-index>] [-T <thread-name>] [-R <address>] [-N <breakpoint-name>] [-f <filename>] [-L <source-language>] [-s <shlib-name>] [-K <boolean>]
breakpoint set [-DHd] -r <regular-expression> [-G <boolean>] [-C <command>] [-c <expr>] [-Y <source-language>] [-i <count>] [-o <boolean>] [-q <queue-name>] [-t <thread-id>] [-x <thread-index>] [-T <thread-name>] [-R <address>] [-N <breakpoint-name>] [-f <filename>] [-L <source-language>] [-s <shlib-name>] [-K <boolean>]
breakpoint set [-DHd] -b <function-name> [-G <boolean>] [-C <command>] [-c <expr>] [-Y <source-language>] [-i <count>] [-o <boolean>] [-q <queue-name>] [-t <thread-id>] [-x <thread-index>] [-T <thread-name>] [-R <address>] [-N <breakpoint-name>] [-f <filename>] [-L <source-language>] [-s <shlib-name>] [-K <boolean>]
breakpoint set [-ADHd] -p <regular-expression> [-G <boolean>] [-C <command>] [-c <expr>] [-Y <source-language>] [-i <count>] [-o <boolean>] [-q <queue-name>] [-t <thread-id>] [-x <thread-index>] [-T <thread-name>] [-N <breakpoint-name>] [-f <filename>] [-m <boolean>] [-s <shlib-name>] [-X <function-name>]
breakpoint set [-DHd] -E <source-language> [-G <boolean>] [-C <command>] [-c <expr>] [-Y <source-language>] [-i <count>] [-o <boolean>] [-q <queue-name>] [-t <thread-id>] [-x <thread-index>] [-T <thread-name>] [-N <breakpoint-name>] [-h <boolean>] [-w <boolean>]
breakpoint set [-DHd] -P <python-class> [-k <none>] [-v <none>] [-G <boolean>] [-C <command>] [-c <expr>] [-Y <source-language>] [-i <count>] [-o <boolean>] [-q <queue-name>] [-t <thread-id>] [-x <thread-index>] [-T <thread-name>] [-N <breakpoint-name>] [-f <filename>] [-s <shlib-name>]
breakpoint set [-DHd] -y <linespec> [-G <boolean>] [-C <command>] [-c <expr>] [-Y <source-language>] [-i <count>] [-o <boolean>] [-q <queue-name>] [-t <thread-id>] [-x <thread-index>] [-T <thread-name>] [-R <address>] [-N <breakpoint-name>] [-m <boolean>] [-s <shlib-name>] [-K <boolean>]
```
We instead offer:
```
(lldb) help break add
Commands to add breakpoints of various types
Syntax: breakpoint add
Access the breakpoint search kernels built into lldb. Along with specifying the
search kernel, each breakpoint add operation can specify a common set of
"reaction" options for each breakpoint. The reaction options can also be
modified after breakpoint creation using the "breakpoint modify" command.
The following subcommands are supported:
address -- Add breakpoints by raw address
exception -- Add breakpoints on language exceptions. If no language is specified, break on exceptions for all supported languages
file -- Add breakpoints on lines in specified source files
name -- Add breakpoints matching function or symbol names
pattern -- Add breakpoints matching patterns in the source text Expects 'raw' input (see 'help raw-input'.)
scripted -- Add breakpoints using a scripted breakpoint resolver.
For more help on any particular subcommand, type 'help <command> <subcommand>'.
```
The individual subcommand helps are also easier to read. They are still
a little too verbose because they all repeat the options for the
`reactions`. A general fix for our help system would be when a command
incorporates an OptionGroup whole into the command options, help would
show the option group name - which you could separately look up. But
even without that:
```
(lldb) help br a a
Add breakpoints by raw address
Syntax: breakpoint add address <cmd-options> <address> [<address> [...]]
Command Options Usage:
breakpoint add address [-DHde] [-G <boolean>] [-C <command>] [-c <expr>] [-Y <source-language>] [-i <count>] [-o <boolean>] [-q <queue-name>] [-t <thread-id>] [-x <thread-index>] [-T <thread-name>] [-N <breakpoint-name>] [-s <shlib-name>] <address> [<address> [...]]
-C <command> ( --command <command> )
A command to run when the breakpoint is hit, can be provided more than once, the commands will be run in left-to-right order.
-D ( --dummy-breakpoints )
Act on Dummy breakpoints - i.e. breakpoints set before a file is provided, which prime new targets.
-G <boolean> ( --auto-continue <boolean> )
The breakpoint will auto-continue after running its commands.
-H ( --hardware )
Require the breakpoint to use hardware breakpoints.
-N <breakpoint-name> ( --breakpoint-name <breakpoint-name> )
Adds this name to the list of names for this breakpoint. Can be specified more than once.
-T <thread-name> ( --thread-name <thread-name> )
The breakpoint stops only for the thread whose thread name matches this argument.
-Y <source-language> ( --condition-language <source-language> )
Specifies the Language to use when executing the breakpoint's condition expression.
-c <expr> ( --condition <expr> )
The breakpoint stops only if this condition expression evaluates to true.
-d ( --disable )
Disable the breakpoint.
-e ( --enable )
Enable the breakpoint.
-i <count> ( --ignore-count <count> )
Set the number of times this breakpoint is skipped before stopping.
-o <boolean> ( --one-shot <boolean> )
The breakpoint is deleted the first time it stop causes a stop.
-q <queue-name> ( --queue-name <queue-name> )
The breakpoint stops only for threads in the queue whose name is given by this argument.
-s <shlib-name> ( --shlib <shlib-name> )
Set the breakpoint at an address relative to sections in this shared library.
-t <thread-id> ( --thread-id <thread-id> )
The breakpoint stops only for the thread whose TID matches this argument. The token 'current' resolves to the current thread's ID.
-x <thread-index> ( --thread-index <thread-index> )
The breakpoint stops only for the thread whose index matches this argument.
This command takes options and free-form arguments. If your arguments resemble option specifiers (i.e., they start with a - or --), you must use ' --
' between the end of the command options and the beginning of the arguments.
```
is pretty readable.
Commit: 9342d03f90ec42ca643f82a3e0654f71173a843f
https://github.com/llvm/llvm-project/commit/9342d03f90ec42ca643f82a3e0654f71173a843f
Author: mitchell <mitchell.xu2 at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang-tools-extra/clang-tidy/readability/UseStdMinMaxCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/readability/use-std-min-max.cpp
Log Message:
-----------
[clang-tidy] Preserve comments in `readability-use-std-min-max` (#169908)
Closes [#121613](https://github.com/llvm/llvm-project/issues/121613)
Commit: 7f01d721083660116bc288d99a5dc7e86bb219c1
https://github.com/llvm/llvm-project/commit/7f01d721083660116bc288d99a5dc7e86bb219c1
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/unittests/IR/ConstantsTest.cpp
Log Message:
-----------
[NFC] Fix memory leak in ConstantsTest (#170789)
Leak introduced with #164381.
Commit: 79620d8ac094f2ab65b4c65376b710d04bba212f
https://github.com/llvm/llvm-project/commit/79620d8ac094f2ab65b4c65376b710d04bba212f
Author: Wenju He <wenju.he at intel.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M libclc/CMakeLists.txt
M libclc/clc/include/clc/atomic/atomic_decl.inc
M libclc/clc/include/clc/float/definitions.h
M libclc/clc/include/clc/integer/definitions.h
M libclc/clc/lib/generic/atomic/clc_atomic_compare_exchange.inc
M libclc/clc/lib/generic/atomic/clc_atomic_def.inc
M libclc/cmake/modules/AddLibclc.cmake
R libclc/opencl/include/clc/opencl/as_type.h
M libclc/opencl/include/clc/opencl/atomic/atomic_compare_exchange_strong.h
M libclc/opencl/include/clc/opencl/atomic/atomic_compare_exchange_weak.h
M libclc/opencl/include/clc/opencl/atomic/atomic_decl.inc
M libclc/opencl/include/clc/opencl/atomic/atomic_exchange.h
M libclc/opencl/include/clc/opencl/atomic/atomic_fetch_add.h
M libclc/opencl/include/clc/opencl/atomic/atomic_fetch_and.h
M libclc/opencl/include/clc/opencl/atomic/atomic_fetch_max.h
M libclc/opencl/include/clc/opencl/atomic/atomic_fetch_min.h
M libclc/opencl/include/clc/opencl/atomic/atomic_fetch_or.h
M libclc/opencl/include/clc/opencl/atomic/atomic_fetch_sub.h
M libclc/opencl/include/clc/opencl/atomic/atomic_fetch_xor.h
M libclc/opencl/include/clc/opencl/atomic/atomic_flag_clear.h
M libclc/opencl/include/clc/opencl/atomic/atomic_flag_test_and_set.h
M libclc/opencl/include/clc/opencl/atomic/atomic_load.h
M libclc/opencl/include/clc/opencl/atomic/atomic_store.h
M libclc/opencl/include/clc/opencl/explicit_fence/explicit_memory_fence.h
M libclc/opencl/include/clc/opencl/synchronization/barrier.h
R libclc/opencl/include/clc/opencl/synchronization/cl_mem_fence_flags.h
M libclc/opencl/include/clc/opencl/synchronization/utils.h
R libclc/opencl/include/clc/opencl/types.h
M libclc/opencl/include/clc/opencl/utils.h
M libclc/opencl/lib/clspv/shared/vstore_half.cl
M libclc/opencl/lib/generic/atomic/atom_add.cl
M libclc/opencl/lib/generic/atomic/atom_and.cl
M libclc/opencl/lib/generic/atomic/atom_cmpxchg.cl
M libclc/opencl/lib/generic/atomic/atom_dec.cl
M libclc/opencl/lib/generic/atomic/atom_inc.cl
M libclc/opencl/lib/generic/atomic/atom_max.cl
M libclc/opencl/lib/generic/atomic/atom_min.cl
M libclc/opencl/lib/generic/atomic/atom_or.cl
M libclc/opencl/lib/generic/atomic/atom_sub.cl
M libclc/opencl/lib/generic/atomic/atom_xchg.cl
M libclc/opencl/lib/generic/atomic/atom_xor.cl
M libclc/opencl/lib/generic/atomic/atomic_add.cl
M libclc/opencl/lib/generic/atomic/atomic_and.cl
M libclc/opencl/lib/generic/atomic/atomic_cmpxchg.cl
M libclc/opencl/lib/generic/atomic/atomic_compare_exchange_strong.cl
M libclc/opencl/lib/generic/atomic/atomic_compare_exchange_weak.cl
M libclc/opencl/lib/generic/atomic/atomic_def.inc
M libclc/opencl/lib/generic/atomic/atomic_exchange.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_add.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_and.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_max.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_min.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_or.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_sub.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_xor.cl
M libclc/opencl/lib/generic/atomic/atomic_inc_dec.inc
M libclc/opencl/lib/generic/atomic/atomic_load.cl
M libclc/opencl/lib/generic/atomic/atomic_max.cl
M libclc/opencl/lib/generic/atomic/atomic_min.cl
M libclc/opencl/lib/generic/atomic/atomic_or.cl
M libclc/opencl/lib/generic/atomic/atomic_store.cl
M libclc/opencl/lib/generic/atomic/atomic_sub.cl
M libclc/opencl/lib/generic/atomic/atomic_xchg.cl
M libclc/opencl/lib/generic/atomic/atomic_xor.cl
Log Message:
-----------
[libclc] Add OpenCL atomic_*_explicit builtins (#168318)
Implement atomic_*_explicit (e.g. atomic_store_explicit) with
memory_order plus optional memory_scope.
OpenCL memory_order maps 1:1 to Clang (e.g. OpenCL memory_order_relaxed
== Clang __ATOMIC_RELAXED), so we pass it unchanged to clc_atomic_*
function which forwards to Clang _scoped_atomic* builtins.
Other changes:
* Add __opencl_get_clang_memory_scope helper in opencl/utils.h (OpenCL
scope -> Clang scope).
* Correct atomic_compare_exchange return type to bool.
* Fix atomic_compare_exchange to return true when value stored in the
pointer equals expected value.
* Remove volatile from CLC functions so that volatile isn't present in
LLVM IR.
* Add '-fdeclare-opencl-builtins -finclude-default-header' flag to
include
declaration of memory_scope. Some constants in libclc are already
provided
by Clang’s OpenCL header; disable those in OpenCL library build and
enable them only for CLC library build.
Commit: b32e067e97003db47aed52edc9ef8c3c30899b91
https://github.com/llvm/llvm-project/commit/b32e067e97003db47aed52edc9ef8c3c30899b91
Author: Florian Mayer <fmayer at google.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp
Log Message:
-----------
[compiler-rt] [UBSan] Fix missing preserve handlers (#170788)
Commit: 45af50d9cac951234617b0f91325daec57bbaabe
https://github.com/llvm/llvm-project/commit/45af50d9cac951234617b0f91325daec57bbaabe
Author: Quinn Dawkins <quinn.dawkins at gmail.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M mlir/include/mlir/Interfaces/TilingInterface.td
M mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
M mlir/lib/Dialect/Linalg/Transforms/TilingInterfaceImpl.cpp
A mlir/test/Interfaces/TilingInterface/query-fusability.mlir
M mlir/test/lib/Interfaces/TilingInterface/TestTilingInterfaceTransformOps.cpp
M mlir/test/lib/Interfaces/TilingInterface/TestTilingInterfaceTransformOps.td
Log Message:
-----------
[MLIR] Add fusability query to TilingInterface (#166502)
This introduces `isOpFusableWithProducer/Consumer` methods to the
TilingInterface that enable querying whether a tilable op can be fused
into a given set of producer slices or consumer slice without generating
IR. This is needed to enable use of the tiling interface in pattern
rewrites, as without this any pattern rewrite that tries to invoke the
method to tile is allowed to generate IR and fail.
Commit: c2242bdea9cc4593ad46689e1dcc05645045f908
https://github.com/llvm/llvm-project/commit/c2242bdea9cc4593ad46689e1dcc05645045f908
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/clang-tools-extra/clang-doc/BUILD.bazel
Log Message:
-----------
[bazel][clang-doc] Port 9349cb1523ddb88ca9d82bad497bb98082eb6c8d (#170797)
Commit: d8ad3c1df985b4cbc013c9f963796190d5c47c41
https://github.com/llvm/llvm-project/commit/d8ad3c1df985b4cbc013c9f963796190d5c47c41
Author: Han-Chung Wang <hanhan0912 at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M .github/CODEOWNERS
Log Message:
-----------
Remove myself from CODEOWNERS (#170799)
Commit: 71de78315fd011e8e470bcf19ecd2c9e9abb2a1c
https://github.com/llvm/llvm-project/commit/71de78315fd011e8e470bcf19ecd2c9e9abb2a1c
Author: Jesse Huang <jesse.huang at sifive.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/test/CodeGen/RISCV/branch-relaxation-rv32.ll
M llvm/test/CodeGen/RISCV/branch-relaxation-rv64.ll
Log Message:
-----------
[RISCV] Inserting indirect jumps with X7 for Zicfilp (#170683)
`BranchRelxation` uses `RISCVInstrInfo::insertIndirectBranch` to insert
an indirect branch if the jump target is out of range. Currently it uses
register scavenging to find a free register to use for the indirect
target. If Zicfilp is enabled, we need to use X7 so that the jump will
be treated as a software guarded branch.
Co-authored-by: Yeting Kuo <46629943+yetingk at users.noreply.github.com>
Commit: af4098b45a753a317d6a36aa76235fe30a401733
https://github.com/llvm/llvm-project/commit/af4098b45a753a317d6a36aa76235fe30a401733
Author: Brandon Wu <brandon.wu at sifive.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/test/CodeGen/RISCV/rvp-ext-rv32.ll
M llvm/test/CodeGen/RISCV/rvp-ext-rv64.ll
Log Message:
-----------
[RISCV][llvm] Support PSLL codegen for P extension (#170074)
There's no instruciton for vector shift amount, so we have to scalarize
it and rebuild the vector.
Commit: e48d49fd6d09dd7082590360544f801460aee96a
https://github.com/llvm/llvm-project/commit/e48d49fd6d09dd7082590360544f801460aee96a
Author: Brandon Wu <brandon.wu at sifive.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoZvfbf.td
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfadd-sdnode.ll
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmul-sdnode.ll
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfrsub-sdnode.ll
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfsub-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfadd-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfmul-sdnode.ll
A llvm/test/CodeGen/RISCV/rvv/vfrsub-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfsub-sdnode.ll
Log Message:
-----------
[RISCV][llvm] Support VFADD, VFSUB, VFMUL codegen for Zvfbfa (#170612)
Support both fixed-length vectors and scalable vectors.
Note: VP version is not gonna be supported for trivial instructions
since they're going to be removed soon.
Commit: 290b32a699aefbd1f18fe78351655dd42ce98f1e
https://github.com/llvm/llvm-project/commit/290b32a699aefbd1f18fe78351655dd42ce98f1e
Author: NimishMishra <42909663+NimishMishra at users.noreply.github.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
M flang/lib/Lower/OpenMP/OpenMP.cpp
R flang/test/Lower/OpenMP/Todo/omp-do-simd-linear.f90
A flang/test/Lower/OpenMP/simd-linear.f90
A flang/test/Lower/OpenMP/wsloop-linear.f90
M mlir/include/mlir/Dialect/OpenMP/OpenMPClauses.td
M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
M mlir/test/Target/LLVMIR/openmp-llvm.mlir
M mlir/test/Target/LLVMIR/openmp-todo.mlir
Log Message:
-----------
[llvm][mlir][OpenMP] Support translation for linear clause in omp.wsloop and omp.simd (#139386)
This patch adds support for LLVM translation of linear clause on
omp.wsloop (except for linear modifiers).
Commit: eecdd4be8aaabcc326dfb2b689dcbfb5c172c98b
https://github.com/llvm/llvm-project/commit/eecdd4be8aaabcc326dfb2b689dcbfb5c172c98b
Author: higher-performance <higher.performance.github at gmail.com>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.h
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/use-after-move.rst
M clang-tools-extra/test/clang-tidy/checkers/bugprone/use-after-move.cpp
Log Message:
-----------
[clang-tidy] Extend `bugprone-use-after-move` to allow custom invalidation functions (#170346)
Commit: 14bf95b06a18b9b59c89601cbc0e5a6f2176b118
https://github.com/llvm/llvm-project/commit/14bf95b06a18b9b59c89601cbc0e5a6f2176b118
Author: lntue <lntue at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M libc/config/linux/config.json
Log Message:
-----------
[libc] Remove extra commas in linux/config.json. (#170801)
Commit: 785cadd1ccf4a9c7d3b4823fa3a58311df94ddda
https://github.com/llvm/llvm-project/commit/785cadd1ccf4a9c7d3b4823fa3a58311df94ddda
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/lib/AST/ByteCode/Disasm.cpp
Log Message:
-----------
[clang][bytecode] Fix InterpFrame::dump() (#170682)
We should only call getThis() and getRVOPtr() if the frame has them.
Commit: 5911754a3085e1c95cec12971f075ab3f024d71d
https://github.com/llvm/llvm-project/commit/5911754a3085e1c95cec12971f075ab3f024d71d
Author: wdx727 <wudexin at kuaishou.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
A llvm/include/llvm/CodeGen/BasicBlockMatchingAndInference.h
M llvm/include/llvm/CodeGen/BasicBlockSectionsProfileReader.h
M llvm/include/llvm/CodeGen/MachineBlockHashInfo.h
M llvm/include/llvm/CodeGen/Passes.h
M llvm/include/llvm/InitializePasses.h
M llvm/include/llvm/Transforms/Utils/SampleProfileInference.h
A llvm/lib/CodeGen/BasicBlockMatchingAndInference.cpp
M llvm/lib/CodeGen/BasicBlockSections.cpp
M llvm/lib/CodeGen/BasicBlockSectionsProfileReader.cpp
M llvm/lib/CodeGen/CMakeLists.txt
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/lib/Transforms/Utils/SampleProfileInference.cpp
A llvm/test/CodeGen/X86/basic-block-sections-clusters-bb-hash.ll
Log Message:
-----------
Adding Matching and Inference Functionality to Propeller-PR4: Implement matching and inference and create clusters (#167622)
This PR re-submits the previously reverted
PR(https://github.com/llvm/llvm-project/pull/165868) and fixes the
return type mismatch error.
Co-authored-by: lifengxiang1025 <lifengxiang at kuaishou.com>
Co-authored-by: zcfh <wuminghui03 at kuaishou.com>
Commit: 722026886fb65f0d61e0384886ffc30e83623edf
https://github.com/llvm/llvm-project/commit/722026886fb65f0d61e0384886ffc30e83623edf
Author: Kees Cook <kees at kernel.org>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M clang/docs/LanguageExtensions.rst
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/test/CodeGen/builtin-counted-by-ref.c
M clang/test/Sema/builtin-counted-by-ref.c
Log Message:
-----------
[Clang] Extend __builtin_counted_by_ref to support pointers with 'counted_by' (#170750)
The __builtin_counted_by_ref builtin was previously limited to flexible
array members (FAMs). This change extends it to also support pointer
members that have the 'counted_by' attribute.
The 'counted_by' attribute can be applied to both FAMs and pointer
members:
struct fam_struct {
int count;
int array[] __attribute__((counted_by(count)));
};
struct ptr_struct {
int count;
int *buf __attribute__((counted_by(count)));
};
With this change, __builtin_counted_by_ref works with both:
*__builtin_counted_by_ref(p->array) = size; // FAM - already worked
*__builtin_counted_by_ref(p->buf) = size; // pointer - now works
This enables the same allocation pattern for pointer members that was
previously only available for FAMs:
#define alloc_buf(P, MEMBER, COUNT) ({ \
typeof(P) __p = malloc(sizeof(*__p)); \
__p->MEMBER = malloc(sizeof(*__p->MEMBER) * COUNT); \
*_Generic(__builtin_counted_by_ref(__p->MEMBER), \
void *: &(size_t){0}, \
default: __builtin_counted_by_ref(__p->MEMBER)) = COUNT; \
__p; \
})
The builtin returns:
- A pointer to the count field if the member has 'counted_by'
- void* (null) if the member is an array or pointer without 'counted_by'
- An error for other member types (e.g., int, struct)
This was requested by upstream Linux kernel devs:
https://lore.kernel.org/linux-hardening/202512041215.44484FCACD@keescook/
Commit: c9ebc890980bd0b40159b0db0e71dbbf7dbf3e2f
https://github.com/llvm/llvm-project/commit/c9ebc890980bd0b40159b0db0e71dbbf7dbf3e2f
Author: Lang Hames <lhames at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/CallSPSViaEPC.h
M llvm/include/llvm/ExecutionEngine/Orc/CallViaEPC.h
M llvm/unittests/ExecutionEngine/Orc/CallSPSViaEPCTest.cpp
Log Message:
-----------
[ORC] Add void function support to CallViaEPC, CallSPSViaEPC. (#170800)
Adds support for calling void functions. Calls to void functions return
Error to capture any IPC/RPC failure.
Commit: 4c6b8825e84067c44780b2720429032d054af59a
https://github.com/llvm/llvm-project/commit/4c6b8825e84067c44780b2720429032d054af59a
Author: David Green <david.green at arm.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/test/CodeGen/AArch64/combine-sdiv.ll
M llvm/test/CodeGen/AArch64/rem-by-const.ll
M llvm/test/CodeGen/AArch64/srem-lkk.ll
M llvm/test/CodeGen/RISCV/mul.ll
M llvm/test/CodeGen/Thumb/umulo-128-legalisation-lowering.ll
Log Message:
-----------
[DAG] Fold mul 0 -> 0 when expanding mul into parts. (#168780)
If the upper bits are zero, but we expand multiply then immediately
convert the multiple into a libcall, there is no opportunity to optimize
away the mul. Do so in getNode to make sure extending multiplies
optimise cleanly.
Commit: eb48a61cc17ef6e626a4c4e7c866738225d9870a
https://github.com/llvm/llvm-project/commit/eb48a61cc17ef6e626a4c4e7c866738225d9870a
Author: Ingo Müller <ingomueller at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M mlir/include/mlir/Bindings/Python/Nanobind.h
M mlir/lib/Bindings/Python/MainModule.cpp
Log Message:
-----------
[mlir:python] Add manual typing annotations to `mlir.register_*` functions. (#170627)
This PR adds a manual typing annotations to the `register_operation` and
`register_(type|value)_caster` functions in the main `mlir` module.
Since those functions return the result `nb::cpp_function`, which is of
type `nb::object`, the automatic typing annocations are of the form `def
f() -> object`. This isn't particularly precise and leads to type
checking errors when the functions are used. Manually defining the
annotation with `nb::sig` solves the problem.
Signed-off-by: Ingo Müller <ingomueller at google.com>
Commit: cc5b07c7618538b6065f6793524c10bdb34dd510
https://github.com/llvm/llvm-project/commit/cc5b07c7618538b6065f6793524c10bdb34dd510
Author: Luke Lau <luke at igalia.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/IR/Verifier.cpp
M llvm/test/Verifier/invalid-splice.ll
Log Message:
-----------
[IR] Fix vector.splice verifier scaling by vscale for fixed length vectors (#170807)
Currently we multiply the known minimum number of elements by vscale
even if the vector in question is fixed, so sometimes we miss some fixed
vectors with out of bounds indices.
Commit: 5b2eb0dcb717c7218f691e2a10f76b60ed039ecd
https://github.com/llvm/llvm-project/commit/5b2eb0dcb717c7218f691e2a10f76b60ed039ecd
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Compiler.h
Log Message:
-----------
[clang][bytecode][NFC] Add FullExpression scopes (#170705)
And use them instead of the extending decl. This is close to what the
current interpreter is doing.
This is NFC right now but fixes a problem I encountered while looking
into the expansion statement stuff.
Commit: 5a74f7ea99385f1a02d86a76812cfa0508c7be1a
https://github.com/llvm/llvm-project/commit/5a74f7ea99385f1a02d86a76812cfa0508c7be1a
Author: Kashika Akhouri <akhourik at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeSafety.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/Loans.h
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Analysis/LifetimeSafety/Checker.cpp
M clang/lib/Analysis/LifetimeSafety/Facts.cpp
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Analysis/LifetimeSafety/Loans.cpp
M clang/lib/Sema/AnalysisBasedWarnings.cpp
A clang/test/Sema/warn-lifetime-safety-suggestions.cpp
M clang/unittests/Analysis/LifetimeSafetyTest.cpp
Log Message:
-----------
[LifetimeSafety] Suggest lifetime annotations (#169767)
Add lifetime annotation suggestion in lifetime analysis.
This PR introduces a new feature to Clang's lifetime analysis to detect
and suggest missing `[[clang::lifetimebound]]` annotations on function
parameters.
It introduces the concept of `placeholder loans`. At the entry of a
function, a special placeholder loan is created for each pointer or
reference parameter. The analysis then tracks these loans using
`OriginFlow` facts. If an `OriginEscapesFact` shows that an origin
holding a placeholder loan escapes the function's scope (e.g., via a
return statement), a new warning is issued.
This warning, controlled by the warning flag
`-Wexperimental-lifetime-safety-suggestions`, suggests adding the
`[[clang::lifetimebound]]` attribute to the corresponding parameter.
Example:
```cpp
std::string_view foo(std::string_view a) {
return a;
}
```
Facts:
```
Function: foo
Block B2:
Issue (0 (Placeholder loan) , ToOrigin: 0 (Decl: a))
End of Block
Block B1:
Use (0 (Decl: a), Read)
OriginFlow (Dest: 1 (Expr: ImplicitCastExpr), Src: 0 (Decl: a))
OriginFlow (Dest: 2 (Expr: CXXConstructExpr), Src: 1 (Expr: ImplicitCastExpr))
OriginEscapes (2 (Expr: CXXConstructExpr))
End of Block
Block B0:
End of Block
```
Sample warning:
```
o.cpp:61:39: warning: param should be marked [[clang::lifetimebound]] [-Wexperimental-lifetime-safety-suggestions]
61 | std::string_view foo(std::string_view a) {
| ~~~~~~~~~~~~~~~~~^
| [[clang::lifetimebound]]
o.cpp:62:9: note: param escapes here
62 | return a;
```
Fixes: https://github.com/llvm/llvm-project/issues/169939
Commit: 2612dc9b5faeaeb180c5a5e0c282642faef8891b
https://github.com/llvm/llvm-project/commit/2612dc9b5faeaeb180c5a5e0c282642faef8891b
Author: Phoebe Wang <phoebe.wang at intel.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Target/X86/X86InstrCMovSetCC.td
M llvm/test/CodeGen/X86/apx/setzucc.ll
Log Message:
-----------
[X86][APX] Add pattern for zext(X86setcc ..) -> SETZUCCr (#170806)
Commit: 23173475c166e0480cc25d430ddda9461cb19b71
https://github.com/llvm/llvm-project/commit/23173475c166e0480cc25d430ddda9461cb19b71
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
Log Message:
-----------
[lldb] Improve logging of failure to get register information from Target XML (#170478)
In
https://discourse.llvm.org/t/does-lldb-qemu-support-dumping-x64-control-registers-such-as-cr3/89031
a user was not seeing certain registers when connected to QEMU. Turns
out their LLDB build did not have libxml2 enabled.
While logging is not the first thing most users will think of, it is
something an expert can ask for to confirm whether they have XML support
enabled.
So in this PR I've shuffled the logic GetGDBServerRegisterInfo to better
report problems in the log.
The key one is when lldb does not have libxml2 but the server did say it
supports qxfer:features. In this case we would have used it if we could,
and the debug session will likely be degraded because we are not able
to.
https://sourceware.org/gdb/current/onlinedocs/gdb.html/General-Query-Packets.html#qXfer-target-description-read
Commit: 8ce5d8545d2e79e8bac5e6c6c39ef2d0f8c54181
https://github.com/llvm/llvm-project/commit/8ce5d8545d2e79e8bac5e6c6c39ef2d0f8c54181
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaExprCXX.cpp
M clang/test/Sema/AArch64/sve-vector-conditional-op.cpp
Log Message:
-----------
[clang] Only use CheckVectorOperands for fixed-length vector operands (#170485)
Fixes #170279
Commit: ccfe7e09540f94e0419c607396e270f8d456e608
https://github.com/llvm/llvm-project/commit/ccfe7e09540f94e0419c607396e270f8d456e608
Author: Damian Heaton <Damian.Heaton at arm.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.h
M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
A llvm/test/CodeGen/AArch64/sve-fmsub.ll
Log Message:
-----------
[AArch64] Combine vector FNEG+FMA into `FNML[A|S]` (#167900)
This allows for FNEG + FMA sequences to be combined into a single
operation, with `FNML[A|S]`, `FNMAD`, or `FNMSB` selected depending on
the operand order, similarly to how `performSVEMulAddSubCombine` enables
generating `ML[A|S]` instructions by converting the ADD/SUB intrinsics
to scalable vectors.
Commit: d4cc0072b3fbdeb07560bf961997ef05cee4fda0
https://github.com/llvm/llvm-project/commit/d4cc0072b3fbdeb07560bf961997ef05cee4fda0
Author: Marco Elver <elver at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
A clang/test/Driver/fsanitize-annotate-debug-info.c
A clang/test/Driver/fsanitize-baremetal.c
A clang/test/Driver/fsanitize-cfi.c
A clang/test/Driver/fsanitize-leak.c
A clang/test/Driver/fsanitize-memtag.c
A clang/test/Driver/fsanitize-merge.c
A clang/test/Driver/fsanitize-minimal-runtime.c
A clang/test/Driver/fsanitize-numerical.c
A clang/test/Driver/fsanitize-realtime.c
A clang/test/Driver/fsanitize-recover.c
A clang/test/Driver/fsanitize-safe-stack.c
A clang/test/Driver/fsanitize-scudo.c
A clang/test/Driver/fsanitize-skip-hot-cutoff.c
A clang/test/Driver/fsanitize-trap.c
A clang/test/Driver/fsanitize-undefined.c
M clang/test/Driver/fsanitize.c
Log Message:
-----------
[Clang][Driver] Split fsanitize.c test (#169952)
The fsanitize.c test is one of the slowest tests we have:
```
-- Testing: 1 tests, 1 workers --
PASS: Clang :: Driver/fsanitize.c (1 of 1)
Testing Time: 18.42s
```
It has become the single monolithic test for almost all -fsanitize=
options. Given its current size, it makes sense to split it up into
smaller focused tests to allow for better parallelization but also help
the FileCheck tool by reducing number of lines to check.
The new test time with parallelization on my machine is:
```
-- Testing: 16 tests, 16 workers --
PASS: Clang :: Driver/fsanitize-numerical.c (1 of 16)
PASS: Clang :: Driver/fsanitize-safe-stack.c (2 of 16)
PASS: Clang :: Driver/fsanitize-memtag.c (3 of 16)
PASS: Clang :: Driver/fsanitize-realtime.c (4 of 16)
PASS: Clang :: Driver/fsanitize-baremetal.c (5 of 16)
PASS: Clang :: Driver/fsanitize-scudo.c (6 of 16)
PASS: Clang :: Driver/fsanitize-trap.c (7 of 16)
PASS: Clang :: Driver/fsanitize-leak.c (8 of 16)
PASS: Clang :: Driver/fsanitize-recover.c (9 of 16)
PASS: Clang :: Driver/fsanitize-skip-hot-cutoff.c (10 of 16)
PASS: Clang :: Driver/fsanitize-minimal-runtime.c (11 of 16)
PASS: Clang :: Driver/fsanitize-cfi.c (12 of 16)
PASS: Clang :: Driver/fsanitize-merge.c (13 of 16)
PASS: Clang :: Driver/fsanitize-annotate-debug-info.c (14 of 16)
PASS: Clang :: Driver/fsanitize-undefined.c (15 of 16)
PASS: Clang :: Driver/fsanitize.c (16 of 16)
Testing Time: 7.10s
```
The original Driver/fsanitize.c test remains for tests where it is
unclear that a single feature is being tested in isolation.
NFC.
Commit: 7dc87cbd675dc8696ed22f832514fa7b7182f8ff
https://github.com/llvm/llvm-project/commit/7dc87cbd675dc8696ed22f832514fa7b7182f8ff
Author: valadaptive <79560998+valadaptive at users.noreply.github.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Utils/BuildLibCalls.cpp
M llvm/test/Transforms/InferFunctionAttrs/annotate.ll
Log Message:
-----------
[InferAttrs] Handle f[min/max]imum_num like other libm functions (#170697)
These behave like fmin and fmax.
Commit: d5551e1d595a5298f11f2cf1317799a2680bd7ce
https://github.com/llvm/llvm-project/commit/d5551e1d595a5298f11f2cf1317799a2680bd7ce
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/test/Transforms/InferFunctionAttrs/annotate.ll
Log Message:
-----------
[InferFunctionAttrs] Fix check lines
Only the first occurence of an attribute group should capture it,
the rest should match it. Otherwise we're not actually checking
that the attributes are correct.
Commit: bae2401295bc04dd57354c79e22a0cf58fd3b86b
https://github.com/llvm/llvm-project/commit/bae2401295bc04dd57354c79e22a0cf58fd3b86b
Author: valadaptive <79560998+valadaptive at users.noreply.github.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/test/Transforms/InstCombine/float-shrink-compare.ll
Log Message:
-----------
[InstCombine] Add regression tests for f[min][max]imum_num libcalls (#170695)
Add tests corresponding to the existing fmin/fmax tests, as we'll later
begin optimizing these into intrinsics.
Commit: 63e9d607866f70d25d93fbdf4c4cd217efba195f
https://github.com/llvm/llvm-project/commit/63e9d607866f70d25d93fbdf4c4cd217efba195f
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
M llvm/test/CodeGen/AMDGPU/llvm.exp10.ll
Log Message:
-----------
AMDGPU: Improve exp10 lowering for f16 (#170771)
Commit: 352b90182839024a87e2234092f6b3ea49bf8c23
https://github.com/llvm/llvm-project/commit/352b90182839024a87e2234092f6b3ea49bf8c23
Author: valadaptive <79560998+valadaptive at users.noreply.github.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/test/Transforms/InstSimplify/ConstProp/roundeven.ll
Log Message:
-----------
[ConstantFolding] Handle roundeven libcalls (#170692)
Basically identical to nearbyint and rint, which we already treat as
rounding to nearest with ties to even during constant folding.
Commit: 113f058d73ec9850cdeb476c987971ca02a57350
https://github.com/llvm/llvm-project/commit/113f058d73ec9850cdeb476c987971ca02a57350
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/include/llvm/Analysis/ScalarEvolutionPatternMatch.h
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/lib/Analysis/ScalarEvolution.cpp
Log Message:
-----------
[SCEV] Add m_scev_UndefOrPoison (NFC). (#170740)
Add matcher for SCEVUnknown wrapping undef or poison.
PR: https://github.com/llvm/llvm-project/pull/170740
Commit: f1998360c3b1613440103101bce2b24b71695a4a
https://github.com/llvm/llvm-project/commit/f1998360c3b1613440103101bce2b24b71695a4a
Author: Paul Walker <paul.walker at arm.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/include/clang/Basic/arm_sve.td
M clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_qrshl.c
M clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_qshl.c
M clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_rshl.c
M llvm/include/llvm/IR/IntrinsicsAArch64.td
M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/test/CodeGen/AArch64/sve2-intrinsics-uniform-dsp-undef.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-uniform-dsp.ll
M llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-comb-no-active-lanes.ll
M llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-simplify-to-u-form.ll
Log Message:
-----------
[LLVM][AArch64] Add "u" variants of SVE saturating/rounding shift left intrinsics. (#170503)
This follows the same path used for regular shift intrinsics whereby the
"don't care about the result of inactive lanes" property of the
associated _x builtins is preserved. In doing this we gain the ability
to switch between reversed and movprfx variants depending on what best
fits register allocation.
Commit: d02471ae5e5f593d564dbaafd83535062d6f72af
https://github.com/llvm/llvm-project/commit/d02471ae5e5f593d564dbaafd83535062d6f72af
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M mlir/test/Integration/GPU/CUDA/async.mlir
Log Message:
-----------
[MLIR] Partially disable test/Integration/GPU/CUDA/async.mlir
This test is flaky, needs investigation.
See #170833
Commit: 990289ccd598e252101368c7f34ed70db8bc4bdd
https://github.com/llvm/llvm-project/commit/990289ccd598e252101368c7f34ed70db8bc4bdd
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
A llvm/test/CodeGen/X86/pr167793.ll
Log Message:
-----------
[X86] LowerShuffle - don't call canonicalizeShuffleMaskWithHorizOp if we could shuffle whole lanes (#170838)
canonicalizeShuffleMaskWithHorizOp was getting stuck as it was
canonicalizing a SHUFFLE(HADD(X,X)) to only refer to the results of the
LHS X, but the original shuffle was shuffling entire lanes (with
VPERM2F128), and the canonicalised shuffle was then attempting to
lowering back to the original VPERM2F128 pattern.
I think we can drop this call to canonicalizeShuffleMaskWithHorizOp once
#143000 is addressed as vectorcombine should fold away all the patterns
this addresses.
Fixes #167793
Commit: d17284ae2994bf76f00494f92445ea038701283e
https://github.com/llvm/llvm-project/commit/d17284ae2994bf76f00494f92445ea038701283e
Author: James Molloy <james at jamesmolloy.co.uk>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M mlir/python/mlir/ir.py
M mlir/test/python/ir/auto_location.py
Log Message:
-----------
[python] Fix loc_tracebacks() (#170831)
There were two bugs lurking in mlir.ir.loc_tracebacks():
1) The default None parameter was not handled correctly (passed to a
C++ function that expects ints.
2) The `yield` was incorrectly indented meaning loc_tracebacks()
could not be nested (a "generator didn't yield" exception would be
raised).
Added testing of loc_tracebacks by replacing the custom contextmanager
in the auto_location.py test with the loc_tracebacks() API.
Had to harden the test to line number differences.
---------
Co-authored-by: James Molloy <jmolloy at google.com>
Commit: db849604bb785fc4489810be6738ba3541a1cbc1
https://github.com/llvm/llvm-project/commit/db849604bb785fc4489810be6738ba3541a1cbc1
Author: Lukacma <Marian.Lukac at arm.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/include/clang/Basic/arm_sve.td
A clang/test/CodeGen/AArch64/sme2-intrinsics/acle_sme2_bfmul.c
A clang/test/CodeGen/AArch64/sme2-intrinsics/acle_sme2_bfscale.c
M llvm/include/llvm/IR/IntrinsicsAArch64.td
M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
A llvm/test/CodeGen/AArch64/sme2-intrinsics-bfmul.ll
A llvm/test/CodeGen/AArch64/sme2-intrinsics-bfscale.ll
Log Message:
-----------
[AArch64] Add intrinsics for multi-vector FEAT_SVE_BFSCALE instructions (#163536)
These are the intrinsics prototype implemented, according to [1]
//BFMUL:
svbfloat16x2_t svmul[_bf16_x2](svbfloat16x2_t zd, svbfloat16x2_t zm) __arm_streaming;
svbfloat16x2_t svmul[_single_bf16_x2](svbfloat16x2_t zd, svbfloat16_t zm) __arm_streaming;
svbfloat16x4_t svmul[_bf16_x4](svbfloat16x4_t zd, svbfloat16x4_t zm) __arm_streaming;
svbfloat16x4_t svmul[_single_bf16_x4](svbfloat16x4_t zd, svbfloat16_t zm) __arm_streaming;
//BFSCALE
svbfloat16x2_t svscale[_bf16_x2](svbfloat16x2_t zdn, svint16x2_t zm) __arm_streaming;
svbfloat16x2_t svscale[_single_bf16_x2](svbfloat16x2_t zn, svint16_t zm) __arm_streaming;
svbfloat16x4_t svscale[_bf16_x4](svbfloat16x4_t zdn, svint16x4_t zm) __arm_streaming;
svbfloat16x4_t svscale[_single_bf16_x4](svbfloat16x4_t zn, svint16_t zm) __arm_streaming;
[1]ARM-software/acle#410
Commit: 740a3ad1f744034275297d8ae315abbd904eac8c
https://github.com/llvm/llvm-project/commit/740a3ad1f744034275297d8ae315abbd904eac8c
Author: anjenner <161845516+anjenner at users.noreply.github.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPUGISel.td
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructions.td
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
M llvm/lib/Target/AMDGPU/DSInstructions.td
M llvm/lib/Target/AMDGPU/FLATInstructions.td
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
M llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.td
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/test/Analysis/UniformityAnalysis/AMDGPU/MIR/atomics-gmir.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.global.atomic.csub.ll
A llvm/test/CodeGen/AMDGPU/atomicrmw_usub_cond.ll
A llvm/test/CodeGen/AMDGPU/atomicrmw_usub_sat.ll
M llvm/test/CodeGen/AMDGPU/atomics_cond_sub.ll
A llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-usub_cond.ll
A llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-usub_sat.ll
M llvm/test/CodeGen/AMDGPU/cgp-addressing-modes-gfx1030.ll
M llvm/test/CodeGen/AMDGPU/global-saddr-atomics.gfx1030.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.atomic.csub.ll
M llvm/test/CodeGen/AMDGPU/private-memory-atomics.ll
M llvm/test/CodeGen/AMDGPU/shl_add_ptr_csub.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i16-system.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i16.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i32-agent.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i32-system.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i64-agent.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i64-system.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i8-system.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i8.ll
Log Message:
-----------
AMDGPU: Add codegen for atomicrmw operations usub_cond and usub_sat (#141068)
Split off from https://github.com/llvm/llvm-project/pull/105553 as per
discussion there.
Commit: b36f89faed59cc37da969a3515b8b2f1539667bd
https://github.com/llvm/llvm-project/commit/b36f89faed59cc37da969a3515b8b2f1539667bd
Author: Jay Foad <jay.foad at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructions.td
M llvm/lib/Target/AMDGPU/EvergreenInstructions.td
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/test/CodeGen/AMDGPU/packetizer.ll
M llvm/test/CodeGen/AMDGPU/permute.ll
M llvm/test/CodeGen/AMDGPU/rotl.ll
M llvm/test/CodeGen/AMDGPU/rotr.ll
M llvm/test/CodeGen/AMDGPU/shl.ll
Log Message:
-----------
[AMDGPU] Make rotr illegal (#166558)
fshr is already legal and is strictly more powerful than rotr, so we
should only need selection patterns for fshr.
Commit: f827e4d1cf659da350f49911dcee2ac5f88ae5a2
https://github.com/llvm/llvm-project/commit/f827e4d1cf659da350f49911dcee2ac5f88ae5a2
Author: Ebuka Ezike <yerimyah1 at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M lldb/tools/lldb-dap/DAPLog.cpp
Log Message:
-----------
[lldb-dap] show a useful timestamp in log messages (#170737)
It becomes easier to see the time difference between requests and
responses
Commit: 64e3bcdd1ff18aebf32156f7bf4f89d3f320447c
https://github.com/llvm/llvm-project/commit/64e3bcdd1ff18aebf32156f7bf4f89d3f320447c
Author: Jay Foad <jay.foad at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
Log Message:
-----------
[AMDGPU] Add an assertion. NFCI.
Commit: 4ada42ede21cf54019d91f595d3a42f93ed7d3fa
https://github.com/llvm/llvm-project/commit/4ada42ede21cf54019d91f595d3a42f93ed7d3fa
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M mlir/lib/Conversion/XeVMToLLVM/XeVMToLLVM.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for llvm-qualified-auto in XeVMToLLVM.cpp (NFC)
Commit: 90a14d23f306f3e879ef04ea0058927294018b33
https://github.com/llvm/llvm-project/commit/90a14d23f306f3e879ef04ea0058927294018b33
Author: Koakuma <koachan at protonmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/test/CodeGen/SPARC/optcompare.ll
Log Message:
-----------
[SPARC][NFC] Update optcompare test that always returns false (#170025)
Commit: 0ecac6d5b9a9907e534e6d0d43d4838be288363b
https://github.com/llvm/llvm-project/commit/0ecac6d5b9a9907e534e6d0d43d4838be288363b
Author: Jay Foad <jay.foad at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
Log Message:
-----------
[AMDGPU] Inherit constructors from WaitcntGenerator. NFC. (#170845)
Commit: e6d1deae3e538ff84e8ef0a4fa2c711da8ce009c
https://github.com/llvm/llvm-project/commit/e6d1deae3e538ff84e8ef0a4fa2c711da8ce009c
Author: Maksim Levental <maksim.levental at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M mlir/lib/Bindings/Python/NanobindUtils.h
M mlir/test/python/ir/operation.py
Log Message:
-----------
[MLIR][Python] make Sliceable inherit from Sequence (#170551)
Generates type stubs like
```python
class RegionSequence(Sequence[Region]):
def __add__(self, arg: RegionSequence, /) -> list[Region]: ...
def __iter__(self) -> RegionIterator:
"""Returns an iterator over the regions in the sequence."""
```
Commit: 691893ea457a5db4803620f763dd0df91981bc58
https://github.com/llvm/llvm-project/commit/691893ea457a5db4803620f763dd0df91981bc58
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M mlir/lib/Dialect/ArmSME/Transforms/OuterProductFusion.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for llvm-qualified-auto in OuterProductFusion.cpp (NFC)
Commit: 39429dd3522f16aa5670265a1df6fbe63edcda84
https://github.com/llvm/llvm-project/commit/39429dd3522f16aa5670265a1df6fbe63edcda84
Author: mitchell <mitchell.xu2 at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
A clang-tools-extra/clang-tidy/tool/check_alphabetical_order.py
A clang-tools-extra/clang-tidy/tool/check_alphabetical_order_test.py
A clang-tools-extra/test/clang-tidy/infrastructure/alphabetical-order.test
M clang-tools-extra/test/lit.cfg.py
Log Message:
-----------
[clang-tidy] Implement alphabetical order check (#166072)
The patch implements `clang-tidy-alphabetical-order-check.py`, a small
Python tool to normalize clang-tidy docs with deterministic ordering.
It currently checks these two files:
-
https://github.com/llvm/llvm-project/blob/main/clang-tools-extra/docs/clang-tidy/checks/list.rst?plain=1
-
https://github.com/llvm/llvm-project/blob/main/clang-tools-extra/docs/ReleaseNotes.rst?plain=1
Closes #166021
---------
Co-authored-by: EugeneZelenko <eugene.zelenko at gmail.com>
Commit: 17e0bacb1799c7d6d7fd35f503f5ed61735c6894
https://github.com/llvm/llvm-project/commit/17e0bacb1799c7d6d7fd35f503f5ed61735c6894
Author: Nico Weber <thakis at chromium.org>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/utils/gn/secondary/clang-tools-extra/clangd/BUILD.gn
A llvm/utils/gn/secondary/clang/lib/DependencyScanning/BUILD.gn
M llvm/utils/gn/secondary/clang/lib/Tooling/BUILD.gn
R llvm/utils/gn/secondary/clang/lib/Tooling/DependencyScanning/BUILD.gn
M llvm/utils/gn/secondary/clang/tools/clang-scan-deps/BUILD.gn
M llvm/utils/gn/secondary/clang/unittests/BUILD.gn
A llvm/utils/gn/secondary/clang/unittests/DependencyScanning/BUILD.gn
M llvm/utils/gn/secondary/clang/unittests/Tooling/BUILD.gn
Log Message:
-----------
[gn] port b70be3dc14c1f54 (clang/lib/DependencyScanning)
Commit: b01b273409235116c35c3598e1700bd510f8a603
https://github.com/llvm/llvm-project/commit/b01b273409235116c35c3598e1700bd510f8a603
Author: Pavel Rosický <pdahorek at seznam.cz>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Support/CachePruning.cpp
M llvm/lib/Support/Windows/Path.inc
Log Message:
-----------
[Support][Windows] disk_space handle unicode paths (#170716)
replaces GetDiskFreeSpaceExA with GetDiskFreeSpaceExW to handle user
paths with Unicode characters
fixes: https://github.com/llvm/llvm-project/issues/170571
I’m not entirely sure the fix is correct, so I’d appreciate it if
someone more familiar with the code could review it. Thanks!
Commit: 6b040b4b4f69b99c33281e8da4d93d487a2d2588
https://github.com/llvm/llvm-project/commit/6b040b4b4f69b99c33281e8da4d93d487a2d2588
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
Log Message:
-----------
[lldb] Issue a warning when Target XML should have been used but we do not have libxml2 (#170663)
If you connect lldb without libxml2 enabled, to a debug stub,
that server may offer Target XML but lldb will not use it. This
often causes incorrect or missing registers.
So much so that I think users should be made aware of this so
they can find an lldb with libxml2 enabled.
This warning will only be printed when:
* The debug server offered us Target XML but lldb does not have libxml2,
and -
* qRegisterInfo was not supported by the debug server.
This means that (lldb without libxml2) -> (lldb-server or debugserver)
will not warn as we'll fall back to qRegisterInfo. All that's
potentially
missing is advanced register formatting information, which most people
won't notice is missing anyway. If they do, the logs contain information
about this.
If you connect (lldb without libxml2) > (gdbserver, or a stub inspired
by it)
you will see this warning. As they do not support qRegisterInfo.
```
$ ./bin/lldb /tmp/test.o -o "gdb-remote 1234"
(lldb) target create "/tmp/test.o"
Current executable set to '/tmp/test.o' (aarch64).
(lldb) gdb-remote 1234
warning: the debug server supports Target Description XML but LLDB does not have XML parsing enabled. Using "qRegisterInfo" was also not possible. Register information may be incorrect or missing.
```
When qRegisterInfo is not supported, there are 4 possible situations.
1. The debug server offered Target XML and we do not have libxml2
We should warn the user so they can find an lldb with libxml2.
2. The debug server offered Target XML but it was not valid XML
Ideally we'd warn here too, but the error handling needs more
work to implement this, and there is logging for it if you know
where to look.
3. The debug server did not offer Target XML and we have libxml2
4. The debug server did not offer Target XML and we do have libxml2
There's no XML to parse, so no reason to warn. The user is not getting
a worse debug experience because we lack libxml2.
Their only course of action here would be to replace the debug stub.
Given that this occurs a lot with stubs embedded in kernels or debug
hardware, they may not have a choice either.
Commit: 1df7b512bde79a2580e1599b9e5a01b3505f7659
https://github.com/llvm/llvm-project/commit/1df7b512bde79a2580e1599b9e5a01b3505f7659
Author: Vladimir Vuksanovic <109677816+vvuksanovic at users.noreply.github.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
A clang/test/Sema/format-attr-missing-gnu.c
A clang/test/Sema/format-attr-missing.c
A clang/test/Sema/format-attr-missing.cpp
A clang/test/Sema/format-attr-missing.m
M clang/test/Sema/format-strings-scanf.c
M clang/test/Sema/format-strings.c
M clang/test/SemaCXX/format-strings.cpp
M clang/test/SemaObjC/format-strings-objc.m
Log Message:
-----------
[Sema] Suggest missing format attributes (#166738)
Implements the `-Wmissing-format-attribute` diagnostic as a subgroup of
`-Wformat-nonliteral`. It suggests adding format attributes to function
declarations that call other format functions and pass the format string
to them.
This is an updated implementation of #105479.
---------
Co-authored-by: Budimir Arandjelovic <budimir.arandjelovic at htecgroup.com>
Commit: 0a658496a2e3f3ff831ce5bfa76432d024bc15d2
https://github.com/llvm/llvm-project/commit/0a658496a2e3f3ff831ce5bfa76432d024bc15d2
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
Log Message:
-----------
[X86] EltsFromConsecutiveLoads - only attempt to recognise reverse patterns from all load element patterns (#170852)
Noticed while investigating a regression reported after #168706 - don't
attempt this if any elements are zero/undef - there is a potential issue
with reverse(insert_subvector(undef,load(),0)) patterns - but I haven't
managed to create a fail case.
Commit: 5c9c0341b06f671972756537114c4f6b5f39ec72
https://github.com/llvm/llvm-project/commit/5c9c0341b06f671972756537114c4f6b5f39ec72
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M libcxx/docs/VendorDocumentation.rst
M libcxx/include/__configuration/availability.h
Log Message:
-----------
[libc++] Move the documentation for availability to our RST docs (#169371)
We have quite a bit of documentation inside <__configuration/availability.h>
about the availability markups. This documentation would be better to have as
part of our general documentation to improve discoverability. A link to the
new location is added to <__configuration/availability.h> as well.
Commit: 0064f764430bef44c0021c50cac509fbe6488157
https://github.com/llvm/llvm-project/commit/0064f764430bef44c0021c50cac509fbe6488157
Author: Nico Weber <thakis at chromium.org>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/utils/gn/build/sync_source_lists_from_cmake.py
Log Message:
-----------
[gn] Make sync script handle removing singular sources
Without this, syncing the unittests/Passes change in a25e3674ae65
didn't work right: it'd add the new file, but not remove the old one,
because it wasn't followed by a `,` due to being a one-element list.
Commit: fb1c5638ce9d22dddb13517945ca1e6e2b751909
https://github.com/llvm/llvm-project/commit/fb1c5638ce9d22dddb13517945ca1e6e2b751909
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/utils/gn/secondary/llvm/unittests/ExecutionEngine/Orc/BUILD.gn
Log Message:
-----------
[gn build] Port 1a09ac584cee
Commit: 78fb0f875dae392389abd9f5f2181e8ebed166ba
https://github.com/llvm/llvm-project/commit/78fb0f875dae392389abd9f5f2181e8ebed166ba
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
Log Message:
-----------
[gn build] Port 5911754a3085
Commit: 03afb4f528b2d6edc04853b784d555653e803d9e
https://github.com/llvm/llvm-project/commit/03afb4f528b2d6edc04853b784d555653e803d9e
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/utils/gn/secondary/bolt/unittests/Passes/BUILD.gn
Log Message:
-----------
[gn build] Port a25e3674ae65
Commit: accf0de9902b6031d6a5eaa1cccd23ec2b820dc2
https://github.com/llvm/llvm-project/commit/accf0de9902b6031d6a5eaa1cccd23ec2b820dc2
Author: Jack <30296634+jack-slingsby at users.noreply.github.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M mlir/lib/Dialect/Index/IR/IndexDialect.cpp
A mlir/test/Dialect/Index/inliner-interface.mlir
Log Message:
-----------
[mlir] Add inliner interface to the index dialect (#170459)
Add the inliner interface to the index dialect allowing the `inline`
pass to inline all index operations.
Commit: 5e10d2106ab48918325e4839820cdb959ddde5bb
https://github.com/llvm/llvm-project/commit/5e10d2106ab48918325e4839820cdb959ddde5bb
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
Log Message:
-----------
[SimplifyLibCalls] Use ConstantInt::getSigned() in some places
This ensures proper sign extension. Doesn't matter in practice right
now, but will once ConstantInt::get() becomes stricter.
Commit: fde7819ad10001542d41e72ffd29b34f828c0794
https://github.com/llvm/llvm-project/commit/fde7819ad10001542d41e72ffd29b34f828c0794
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
DAG: Add overload of makeLibCall which calls an RTLIB::LibcallImpl (#170584)
Commit: 01ce3e296b7bb5cca3f9aee5e9b3517312c58736
https://github.com/llvm/llvm-project/commit/01ce3e296b7bb5cca3f9aee5e9b3517312c58736
Author: Radovan Božić <radovan.bozic at htecgroup.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/include/clang/Basic/Builtins.h
M clang/include/clang/Basic/Builtins.td
M clang/include/clang/Basic/BuiltinsBase.td
M clang/lib/Basic/Builtins.cpp
M clang/lib/Sema/SemaDecl.cpp
A clang/test/Sema/format-strings-nonnull.c
A clang/test/Sema/format-strings-nonnull.cpp
M clang/test/Sema/format-strings.c
M clang/test/Sema/warn-fortify-scanf.c
M clang/test/SemaCXX/format-strings-0x.cpp
M clang/test/SemaObjC/format-strings-objc.m
Log Message:
-----------
[clang][sema] Add nonnull attribute to builtin format functions (#160988)
Annotate printf/scanf and related builtins with the nonnull attribute on
their format string parameters. This enables diagnostics when NULL is
passed, matching GCC behavior. Updated existing Sema tests and added new
ones for coverage. Closes issue #33923
Commit: 5ca9822fa8362ffe77469920fdbfbab5c8f684cf
https://github.com/llvm/llvm-project/commit/5ca9822fa8362ffe77469920fdbfbab5c8f684cf
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
Log Message:
-----------
DAG: Avoid asserting on libcall action if function is unavailable (#170585)
Commit: 3ea796e02362b3dfe4cac4cb8517ec3484675c5d
https://github.com/llvm/llvm-project/commit/3ea796e02362b3dfe4cac4cb8517ec3484675c5d
Author: Sergei Barannikov <barannikov88 at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Target/Mips/CMakeLists.txt
M llvm/lib/Target/Mips/Mips32r6InstrInfo.td
M llvm/lib/Target/Mips/MipsDSPInstrInfo.td
M llvm/lib/Target/Mips/MipsISelLowering.cpp
M llvm/lib/Target/Mips/MipsISelLowering.h
M llvm/lib/Target/Mips/MipsInstrFPU.td
M llvm/lib/Target/Mips/MipsInstrInfo.td
M llvm/lib/Target/Mips/MipsMSAInstrInfo.td
M llvm/lib/Target/Mips/MipsRegisterInfo.td
M llvm/lib/Target/Mips/MipsSelectionDAGInfo.cpp
M llvm/lib/Target/Mips/MipsSelectionDAGInfo.h
Log Message:
-----------
[Mips] TableGen-erate SDNode descriptions (#168307)
This allows SDNodes to be validated against their expected type profiles
and reduces the number of changes required to add a new node.
Many DSP nodes were failing validation, this is fixed as part of this
PR.
Part of #119709.
Pull Request: https://github.com/llvm/llvm-project/pull/168307
Commit: 72402e8b6709818915debf8cbd6a78faf8849df8
https://github.com/llvm/llvm-project/commit/72402e8b6709818915debf8cbd6a78faf8849df8
Author: Chenguang Wang <w3cing at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M libcxx/include/CMakeLists.txt
M libcxx/include/__locale_dir/locale_base_api.h
A libcxx/include/__locale_dir/support/newlib.h
M libcxx/include/module.modulemap.in
Log Message:
-----------
[libc++] Support using Newlib as libc with locale support. (#167962)
Tested on Newlib v4.5.0. The newlib.h was mostly copied from linux.h
within the same directory.
Newlib locale support was initially added in http://llvm.org/D5385,
but removed in #113721 , because of revision http://llvm.org/D49927.
Commit: c1e17e59922b52afc548f59ed2f4e2a2121f10db
https://github.com/llvm/llvm-project/commit/c1e17e59922b52afc548f59ed2f4e2a2121f10db
Author: Utkarsh Saxena <usx at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/lib/Analysis/ThreadSafety.cpp
M clang/test/SemaCXX/warn-thread-safety-analysis.cpp
Log Message:
-----------
[ThreadSafety] Ignore parameter destructors (#170843)
Fixes a false positive in thread safety analysis when function
parameters have lock/unlock annotations in their constructor/destructor.
PR #169320 added destructors to the CFG, which introduced false
positives in thread safety analysis for function parameters. According
to [expr.call#6](https://eel.is/c++draft/expr.call#6), parameter
initialization occurs in the caller's context while destruction occurs
in the callee's context.
```cpp
class A {
public:
A() EXCLUSIVE_LOCK_FUNCTION(mu_) { mu_.Lock(); }
~A() UNLOCK_FUNCTION(mu_) { mu_.Unlock(); }
private:
Mutex mu_;
};
int do_something(A a) { // Previously: false positive warning
return 0;
}
```
Previously, thread safety analysis would see the destructor (unlock) in
`do_something` but not the corresponding constructor (lock) that
happened in the caller's context, causing a false positive.
Commit: d8171e633062eaac2a8a22caf2c256744cd6512a
https://github.com/llvm/llvm-project/commit/d8171e633062eaac2a8a22caf2c256744cd6512a
Author: Piotr Fusik <p.fusik at samsung.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/include/llvm/CodeGen/TargetInstrInfo.h
Log Message:
-----------
[CodeGen][NFC] Update Doxygen references to renamed parameters (#170253)
The parameters were renamed in cfe0393b8269b85e199025b2350277563f43cd29
and 6e70c370e5e8eb5d9035c65d6c4f2a2687e099b6.
Commit: f47bf010587fd5c9ea418468bb1f71395cc21788
https://github.com/llvm/llvm-project/commit/f47bf010587fd5c9ea418468bb1f71395cc21788
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel][mlir] Port accf0de9902b6031d6a5eaa1cccd23ec2b820dc2: index dialect deps (#170866)
Commit: 03e42c97c7c0f6df51e3298cafa60b1f1e59c0b9
https://github.com/llvm/llvm-project/commit/03e42c97c7c0f6df51e3298cafa60b1f1e59c0b9
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/docs/HIPSupport.rst
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaCUDA.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaTemplateDeductionGuide.cpp
A clang/test/SemaCUDA/deduction-guide-attrs.cu
A clang/test/SemaCUDA/deduction-guide-overload.cu
A clang/test/SemaCUDA/deduction-guide.cu
Log Message:
-----------
Reland [CUDA][HIP] Fix CTAD for host/device constructors (#168711) (#170481)
Clang currently does not allow using CTAD in CUDA/HIP device functions
since deduction guides are treated as host-only. This patch fixes that
by treating deduction guides as host+device. The rationale is that
deduction guides do not actually generate code in IR, and there is an
existing check for device/host correctness for constructors.
The patch also suppresses duplicate implicit deduction guides from
host/device constructors with identical signatures and constraints to
prevent ambiguity.
For CUDA/HIP, deduction guides are now always implicitly enabled for
both host and device, which matches nvcc's effective behavior. Unlike
nvcc, which silently ignores explicit CUDA/HIP target attributes on
deduction guides, Clang diagnoses device- and host-only attributes as
errors to keep the syntax clean and avoid confusion.
This ensures CTAD works correctly in CUDA/HIP for constructors with
different target attributes and provides clearer diagnostics when users
attempt to annotate deduction guides with CUDA/HIP target attributes.
Example:
```
#include <tuple>
__host__ __device__ void func()
{
std::tuple<int, int> t = std::tuple(1, 1);
}
```
This compiles with nvcc but fails with clang for CUDA/HIP without this
fix.
Reference: https://godbolt.org/z/WhT1GrhWE
Fixes: https://github.com/ROCm/ROCm/issues/5646
Fixes: https://github.com/llvm/llvm-project/issues/146646
Commit: 6dac9b48618516cbeb813398a5aefe89b3cf9134
https://github.com/llvm/llvm-project/commit/6dac9b48618516cbeb813398a5aefe89b3cf9134
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/include/clang/AST/PrettyPrinter.h
M clang/lib/AST/Decl.cpp
M clang/lib/ASTMatchers/ASTMatchersInternal.cpp
M clang/lib/CIR/CodeGen/CIRGenTypes.cpp
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/lib/CodeGen/CodeGenTypes.cpp
M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
Log Message:
-----------
[clang][TypePrinter][NFC] Make SuppressInlineNamespaceMode an enum class (#170802)
The enum cases for `SuppressInlineNamespaceMode` leaked into the rest of
`PrintingPolicy`, meaning if we wanted to introduce another enum (which
I'm planning on doing in an unrelated PR), then `All`/`None`/`Redundant`
are all already taken, which are quite useful names.
This patch turns `SuppressInlineNamespaceMode` into an `enum class`,
freeing up the names for use by other future enums in `PrintingPolicy`.
Unfortunately that means we have to cast the values when assigning to
`PrintingPolicy::SuppressInlineNamespace`, because its actual type is
`unsigned`. But if we ever make the bitfields have proper enumeration
types (which AFAIU is dependent on an MSVC codegen fix), then we can get
rid of those casts.
While doing this I found three instances of assigning booleans to
`SuppressInlineNamespace`. I added a FIXME in LLDB to check what the
intended value of the enum should be.
Commit: 2833d9f15ad9443594e1a23878f7e531116aeaa5
https://github.com/llvm/llvm-project/commit/2833d9f15ad9443594e1a23878f7e531116aeaa5
Author: Jake Egan <Jake.egan at ibm.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M compiler-rt/lib/asan/asan_interceptors.h
Log Message:
-----------
[NFC][asan] Fix formatting of asan_interceptors.h (#170361)
Format the whole `asan_interceptors.h` file to prepare for some changes
in PR https://github.com/llvm/llvm-project/pull/131870.
Commit: d743616c87ffc0347785f851e46534fcc675382a
https://github.com/llvm/llvm-project/commit/d743616c87ffc0347785f851e46534fcc675382a
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[bazel][Mips] Port 3ea796e02362b3dfe4cac4cb8517ec3484675c5d: sdnode tablegen (#170869)
Commit: ad6e9f9f9ffb654cafa01f4bece95c788115a982
https://github.com/llvm/llvm-project/commit/ad6e9f9f9ffb654cafa01f4bece95c788115a982
Author: Nico Weber <thakis at chromium.org>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Target/Mips/BUILD.gn
Log Message:
-----------
[gn] port 3ea796e0236 (Mips SDNodeInfo)
Commit: 58b71403868ca3dc20d01f0c7e66b8ec5b31a162
https://github.com/llvm/llvm-project/commit/58b71403868ca3dc20d01f0c7e66b8ec5b31a162
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
Log Message:
-----------
[gn build] Port 72402e8b6709
Commit: 716fffe53059456011619549b1330490ec3cf7f8
https://github.com/llvm/llvm-project/commit/716fffe53059456011619549b1330490ec3cf7f8
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/include/llvm/IR/RuntimeLibcalls.td
A llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aix.ll
Log Message:
-----------
PowerPC: Add vec_malloc functions to AIX in RuntimeLibcalls (#167089)
Commit: 23f09fd3e9efd43c58dcc42f001aeda139f429f8
https://github.com/llvm/llvm-project/commit/23f09fd3e9efd43c58dcc42f001aeda139f429f8
Author: Jerry Dang <kuroyukiasuna at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
A llvm/test/Transforms/VectorCombine/AArch64/shuffle-of-intrinsic-permute.ll
M llvm/test/Transforms/VectorCombine/AArch64/shuffletoidentity.ll
M llvm/test/Transforms/VectorCombine/X86/shuffle-of-fma-const.ll
Log Message:
-----------
[VectorCombine] Fold permute of intrinsics into intrinsic of permutes: shuffle(intrinsic, poison/undef) -> intrinsic(shuffle) (#170052)
[VectorCombine] Fold permute of intrinsics into intrinsic of permutes
Add foldPermuteOfIntrinsic to transform:
shuffle(intrinsic(args), poison) -> intrinsic(shuffle(args))
when the shuffle is a permute (operates on single vector) and the cost
model determines the transformation is profitable.
This optimization is particularly beneficial for subvector extractions
where we can avoid computing unused elements.
For example:
%fma = call <8 x float> @llvm.fma.v8f32(<8 x float> %a, %b, %c)
%result = shufflevector <8 x float> %fma, poison, <4 x i32> <0,1,2,3>
transforms to:
%a_low = shufflevector <8 x float> %a, poison, <4 x i32> <0,1,2,3>
%b_low = shufflevector <8 x float> %b, poison, <4 x i32> <0,1,2,3>
%c_low = shufflevector <8 x float> %c, poison, <4 x i32> <0,1,2,3>
%result = call <4 x float> @llvm.fma.v4f32(%a_low, %b_low, %c_low)
The transformation creates one shuffle per vector argument and calls the
intrinsic with smaller vector types, reducing computation when only a
subset of elements is needed.
The existing foldShuffleOfIntrinsics handled the blend case (two
intrinsic inputs), this adds support for the permute case (single
intrinsic input).
Fixes #170002
Commit: d98412572142ce759a4462fadc528ac733c93b40
https://github.com/llvm/llvm-project/commit/d98412572142ce759a4462fadc528ac733c93b40
Author: Gergely Bálint <gergely.balint at arm.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M bolt/include/bolt/Core/MCPlusBuilder.h
M bolt/lib/Passes/Instrumentation.cpp
M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
M bolt/runtime/instr.cpp
M bolt/runtime/sys_aarch64.h
M bolt/test/runtime/AArch64/instrumentation-ind-call.c
Log Message:
-----------
Revert "[BOLT][AArch64] Fixed indirect call instrumentation snippet" (#170874)
Reverts llvm/llvm-project#141918
The patch broke a buildbot while applying instrumentation:
https://lab.llvm.org/buildbot/#/builders/128/builds/8866
Reverting until the issue is triaged.
Co-authored-by: Paschalis Mpeis <paschalis.mpeis at arm.com>
Commit: 7f2e6f128d2e8bc20bb95ddd9af9e23ea8fea5d2
https://github.com/llvm/llvm-project/commit/7f2e6f128d2e8bc20bb95ddd9af9e23ea8fea5d2
Author: Amina Chabane <amina.chabane at arm.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/include/clang/Basic/TargetBuiltins.h
M clang/include/clang/Basic/arm_sve.td
M clang/include/clang/Basic/arm_sve_sme_incl.td
M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
A clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_fmmla-f32f16.c
M clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_matmul_fp32.c
M clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_matmul_fp64.c
A clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_fmmla-f16mf8.c
A clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_fmmla-f32mf8.c
M llvm/include/llvm/IR/IntrinsicsAArch64.td
M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
M llvm/lib/Target/AArch64/SVEInstrFormats.td
A llvm/test/CodeGen/AArch64/sve-fmmla-f32f16.ll
A llvm/test/CodeGen/AArch64/sve2-fmmla-f16mf8.ll
A llvm/test/CodeGen/AArch64/sve2-fmmla-f32mf8.ll
Log Message:
-----------
[Clang][AArch64] Implement widening FMMLA intrinsics (#165282)
Proposed in [this ACLE
proposal](https://github.com/ARM-software/acle/pull/409), this PR
implements widening FMMLA intrinsics.
- F16 to F32
- MF8 to F32
- MF8 to F16
Additional changes:
- IsOverloadCvt flag renamed to IsOverloadFirstandLast for clarity, as
the name implies conversion. Implementation remains unchanged.
Commit: 41f00cb3dec39f13a21cf635528bbc36c2c0c965
https://github.com/llvm/llvm-project/commit/41f00cb3dec39f13a21cf635528bbc36c2c0c965
Author: AidinT <at.aidin at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M mlir/docs/Interfaces.md
M mlir/include/mlir/IR/Interfaces.td
M mlir/include/mlir/TableGen/Interfaces.h
M mlir/include/mlir/Transforms/CMakeLists.txt
A mlir/include/mlir/Transforms/DialectInlinerInterface.td
M mlir/include/mlir/Transforms/InliningUtils.h
M mlir/lib/TableGen/Interfaces.cpp
M mlir/lib/Transforms/CMakeLists.txt
A mlir/test/mlir-tblgen/dialect-interface.td
M mlir/tools/mlir-tblgen/CMakeLists.txt
A mlir/tools/mlir-tblgen/DialectInterfacesGen.cpp
Log Message:
-----------
[MLIR] feat(mlir-tblgen): Add support for dialect interfaces (#170046)
Currently, Dialect Interfaces can't be defined in ODS. This PR adds the
support for dialect interfaces. It follows the same approach with other
interfaces and extends on top of `Interface` class defined in
`mlir/TableGen/Interfaces.h`.
Given the following input:
```tablegen
#ifndef MY_INTERFACES
#define MY_INTERFACES
include "mlir/IR/Interfaces.td"
def DialectInlinerInterface : DialectInterface<"DialectInlinerInterface"> {
let description = [{
Define a base inlining interface class to allow for dialects to opt-in to the inliner.
}];
let cppNamespace = "::mlir";
let methods = [
InterfaceMethod<
/*desc=*/ [{
Returns true if the given region 'src' can be inlined into the region
'dest' that is attached to an operation registered to the current dialect.
'valueMapping' contains any remapped values from within the 'src' region.
This can be used to examine what values will replace entry arguments into
the 'src' region, for example.
}],
/*returnType=*/ "bool",
/*methodName=*/ "isLegalToInline",
/*args=*/ (ins "::mlir::Region *":$dest, "::mlir::Region *":$src, "::mlir::IRMapping &":$valueMapping),
/*methodBody=*/ [{
return true;
}]
>
];
}
#endif
```
It will generate the following code:
```cpp
/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|* *|
|* Dialect Interface Declarations *|
|* *|
|* Automatically generated file, do not edit! *|
|* *|
\*===----------------------------------------------------------------------===*/
namespace mlir {
/// Define a base inlining interface class to allow for dialects to opt-in to the inliner.
class DialectInlinerInterface : public ::mlir::DialectInterface::Base<DialectInlinerInterface> {
public:
/// Returns true if the given region 'src' can be inlined into the region
/// 'dest' that is attached to an operation registered to the current dialect.
/// 'valueMapping' contains any remapped values from within the 'src' region.
/// This can be used to examine what values will replace entry arguments into
/// the 'src' region, for example.
virtual bool isLegalToInline(::mlir::Region * dest, ::mlir::Region * src, ::mlir::IRMapping & valueMapping) const;
protected:
DialectInlinerInterface(::mlir::Dialect *dialect) : Base(dialect) {}
};
} // namespace mlir
bool ::mlir::DialectInlinerInterface::isLegalToInline(::mlir::Region * dest, ::mlir::Region * src, ::mlir::IRMapping & valueMapping) const {
return true;
}
```
Commit: 38e5878853d3d9a259cea4a2e9ff07b5f1c3859a
https://github.com/llvm/llvm-project/commit/38e5878853d3d9a259cea4a2e9ff07b5f1c3859a
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/test/Transforms/PGOProfile/prof-verify-known-cold.ll
M llvm/test/Transforms/PGOProfile/prof-verify.ll
Log Message:
-----------
[profcheck][test] Use quotes for when not using the internal lit shell (#170873)
Using `-passes=function(prof-inject),module(prof-verify)` needs to be
quoted when using a non-lit shell.
Fixes tests in 4b4294473280a8e37d818a9362e33544799cb4e4 when not using
lit's shell
Commit: 80760b0b1d05acd964fa9175b5cdd764a2ee798d
https://github.com/llvm/llvm-project/commit/80760b0b1d05acd964fa9175b5cdd764a2ee798d
Author: valadaptive <79560998+valadaptive at users.noreply.github.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h
M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
M llvm/test/Transforms/InstCombine/float-shrink-compare.ll
Log Message:
-----------
[SimplifyLibCalls] Recognize and simplify f[min/max]imumnum (#170699)
Unlike fmin and fmax, these are deterministic with regards to signed
zero.
Commit: f26360f2150e7ff916f2aa5d5fe3ff32d1780c8c
https://github.com/llvm/llvm-project/commit/f26360f2150e7ff916f2aa5d5fe3ff32d1780c8c
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/docs/ReleaseNotes.md
M llvm/include/llvm-c/Core.h
M llvm/include/llvm/IR/Instructions.h
M llvm/include/llvm/IR/User.h
M llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
M llvm/lib/CodeGen/TypePromotion.cpp
M llvm/lib/IR/Core.cpp
M llvm/lib/IR/Instructions.cpp
M llvm/lib/IR/User.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
M llvm/unittests/IR/InstructionsTest.cpp
M llvm/unittests/IR/VerifierTest.cpp
Log Message:
-----------
[IR] Don't store switch case values as operands (#166842)
SwitchInst case values must be ConstantInt, which have no use list.
Therefore it is not necessary to store these as Use, instead store them
more efficiently as a simple array of pointers after the uses, similar
to how PHINode stores basic blocks.
After this change, the successors of all terminators are stored
consecutively in the operand list. This is preparatory work for
improving the performance of successor access.
Commit: 94a2bc9ed747aefeaa4ef2fae8470c69dc4fe29a
https://github.com/llvm/llvm-project/commit/94a2bc9ed747aefeaa4ef2fae8470c69dc4fe29a
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang-tools-extra/Maintainers.rst
Log Message:
-----------
[clang-tidy] Add vbvictor to list of maintainers (#167407)
I've been actively contributing to the `clang-tidy` project this year
and was reviewing patches practically daily for the past half a year.
[As per LLVM
policy](https://llvm.org/docs/DeveloperPolicy.html#maintainers), I
believe I've successfully carried out maintainer responsibilities, thus
I volunteer to become one.
I'm looking forward to staying engaged with LLVM community, help
newcomers and develop `clang-tidy` as well as other LLVM projects.
Commit: f71be4038910e897b0ed78a963e00ac1fdc9b6cc
https://github.com/llvm/llvm-project/commit/f71be4038910e897b0ed78a963e00ac1fdc9b6cc
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel][mlir] Port 41f00cb3dec39f13a21cf635528bbc36c2c0c965: tablegen dialect interfaces (#170884)
Commit: a94ee7e6084a4224268f267139acae777ab4bd0f
https://github.com/llvm/llvm-project/commit/a94ee7e6084a4224268f267139acae777ab4bd0f
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/test/Transforms/InstCombine/select-safe-impliedcond-transforms.ll
Log Message:
-----------
[InstCombine] Fix profile metadata when folding implied conditionals (#170756)
\#163412 touched this last and directly propagated the profile
information. This was not correct for the motivating example:
%a = icmp eq i32 %z, 0
%b = icmp eq i32 %z, 1
%v2 = select i1 %b, i1 true, i1 %pred, !prof !18
%v3 = and i1 %a, %v2
to
%a = icmp eq i32 %z, 0
%v3 = select i1 %a, i1 %pred, i1 false
z == 1 does not imply that z == 0 for i8. In general for the and case,
we need a => b, which means that b must be equivalent or more
restrictive than a, which means we cannot propagate profile information
without additional information on the value distribution of z. For the
or case we need !a => b. We again cannot derive profile information for
a/!a without additional value distribution information.
Commit: 69721ac37c0c741337f65c9d451a1c4d41e83114
https://github.com/llvm/llvm-project/commit/69721ac37c0c741337f65c9d451a1c4d41e83114
Author: Alexander Richardson <alexrichardson at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/utils/TableGen/Common/CodeGenInstAlias.cpp
Log Message:
-----------
[TableGen] Report a better error when an InstAlias does not use a RegClass
Also fix the missing space in the error message. I notice while changing
RISC-V's loads and stores to use RegClassByHwMode and got a non-descriptive
error from `T.getRegisterClass(OpRC)` when parsing the InstAliases.
Reviewed By: arsenm
Pull Request: https://github.com/llvm/llvm-project/pull/168444
Commit: 8505a879e57f7fa978576b25b6d0d1b8304009eb
https://github.com/llvm/llvm-project/commit/8505a879e57f7fa978576b25b6d0d1b8304009eb
Author: Alexander Richardson <alexrichardson at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/utils/TableGen/Common/CodeGenInstAlias.cpp
M llvm/utils/TableGen/Common/CodeGenTarget.cpp
M llvm/utils/TableGen/Common/CodeGenTarget.h
Log Message:
-----------
[TableGen] CodeGenInstAlias: reduce calls to isSubClassOf. NFCI
Add a `getAsRegClassLike()` helper to CodeGenTarget that handles the
`isSubClassOf` calls internally. This slightly reduces duplicated code
since it can be shared with `getInitValueAsRegClassLike()`.
Also change the llvm_unreachable at the end of this function to an
actual error since it could be reachable with bad inputs.
Reviewed By: s-barannikov, arsenm
Pull Request: https://github.com/llvm/llvm-project/pull/170767
Commit: c2cb493824251432184cd9dfafb09fcfbcce6d28
https://github.com/llvm/llvm-project/commit/c2cb493824251432184cd9dfafb09fcfbcce6d28
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M mlir/include/mlir/IR/Remarks.h
M mlir/lib/IR/Remarks.cpp
M mlir/unittests/IR/RemarkTest.cpp
Log Message:
-----------
[mlir][remarks] Add support for Attributes in Remark Args (#170882)
Extend Remark::Arg to optionally store the original Attribute when
constructed from one. This allows custom remark streamers to access the
underlying attribute for type-specific handling, rather than being
limited to the string representation.
For example, a streamer processing an ArrayAttr argument can iterate
over its elements, or a streamer can check the specific attribute type
to apply custom formatting.
Changes:
- Add std::optional<Attribute> member to Remark::Arg
- Update Arg(StringRef, Attribute) constructor to store the attribute
- Add hasAttribute() and getAttribute() accessors
- Add unit test for Arg with ArrayAttr
Commit: 85e7860319844308372ef7eea22ba88295989f5f
https://github.com/llvm/llvm-project/commit/85e7860319844308372ef7eea22ba88295989f5f
Author: nvptm <pmathew at nvidia.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/OpenACC/OpenACCUtils.h
M mlir/lib/Dialect/OpenACC/Transforms/ACCImplicitData.cpp
M mlir/lib/Dialect/OpenACC/Utils/OpenACCUtils.cpp
M mlir/unittests/Dialect/OpenACC/OpenACCUtilsTest.cpp
Log Message:
-----------
[mlir][acc] Make getDominatingDataClauses an OpenACC utility (#170549)
Moving getDominatingDataClauses to OpenACCUtils allows reuse.
Commit: 35c664d7ea25fd95e67b88c4a2d2f336690f1286
https://github.com/llvm/llvm-project/commit/35c664d7ea25fd95e67b88c4a2d2f336690f1286
Author: jimingham <jingham at apple.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M lldb/source/Commands/CommandObjectBreakpoint.cpp
Log Message:
-----------
Move checking m_dummy_target to after raw-plus-option parsing. (#170888)
CommandObjectBreakpointAddPattern is a raw command. I was adjusting the
patch for changes to handle the dummy target changes done while the
patch was in review, and I copied the lines to the beginning of the
DoExecute, but in the case of raw commands, you have to do the option
parsing by hand, and this was before the parsing was done so the state
wasn't determined yet.
Commit: 4bc783be2dab2b0b2b3010158891e44a2b4ee991
https://github.com/llvm/llvm-project/commit/4bc783be2dab2b0b2b3010158891e44a2b4ee991
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M compiler-rt/test/asan/TestCases/Posix/deep_call_stack.cpp
Log Message:
-----------
[ASan] Disable test that sets call stack on Darwin (#170786)
This test fails with the internal shell as we implement ulimit with a
python wrapper. This python wrapper fails on recent versions of MacOS to
set the stack size limit lower, or even to the current values. More
discussion is in https://github.com/python/cpython/issues/78783 towards
the bottom (it seems like a new issue should be opened).
It does not seem like we lose significant test coverage by disabling
this on MacOS as the test running on Linux should catch any major
regressions. We can also simply reenable once the issue is fixed
(although writing a simple c program with calls setrlimit directly also
fails in the smae manner).
Commit: b360a782ca5da938d5e4f7c791508932a0bfc328
https://github.com/llvm/llvm-project/commit/b360a782ca5da938d5e4f7c791508932a0bfc328
Author: Akash Banerjee <akash.banerjee at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.h
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/test/Integration/OpenMP/map-types-and-sizes.f90
M flang/test/Lower/OpenMP/target.f90
M mlir/include/mlir/Dialect/OpenMP/OpenMPEnums.td
M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
M mlir/test/Target/LLVMIR/omptarget-llvm.mlir
M mlir/test/Target/LLVMIR/openmp-todo.mlir
A offload/test/offloading/fortran/target-is-device-ptr.f90
Log Message:
-----------
Reland "[Flang][OpenMP] Add lowering support for is_device_ptr clause (#169331)" (#170851)
Add support for OpenMP is_device_ptr clause for target directives.
[MLIR][OpenMP] Add OpenMPToLLVMIRTranslation support for is_device_ptr
#169367 This PR adds support for the OpenMP is_device_ptr clause in the
MLIR to LLVM IR translation for target regions. The is_device_ptr clause
allows device pointers (allocated via OpenMP runtime APIs) to be used
directly in target regions without implicit mapping.
Commit: 82f7d3c7660c9edb871858e066a78b504a74404b
https://github.com/llvm/llvm-project/commit/82f7d3c7660c9edb871858e066a78b504a74404b
Author: Peter Rong <peterrong96 at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/include/llvm/IR/Module.h
M llvm/tools/llvm-ir2vec/llvm-ir2vec.cpp
M llvm/unittests/IR/ModuleTest.cpp
Log Message:
-----------
[RFC] [IR] Modules can make filtered range to iterate function definitions only (#167972)
We often wish to iterate over all function definitions in a module for
transformations.
Such API doesn't exists yet, so what people normally used is to iterate
over all functions and skip the declarations:
```cpp
for (auto& F: M) {
if (F.isDeclaration()) continue;
}
```
A regex search of the following pattern shows 100+ hits inside llvm, let
along other patterns, e.g. collect all definitions in a module into a
worklist.
```
for \(.*F.*\).*\n.*if \(F.isDeclaration\(\)\).*\n.*continue;
```
This pattern is verbose and hard to review in a long loop.
As an alternative, this patch provides a new API that iterates over
definitions only.
Tests:
1. Added unit test
2. Touching @svkeerthy 's tool (also to show the cleanness of the new
API).
Note: `function_definitions` seems a bit long, I'm open to suggestions
to other names.
Commit: 26f511626611c2b4ae1410b736158ea82c57c8ce
https://github.com/llvm/llvm-project/commit/26f511626611c2b4ae1410b736158ea82c57c8ce
Author: David Green <david.green at arm.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64.h
A llvm/lib/Target/AArch64/AArch64RedundantCondBranchPass.cpp
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
M llvm/lib/Target/AArch64/CMakeLists.txt
M llvm/test/CodeGen/AArch64/O3-pipeline.ll
M llvm/test/CodeGen/AArch64/arm64-rev.ll
M llvm/test/CodeGen/AArch64/arm64-shrink-wrapping.ll
M llvm/test/CodeGen/AArch64/block-placement-optimize-branches.ll
M llvm/test/CodeGen/AArch64/cbz_wzr.mir
M llvm/test/CodeGen/AArch64/pr164181.ll
M llvm/test/CodeGen/AArch64/pr166870.ll
M llvm/test/CodeGen/AArch64/tbz-tbnz.ll
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll.generated.expected
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll.nogenerated.expected
Log Message:
-----------
[AArch64] Optimize CBZ wzr and friends. (#161508)
In certain situations, especially with zero phi operands propagated after tail
duplications, we can end up with CBZ/CBNZ/TBZ/TBNZ with a zero register. It
can can be introduced late in the pipeline.
This patch adds a basic pass to fold them away to either a direct branch or
removing the instruction entirely. It runs quite late n the pipeline, so doesnt
fit into any of the existing passes. It only needs to look at the terminators
to each BB, so the new pass should have a limited in compile-time impact.
Commit: 74f49a240edff4570189b139dc19a22b86ce54b7
https://github.com/llvm/llvm-project/commit/74f49a240edff4570189b139dc19a22b86ce54b7
Author: Ebin Jose <ebin371 at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/test/CodeGen/builtins.c
Log Message:
-----------
[clang codegen] Fix __builtin_bswapg with bool operand (#169285)
Prevents assertion in CGBuiltin for i1 - returns identity. Created test
file for the same.
Fixes #168690.
Commit: fb6513130de7578c847aaaf6c278809b6c2476c3
https://github.com/llvm/llvm-project/commit/fb6513130de7578c847aaaf6c278809b6c2476c3
Author: happyCoder92 <wiktorg at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M compiler-rt/include/sanitizer/asan_interface.h
M compiler-rt/lib/asan/asan_fake_stack.cpp
M compiler-rt/lib/asan/asan_interface.inc
M compiler-rt/lib/asan/asan_thread.cpp
M compiler-rt/lib/asan/asan_thread.h
M compiler-rt/lib/asan_abi/asan_abi.cpp
M compiler-rt/lib/asan_abi/asan_abi.h
M compiler-rt/lib/asan_abi/asan_abi_shim.cpp
A compiler-rt/test/asan/TestCases/suppress_fake_stack.cpp
A compiler-rt/test/asan/TestCases/suppress_fake_stack_force_disabled.cpp
Log Message:
-----------
Add API to temporalily suppress usage of ASAN's fake stack (#160135)
Intended use-case is for threads that use (or switch to) stack with
special properties e.g. backed by MADV_DONTDUMP memory.
---------
Co-authored-by: Vitaly Buka <vitalybuka at google.com>
Commit: a5c751e3253f09567cef180edee60cc19cc5e366
https://github.com/llvm/llvm-project/commit/a5c751e3253f09567cef180edee60cc19cc5e366
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Target/AArch64/BUILD.gn
Log Message:
-----------
[gn build] Port 26f511626611
Commit: a5b02e1fbdaccd366dc0b36e64af06c8af7be040
https://github.com/llvm/llvm-project/commit/a5b02e1fbdaccd366dc0b36e64af06c8af7be040
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/test/CodeGen/X86/merge-consecutive-loads-128.ll
Log Message:
-----------
[X86] Add EltsFromConsecutiveLoads test for infinite loop if we match reverse(vzload(ptr)) patterns (#170889)
This was fixed by #170852 - previously we're get stuck in a loop:
shuffle(movq(p),undef,1,0) -> bulid_vector(0, p[0]) -> shuffle(movq(p),1,0) .....
Commit: 190b8d0b4f19e1c3d68c5d153ec7be71a9969192
https://github.com/llvm/llvm-project/commit/190b8d0b4f19e1c3d68c5d153ec7be71a9969192
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/lib/Driver/ToolChains/Darwin.cpp
A clang/test/Driver/Inputs/basic_darwin_toolchain/usr/lib/libc++.dylib
A clang/test/Driver/Inputs/basic_darwin_toolchain/usr/lib/libc++experimental.a
A clang/test/Driver/Inputs/basic_darwin_toolchain_static/usr/bin/.keep
A clang/test/Driver/Inputs/basic_darwin_toolchain_static/usr/include/c++/v1/.keep
A clang/test/Driver/Inputs/basic_darwin_toolchain_static/usr/lib/libc++.a
A clang/test/Driver/Inputs/basic_darwin_toolchain_static/usr/lib/libc++experimental.a
M clang/test/Driver/darwin-header-search-libcxx.cpp
A clang/test/Driver/darwin-link-libcxx.cpp
M clang/test/Driver/experimental-library-flag.cpp
M compiler-rt/cmake/config-ix.cmake
Log Message:
-----------
[clang][Darwin] Prefer the toolchain-provided libc++.dylib if there is one (#170303)
When libc++ is bootstrapped with clang, the resulting clang uses the just-built libc++
headers from <install>/bin/../include/c++/v1. However, before this patch, clang would
still use the system-provided libc++.dylib (usually in the Apple SDK) because it would
fail to add the corresponding linker flag to find the just-built libc++. After this
patch, Clang will instead link against the toolchain provided `libc++.dylib` in
`<install>/lib` if it exists, which will result in programs being linked against
corresponding libc++ headers and dylib.
Fixes #77653
rdar://107060541
Commit: 67bd96661fa06248583b74989c713162e85998fd
https://github.com/llvm/llvm-project/commit/67bd96661fa06248583b74989c713162e85998fd
Author: Erich Keane <ekeane at nvidia.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenDeclOpenACC.cpp
M clang/lib/CIR/CodeGen/CIRGenOpenACCClause.cpp
M clang/lib/CIR/CodeGen/CIRGenOpenACCHelpers.h
A clang/test/CIR/CodeGenOpenACC/routine-device_type.cpp
Log Message:
-----------
[OpenACC][CIR] Implement 'device_type' lowering for Routine (#170893)
The 'device_type' clause modifies how the clauses that are legal after
it (seq, worker, vector, gang, bind) work. Previous patches were aware
of how that was going to happen, thanks to experience with doing the
same work on other constructs/clauses, so this is mostly just a repeat
of those.
Tests for the first 4 and interactions with them are included, but
'bind' is not yet implemented, so its device_type tests will be added
when it is lowered.
Commit: 2d98a366b79e9cc657a3cf0ee3203f046eab457a
https://github.com/llvm/llvm-project/commit/2d98a366b79e9cc657a3cf0ee3203f046eab457a
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Utils/LoopPeel.cpp
Log Message:
-----------
[LoopPeel] Fix typo Derefencebale -> Dereferenceable. NFC (#170791)
Co-authored-by: Nikita Popov <github at npopov.com>
Commit: 665bc49c138a48075c54fe377d49481ad65f1135
https://github.com/llvm/llvm-project/commit/665bc49c138a48075c54fe377d49481ad65f1135
Author: Jin Huang <jinhuang1102 at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/utils/profcheck-xfail.txt
Log Message:
-----------
[profcheck] Remove test cases fixed in #168161 from xfail list. (#170787)
The expected failed test cases
```
Transforms/ExpandVariadics/expand-va-intrinsic-split-linkage.ll
Transforms/ExpandVariadics/expand-va-intrinsic-split-simple.ll
Transforms/ExpandVariadics/intrinsics.ll
```
have been fixed by https://github.com/llvm/llvm-project/pull/168161.
Co-authored-by: Jin Huang <jingold at google.com>
Commit: 3de977cdde85847b89f443ad13a0d591e87e8871
https://github.com/llvm/llvm-project/commit/3de977cdde85847b89f443ad13a0d591e87e8871
Author: Amr Hesham <amr96 at programmer.net>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/test/CIR/IR/try-catch.cir
Log Message:
-----------
[CIR] Add structured ResumeOp (#170042)
Add SCF Resume op to be used before the CFG flattening pass
Issue https://github.com/llvm/llvm-project/issues/154992
Commit: db4e6e6911b0cb3b26c377859beaf3a9d5c162cb
https://github.com/llvm/llvm-project/commit/db4e6e6911b0cb3b26c377859beaf3a9d5c162cb
Author: Vijay Kandiah <vkandiah at nvidia.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M mlir/test/Examples/NVGPU/lit.local.cfg
Log Message:
-----------
[NVGPU] Disable nvdsl lit tests if python bindings not enabled (#170898)
A recent change https://github.com/llvm/llvm-project/pull/167321 enabled
nvdsl examples to be run by default. These examples require MLIR python
bindings to be enabled, and this PR makes sure they're skipped if
`config.enable_bindings_python` is not enabled.
Commit: 11056c3fc35ed6fa04b7127db289cf42fd7e0bb5
https://github.com/llvm/llvm-project/commit/11056c3fc35ed6fa04b7127db289cf42fd7e0bb5
Author: Martin Storsjö <martin at martin.st>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/test/MC/AArch64/seh-large-func.s
M llvm/test/MC/AArch64/seh-optimize.s
M llvm/test/MC/AArch64/seh-packed-unwind.s
Log Message:
-----------
[AArch64] [test] Make unwind info tests actually use the right instructions
This makes them match the expected decoding of the unwind info
opcodes, avoiding mismatch indications from "dumpbin -unwindinfo".
This is a follow up to 458035027c80e984bf5862140aed20d5e50dd22a;
these cases were missed in that commit.
Commit: 35203a6a86c79b75b94a5f48b38ab75e90b3f40a
https://github.com/llvm/llvm-project/commit/35203a6a86c79b75b94a5f48b38ab75e90b3f40a
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M compiler-rt/lib/asan_abi/asan_abi.h
M compiler-rt/lib/asan_abi/asan_abi_shim.cpp
Log Message:
-----------
[ASan] Do not return from void functions in asan_abi_shim.cpp (#170897)
This was causing compilation failures on MacOS.
Commit: 94984d5cdbceafa786e26a9dc1f70167e574d945
https://github.com/llvm/llvm-project/commit/94984d5cdbceafa786e26a9dc1f70167e574d945
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M compiler-rt/test/lit.common.cfg.py
Log Message:
-----------
Reapply "[compiler-rt] Default to Lit's Internal Shell (#168232)"
This reverts commit c90fb56b41cfaaee448700f6b068c830d8d0b5bd.
The failures identified in the revert commit have noe been fixed:
1. 4bc783be2dab2b0b2b3010158891e44a2b4ee991
2. 126462035a1eb7adeb97f6beac48b6bddac65d09
3. d7307f458cd3522470859ce0cee8d47d37a70670
Commit: 97c4f367b81022ce8bb7cf21b0682842c59b5d59
https://github.com/llvm/llvm-project/commit/97c4f367b81022ce8bb7cf21b0682842c59b5d59
Author: Maksim Panchenko <maks at fb.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M bolt/include/bolt/Core/BinaryContext.h
M bolt/lib/Core/BinaryContext.cpp
Log Message:
-----------
[BOLT] Fix comments for interprocedural branches. NFC (#170745)
Commit: 5e4974fbd330733ceaabba988b632cd8906e892a
https://github.com/llvm/llvm-project/commit/5e4974fbd330733ceaabba988b632cd8906e892a
Author: google-yfyang <yfyang at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang-tools-extra/test/clang-tidy/infrastructure/empty-database.cpp
M clang-tools-extra/test/clang-tidy/infrastructure/invalid-database.cpp
Log Message:
-----------
[clang-tidy][NFC] Add checks to tests that have no checks specified. (#170895)
#157306 removes some default checks and this breaks a few tests where no
checks were explicitly specified.
Commit: ad1edc9cbcc9ac4e86931da3e676a7b7caef1be3
https://github.com/llvm/llvm-project/commit/ad1edc9cbcc9ac4e86931da3e676a7b7caef1be3
Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M mlir/lib/Analysis/DataFlow/IntegerRangeAnalysis.cpp
M mlir/test/Interfaces/InferIntRangeInterface/infer-int-range-test-ops.mlir
Log Message:
-----------
[mlir][IntegerRangeAnalysis] Handle multi-dimensional loops (#170765)
Since LoopLikeInterface has (for some time) been extended to handle
multiple induction variables (and thus lower and upper bounds), handle
those bounds one at a time.
Commit: f57f338313c19ff94959203ea98e96e4ec895c51
https://github.com/llvm/llvm-project/commit/f57f338313c19ff94959203ea98e96e4ec895c51
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M flang/include/flang/Lower/CUDA.h
M flang/include/flang/Optimizer/Dialect/CUF/CUFOps.td
M flang/lib/Lower/Allocatable.cpp
M flang/lib/Lower/CUDA.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFAllocationConversion.cpp
M flang/test/Fir/CUDA/cuda-allocate.fir
M flang/test/Lower/CUDA/cuda-allocatable.cuf
Log Message:
-----------
[flang][cuda] Add double descriptor information in allocate/deallocate operations (#170901)
After https://github.com/llvm/llvm-project/pull/169740, the allocate and
deallocate cuf operation can be converted later. Update the way to
recognize double descriptor case by adding this information directly on
the operation itself.
Commit: c5bdc21ff7996d2db8b133ff36f4de0ca569f98d
https://github.com/llvm/llvm-project/commit/c5bdc21ff7996d2db8b133ff36f4de0ca569f98d
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/include/llvm/IR/DebugLoc.h
M llvm/lib/IR/DebugLoc.cpp
Log Message:
-----------
[NFC][LLVM] Minor code cleanup in DebugLoc (#170757)
Remove indentation of code in llvm namespace in header file. Remove {}
around single statement if in .cpp file.
Commit: 6b51e26d39fa6ed5cf4a204921701e8168b39099
https://github.com/llvm/llvm-project/commit/6b51e26d39fa6ed5cf4a204921701e8168b39099
Author: Alex Langford <alangford at apple.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M lldb/include/lldb/Host/FileAction.h
M lldb/source/Host/common/FileAction.cpp
M lldb/source/Host/macosx/objcxx/Host.mm
M lldb/source/Host/posix/ProcessLauncherPosixFork.cpp
M lldb/source/Target/Target.cpp
Log Message:
-----------
[lldb][NFCI] Remove FileAction::GetPath (#170764)
This method puts strings into the ConstString pool and vends them as
llvm::StringRefs. Most of the uses only require a `std::string` or a
`const char *`. This can be achieved without wasting memory.
Commit: 5dfd9c4f841fb183580b02b5d252e630eeda3c5e
https://github.com/llvm/llvm-project/commit/5dfd9c4f841fb183580b02b5d252e630eeda3c5e
Author: Erick Ochoa Lopez <erick.ochoalopez at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPU.td
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
M mlir/lib/Dialect/AMDGPU/IR/AMDGPUDialect.cpp
M mlir/test/Conversion/AMDGPUToROCDL/gfx1250.mlir
A mlir/test/Dialect/AMDGPU/amdgpu-make-dma-descriptor-fold.mlir
M mlir/test/Dialect/AMDGPU/invalid.mlir
M mlir/test/Dialect/AMDGPU/ops.mlir
Log Message:
-----------
[mlir][amdgpu] Add lowering for make_dma_descriptor (#169955)
* Adds initial lowering for make_dma_descriptor supporting tensors of
rank 2.
* Adds folders for make_dma_descriptor allowing statically known
operands to be folded into attributes.
* Add AllElementTypesMatch<["lds", "global"]> to make_dma_base.
* Rename pad to pad_amount
* Rename pad_every to pad_interval
Commit: 29fa151a077221ee8a28fa49a746a91893741b2b
https://github.com/llvm/llvm-project/commit/29fa151a077221ee8a28fa49a746a91893741b2b
Author: Kazu Hirata <kazu at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
Log Message:
-----------
[mlir] Fix a warning
This patch fixes:
mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp:2666:10: error:
unused variable 'v4i32' [-Werror,-Wunused-variable]
Commit: bb17dfa7d149be7a051fe9687af4093d968fb52b
https://github.com/llvm/llvm-project/commit/bb17dfa7d149be7a051fe9687af4093d968fb52b
Author: Quinn Dawkins <quinn.dawkins at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M mlir/include/mlir/Transforms/RegionUtils.h
M mlir/lib/Dialect/Bufferization/Transforms/EmptyTensorElimination.cpp
M mlir/lib/Transforms/Utils/RegionUtils.cpp
M mlir/test/Dialect/Bufferization/Transforms/one-shot-bufferize-empty-tensor-elimination.mlir
M mlir/test/Transforms/move-operation-deps.mlir
M mlir/test/lib/Transforms/TestTransformsOps.td
Log Message:
-----------
[mlir][bufferization] Enable moving dependent values in eliminate-empty-tensors (#169718)
Currently empty tensor elimination by constructing a SubsetExtractionOp
to match a SubsetInsertionOp at the end of a DPS chain will fail if any
operands required by the insertion op don't dominate the insertion point
for the extraction op.
This change improves the transformation by attempting to move all pure
producers of required operands to the insertion point of the extraction
op. In the process this improves a number of tests for empty tensor
elimination.
Commit: 5daad5bf45b3c7280f7b06979fb580f70e2c4fd0
https://github.com/llvm/llvm-project/commit/5daad5bf45b3c7280f7b06979fb580f70e2c4fd0
Author: Paul Kirth <paulkirth at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Options/Options.td
M clang/lib/CodeGen/CGCall.cpp
A clang/test/CodeGen/lifetime-call-temp.c
A clang/test/CodeGen/lifetime-invoke-c.c
A clang/test/CodeGenCXX/aggregate-lifetime-invoke.cpp
A clang/test/CodeGenCXX/amdgcn-call-with-aggarg.cc
M clang/test/CodeGenCXX/stack-reuse-miscompile.cpp
M clang/test/CodeGenCoroutines/pr59181.cpp
Log Message:
-----------
[clang] Limit lifetimes of temporaries to the full expression (#170517)
We have several issues describing suboptimal stack usage related to the
lifetimes of temporary objects, such as #68747, #43598, and #109204.
Previously, https://reviews.llvm.org/D74094 tried to address this. In
that review, a few issues were brought up, particularly a concern about
the lifetimes of the temporaries needing to be extended to end of the
full expression. While there are arguably more optimal lifetime bounds
we could enforce, for now we can conservatively make them extend to the
end of the full expression, and later refine the optimization to use
tighter bounds (or perhaps a better mechanism in the middle end?).
Fixes #68747
Co-authored-by: Nick Desaulniers <nick.desaulniers at gmail.com>
Co-authored-by: Erik Pilkington <erik.pilkington at gmail.com>
---------
Co-authored-by: Nick Desaulniers <nick.desaulniers at gmail.com>
Co-authored-by: Erik Pilkington <erik.pilkington at gmail.com>
Commit: acb97429762cfc980a20a9ecbadbf73e28319a86
https://github.com/llvm/llvm-project/commit/acb97429762cfc980a20a9ecbadbf73e28319a86
Author: Kazu Hirata <kazu at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M lldb/source/Commands/CommandObjectBreakpoint.cpp
Log Message:
-----------
[lldb] Fix a warning
This patch fixes:
lldb/source/Commands/CommandObjectBreakpoint.cpp:1266:21: error:
unused variable 'expr' [-Werror,-Wunused-variable]
Commit: 03c37160a1735c12e4acbac70a593ff3e68d5ad7
https://github.com/llvm/llvm-project/commit/03c37160a1735c12e4acbac70a593ff3e68d5ad7
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M flang/include/flang/Parser/parse-tree.h
M flang/lib/Semantics/canonicalize-do.cpp
M flang/lib/Semantics/check-omp-loop.cpp
M flang/test/Parser/OpenMP/atomic-label-do.f90
M flang/test/Parser/OpenMP/cross-label-do.f90
M flang/test/Semantics/OpenMP/loop-association.f90
Log Message:
-----------
[flang][OpenMP] Reject END DO on construct that crosses label-DO (#169714)
In a label-DO construct where two or more loops share the same
teminator, an OpenMP construct must enclose all the loops if an
end-directive is present. E.g.
```
do 100 i = 1,10
!$omp do
do 100 j = 1,10
100 continue
!$omp end do ! Error, but ok if this line is removed
```
Fixes https://github.com/llvm/llvm-project/issues/169536.
Commit: 7470d721c65d7924c5e1743ec73aa44fa858717c
https://github.com/llvm/llvm-project/commit/7470d721c65d7924c5e1743ec73aa44fa858717c
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64Subtarget.cpp
M llvm/lib/Target/AArch64/AArch64Subtarget.h
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/test/Transforms/LoopUnroll/AArch64/apple-unrolling.ll
Log Message:
-----------
[AArch64] Add isAppleMLike helper to check for M cores and aligned CPUs. (#170553)
Add a new isAppleMLike helper, that returns true if the core is part of
the Apple M core family or Apple A14 or later. Used to apply cost
decisions consistently to those groups of cores.
The function is now a single place to update when new cores are added.
It also makes sure we apply unrolling decisions for newer Apple cores to
Apple A17.
PR: https://github.com/llvm/llvm-project/pull/170553
Commit: 9dc9c1445df88f86f18e9ff6aefc25f4e983441e
https://github.com/llvm/llvm-project/commit/9dc9c1445df88f86f18e9ff6aefc25f4e983441e
Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M .github/CODEOWNERS
Log Message:
-----------
[NFC] Become CODEOWNER of AMDGPULowerBufferFatPointers (#167953)
Commit: 93d64a5c4d912e8898d1e7c7e5a95f6f44f7e983
https://github.com/llvm/llvm-project/commit/93d64a5c4d912e8898d1e7c7e5a95f6f44f7e983
Author: Alex Voicu <alexandru.voicu at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/docs/SPIRVUsage.rst
M llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
M llvm/lib/Target/SPIRV/SPIRVSymbolicOperands.td
A llvm/test/CodeGen/SPIRV/extensions/SPV_NV_shader_atomic_fp16_vector/atomicrmw_faddfsub_vec_float16.ll
A llvm/test/CodeGen/SPIRV/extensions/SPV_NV_shader_atomic_fp16_vector/atomicrmw_fminfmax_vec_float16.ll
Log Message:
-----------
[SPIRV] Add `<2 x half>` and `<4 x half>` atomics via `SPV_NV_shader_atomic_fp16_vector` (#170213)
This adds support for the `SPV_NV_shader_atomic_fp16_vector` extension,
and then uses it to enable lowering of atomic add, sub, min and max on 2
and 4 component vectors of FP16, which are rather common options in ML
workloads. Even though `bfloat16` also works in practice, we do not
enable it since it's not specified in the extension (which might need
updating / promoting to KHR at least). A `TODO` is also inserted in
`SPIRVModuleAnalysis.cpp' regarding the need to upgrade its ample usage
of `report_fatal_error`; I have a WiP patch for that, but it still needs
a bit of baking. Finally, a paired patch will be necessary in the
Translator, as it's not aware of the extension either - I'll update this
review to reference the PR once I create it.
Commit: ecf492761e5385b6d94c8c87c62d2dbf9c565add
https://github.com/llvm/llvm-project/commit/ecf492761e5385b6d94c8c87c62d2dbf9c565add
Author: Alex Langford <alangford at apple.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M lldb/source/Host/windows/ProcessLauncherWindows.cpp
Log Message:
-----------
[lldb] Fix Windows build after 6b51e26d39fa (#170917)
Commit: bad1a88963f35ec57d27be4450a9c7074ec095d7
https://github.com/llvm/llvm-project/commit/bad1a88963f35ec57d27be4450a9c7074ec095d7
Author: Kewen Meng <Kewen.Meng at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/test/Driver/darwin-link-libcxx.cpp
Log Message:
-----------
[clang] Temporarily disable Darwin test for linking against libc++ on non-darwin systems (#170912)
Disable the test added in #170303, which breaks bots that don't use ld
as their linker. This is a temporary and narrow disablement of the test
until we can make it more general again, to get the bots green.
Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
Commit: 22a2c27a0aa0d3aa5d4222f6e766646166450543
https://github.com/llvm/llvm-project/commit/22a2c27a0aa0d3aa5d4222f6e766646166450543
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
Log Message:
-----------
AMDGPU/PromoteAlloca: Simplify how deferred loads work (#170510)
The second pass of promotion to vector can be quite simple. Reflect that
simplicity in the code for better maintainability.
Commit: f558c30146e51d5ef72bf3d4b3f0e86ca19e4b99
https://github.com/llvm/llvm-project/commit/f558c30146e51d5ef72bf3d4b3f0e86ca19e4b99
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
M llvm/test/CodeGen/AMDGPU/promote-alloca-multidim.ll
M llvm/test/CodeGen/AMDGPU/promote-alloca-negative-index.ll
M llvm/test/CodeGen/AMDGPU/promote-alloca-vector-to-vector.ll
Log Message:
-----------
AMDGPU/PromoteAlloca: Always use i32 for indexing (#170511)
Create more canonical code that may even lead to slightly better
codegen.
Commit: 4c59219fc9901016506486e7943b30fdf269f286
https://github.com/llvm/llvm-project/commit/4c59219fc9901016506486e7943b30fdf269f286
Author: lntue <lntue at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
M libc/config/config.json
M libc/docs/configure.rst
M libc/include/llvm-libc-macros/fenv-macros.h
M libc/src/__support/CPP/bit.h
M libc/src/__support/FPUtil/CMakeLists.txt
M libc/src/__support/FPUtil/FEnvImpl.h
M libc/src/__support/FPUtil/x86_64/FEnvImpl.h
A libc/src/__support/FPUtil/x86_64/fenv_mxcsr_utils.h
A libc/src/__support/FPUtil/x86_64/fenv_x86_common.h
A libc/src/__support/FPUtil/x86_64/fenv_x87_only.h
A libc/src/__support/FPUtil/x86_64/fenv_x87_utils.h
M libc/src/__support/macros/properties/compiler.h
M libc/test/UnitTest/FEnvSafeTest.cpp
M libc/test/src/fenv/enabled_exceptions_test.cpp
M libc/test/src/fenv/feholdexcept_test.cpp
M libc/test/src/fenv/getenv_and_setenv_test.cpp
M libc/test/src/math/FModTest.h
M libc/test/src/math/smoke/FModTest.h
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[libc][fenv] Refactor x86 fenv implementations to make it work for various fenv_t. (#165015)
Commit: b464d772e5a262565ec65dd125be3036e42d2b9d
https://github.com/llvm/llvm-project/commit/b464d772e5a262565ec65dd125be3036e42d2b9d
Author: Petr Penzin <ppenzin at oss.tenstorrent.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
M llvm/lib/Target/RISCV/RISCVSchedTTAscalonD8.td
M llvm/lib/Target/RISCV/RISCVScheduleV.td
Log Message:
-----------
[RISCV] LMUL lists for indexed and strided loads (#169756)
Create additional lists representing valid LMULs for strided and indexed
load of particular element sizes.
Commit: a1eff73a8ef24729ee1d0f0fd639fb79403c3686
https://github.com/llvm/llvm-project/commit/a1eff73a8ef24729ee1d0f0fd639fb79403c3686
Author: Sterling-Augustine <saugustine at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M libc/src/string/string_length.h
Log Message:
-----------
Include inline_strlen.h on aarch64 only if the target has vector instrucions (#170892)
Commit: b78fd58d22c38b8b199760ebaa93dbd42509ab7e
https://github.com/llvm/llvm-project/commit/b78fd58d22c38b8b199760ebaa93dbd42509ab7e
Author: Tarun Prabhu <tarun at lanl.gov>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M flang/test/Semantics/OpenACC/acc-atomic-validity.f90
M flang/test/Semantics/OpenACC/acc-default-none-function.f90
M flang/test/Semantics/OpenACC/acc-error.f90
M flang/test/Semantics/OpenACC/acc-parallel.f90
M flang/test/Semantics/OpenACC/acc-reduction-validity.f90
M flang/test/Semantics/allocate14.f90
M flang/test/Semantics/bindings01.f90
M flang/test/Semantics/collectives05.f90
M flang/test/Semantics/data03.f90
M flang/test/Semantics/doconcurrent01.f90
M flang/test/Semantics/doconcurrent05.f90
M flang/test/Semantics/doconcurrent06.f90
M flang/test/Semantics/doconcurrent08.f90
M flang/test/Semantics/dosemantics05.f90
M flang/test/Semantics/dosemantics08.f90
M flang/test/Semantics/dosemantics09.f90
M flang/test/Semantics/dosemantics11.f90
M flang/test/Semantics/dosemantics12.f90
M flang/test/Semantics/etime.f90
M flang/test/Semantics/getcwd.f90
M flang/test/Semantics/getdefinition05.f90
M flang/test/Semantics/io11.f90
M flang/test/Semantics/kinds02.f90
Log Message:
-----------
[flang][NFC] Strip trailing whitespace from tests (11 of 14)
Only some fortran source files in flang/test/Semantics have been
modified. The remaining files will be cleaned up in subsequent commits.
Commit: d8e52c0360b718adccb731dbd8310c9340eee10f
https://github.com/llvm/llvm-project/commit/d8e52c0360b718adccb731dbd8310c9340eee10f
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/test/Transforms/LoopVectorize/vplan-printing.ll
Log Message:
-----------
[VPlan] Use strict whitespace checks for VPlan printing test.
Use --strict-whitespace for vplan-printing.ll to catch stray
whitespaces. The test updates show a few places where we currently emit
those.
Commit: de86696dba5ae5da02b3de7df5b8aaa8e1371893
https://github.com/llvm/llvm-project/commit/de86696dba5ae5da02b3de7df5b8aaa8e1371893
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
M llvm/test/CodeGen/AMDGPU/promote-alloca-multidim.ll
M llvm/test/CodeGen/AMDGPU/promote-alloca-negative-index.ll
M llvm/test/CodeGen/AMDGPU/promote-alloca-vector-to-vector.ll
Log Message:
-----------
Revert "AMDGPU/PromoteAlloca: Always use i32 for indexing (#170511)"
This reverts commit f558c30146e51d5ef72bf3d4b3f0e86ca19e4b99.
Failure on clang-hip-vega20: https://lab.llvm.org/buildbot/#/builders/123/builds/31779
Commit: 0e0ec4c348670864e18224dc99dd615c0d7e72f8
https://github.com/llvm/llvm-project/commit/0e0ec4c348670864e18224dc99dd615c0d7e72f8
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
Log Message:
-----------
Revert "AMDGPU/PromoteAlloca: Simplify how deferred loads work (#170510)"
This reverts commit 22a2c27a0aa0d3aa5d4222f6e766646166450543.
Failure on clang-hip-vega20: https://lab.llvm.org/buildbot/#/builders/123/builds/31779
Commit: 58c8f5768102751ce932b597563aaa4a3b7fa430
https://github.com/llvm/llvm-project/commit/58c8f5768102751ce932b597563aaa4a3b7fa430
Author: Eli Friedman <efriedma at qti.qualcomm.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M compiler-rt/CMakeLists.txt
Log Message:
-----------
[compiler-rt] Add CMake flag for AArch64 Linux with 39-bit VA. (#167028)
Sanitizers currently assume AArch64 Linux has 48-bit VA. Followup
patches will add checks for this flag to asan and hwasan.
Commit: 7982688b69c75ff40f34184438d3ef7e905ff006
https://github.com/llvm/llvm-project/commit/7982688b69c75ff40f34184438d3ef7e905ff006
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M compiler-rt/test/profile/Linux/instrprof-debug-info-correlate-debuginfod.c
Log Message:
-----------
[Profile] Fix debuginfod test with internal shell
The recent relanding of the internal shell broke one of the debuginfod
tests as it is not tested by any upstream buildbot due to the use of
curl. Rewriting the test to not use subshells is pretty simple.
Commit: a55221da6047dace6ec7f24967ce0113429d093f
https://github.com/llvm/llvm-project/commit/a55221da6047dace6ec7f24967ce0113429d093f
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/lib/Driver/ToolChains/Darwin.cpp
R clang/test/Driver/Inputs/basic_darwin_toolchain/usr/lib/libc++.dylib
R clang/test/Driver/Inputs/basic_darwin_toolchain/usr/lib/libc++experimental.a
R clang/test/Driver/Inputs/basic_darwin_toolchain_static/usr/bin/.keep
R clang/test/Driver/Inputs/basic_darwin_toolchain_static/usr/include/c++/v1/.keep
R clang/test/Driver/Inputs/basic_darwin_toolchain_static/usr/lib/libc++.a
R clang/test/Driver/Inputs/basic_darwin_toolchain_static/usr/lib/libc++experimental.a
M clang/test/Driver/darwin-header-search-libcxx.cpp
R clang/test/Driver/darwin-link-libcxx.cpp
M clang/test/Driver/experimental-library-flag.cpp
M compiler-rt/cmake/config-ix.cmake
Log Message:
-----------
[clang] Revert changes to prefer the toolchain-provided libc++.dylib
This patch reverts the change that made clang prefer the toolchain
libc++.dylib when there is one (#170303), and the subsequent test
workaround we landed to fix bots (#170912).
We are seeing some failure on macOS LLDB bots that need to be
investigated, and that will require more time than I can spare
before the end of today.
This reverts commits bad1a88963 and 190b8d0b.
Commit: 7afeea414d57300399bf917eaba7efe1fd821bae
https://github.com/llvm/llvm-project/commit/7afeea414d57300399bf917eaba7efe1fd821bae
Author: Eli Friedman <efriedma at qti.qualcomm.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/test/CodeGen/AArch64/wineh-pac.ll
Log Message:
-----------
Autogenerate llvm/test/CodeGen/AArch64/wineh-pac.ll (#170925)
Using custom CHECK lines doesn't really help here.
Commit: 0cb237d69e16a8c5d234a5c5ab1b1ebcf6f94cd3
https://github.com/llvm/llvm-project/commit/0cb237d69e16a8c5d234a5c5ab1b1ebcf6f94cd3
Author: Hendrik Hübner <117831077+HendrikHuebner at users.noreply.github.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
A clang/test/CIR/CodeGen/atomic-thread-fence.c
Log Message:
-----------
[CIR] Add AtomicFenceOp and signal/thread fence builtins and required helpers (#168346)
This PR adds the AtomicFenceOp and signal/thread fence builtins.
Commit: 27bf5fdcc69364f991756e978d184f2dbee04a19
https://github.com/llvm/llvm-project/commit/27bf5fdcc69364f991756e978d184f2dbee04a19
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
DAG: Add overload of getExternalSymbol using RTLIB::LibcallImpl (#170587)
Commit: 7ba71012ee89229b86ab12cd31f0e69744131555
https://github.com/llvm/llvm-project/commit/7ba71012ee89229b86ab12cd31f0e69744131555
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M flang/include/flang/Optimizer/Dialect/CUF/CUFOps.td
M flang/lib/Lower/Allocatable.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFAllocationConversion.cpp
M flang/test/Fir/CUDA/cuda-allocate.fir
M flang/test/Lower/CUDA/cuda-allocatable.cuf
Log Message:
-----------
[flang][cuda] Add pointer attribute to allocate/deallocate ops (#170937)
Similar for the double descriptor information added in
https://github.com/llvm/llvm-project/pull/170901, we need to carry over
the pointer information until the op can be converted. The correct
detection would fail if the op is converted late.
Commit: 2e2fe683af53884ce1f371dc8162db22a0ebbbe8
https://github.com/llvm/llvm-project/commit/2e2fe683af53884ce1f371dc8162db22a0ebbbe8
Author: Naveen Seth Hanig <naveen.hanig at outlook.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/include/clang/DependencyScanning/DependencyScanningWorker.h
M clang/include/clang/Tooling/DependencyScanningTool.h
M clang/lib/DependencyScanning/DependencyScannerImpl.cpp
M clang/lib/DependencyScanning/DependencyScanningWorker.cpp
M clang/lib/Tooling/DependencyScanningTool.cpp
Log Message:
-----------
[clang][DependencyScanning] Use ArrayRef in function signatures over const std::vector& (NFC) (#170941)
This updates the dependency-scanning tooling to consistently use
`ArrayRef<std::string>` rather than `const std::vector<std::string>&` in
function signatures.
This is done to help break PR #169964 into smaller, more manageable
pieces.
Commit: 8d57635c59cbe535258dc3b7c69daf6b68b9e2a2
https://github.com/llvm/llvm-project/commit/8d57635c59cbe535258dc3b7c69daf6b68b9e2a2
Author: John Harrison <harjohn at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M lldb/tools/lldb-dap/DAP.cpp
M lldb/tools/lldb-dap/DAP.h
M lldb/tools/lldb-dap/DAPLog.cpp
M lldb/tools/lldb-dap/DAPLog.h
M lldb/tools/lldb-dap/DAPSessionManager.cpp
M lldb/tools/lldb-dap/EventHelper.cpp
M lldb/tools/lldb-dap/EventHelper.h
M lldb/tools/lldb-dap/Transport.cpp
M lldb/tools/lldb-dap/Transport.h
M lldb/tools/lldb-dap/tool/lldb-dap.cpp
M lldb/unittests/DAP/CMakeLists.txt
A lldb/unittests/DAP/DAPLogTest.cpp
M lldb/unittests/DAP/TestBase.cpp
M lldb/unittests/DAP/TestBase.h
Log Message:
-----------
[lldb-dap] Improving logging support and formatting. (#170731)
Adjusting logs in a few ways:
* The `DAP_LOG` and `DAP_LOG_ERROR` macros now include the file/line of
the log statement.
* Added support for creating a log with a prefix. This simplifies how we
create logs for the `lldb_dap::DAP` instance and `lldb_dap::Transport`
instance, allowing us to not have to pass the client name around as
much.
* Updated logging usage to take the `lldb_dap::Log` as a reference but
it now defaults to `llvm::raw_null_stream` if not configured. This
ensures more uniform access to the logger, even if its not written
anywhere.
The logs now look like:
```
1764896564.038788080 (stdio) --> {"command":"initialize","arguments":{...},"type":"request","seq":1}
1764896564.039064884 DAP.cpp:1007 (stdio) queued (command=initialize seq=1)
1764896564.039768934 (stdio) <-- {"body":{...},"command":"initialize","request_seq":1,"seq":1,"success":true,"type":"response"}
```
Commit: 113b2d7f0778cec0eb1b5d5813301ffb1ed67b59
https://github.com/llvm/llvm-project/commit/113b2d7f0778cec0eb1b5d5813301ffb1ed67b59
Author: Teresa Johnson <tejohnson at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemProfUse.cpp
M llvm/test/Transforms/PGOProfile/memprof-dump-matched-alloc-site.ll
M llvm/test/Transforms/PGOProfile/memprof-dump-matched-call-sites.ll
Log Message:
-----------
[MemProf] Add remarks for matched allocs and calls (#170379)
The new remarks are somewhat equivalent to the -memprof-print-match-info
messages, however, are not deduplicated across the module so will be
generally more verbose.
Commit: 96c733e0dbc1d1426ec2ea23898e23ff9851fde0
https://github.com/llvm/llvm-project/commit/96c733e0dbc1d1426ec2ea23898e23ff9851fde0
Author: Med Ismail Bennani <ismail at bennani.ma>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M lldb/include/lldb/Target/StackID.h
M lldb/source/Core/CoreProperties.td
M lldb/source/Core/FormatEntity.cpp
M lldb/source/Plugins/Process/scripted/ScriptedFrame.cpp
M lldb/source/Plugins/Process/scripted/ScriptedFrame.h
M lldb/source/Target/StackFrame.cpp
M lldb/source/Target/StackFrameList.cpp
M lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py
A lldb/test/API/functionalities/scripted_frame_provider/python_helper.py
M lldb/test/API/functionalities/scripted_frame_provider/test_frame_providers.py
M lldb/test/API/functionalities/scripted_process/dummy_scripted_process.py
Log Message:
-----------
[lldb] Add support for PC-less scripted frames (#170805)
Scripted frames that materialize Python functions or other non-native
code are PC-less by design, meaning they don't have valid program
counter values. Previously, these frames would display invalid addresses
(`0xffffffffffffffff`) in backtrace output.
This patch updates `FormatEntity` to detect and suppress invalid address
display for PC-less frames, adds fallback to frame methods when symbol
context is unavailable, and modifies `StackFrame::GetSymbolContext` to
skip PC-based symbol resolution for invalid addresses.
The changes enable PC-less frames to display cleanly with proper
function names, file paths, and line numbers, and allow for source
display of foreign sources (like Python). Includes comprehensive test
coverage demonstrating frames pointing to Python source files.
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
Commit: dedcf88569c4b45b1ab78d05304045326336de0c
https://github.com/llvm/llvm-project/commit/dedcf88569c4b45b1ab78d05304045326336de0c
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
M clang/include/clang/CIR/MissingFeatures.h
M clang/lib/CIR/CodeGen/CIRGenDecl.cpp
M clang/test/CIR/CodeGen/nrvo.cpp
Log Message:
-----------
[CIR] Implement NRVO variable cleanup (#170774)
This implements the cleanup handling for C++ NRVO variables. Because
exception handling is still incomplete, this doesn't behave any
differently with exceptions enabled yet, but the NRVO-specific code for
that case is trivial.
Commit: ce2518f59d9bc67553f05536ac9bb200827c36da
https://github.com/llvm/llvm-project/commit/ce2518f59d9bc67553f05536ac9bb200827c36da
Author: Jin Huang <jinhuang1102 at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Analysis/AliasAnalysis.cpp
R llvm/test/Transforms/DeadStoreElimination/atomic-todo.ll
M llvm/test/Transforms/DeadStoreElimination/atomic.ll
Log Message:
-----------
[AA] Improve precision for monotonic atomic load/store operations (#158169)
Refines `getModRefInfo` for `Monotonic` and `Unordered` atomic
operations to perform a full alias evaluation instead of conservatively
returning `ModRef`.
This allows AA to return more precise results (e.g., `NoModRef`),
unblocking optimizations in passes like DSE/PRE when the pointers are
proven not to alias.
LIT testing:
1. Fixed the `XFAIL` test `@test9` in `DSE/atomic-todo.ll`, where the
improved AA now allows DSE to correctly remove a dead store.
2. Added test `@test9a` to the same file to ensure DSE is still blocked
when pointers may alias.
3. I am also reviewing tests in GVN/PRE to see where this change may be
beneficial. While all existing tests pass, I will update this PR with
any new GVN test cases in a follow-up commit.
---------
Co-authored-by: Jin Huang <jingold at google.com>
Commit: 762a171b3d6f6eb64dc5a844fcb25caa4ece7d00
https://github.com/llvm/llvm-project/commit/762a171b3d6f6eb64dc5a844fcb25caa4ece7d00
Author: Andres-Salamanca <andrealebarbaritos at gmail.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
M clang/lib/CIR/CodeGen/CIRGenStmt.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/Transforms/CIRCanonicalize.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/test/CIR/CodeGen/label-values.c
A clang/test/CIR/IR/indirect-br.cir
Log Message:
-----------
[CIR] Upstream support for cir.indirectbr (#169967)
This PR upstreams support for the `cir.indirectBr` operation, which is
used to implement GCC’s labels-as-values `indirect goto`.
To ensure correct lowering, we introduce precise bookkeeping to
associate each `block_address` operation with its corresponding `label`
op. This is required because a `block_address` may be emitted before the
`label` it refers to. In such cases, the reference is deferred and later
resolved by `resolveBlockAddresses`, which guarantees that all
`indirectBr` successors are emitted in the correct and fully resolved
order.
Commit: ee77c58e5b592379db7f50031fb41c15ba72118b
https://github.com/llvm/llvm-project/commit/ee77c58e5b592379db7f50031fb41c15ba72118b
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
A llvm/test/CodeGen/AMDGPU/promote-alloca-cfg.ll
Log Message:
-----------
Reland "AMDGPU/PromoteAlloca: Simplify how deferred loads work (#170510)" (#170955)
The second pass of promotion to vector can be quite simple. Reflect that
simplicity in the code for better maintainability.
v2:
- don't put placeholders into the SSAUpdater, and add a test that shows
the problem
Commit: 6d8714b52375b3b7a7f269cd1ec4cc73baece38b
https://github.com/llvm/llvm-project/commit/6d8714b52375b3b7a7f269cd1ec4cc73baece38b
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
A clang/docs/ClangIRCodeDuplication.rst
M clang/docs/index.rst
Log Message:
-----------
[Clang][CIR][Doc] Document CIR code duplication plans (#166457)
This adds a document describing known problems with code duplication in
the CIR codegen implementation, strategies to mitigate the risks caused
by that code duplication, and a general long-term plan for minimizing
the problem.
Commit: b1ee4d08be7b53eb4676df5833127adbb778a487
https://github.com/llvm/llvm-project/commit/b1ee4d08be7b53eb4676df5833127adbb778a487
Author: Sudharsan Veeravalli <svs at qti.qualcomm.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp
Log Message:
-----------
[RISCV] Refactor some code in RISCVMergeBaseOffset.NFC (#170839)
Commit: e546d0f5d4179ac95e464ea968f7759e61aea8a3
https://github.com/llvm/llvm-project/commit/e546d0f5d4179ac95e464ea968f7759e61aea8a3
Author: Sudharsan Veeravalli <svs at qti.qualcomm.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
A llvm/test/Analysis/CostModel/RISCV/fshl_fshr.ll
Log Message:
-----------
[RISCV][TTI] Add cost model for ROTL/ROTR (#170824)
A funnel shift with the same first two operands is a rotate. When
`Zbb/Zbkb` is enabled we can use the `ROL(W)/ROR(I)(W)` instruction to
represent this. Add cost model support for this.
Similar to https://github.com/llvm/llvm-project/pull/169335 for AArch64.
Commit: 472fd70ace5d8522452b98e803e11676cad8753f
https://github.com/llvm/llvm-project/commit/472fd70ace5d8522452b98e803e11676cad8753f
Author: mitchell <mitchell.xu2 at gmail.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M llvm/utils/git/code-lint-helper.py
Log Message:
-----------
[Github][CI] Introduce `LintHelper` class in `code-lint-helper.py` (#168827)
This commit introduces a new `LintHelper` class to
`llvm/utils/git/code-lint-helper.py`, which lays the groundwork for
integrating additional linters (`doc8`) into Github Action workflow.
---------
Co-authored-by: EugeneZelenko <eugene.zelenko at gmail.com>
Commit: 72d5fe5ec4d400b1e9444d78f2022f486aa19af1
https://github.com/llvm/llvm-project/commit/72d5fe5ec4d400b1e9444d78f2022f486aa19af1
Author: Katya Romanova <56653669+romanova-ekaterina at users.noreply.github.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M clang/lib/Headers/cpuid.h
Log Message:
-----------
[clang] [doc] Added documentation to intrinsics in cpuid.h (#170507)
Added doxygen comments to 4 intrinsincs in cpuid.h
Commit: 90e3ac6c55e61f0cc9ec9921dfa9d85b8a582a5d
https://github.com/llvm/llvm-project/commit/90e3ac6c55e61f0cc9ec9921dfa9d85b8a582a5d
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M llvm/docs/ReleaseNotes.md
M llvm/include/llvm-c/Core.h
M llvm/include/llvm/IR/Instructions.h
M llvm/include/llvm/IR/User.h
M llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
M llvm/lib/CodeGen/TypePromotion.cpp
M llvm/lib/IR/Core.cpp
M llvm/lib/IR/Instructions.cpp
M llvm/lib/IR/User.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
M llvm/unittests/IR/InstructionsTest.cpp
M llvm/unittests/IR/VerifierTest.cpp
Log Message:
-----------
Revert "[IR] Don't store switch case values as operands" (#170962)
Reverts llvm/llvm-project#166842
Breaks Mips LLVM tests, and LLD on bots.
See llvm/llvm-project#166842
Commit: b889df39d61ba4ca003473749ee620fab87895b0
https://github.com/llvm/llvm-project/commit/b889df39d61ba4ca003473749ee620fab87895b0
Author: Teresa Johnson <tejohnson at google.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemProfUse.cpp
M llvm/test/Transforms/PGOProfile/memprof-dump-matched-alloc-site.ll
Log Message:
-----------
[MemProf] Add option to print function GUIDs during matching (#170946)
For debugging, add -memprof-print-function-guids option that will cause
memprof matching to emit the computed function GUID for every function
definition in the module to stderr. This is helpful because the profile
only contains the function GUID and not the names.
Commit: 9e9e64af48bce45c8f569e02d568ec58a855aadb
https://github.com/llvm/llvm-project/commit/9e9e64af48bce45c8f569e02d568ec58a855aadb
Author: Sairudra More <sairudra60 at gmail.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M clang/lib/CodeGen/CGOpenMPRuntime.cpp
M clang/test/OpenMP/target_defaultmap_codegen_01.cpp
A clang/test/OpenMP/target_firstprivate_pointer_codegen.cpp
M clang/test/OpenMP/target_map_codegen_26.cpp
Log Message:
-----------
[OpenMP] Fix defaultmap(firstprivate:pointer) handling (#169622)
This fixes a bug where pointers from defaultmap(firstprivate:pointer)
were incorrectly treated as firstprivate literals, causing
OMP_MAP_LITERAL to be set. This prevented the runtime from performing
device address lookup.
Realted PR https://github.com/llvm/llvm-project/pull/167879
Co-authored-by: Sairudra More <moresair at pe31.hpc.amslabs.hpecorp.net>
Commit: 75aa7bdf45fc810bbf5efd3d029948857ded4de5
https://github.com/llvm/llvm-project/commit/75aa7bdf45fc810bbf5efd3d029948857ded4de5
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M compiler-rt/test/asan/TestCases/scariness_score_test.cpp
Log Message:
-----------
[ASan] Disable another test on Darwin due to ulimit stack issues
Similar to #170786.
Commit: 8fe38c4c9c71c7a86ecdba476ee5bae4c02c0dfe
https://github.com/llvm/llvm-project/commit/8fe38c4c9c71c7a86ecdba476ee5bae4c02c0dfe
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M clang/lib/AST/ByteCode/Descriptor.cpp
M clang/lib/AST/ByteCode/Descriptor.h
M clang/lib/AST/ByteCode/Disasm.cpp
M clang/lib/AST/ByteCode/EvaluationResult.cpp
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/lib/AST/ByteCode/InterpBuiltinBitCast.cpp
M clang/lib/AST/ByteCode/InterpBuiltinBitCast.h
M clang/lib/AST/ByteCode/Pointer.cpp
M clang/lib/AST/ByteCode/Pointer.h
M clang/test/AST/ByteCode/const-eval.c
Log Message:
-----------
[clang][bytecode] Allocate InitMaps via Program/InterpState allocators (#170272)
Save them as a pointer intead of using a shared_ptr. This we we can use
the pointer integer value to differentiate the "no initmap yet" and "all
values initialzed" cases.
This regresses one test case in const-eval.c, but as it turns out, that
only worked coincidentally before.
Commit: 5fc8e87fe20d41654d8efc6bc93f7503b3bfdd36
https://github.com/llvm/llvm-project/commit/5fc8e87fe20d41654d8efc6bc93f7503b3bfdd36
Author: Nishant Patel <nishant.b.patel at intel.com>
Date: 2025-12-05 (Fri, 05 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUOps.td
M mlir/lib/Conversion/VectorToXeGPU/VectorToXeGPU.cpp
M mlir/lib/Dialect/XeGPU/IR/XeGPUOps.cpp
M mlir/lib/Dialect/XeGPU/TransformOps/XeGPUTransformOps.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUOptimizeBlockLoads.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUUnroll.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops.mlir
Log Message:
-----------
[MLIR][XeGPU] Retain anchor op layouts for XeGPU nD ops (#170934)
This PR adds support to retain the anchor op layouts (after dropping
what's not required) for xegpu nD ops during workgroup to subgroup &
unroll transformation
Commit: fa2eabd7706d2f47064c980b456d3a255e9ea3f3
https://github.com/llvm/llvm-project/commit/fa2eabd7706d2f47064c980b456d3a255e9ea3f3
Author: Kunqiu Chen <camsyn at foxmail.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M clang/test/Headers/__clang_hip_math.hip
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/test/Transforms/SimplifyCFG/hoist-common-code.ll
Log Message:
-----------
[SimplifyCFG] Hoist common code for switch multi-case destinations (#165700)
Previously, hoistCommonCodeFromSuccessors did not support hoisting
common code for multi-case destinations of `switch`.
However, if all the predecessors of a given Succ are the same (i.e.,
multi-case destination), it is safe to hoist the common code from Succ
to Pred, which is what this PR does.
See discussion
https://github.com/llvm/llvm-project/pull/165570#discussion_r2473290327.
Alive2 proof: https://alive2.llvm.org/ce/z/cYuczq
Optimization Impact:
https://github.com/dtcxzyw/llvm-opt-benchmark/pull/3003
Commit: 979462c876c96c3023c0b5e42c8eda88323fd745
https://github.com/llvm/llvm-project/commit/979462c876c96c3023c0b5e42c8eda88323fd745
Author: Jay Foad <jay.foad at amd.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
M llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td
M llvm/lib/Target/AMDGPU/CMakeLists.txt
R llvm/lib/Target/AMDGPU/InstCombineTables.td
M llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn
Log Message:
-----------
[AMDGPU] Eliminate InstCombineTables.td. NFC. (#170857)
This also eliminates the generated file InstCombineTables.inc which was
99% identical to the existing AMDGPUGenSearchableTables.inc.
Commit: 9dc8caef09d9d0b631639e54de097b4603b9c369
https://github.com/llvm/llvm-project/commit/9dc8caef09d9d0b631639e54de097b4603b9c369
Author: Benjamin Kramer <benny.kra at googlemail.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
Log Message:
-----------
[bazel] Port 979462c876c96c3023c0b5e42c8eda88323fd745
Commit: dda048665317077d677cea0a15894be4d021b9c7
https://github.com/llvm/llvm-project/commit/dda048665317077d677cea0a15894be4d021b9c7
Author: Alexander Root <32245479+rootjalex at users.noreply.github.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M mlir/docs/LangRef.md
Log Message:
-----------
[MLIR] Update broken link in LangRef.md (#170938)
Noticed the link was dead when reading the docs. According to the
wayback machine, it was a link to "Revisiting Out-of-SSA Translation for
Correctness, Code Quality, and Efficiency" by Boissinot et al., so
providing a more permanent link.
Commit: af27159e17b91cc5f49c2b6ed24f3d422312d6ec
https://github.com/llvm/llvm-project/commit/af27159e17b91cc5f49c2b6ed24f3d422312d6ec
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M clang-tools-extra/test/clang-tidy/infrastructure/alphabetical-order.test
Log Message:
-----------
[clang-tidy] Show correct diff instructions when check_alphabetical_order.py fails (#170971)
Before the change, when given such incorrect ordering:
```
:doc:`modernize-use-designated-initializers <modernize/use-designated-initializers>`, "Yes"
:doc:`modernize-use-equals-default <modernize/use-equals-default>`, "Yes"
:doc:`modernize-use-emplace <modernize/use-emplace>`, "Yes"
:doc:`modernize-use-equals-delete <modernize/use-equals-delete>`, "Yes"
:doc:`modernize-use-integer-sign-comparison <modernize/use-integer-sign-comparison>`, "Yes"
```
Script output suggested removing `modernize-use-equals-default` line
that came after `modernize-use-emplace` but in my actual file, we can
see that current ordering is different (same as 2nd part of the diff):
```
# | :doc:`modernize-use-constraints <modernize/use-constraints>`, "Yes"
# | :doc:`modernize-use-default-member-init <modernize/use-default-member-init>`, "Yes"
# | :doc:`modernize-use-designated-initializers <modernize/use-designated-initializers>`, "Yes"
# | :doc:`modernize-use-emplace <modernize/use-emplace>`, "Yes"
# | - :doc:`modernize-use-equals-default <modernize/use-equals-default>`, "Yes"
# | :doc:`modernize-use-equals-delete <modernize/use-equals-delete>`, "Yes"
# | :doc:`modernize-use-integer-sign-comparison <modernize/use-integer-sign-comparison>`, "Yes"
# | :doc:`modernize-use-nodiscard <modernize/use-nodiscard>`, "Yes"
# | --- 316,323 ----
# | :doc:`modernize-use-constraints <modernize/use-constraints>`, "Yes"
# | :doc:`modernize-use-default-member-init <modernize/use-default-member-init>`, "Yes"
# | :doc:`modernize-use-designated-initializers <modernize/use-designated-initializers>`, "Yes"
# | + :doc:`modernize-use-equals-default <modernize/use-equals-default>`, "Yes"
# | :doc:`modernize-use-emplace <modernize/use-emplace>`, "Yes"
# | :doc:`modernize-use-equals-delete <modernize/use-equals-delete>`, "Yes"
```
We need to invert the diff, so the user can correctly follow its
recommendations.
Commit: 830ef4e4e2d0f181ed1cfacbc3daacb2555ff9e4
https://github.com/llvm/llvm-project/commit/830ef4e4e2d0f181ed1cfacbc3daacb2555ff9e4
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M openmp/CMakeLists.txt
A openmp/cmake/modules/LibompCheckFortranFlag.cmake
A openmp/cmake/modules/LibompHandleFlags.cmake
A openmp/cmake/modules/LibompUtils.cmake
A openmp/module/CMakeLists.txt
A openmp/module/omp_lib.F90.var
A openmp/module/omp_lib.h.var
M openmp/runtime/CMakeLists.txt
R openmp/runtime/cmake/LibompCheckFortranFlag.cmake
M openmp/runtime/cmake/LibompExports.cmake
R openmp/runtime/cmake/LibompHandleFlags.cmake
R openmp/runtime/cmake/LibompUtils.cmake
M openmp/runtime/cmake/config-ix.cmake
M openmp/runtime/src/CMakeLists.txt
R openmp/runtime/src/include/omp_lib.F90.var
R openmp/runtime/src/include/omp_lib.h.var
Log Message:
-----------
[openmp][NFCI] Move .mod code out of runtimes subdir (#169909)
Extracted out of #169638. The motivation is that we want to build
Fortran module files for device triples (amdgpu-amd-amdhsa and
nvptx64-nvidia-cuda) as well, but the runtimes/ directory is only
included for host devices.
This PR itself should not change anything, including that omp_lib.mod is
only built on host devices triple. Some dependencies used for building
omp_lib.mod are hoisted out of runtimes/ as well. IMHO they all make
sense to hoist, e.g. LIBOMP_VERSION_MAJOR/LIBOMP_VERSION_MINOR should be
usable in the entire OpenMP subproject.
Commit: 404a9032c78f85241c952a97d1d363b9ae865cc1
https://github.com/llvm/llvm-project/commit/404a9032c78f85241c952a97d1d363b9ae865cc1
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M clang-tools-extra/clang-tidy/tool/check_alphabetical_order.py
M clang-tools-extra/clang-tidy/tool/check_alphabetical_order_test.py
Log Message:
-----------
[clang-tidy] Show descriptive error message when check_alphabetical_order.py fails (#170975)
Now we give clearer instructions on how to interpret the output of the
script to fix issues it reported
Commit: 6d38c876478dac4a42f9d6e37692348deabf6a25
https://github.com/llvm/llvm-project/commit/6d38c876478dac4a42f9d6e37692348deabf6a25
Author: Martin Storsjö <martin at martin.st>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Options/Options.td
M clang/lib/CodeGen/CGCall.cpp
R clang/test/CodeGen/lifetime-call-temp.c
R clang/test/CodeGen/lifetime-invoke-c.c
R clang/test/CodeGenCXX/aggregate-lifetime-invoke.cpp
R clang/test/CodeGenCXX/amdgcn-call-with-aggarg.cc
M clang/test/CodeGenCXX/stack-reuse-miscompile.cpp
M clang/test/CodeGenCoroutines/pr59181.cpp
Log Message:
-----------
Revert "[clang] Limit lifetimes of temporaries to the full expression (#170517)"
This reverts commit 5daad5bf45b3c7280f7b06979fb580f70e2c4fd0.
That commit caused broken compilation for some cases, see
https://github.com/llvm/llvm-project/pull/170517#issuecomment-3620079591.
Commit: ba836dc5ede411f90a8f5ba1f706983db8caf4e7
https://github.com/llvm/llvm-project/commit/ba836dc5ede411f90a8f5ba1f706983db8caf4e7
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/test/Transforms/LoopVectorize/vplan-printing.ll
Log Message:
-----------
[VPlan] Remove stray space before ops when printing vector-ptr (NFC)
Commit: 9031544772dc3a39c27feccf845a43ec38925bc0
https://github.com/llvm/llvm-project/commit/9031544772dc3a39c27feccf845a43ec38925bc0
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M libcxx/include/__bit_reference
M libcxx/include/bitset
A libcxx/test/libcxx/utilities/template.bitset/nodiscard.verify.cpp
Log Message:
-----------
[libc++][bitset] Applied `[[nodiscard]]` (#170623)
`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.
- https://libcxx.llvm.org/CodingGuidelines.html
- https://wg21.link/bitset
Commit: 6bb786398efdbc496edd517e682caeaaefd46f6e
https://github.com/llvm/llvm-project/commit/6bb786398efdbc496edd517e682caeaaefd46f6e
Author: Amr Hesham <amr96 at programmer.net>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
A clang/test/CIR/IR/catch-param.cir
Log Message:
-----------
[CIR] Add structured CatchParamOp (#165110)
Upstream, the structured CatchParamOp as a prerequisite for implementing
exception handlers
Issue https://github.com/llvm/llvm-project/issues/154992
Commit: ddd770d97b2c4a071d4cd9cb471ed9a397e0135c
https://github.com/llvm/llvm-project/commit/ddd770d97b2c4a071d4cd9cb471ed9a397e0135c
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M libcxx/include/__exception/exception.h
M libcxx/include/__exception/nested_exception.h
M libcxx/include/__exception/operations.h
M libcxx/include/__system_error/error_category.h
M libcxx/include/__system_error/error_code.h
M libcxx/include/__system_error/error_condition.h
M libcxx/include/__system_error/system_error.h
M libcxx/include/stdexcept
A libcxx/test/libcxx/diagnostics/syserr/nodiscard.verify.cpp
M libcxx/test/libcxx/language.support/nodiscard.verify.cpp
Log Message:
-----------
[libc++] Applied `[[nodiscard]]` to `<exception>`, `<stdexcept>` and `<system_error>` (#170837)
[[nodiscard]] should be applied to functions where discarding the return
value is most likely a correctness issue.
- https://libcxx.llvm.org/CodingGuidelines.html
Commit: 0cd523e55244db709987b619a7a9a2add94869fc
https://github.com/llvm/llvm-project/commit/0cd523e55244db709987b619a7a9a2add94869fc
Author: Dark Steve <Prasoon.Mishra at amd.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/PHIElimination.cpp
A llvm/test/CodeGen/AMDGPU/phi-elim-mli-available.mir
Log Message:
-----------
[PHIElimination] Declare MachineLoopInfo dependency for Legacy PM (#169693)
PHIElimination uses MachineLoopInfo for loop-exiting critical edge
splitting but wasn't declaring this dependency via addUsedIfAvailable()
in getAnalysisUsage(). Without this declaration, the pass manager does
not make MachineLoopInfo accessible to PHIElimination, causing
getAnalysisIfAvailable() to return nullptr.
Without MachineLoopInfo, the loop-exiting edge optimization doesn't
fire, resulting in fewer critical edge splits and potentially suboptimal
code placement.
This patch adds:
- MachineLoopInfo as an optional dependency
- A test that verifies the optimization fires when MLI is accessible
Commit: 0e5fd438f407712b220510a2fd2e094d3b49d43e
https://github.com/llvm/llvm-project/commit/0e5fd438f407712b220510a2fd2e094d3b49d43e
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M clang-tools-extra/clang-tidy/.clang-tidy
M clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp
M clang-tools-extra/clang-tidy/utils/UseRangesCheck.cpp
Log Message:
-----------
[clang-tidy][NFC] Add a few cppcoreguidelines checks to codebase (#170977)
Commit: a805147ac1ba123916de182babb0831fbb148756
https://github.com/llvm/llvm-project/commit/a805147ac1ba123916de182babb0831fbb148756
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp
M clang-tools-extra/clang-tidy/bugprone/ChainedComparisonCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/DanglingHandleCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/NonZeroEnumToBoolConversionCheck.cpp
M clang-tools-extra/clang-tidy/llvm/UseNewMLIROpBuilderCheck.cpp
M clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp
M clang-tools-extra/clang-tidy/readability/RedundantInlineSpecifierCheck.cpp
M clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp
M clang-tools-extra/clang-tidy/utils/LexerUtils.cpp
M clang-tools-extra/clang-tidy/utils/TransformerClangTidyCheck.cpp
Log Message:
-----------
[clang-tidy][NFC] Remove unused headers (flagged by misc-include-cleaner) (#170982)
But `misc-include-cleaner` still has reasonable amount of FP in
codebase, so we can't enable it clang-tidy.
Commit: ff05da6042f0fba9fca6c6c18d0337ccf499b60d
https://github.com/llvm/llvm-project/commit/ff05da6042f0fba9fca6c6c18d0337ccf499b60d
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M clang-tools-extra/clang-tidy/.clang-tidy
M clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
M clang-tools-extra/clang-tidy/altera/StructPackAlignCheck.cpp
M clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/SuspiciousMissingCommaCheck.cpp
M clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.cpp
M clang-tools-extra/clang-tidy/misc/MisleadingBidirectionalCheck.cpp
M clang-tools-extra/clang-tidy/misc/MisleadingIdentifierCheck.cpp
M clang-tools-extra/clang-tidy/openmp/UseDefaultNoneCheck.cpp
M clang-tools-extra/clang-tidy/readability/FunctionCognitiveComplexityCheck.cpp
Log Message:
-----------
[clang-tidy][NFC] Add google-readability-casting check to codebase (#170980)
Commit: 8dee997a8558b460b82b23fb43b197d68258baac
https://github.com/llvm/llvm-project/commit/8dee997a8558b460b82b23fb43b197d68258baac
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
M llvm/test/CodeGen/AMDGPU/promote-alloca-multidim.ll
M llvm/test/CodeGen/AMDGPU/promote-alloca-negative-index.ll
M llvm/test/CodeGen/AMDGPU/promote-alloca-vector-to-vector.ll
Log Message:
-----------
Reland "AMDGPU/PromoteAlloca: Always use i32 for indexing (#170511)" (#170956)
Create more canonical code that may even lead to slightly better
codegen.
Commit: 4930e94011f6c62231de880273821d453dae0f14
https://github.com/llvm/llvm-project/commit/4930e94011f6c62231de880273821d453dae0f14
Author: owenca <owenpiano at gmail.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Fix a regression in annotating star before lambda (#170969)
Fixes #170573
Commit: 49a7772be5bfc86a64103a08a190133f7e4ea823
https://github.com/llvm/llvm-project/commit/49a7772be5bfc86a64103a08a190133f7e4ea823
Author: Philip Reames <preames at rivosinc.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M llvm/include/llvm/CodeGen/MachineFrameInfo.h
M llvm/include/llvm/CodeGen/TargetFrameLowering.h
M llvm/lib/CodeGen/PrologEpilogInserter.cpp
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/lib/Target/AArch64/AArch64FrameLowering.h
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
M llvm/lib/Target/AMDGPU/SIFrameLowering.h
M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
M llvm/lib/Target/RISCV/RISCVFrameLowering.h
Log Message:
-----------
[CodeGen] Replace (Min,Max)CSFrameIndex with flag on frame object [NFCI] (#170905)
This removes the tracking of the MinCSFrameIndex, and MaxCSFrameIndex markers, simplifying the target API. This brings the tracking for callee save spill slots in line with how we handle other properties of stack locations.
A couple notes:
1) This requires doing scans of the entire object range, but we have other such instances in the code already, so I doubt this will matter in practice.
2) This removes the requirement that callee saved spill slots be contiguous in the frame index identified space.
I marked this as NFCI because if prior code violated the contiguous range assumption - I can't find a case where we did - then this change might adjust frame layout in some edge cases.
The motivation for this is mostly code readability, but I might use this as a primitive for something in an upcoming patch series around shrink wrapping. Haven't decided yet.
Commit: 02482f42739e5b16035f4169923cb6abe0bb9698
https://github.com/llvm/llvm-project/commit/02482f42739e5b16035f4169923cb6abe0bb9698
Author: Maksim Panchenko <maks at fb.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M bolt/include/bolt/Core/BinaryFunction.h
M bolt/lib/Core/BinaryFunction.cpp
M bolt/test/X86/unclaimed-jt-entries.s
M bolt/test/runtime/X86/unclaimed-jt-entries.s
Log Message:
-----------
[BOLT] Properly validate relocations against internals of a function (#167451)
Validation of data relocations targeting internals of a function was
happening based on offsets inside a function. As a result, if multiple
relocations were targeting the same offset, and one of the relocations
was verified, e.g. as belonging to a jump table, then all relocations
targeting the offset would be considered verified and valid.
Now that we are tracking relocations pointing inside every function, we
can do a better validation based on the location of the relocation.
E.g., if a relocation belongs to a jump table only that relocation will
be accounted for and other relocations pointing to the same address will
be evaluated independently.
Commit: 315c904e3e1c00ea1ec7f0757e4c538ec2513624
https://github.com/llvm/llvm-project/commit/315c904e3e1c00ea1ec7f0757e4c538ec2513624
Author: Victor Chernyakin <chernyakin.victor.j at outlook.com>
Date: 2025-12-06 (Sat, 06 Dec 2025)
Changed paths:
M clang/include/clang/AST/IgnoreExpr.h
Log Message:
-----------
[clang][NFC] Simplify implementation of `IgnoreExprNodes` (#164193)
Using a fold instead of template recursion.
Commit: 0dff5b5824f2fb958039da7f55b501127476a7c3
https://github.com/llvm/llvm-project/commit/0dff5b5824f2fb958039da7f55b501127476a7c3
Author: Feng Zou <feng.zou at intel.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M llvm/lib/Target/X86/X86CompressEVEX.cpp
M llvm/test/CodeGen/X86/apx/compress-evex.mir
M llvm/test/TableGen/x86-instr-mapping.inc
M llvm/utils/TableGen/X86InstrMappingEmitter.cpp
M llvm/utils/TableGen/X86ManualInstrMapping.def
Log Message:
-----------
[X86][APX] Compress setzucc with memory operand to setcc (#170842)
setzucc with memory operand is same as setcc but the later is shorter.
Commit: 3b355b26bf4e8d5706a0a920698c1611357479f4
https://github.com/llvm/llvm-project/commit/3b355b26bf4e8d5706a0a920698c1611357479f4
Author: Jacques Pienaar <jpienaar at google.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M mlir/tools/mlir-tblgen/PassGen.cpp
Log Message:
-----------
[mlir] Remove deprecated GEN_PASS_CLASSES. (#166904)
This was marked as deprecated in 2022, but as comment. Switch to error
to make visible and stop generating. Will remove the error message in
follow up, just felt this was easier for folks to understand compilation
errors. The change required to new form is rather minimal.
Commit: bdb918e10a0856080b697ca7fce13263b6b63867
https://github.com/llvm/llvm-project/commit/bdb918e10a0856080b697ca7fce13263b6b63867
Author: Matthias Springer <me at m-sp.org>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M mlir/lib/Conversion/ArithToAPFloat/ArithToAPFloat.cpp
M mlir/test/Conversion/ArithToApfloat/arith-to-apfloat.mlir
Log Message:
-----------
[mlir][arith] `arith-to-apfloat`: Bail on unsupported bitwidth (#170994)
Bitwidths greater than 64 are not supported by `arith-to-apfloat`.
Commit: a1ba1fa5788c4cc0e72b7af6a555eb046510e86c
https://github.com/llvm/llvm-project/commit/a1ba1fa5788c4cc0e72b7af6a555eb046510e86c
Author: Gil Rapaport <gil.rapaport at mobileye.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M mlir/lib/Target/Cpp/TranslateToCpp.cpp
Log Message:
-----------
[mlir][emitc] Simplify inlining logic (NFCI) (#169978)
This change makes inlining logic in the translator simpler and more
consistent by
(a) Extending the inlining concept to include CExpression ops, which by
definition are inlined if and only if they reside within an
ExpressionOp.
(b) Concentraing all inlining decisions in `shouldBeInlined()` to make
sure that ops get the same decision when queried as operations and
as operands.
Commit: fb0400fe1f1f9e83f3148db8ce2c72ab5bc6728e
https://github.com/llvm/llvm-project/commit/fb0400fe1f1f9e83f3148db8ce2c72ab5bc6728e
Author: Gil Rapaport <gil.rapaport at mobileye.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M mlir/lib/Target/Cpp/TranslateToCpp.cpp
M mlir/test/Target/Cpp/common-cpp.mlir
Log Message:
-----------
[mlir][emitc] Fix bug in dereference translation (#171028)
The op was not added to `hasDeferredEmission()` when introduced by
f17abc280c70, causing incorrect translation.
Commit: 73a13839d3ec4dab9330b3909890105efad9b3bd
https://github.com/llvm/llvm-project/commit/73a13839d3ec4dab9330b3909890105efad9b3bd
Author: Hui <hui.xie1990 at gmail.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M libcxx/docs/ABIGuarantees.rst
M libcxx/docs/ReleaseNotes/22.rst
M libcxx/include/__atomic/atomic.h
M libcxx/include/__atomic/atomic_flag.h
M libcxx/include/__atomic/atomic_ref.h
M libcxx/include/__atomic/atomic_sync.h
M libcxx/include/__atomic/contention_t.h
M libcxx/include/__configuration/abi.h
M libcxx/include/__configuration/availability.h
M libcxx/lib/abi/CHANGELOG.TXT
M libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/i686-linux-android21.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/powerpc-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/powerpc64-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/x86_64-linux-android21.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/x86_64-unknown-freebsd.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.noexceptions.nonew.abilist
M libcxx/src/atomic.cpp
M libcxx/test/libcxx/atomics/atomics.syn/wait.issue_85107.pass.cpp
A libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/lost_wakeup.pass.cpp
Log Message:
-----------
[libc++] Allows any types of size 4 and 8 to use native platform ulock_wait (#161086)
This is to address #146145
The issue before was that, for `std::atomic::wait/notify`, we only
support `uint64_t` to go through the native `ulock_wait` directly. Any
other types will go through the global contention table's `atomic`,
increasing the chances of spurious wakeup. This PR tries to allow any
types that are of size 4 or 8 to directly go to the `ulock_wait`.
This PR is just proof of concept. If we like this idea, I can go further
to update the Linux/FreeBSD branch and add ABI macros so the existing
behaviours are reserved under the stable ABI
Here are some benchmark results
```
Benchmark Time CPU Time Old Time New CPU Old CPU New
----------------------------------------------------------------------------------------------------------------------------------------------------
BM_stop_token_single_thread_reg_unreg_callback/1024 -0.1113 -0.1165 51519 45785 51397 45408
BM_stop_token_single_thread_reg_unreg_callback/4096 -0.2727 -0.1447 249685 181608 211865 181203
BM_stop_token_single_thread_reg_unreg_callback/65536 -0.1241 -0.1237 3308930 2898396 3300986 2892608
BM_stop_token_single_thread_reg_unreg_callback/262144 +0.0335 -0.1920 13237682 13681632 13208849 10673254
OVERALL_GEOMEAN -0.1254 -0.1447 0 0 0 0
```
```
Benchmark Time CPU Time Old Time New CPU Old CPU New
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
BM_1_atomic_1_waiter_1_notifier<KeepNotifying, NumHighPrioTasks<0>>/65536 -0.3344 -0.2424 5960741 3967212 5232250 3964085
BM_1_atomic_1_waiter_1_notifier<KeepNotifying, NumHighPrioTasks<0>>/131072 -0.1474 -0.1475 9144356 7796745 9137547 7790193
BM_1_atomic_1_waiter_1_notifier<KeepNotifying, NumHighPrioTasks<0>>/262144 -0.1336 -0.1340 18333441 15883805 18323711 15868500
OVERALL_GEOMEAN -0.2107 -0.1761 0 0 0 0
```
```
Benchmark Time CPU Time Old Time New CPU Old CPU New
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
BM_1_atomic_multi_waiter_1_notifier<KeepNotifying, NumWaitingThreads<2>, NumHighPrioTasks<0>>/16384 +0.2321 -0.0081 836618 1030772 833197 826476
BM_1_atomic_multi_waiter_1_notifier<KeepNotifying, NumWaitingThreads<2>, NumHighPrioTasks<0>>/32768 -0.3034 -0.1329 2182721 1520569 1747211 1515028
BM_1_atomic_multi_waiter_1_notifier<KeepNotifying, NumWaitingThreads<2>, NumHighPrioTasks<0>>/65536 -0.0924 -0.0924 3389098 3075897 3378486 3066448
BM_1_atomic_multi_waiter_1_notifier<KeepNotifying, NumWaitingThreads<8>, NumHighPrioTasks<0>>/4096 +0.0464 +0.0474 664233 695080 657736 688892
BM_1_atomic_multi_waiter_1_notifier<KeepNotifying, NumWaitingThreads<8>, NumHighPrioTasks<0>>/8192 -0.0279 -0.0267 1336041 1298794 1324270 1288953
BM_1_atomic_multi_waiter_1_notifier<KeepNotifying, NumWaitingThreads<8>, NumHighPrioTasks<0>>/16384 +0.0270 +0.0304 2543004 2611786 2517471 2593975
BM_1_atomic_multi_waiter_1_notifier<KeepNotifying, NumWaitingThreads<32>, NumHighPrioTasks<0>>/1024 +0.0423 +0.0941 473621 493657 325604 356245
BM_1_atomic_multi_waiter_1_notifier<KeepNotifying, NumWaitingThreads<32>, NumHighPrioTasks<0>>/2048 +0.0420 +0.0675 906266 944349 636253 679169
BM_1_atomic_multi_waiter_1_notifier<KeepNotifying, NumWaitingThreads<32>, NumHighPrioTasks<0>>/4096 +0.0359 +0.0378 1761584 1824783 1015092 1053439
OVERALL_GEOMEAN -0.0097 -0.0007 0 0 0 0
```
```
Benchmark Time CPU Time Old Time New CPU Old CPU New
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
BM_N_atomics_N_waiter_N_notifier<KeepNotifying, NumberOfAtomics<2>, NumHighPrioTasks<0>>/4096 -0.0990 -0.1001 371100 334370 369984 332955
BM_N_atomics_N_waiter_N_notifier<KeepNotifying, NumberOfAtomics<2>, NumHighPrioTasks<0>>/8192 -0.0305 -0.0314 698228 676908 696418 674585
BM_N_atomics_N_waiter_N_notifier<KeepNotifying, NumberOfAtomics<2>, NumHighPrioTasks<0>>/16384 -0.0258 -0.0268 1383530 1347894 1380665 1343680
BM_N_atomics_N_waiter_N_notifier<KeepNotifying, NumberOfAtomics<8>, NumHighPrioTasks<0>>/1024 +0.0465 +0.4702 937821 981388 472087 694082
BM_N_atomics_N_waiter_N_notifier<KeepNotifying, NumberOfAtomics<8>, NumHighPrioTasks<0>>/2048 +0.1596 +0.9140 1704819 1976899 616419 1179852
BM_N_atomics_N_waiter_N_notifier<KeepNotifying, NumberOfAtomics<8>, NumHighPrioTasks<0>>/4096 -0.1018 -0.2316 3793976 3407609 1912209 1469331
BM_N_atomics_N_waiter_N_notifier<KeepNotifying, NumberOfAtomics<32>, NumHighPrioTasks<0>>/256 +0.0395 +0.5818 30102662 31292982 174650 276270
BM_N_atomics_N_waiter_N_notifier<KeepNotifying, NumberOfAtomics<32>, NumHighPrioTasks<0>>/512 -0.0065 +1.2860 33079634 32863968 162150 370680
BM_N_atomics_N_waiter_N_notifier<KeepNotifying, NumberOfAtomics<32>, NumHighPrioTasks<0>>/1024 -0.0325 +0.4683 36581740 35392385 282320 414520
OVERALL_GEOMEAN -0.0084 +0.2878 0 0 0 0
```
---------
Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
Commit: 1226a6d8c34ca007c4192e6039866a65b98b2625
https://github.com/llvm/llvm-project/commit/1226a6d8c34ca007c4192e6039866a65b98b2625
Author: mitchell <mitchell.xu2 at gmail.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M clang-tools-extra/test/clang-tidy/infrastructure/Inputs/param/parameters.txt
Log Message:
-----------
[clang-tidy] Fix fragile test in `read-parameters-from-file` (#171033)
[CommandLine.cpp](https://github.com/llvm/llvm-project/blob/fb0400fe1f1f9e83f3148db8ce2c72ab5bc6728e/llvm/lib/Support/CommandLine.cpp#L940)
treats single quote as literal characters on Windows, so the argument is
parsed as a check named `' -*,llvm-namespace-comment '`, which matches
no existing checks, so no checks are enabled via the command line.
Previously, the test passed because it fell back to the root
`.clang-tidy` configuration which enables `llvm-*`.
Commit: 9e7ce77573b2fad126a367475cbe807c10826691
https://github.com/llvm/llvm-project/commit/9e7ce77573b2fad126a367475cbe807c10826691
Author: Hassnaa Hamdi <hassnaa.hamdi at arm.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/docs/UsersManual.rst
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Options/Options.td
M clang/lib/CodeGen/BackendUtil.cpp
M clang/lib/CodeGen/CGClass.cpp
M clang/lib/CodeGen/CGVTables.cpp
M clang/lib/CodeGen/ItaniumCXXABI.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
A clang/test/CodeGenCXX/speculative-devirt-metadata.cpp
M clang/test/Driver/clang_f_opts.c
M llvm/include/llvm/Passes/PassBuilder.h
M llvm/include/llvm/Transforms/IPO/WholeProgramDevirt.h
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
A llvm/test/Transforms/PhaseOrdering/speculative-devirt-then-inliner.ll
A llvm/test/Transforms/WholeProgramDevirt/devirt-metadata.ll
Log Message:
-----------
[Clang]: Support opt-in speculative devirtualization (#159685)
This patch adds Clang support for speculative devirtualization and
integrates the related pass into the pass pipeline.
It's building on the LLVM backend implementation from PR #159048.
Speculative devirtualization transforms an indirect call (the virtual
function) to a guarded direct call.
It is guarded by a comparison of the virtual function pointer to the
expected target.
This optimization is still safe without LTO because it doesn't do direct
calls, it's conditional according to the function ptr.
This optimization:
- Opt-in: Disabled by default, enabled via `-fdevirtualize-speculatively`
- Works in non-LTO mode
- Handles publicly-visible objects.
- Uses guarded devirtualization with fallback to indirect calls when the
speculation is incorrect.
For this C++ example:
```
class Base {
public:
__attribute__((noinline))
virtual void virtual_function1() { asm volatile("NOP"); }
virtual void virtual_function2() { asm volatile("NOP"); }
};
class Derived : public Base {
public:
void virtual_function2() override { asm volatile("NOP"); }
};
__attribute__((noinline))
void foo(Base *BV) {
BV->virtual_function1();
}
void bar() {
Base *b = new Derived();
foo(b);
}
```
Here is the IR without enabling speculative devirtualization:
```
define dso_local void @_Z3fooP4Base(ptr noundef %BV) local_unnamed_addr #0 {
entry:
%vtable = load ptr, ptr %BV, align 8, !tbaa !6
%0 = load ptr, ptr %vtable, align 8
tail call void %0(ptr noundef nonnull align 8 dereferenceable(8) %BV)
ret void
}
```
IR after enabling speculative devirtualization:
```
define dso_local void @_Z3fooP4Base(ptr noundef %BV) local_unnamed_addr #0 {
entry:
%vtable = load ptr, ptr %BV, align 8, !tbaa !12
%0 = load ptr, ptr %vtable, align 8
%1 = icmp eq ptr %0, @_ZN4Base17virtual_function1Ev
br i1 %1, label %if.true.direct_targ, label %if.false.orig_indirect, !prof !15
if.true.direct_targ: ; preds = %entry
tail call void @_ZN4Base17virtual_function1Ev(ptr noundef nonnull align 8 dereferenceable(8) %BV)
br label %if.end.icp
if.false.orig_indirect: ; preds = %entry
tail call void %0(ptr noundef nonnull align 8 dereferenceable(8) %BV)
br label %if.end.icp
if.end.icp: ; preds = %if.false.orig_indirect, %if.true.direct_targ
ret void
}
```
Commit: 3fc741923643040cc17ef9562983994e73c74efb
https://github.com/llvm/llvm-project/commit/3fc741923643040cc17ef9562983994e73c74efb
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
M llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
M llvm/test/Transforms/LoopVectorize/first-order-recurrence-chains-vplan.ll
M llvm/test/Transforms/LoopVectorize/interleave-and-scalarize-only.ll
M llvm/test/Transforms/LoopVectorize/vplan-printing-reductions.ll
M llvm/test/Transforms/LoopVectorize/vplan-printing.ll
M llvm/unittests/Transforms/Vectorize/VPlanVerifierTest.cpp
Log Message:
-----------
[VPlan] Replace ExtractLast(Elem|LanePerPart) with ExtractLast(Lane/Part) (#164124)
Replace ExtractLastElement and ExtractLastLanePerPart with more generic
and specific ExtractLastLane and ExtractLastPart, which model distinct
parts of extracting across parts and lanes. ExtractLastElement ==
ExtractLastLane(ExtractLastPart) and ExtractLastLanePerPart ==
ExtractLastLane, the latter clarifying the name of the opcode. A new
m_ExtractLastElement matcher is provided for convenience.
The patch should be NFC modulo printing changes.
PR: https://github.com/llvm/llvm-project/pull/164124
Commit: 11fd760e3a13b5c519e49abc7c9e3b684a94e6f8
https://github.com/llvm/llvm-project/commit/11fd760e3a13b5c519e49abc7c9e3b684a94e6f8
Author: Tianqi Chen <tqchen at users.noreply.github.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M mlir/include/mlir-c/ExecutionEngine.h
M mlir/lib/Bindings/Python/ExecutionEngineModule.cpp
M mlir/lib/CAPI/ExecutionEngine/ExecutionEngine.cpp
M mlir/test/CAPI/execution_engine.c
M mlir/test/CAPI/global_constructors.c
M mlir/test/python/execution_engine.py
Log Message:
-----------
[MLIR][ExecutionEngine] Enable PIC option (#170995)
This PR enables the MLIR execution engine to dump object file as PIC
code, which is needed when the object file is later bundled into a dynamic
shared library.
---------
Co-authored-by: Mehdi Amini <joker.eph at gmail.com>
Commit: 68fea00dfb736656ded58e1017733019b9664d88
https://github.com/llvm/llvm-project/commit/68fea00dfb736656ded58e1017733019b9664d88
Author: Alex Voicu <alexandru.voicu at amd.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M clang/lib/CodeGen/Targets/SPIR.cpp
M clang/test/CodeGenCUDA/amdgpu-kernel-arg-pointer-type.cu
M clang/test/CodeGenCUDA/kernel-args.cu
A clang/test/CodeGenHIP/amdgcnspirv-uses-amdgpu-abi.cpp
M llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
A llvm/test/CodeGen/SPIRV/pointers/ptr-argument-byref-amdgcnspirv.ll
Log Message:
-----------
[SPIRV] Use AMDGPU ABI for AMDGCN flavoured SPIRV (#169865)
At the moment AMDGCN flavoured SPIRV uses the SPIRV ABI with some tweaks
revolving around passing aggregates as direct. This is problematic in
multiple ways:
- it leads to divergence from code compiled for a concrete target, which
makes it difficult to debug;
- it incurs a run time cost, when dealing with larger aggregates;
- it incurs a compile time cost, when dealing with larger aggregates.
This patch switches over AMDGCN flavoured SPIRV to implement the AMDGPU
ABI (except for dealing with variadic functions, which will be added in
the future). One additional complication (and the primary motivation
behind the current less than ideal state of affairs) stems from `byref`,
which AMDGPU uses, not being expressible in SPIR-V. We deal with this by
CodeGen-ing for `byref`, lowering it to the `FuncParamAttr ByVal` in
SPIR-V, and restoring it when doing reverse translation from AMDGCN
flavoured SPIR-V.
Commit: 7bfdaa51f155432346e507d8ce389802c92eb530
https://github.com/llvm/llvm-project/commit/7bfdaa51f155432346e507d8ce389802c92eb530
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp
Log Message:
-----------
[VPlan] Fix unused variable warning
llvm-project/llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp:312:19: warning: unused variable 'EB' [-Wunused-variable]
312 | VPBasicBlock *EB = Plan.getExitBlocks().front();
| ^~
This showed up in a non-assertions build.
Commit: 5dbd049662001535a475cdb7d290dfb63a0515fc
https://github.com/llvm/llvm-project/commit/5dbd049662001535a475cdb7d290dfb63a0515fc
Author: Matthias Springer <me at m-sp.org>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M mlir/include/mlir/Conversion/Passes.td
M mlir/lib/Conversion/ArithToAPFloat/ArithToAPFloat.cpp
M mlir/lib/Conversion/ArithToAPFloat/CMakeLists.txt
M mlir/test/Conversion/ArithToApfloat/arith-to-apfloat.mlir
A mlir/test/Integration/Dialect/Arith/CPU/test-apfloat-emulation-vector.mlir
Log Message:
-----------
[mlir][arith] `arith-to-apfloat`: Add vector support (#171024)
Add support for vectorized operations such as `arith.addf ... :
vector<4xf4E2M1FN>`. The computation is scalarized: scalar operands are
extracted with `vector.to_elements`, multiple scalar computations are
performed and the result is inserted back into a vector with
`vector.from_elements`.
Commit: ffc55815ef3208a3802513c33ac66a122d2fb680
https://github.com/llvm/llvm-project/commit/ffc55815ef3208a3802513c33ac66a122d2fb680
Author: Alex Voicu <alexandru.voicu at amd.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
M llvm/lib/Target/SPIRV/SPIRVPreLegalizer.cpp
M llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.cpp
M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
M llvm/lib/Target/SPIRV/SPIRVUtils.h
A llvm/test/CodeGen/SPIRV/pointers/fun-with-aggregate-arg-in-const-init.ll
Log Message:
-----------
[SPIRV] Add support for pointers to functions with aggregate args/returns as global variables / constant initialisers (#169595)
This patch does two things:
1. it extends the aggregate arg / ret replacement transform to work on
indirect calls / pointers to function. It is somewhat spread out as
retrieving the original function type is needed in a few places. In
general, we should rethink / rework the entire infrastructure around
aggregate arg/ret handling, using an opaque target specific type rather
than i32;
2. it enables global variables of pointer to function type, and, more
specifically, global variables of a aggregate type (arrays / structures)
with pointer to function elements.
This also exposes some issues in how we handle pointers to function and
lowering indirect function calls, primarily around not using the program
address space. These will be handled in a subsequent patch as they'll
require somewhat more intrusive surgery, possibly involving modifying
the data layout.
Commit: 359cac491195af10e7481f5a322be689ba01a267
https://github.com/llvm/llvm-project/commit/359cac491195af10e7481f5a322be689ba01a267
Author: Victor Chernyakin <chernyakin.victor.j at outlook.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp
M clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.h
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/fuchsia/multiple-inheritance.cpp
Log Message:
-----------
[clang-tidy] Don't cache classes by name in `fuchsia-multiple-inheritance` (#171016)
Context: for every class, this check needs to compute whether that class
is an interface (i.e. only has pure virtual methods). This is expensive,
so the check caches the computation. But it caches by class name, which
is problematic, because the same name can refer to different classes at
different scopes. Here's for example a false negative it causes:
https://godbolt.org/z/bMGc5sYqh. This PR changes it to cache by
`CXXRecordDecl *` instead.
Commit: 8378a6fa4f5c83298fb0b5e240bb7f254f7b1137
https://github.com/llvm/llvm-project/commit/8378a6fa4f5c83298fb0b5e240bb7f254f7b1137
Author: Matthias Springer <me at m-sp.org>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M mlir/test/Integration/Dialect/Arith/CPU/test-apfloat-emulation-vector.mlir
Log Message:
-----------
[mlir][arith] Fix build after #171024 (#171057)
Fix build after #171024.
Commit: 72b4a5d3b05d25f2442d1f6cb9105cf2cc29d4de
https://github.com/llvm/llvm-project/commit/72b4a5d3b05d25f2442d1f6cb9105cf2cc29d4de
Author: Vojtěch Michal <50836015+vmichal at users.noreply.github.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/copy_assign.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/deduct.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/deduct_pmr.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/initializer_list.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/iter_iter.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_assign.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/pmr.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/range.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/sorted_container.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/sorted_initializer_list.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/sorted_iter_iter.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/erase_key.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.observers/comp.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/copy_assign.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/deduct.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/deduct_pmr.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/initializer_list.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/iter_iter.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_assign.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/pmr.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/range.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/sorted_container.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/sorted_initializer_list.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/sorted_iter_iter.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/erase_key.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.observers/comp.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/move.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/move_assign.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_iter_iter.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.iterators/iterator.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/move.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/move_assign.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/sorted_iter_iter.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.set/flat.set.iterators/iterator.pass.cpp
Log Message:
-----------
[libcxx] Removal of narrowing conversions in `flat_[multi]{set, map}` tests for compatibility with MSVC (#170909)
Impacts files in `test/std/containers/container.adaptors/flat.xxx`. No
meaning is changed; only appropriate types are spelled out to prevent
compiler warnings.
- Replace `char`s and `short`s used in tests of `flat_[multi]{set, map}`
with `long`s to prevent warnings about narrowing conversions when
running tests. Allow increased test coverage for MSVC STL.
- Make test code robust against evil overloads of operator comma .(2
files)
- Add `[[maybe_unused]]` to some local `typedef`s that are sometimes
unused due to usage of `LIBCPP_STATIC_ASSERT`.
For discussion and suggested changes, see the LLVM Discord
https://discord.com/channels/636084430946959380/636732894974312448/1445901676400742533
Commit: 000e46219ba1ee53fc42d35e00c314c2807e8b14
https://github.com/llvm/llvm-project/commit/000e46219ba1ee53fc42d35e00c314c2807e8b14
Author: Jorge Gorbe Moya <jgorbe at slackito.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Fix mlir build after #171024 (#171068)
Commit: fc92e4dec9a6dfcb4fb77d863d0bf1dbc53033e5
https://github.com/llvm/llvm-project/commit/fc92e4dec9a6dfcb4fb77d863d0bf1dbc53033e5
Author: Mingjie Xu <xumingjie.enna1 at bytedance.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
Log Message:
-----------
[InstCombine] Fix bail-out in `PHIsEqualValue()` (#170650)
We encountered a such case: `PHIsEqualValue()` is called with a PHI node
`PN` whose incoming values are all PHI nodes, and `NonPhiInVal` is
nullptr. When the size of `ValueEqualPHIs` reaches 16, `NonPhiInVal` is
still nullptr, then we keep scanning PHI node operands, this time the
recursion won't bail out even if we have visited too many PHI nodes.
In our case, the recursion ends with ~1700 PHI nodes visited, causes
InstCombine time-consuming.
Commit: 62355f19edd7435bbf6fdae512db3e725a0f6647
https://github.com/llvm/llvm-project/commit/62355f19edd7435bbf6fdae512db3e725a0f6647
Author: Mend Renovate <bot at renovateapp.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M .github/workflows/release-sources.yml
Log Message:
-----------
Update actions/checkout action to v6 (#171065)
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://redirect.github.com/actions/checkout) |
action | major | `v5.0.0` -> `v6.0.1` |
Commit: 2d80486656b75ed80490d27667a5e8191bb40079
https://github.com/llvm/llvm-project/commit/2d80486656b75ed80490d27667a5e8191bb40079
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
Log Message:
-----------
[RISCV] Use a switch in RISCVInstrInfo::verifyInstruction. NFC (#170961)
The immediate only operands handled with a range check and a switch
nested under the default case.
Commit: b0e98426f390c3f0d86c3a2c860a6d980a91e5de
https://github.com/llvm/llvm-project/commit/b0e98426f390c3f0d86c3a2c860a6d980a91e5de
Author: Brad Smith <brad at comstyle.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M compiler-rt/lib/builtins/cpu_model/aarch64.c
M compiler-rt/lib/builtins/cpu_model/aarch64/fmv/android.inc
M compiler-rt/lib/builtins/cpu_model/aarch64/fmv/elf_aux_info.inc
M compiler-rt/lib/builtins/cpu_model/aarch64/fmv/getauxval.inc
M compiler-rt/lib/builtins/cpu_model/aarch64/hwcap.inc
Log Message:
-----------
Revert "[FMV][AArch64] Add initial AT_HWCAP3 / AT_HWCAP4 support (#161595)" (#171071)
Crashing with older glibc.
This reverts commit edb43192516a55165cc4c158eb4fd4b2d81a8fce,
57b5ba00cb421b9be17bac10036763f42fbe9298 and
9715ccae1f98162f03ac0884a3dce5045b6b9a6e.
Commit: 6ec8c4351cfc1d0627d1633b02ea787bd29c77d8
https://github.com/llvm/llvm-project/commit/6ec8c4351cfc1d0627d1633b02ea787bd29c77d8
Author: Harrison Hao <57025411+harrisonGPU at users.noreply.github.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
M llvm/test/CodeGen/AMDGPU/promote-alloca-vector-gep.ll
Log Message:
-----------
[AMDGPU] Enable i8 GEP promotion for vector allocas (#166132)
This patch adds support for the pattern:
```llvm
%index = select i1 %idx_sel, i32 0, i32 4
%elt = getelementptr inbounds i8, ptr addrspace(5) %alloca, i32 %index
```
by scaling the byte offset to an element index (index >>
log2(ElemSize)),
allowing the vector element to be updated with insertelement instead of
using
scratch memory.
Commit: e442904e706b9957bbe81389f05e137d141a2c85
https://github.com/llvm/llvm-project/commit/e442904e706b9957bbe81389f05e137d141a2c85
Author: Shoreshen <372660931 at qq.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
A llvm/test/CodeGen/AMDGPU/attr-amdgpu-align.ll
M llvm/test/Transforms/Attributor/AMDGPU/tag-invariant-loads.ll
Log Message:
-----------
[AMDGPU] Apply alignment attr for make.buffer.rsrc (#166914)
Calculating alignment for `make.buffer.rsrc` intrinsic. The logic is the
alignment on use of return value of `make.buffer.rsrc` should be capped
by the base operand's alignment of `make.buffer.rsrc`.
For example:
```ll
define float @foo(ptr addrspace(1) align X %ptr) {
%fat.ptr = call ptr addrspace(7) @llvm.amdgcn.make.buffer.rsrc.p7.p1(ptr addrspace(1) %ptr, i16 0, i32 C, i32 0)
%y = load float, ptr addrspace(7) %fat.ptr, align Y
ret float %y
}
```
We hopes that `Y = min(X, Y)`
---
After discussion, it seems improper for letting `Y = min(X, Y)` since it
contradict with the semantic of align on load.
So we would apply the origin behavior of align, which is letting `X` and
`Y` both equal to `max(X, Y)`
---------
Co-authored-by: Shilei Tian <i at tianshilei.me>
Commit: 4125e73cdc6188cca4c1c72b72e2b2d85c157483
https://github.com/llvm/llvm-project/commit/4125e73cdc6188cca4c1c72b72e2b2d85c157483
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M libcxx/include/__functional/hash.h
M libcxx/include/__memory/shared_ptr.h
M libcxx/include/__memory/unique_ptr.h
M libcxx/include/__utility/integer_sequence.h
M libcxx/include/module.modulemap.in
M libcxx/test/libcxx/diagnostics/functional.nodiscard.verify.cpp
M libcxx/test/libcxx/language.support/nodiscard.verify.cpp
A libcxx/test/libcxx/utilities/intseq/nodiscard.verify.cpp
M libcxx/test/libcxx/utilities/smartptr/nodiscard.verify.cpp
Log Message:
-----------
[libc++] Applied `[[nodiscard]]` to `hash<shared_ptr>`, `hash<unique_ptr>`, etc. (#170674)
`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.
- https://libcxx.llvm.org/CodingGuidelines.html
1. `hash<shared_ptr>`, `hash<unique_ptr>`, `std::integer_sequence<>`
etc.
2. Also implements fixes to
https://github.com/llvm/llvm-project/issues/169634 on the go (issues
discovered during current implementation)
---------
Co-authored-by: A. Jiang <de34 at live.cn>
Co-authored-by: Hristo Hristov <zingam at outlook.com>
Commit: c6f45f51fbb93fd6d38f2a22e61053831fc553d4
https://github.com/llvm/llvm-project/commit/c6f45f51fbb93fd6d38f2a22e61053831fc553d4
Author: YunQiang Su <yunqiang at isrc.iscas.ac.cn>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/lib/Target/PowerPC/PPCInstrVSX.td
M llvm/test/CodeGen/PowerPC/fminimum-fmaximum.ll
M llvm/test/CodeGen/PowerPC/scalar-min-max.ll
Log Message:
-----------
PowerPC/VSX: Select FMINNUM and FMAXNUM (#135739)
In LangRef, we claim that FMINNUM and FMAXNUM should follow the minNum
and maxNum operators in IEEE754-2008.
PowerPC/VSX does have these instructions XSMINDP and XSMAXDP.
Now we use FMINNUM_IEEE and FMAXNUM_IEEE, since they are used by the
non-arch expand codes now.
In future, we may replace all FMINNUM_IEEE/FMAXNUM_IEEE with FMINNUM and
FMAXNUM.
---------
Co-authored-by: Your Name <you at example.com>
Commit: 8e39bcd9c37f7d35cf34dd78e7b57b7fbc2b4312
https://github.com/llvm/llvm-project/commit/8e39bcd9c37f7d35cf34dd78e7b57b7fbc2b4312
Author: Mingming Liu <mingmingl at google.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M lld/docs/ELF/linker_script.rst
Log Message:
-----------
[lld][docs] Document two linker-script related options for lld ELF (#166313)
This is a follow up of the discussions in
https://github.com/llvm/llvm-project/pull/163497
Commit: 4b800d309920889504ff04b57cb818a45b28d748
https://github.com/llvm/llvm-project/commit/4b800d309920889504ff04b57cb818a45b28d748
Author: Luke Lau <luke at igalia.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVCodeGenPrepare.cpp
Log Message:
-----------
[RISCV] Remove last use of @llvm.experimental.vp.splat in RISCVCodeGenPrepare. NFCI (#170543)
RISCVCodeGenPrepare is the last user of the vp.splat intrinsic, where it
uses it to expand a zero strided load into a scalar load and splat.
Originally this was to avoid vl toggles inside vectorized loops, but
nowadays this shouldn't be necessary because we have RISCVVLOptimizer.
To preserve the test cases where there's no store with VL, this replaces
it with a regular splat followed by a vp_merge to set the lanes past EVL
as poison. We need to set the EVL here because RISCVISelDAGToDAG will
try and recombine it back into a zero strided load, and we want to
preserve the original VL.
Commit: 446a3a19ed93449a9b50533f924f4bb658fd113e
https://github.com/llvm/llvm-project/commit/446a3a19ed93449a9b50533f924f4bb658fd113e
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoXSfmm.td
Log Message:
-----------
[RISCV] Use GPRNoX0 instead of AVL for Xsfmm pseudos. NFC (#170726)
AVL allows immediates, but we don't have an equivalent of vsetivli for
XSfmm.
Commit: 46341d5938a060834f92da6e507fcd5fddf0155b
https://github.com/llvm/llvm-project/commit/46341d5938a060834f92da6e507fcd5fddf0155b
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M clang/test/Driver/print-supported-extensions-riscv.c
M llvm/docs/RISCVUsage.rst
M llvm/lib/Target/RISCV/RISCVFeatures.td
M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/lib/Target/RISCV/RISCVInstrInfoZb.td
M llvm/lib/Target/RISCV/RISCVSubtarget.h
M llvm/test/CodeGen/RISCV/attributes.ll
M llvm/test/CodeGen/RISCV/rv32p.ll
M llvm/test/CodeGen/RISCV/rv64p.ll
M llvm/test/CodeGen/RISCV/rvp-ext-rv32.ll
M llvm/test/CodeGen/RISCV/rvp-ext-rv64.ll
M llvm/test/MC/RISCV/attribute-arch.s
M llvm/test/MC/RISCV/rv32i-invalid.s
M llvm/test/MC/RISCV/rv32p-invalid.s
M llvm/test/MC/RISCV/rv32p-valid.s
M llvm/test/MC/RISCV/rv64p-valid.s
M llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
Log Message:
-----------
[RISCV] Update P extension to the 018 version of the spec. (#170399)
Rename the PPACK* instructions to PPAIR*. Rename PDIF* to PABD*. Remove
Zba/Zbb instructions from P.
https://www.jhauser.us/RISCV/ext-P/
Commit: 9c60d70df9212734d0cf332b4b687a4942cc7257
https://github.com/llvm/llvm-project/commit/9c60d70df9212734d0cf332b4b687a4942cc7257
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-07 (Sun, 07 Dec 2025)
Changed paths:
M llvm/test/CodeGen/RISCV/rvp-ext-rv32.ll
Log Message:
-----------
[RISCV] Re-generate rvp-ext-rv32.ll after #170399. NFC
Some instructions got renamed by #170399, but new tests cases were
added after that PR was created.
Commit: 3d24efd85a62e22115a8582aea147f208bf8095f
https://github.com/llvm/llvm-project/commit/3d24efd85a62e22115a8582aea147f208bf8095f
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
A clang-tools-extra/test/clang-tidy/.clang-tidy
Log Message:
-----------
[clang-tidy][NFC] Add empty '.clang-tidy' file in tests dir to silent warnings in IDE (#171029)
When working on tests, `clangd` with option `--clang-tidy` will report
warnings from
[root](https://github.com/llvm/llvm-project/blob/main/.clang-tidy)
clang-tidy config.
I believe these warnings serve no purpose in tests, so we better disable
them to silent warnings in IDE.
Commit: 7b652195d79bf79dab3d40f962e3b8063a39e20f
https://github.com/llvm/llvm-project/commit/7b652195d79bf79dab3d40f962e3b8063a39e20f
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/include/llvm/IR/Constants.h
M llvm/lib/IR/Constants.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
Log Message:
-----------
[IR] Add ImplicitTrunc argument to ConstantInt::get() (#170865)
Add an ImplicitTrunc argument to ConstantInt::get(), which allows
controlling whether implicit truncation of the value is permitted.
This argument currently defaults to true, but will be switched to false
in the future to guard against signed/unsigned confusion, similar to
what has already happened for APInt.
The argument gives an opt-out for cases where the truncation is
intended. The patch contains one illustrative example where this
happens.
Commit: 95470b6c620d75cdfe5a2a6b2388a90cc53e66c3
https://github.com/llvm/llvm-project/commit/95470b6c620d75cdfe5a2a6b2388a90cc53e66c3
Author: adbox53 <123413623+adbox53 at users.noreply.github.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
Log Message:
-----------
Replace interp__builtin_blend with interp__builtin_ia32_shuffle_gener… (#170217)
Fixes #169994
---------
Co-authored-by: Timm Baeder <tbaeder at redhat.com>
Commit: ec787501dc3d60f2927abfcf4c8d322ea6baa82a
https://github.com/llvm/llvm-project/commit/ec787501dc3d60f2927abfcf4c8d322ea6baa82a
Author: Jan Patrick Lehr <JanPatrick.Lehr at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
M llvm/test/CodeGen/AMDGPU/promote-alloca-vector-gep.ll
Log Message:
-----------
Revert "[AMDGPU] Enable i8 GEP promotion for vector allocas" (#171087)
Reverts llvm/llvm-project#166132
Broke libc on GPU tests.
https://lab.llvm.org/buildbot/#/builders/10/builds/18635
Commit: ec1ea0a4ca02451731036ce04915e30aad0c81dd
https://github.com/llvm/llvm-project/commit/ec1ea0a4ca02451731036ce04915e30aad0c81dd
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/bindings/ocaml/llvm/llvm_ocaml.c
M llvm/docs/ReleaseNotes.md
M llvm/examples/OrcV2Examples/OrcV2CBindingsAddObjectFile/OrcV2CBindingsAddObjectFile.c
M llvm/examples/OrcV2Examples/OrcV2CBindingsBasicUsage/OrcV2CBindingsBasicUsage.c
M llvm/examples/OrcV2Examples/OrcV2CBindingsDumpObjects/OrcV2CBindingsDumpObjects.c
M llvm/examples/OrcV2Examples/OrcV2CBindingsIRTransforms/OrcV2CBindingsIRTransforms.c
M llvm/examples/OrcV2Examples/OrcV2CBindingsMCJITLikeMemoryManager/OrcV2CBindingsMCJITLikeMemoryManager.c
M llvm/examples/OrcV2Examples/OrcV2CBindingsRemovableCode/OrcV2CBindingsRemovableCode.c
M llvm/include/llvm-c/BitReader.h
M llvm/include/llvm-c/Core.h
M llvm/include/llvm-c/Target.h
M llvm/include/llvm/IR/LLVMContext.h
M llvm/lib/Bitcode/Reader/BitReader.cpp
M llvm/lib/IR/Core.cpp
M llvm/lib/Target/Target.cpp
M llvm/tools/llvm-c-test/attributes.c
M llvm/tools/llvm-c-test/calc.c
M llvm/tools/llvm-c-test/debuginfo.c
M llvm/tools/llvm-c-test/diagnostic.c
M llvm/tools/llvm-c-test/echo.cpp
M llvm/tools/llvm-c-test/metadata.c
M llvm/tools/llvm-c-test/module.c
M llvm/tools/llvm-c-test/object.c
M llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp
M llvm/unittests/IR/ConstantsTest.cpp
Log Message:
-----------
[llvm-c] Deprecate functions working on the global context (#163979)
One of the most common mistakes when working with the LLVM C API is to
mix functions that work on the global context and those that work on an
explicit context. This often results in seemingly nonsensical errors
because types from different contexts are mixed.
We have considered the APIs working on the global context to be obsolete
for a long time already, and do not add any new APIs using the global
context. However, the fact that these still exist (and have shorter
names) continues to cause issues.
This PR proposes to deprecate these APIs, with intent to remove them at
some point in the future.
RFC:
https://discourse.llvm.org/t/rfc-deprecate-c-api-functions-using-the-global-context/88639
Commit: bd1bd178f8e3770b296f9b042bef1d45bd736e51
https://github.com/llvm/llvm-project/commit/bd1bd178f8e3770b296f9b042bef1d45bd736e51
Author: Dan Blackwell <dan_blackwell at apple.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M compiler-rt/test/fuzzer/reduce_inputs.test
Log Message:
-----------
[fuzzer][test-only] Bump runs for reduce_inputs.test unseeded run (#169641)
I have seen a failure whereby the fuzzer failed to reach the expected
input and thus failed the test.
This patch bumps the max executions to 10,000,000 in order to give the
fuzzer a better chance of reaching the expected input. Most runs
complete successfully, so I do not see this adding test time in the
general case; I believe it's a fair tradeoff for the unlucky seed to run
for longer if it reduces the noise from false positives. Note, this
updates a different `RUN:` to
https://github.com/llvm/llvm-project/pull/165402.
rdar://162122184
Commit: c347b2669bc82385d6269a26e57f8dedc2a802d9
https://github.com/llvm/llvm-project/commit/c347b2669bc82385d6269a26e57f8dedc2a802d9
Author: Stefan Gränitz <stefan.graenitz at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/include/llvm/Analysis/RuntimeLibcallInfo.h
Log Message:
-----------
Remove LLVM_ABI from members of RuntimeLibraryAnalysis (NFC) (#170850)
Fix Windows build error: attribute 'dllexport' cannot be applied to member of 'dllexport' class
Commit: 448ac1fb00df7aadc207dc3f5e87d7dcb5b933c5
https://github.com/llvm/llvm-project/commit/448ac1fb00df7aadc207dc3f5e87d7dcb5b933c5
Author: Petar Avramovic <Petar.Avramovic at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h
M llvm/test/CodeGen/AMDGPU/llvm.exp10.ll
Log Message:
-----------
AMDGPU/GlobalISel: Fix broken exp10 lowering for f16 (#170708)
Commit: 7a59ab0e1a0c51c06b61eb66b37aeb592924a963
https://github.com/llvm/llvm-project/commit/7a59ab0e1a0c51c06b61eb66b37aeb592924a963
Author: Jay Foad <jay.foad at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
Log Message:
-----------
[AMDGPU] Common up some unsafe fexp lowering. NFC. (#170841)
Commit: 8aa82eff569388f50a2fec60b61d9771b0912f0e
https://github.com/llvm/llvm-project/commit/8aa82eff569388f50a2fec60b61d9771b0912f0e
Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
M llvm/test/CodeGen/AMDGPU/lds-dma-waits.ll
Log Message:
-----------
[AMDGPU][SIInsertWaitcnts] Wait on all LDS DMA operations when no aliasing store is found (#170660)
Previously, we would miss inserting a wait if the ds_read had AA info,
but it didn't match
any LDS DMA op, for example if we didn't track the LDS DMA op it aliases
with because it exceeded the tracking limit.
Commit: 2e238bfa36decb416d7245850261e7e5246f9056
https://github.com/llvm/llvm-project/commit/2e238bfa36decb416d7245850261e7e5246f9056
Author: Hans Wennborg <hans at hanshq.net>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/utils/release/build_llvm_release.bat
Log Message:
-----------
Build win release packages with LLDB_ENABLE_LIBXML2 (#170513)
Fixes #170461
Commit: bb926c157f3096088d4da381243eb7522c6b6ab7
https://github.com/llvm/llvm-project/commit/bb926c157f3096088d4da381243eb7522c6b6ab7
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/test/CodeGen/X86/bitcnt-big-integer.ll
Log Message:
-----------
[X86] bitcnt-big-integer.ll - add test coverage for AVX512 targets with no VLX support (#171104)
Commit: 49496c531da2d1acf0d1e2e74dd84c190347c039
https://github.com/llvm/llvm-project/commit/49496c531da2d1acf0d1e2e74dd84c190347c039
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/tools/mlir-tblgen/LLVMIRIntrinsicGen.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for misc-use-internal-linkage in LLVMIRIntrinsicGen.cpp (NFC)
Commit: f9e0fa8ba4100e8acb8907a5a32c0175d0711162
https://github.com/llvm/llvm-project/commit/f9e0fa8ba4100e8acb8907a5a32c0175d0711162
Author: guillem-bartrina-sonarsource <guillem.bartrina at sonarsource.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp
A clang/test/Analysis/use-after-move-invalidation.cpp
Log Message:
-----------
[analyzer] MoveChecker: correct invalidation of this-regions (#169626)
By completely omitting invalidation in the case of InstanceCall, we do
not clear the moved state of the fields of the this object after an
opaque call to a member function of the object itself.
Commit: 405403c8ed4b2956dc03c270373fac2576a23a65
https://github.com/llvm/llvm-project/commit/405403c8ed4b2956dc03c270373fac2576a23a65
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/lib/Dialect/Transform/TuneExtension/TuneExtensionOps.cpp
Log Message:
-----------
[mlir] Fix GCC compilation warning in TuneExtensionOps.cpp (#168850)
Building with GCC produces:
```
<...>/TuneExtensionOps.cpp:180:26: warning: comparison of unsigned expression in ‘< 0’ is always false [-Wtype-limits]
180 | if (*selectedRegionIdx < 0 || *selectedRegionIdx >= getNumRegions())
| ~~~~~~~~~~~~~~~~~~~^~~
<...>/TuneExtensionOps.cpp: In member function ‘llvm::LogicalResult mlir::transform::tune::AlternativesOp::verify()’:
/home/david.spickett/llvm-project/mlir/lib/Dialect/Transform/TuneExtension/TuneExtensionOps.cpp:236:19: warning: comparison of unsigned expression in ‘< 0’ is always false [-Wtype-limits]
236 | if (regionIdx < 0 || regionIdx >= getNumRegions())
| ~~~~~~~~~~^~~
```
As we are sign extending these variables, use int64_t instead of size_t
for their type.
Commit: e52cddc4326031cc78db370c150384c12157d3b7
https://github.com/llvm/llvm-project/commit/e52cddc4326031cc78db370c150384c12157d3b7
Author: Tom Stellard <tstellar at redhat.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M .github/workflows/release-binaries.yml
Log Message:
-----------
workflows/release-binaries: Use upload-release-artifact action for uploading (#170528)
Commit: 56beac9f0c2629b34d65dff2ea63605cc43dad39
https://github.com/llvm/llvm-project/commit/56beac9f0c2629b34d65dff2ea63605cc43dad39
Author: Manuel Carrasco <Manuel.Carrasco at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
A llvm/test/CodeGen/SPIRV/const-array-gep.ll
Log Message:
-----------
[SPIRV] Fix assertion violation caused by unexpected ConstantExpr. (#170524)
`SPIRVEmitIntrinsics::simplifyZeroLengthArrayGepInst` asserted that it
always expected a `GetElementPtrInst` from `IRBuilder::CreateGEP` (which
returns a `Value`). `IRBuilder` can fold and return a `ConstantExpr`
instead, thus violating the assertion. The patch fixes this by using
`GetElementPtrInst::Create` to always return a `GetElementPtrInst`.
This LLVM defect was identified via the AMD Fuzzing project.
Commit: f41edb3fb9143e1fdc0bd326241af12d4a3cf56b
https://github.com/llvm/llvm-project/commit/f41edb3fb9143e1fdc0bd326241af12d4a3cf56b
Author: Jay Foad <jay.foad at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fma.legacy.ll
Log Message:
-----------
[AMDGPU] Add test cases for v_fmac_dx9_zero_f32 aka v_fmac_legacy_f32 (#171108)
Commit: 5e3ffd66e7c434ac615432cdfbfb0d6ed47b643c
https://github.com/llvm/llvm-project/commit/5e3ffd66e7c434ac615432cdfbfb0d6ed47b643c
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/lib/ExecutionEngine/ArmRunnerUtils.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for readability-identifier-naming in ArmRunnerUtils.cpp (NFC)
Commit: 32ff7100d737bcfce2f713dd9838df88bdd3b631
https://github.com/llvm/llvm-project/commit/32ff7100d737bcfce2f713dd9838df88bdd3b631
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/bf16-v8-instructions.ll
M llvm/test/CodeGen/AArch64/fixed-length-bf16-arith.ll
Log Message:
-----------
[AArch64] Lower v8bf16 FMUL to BFMLAL top/bottom with +sve (#169655)
Assuming the predicate is hoisted, this should have a slightly better
throughput: https://godbolt.org/z/jb7aP7Efc
Note: SVE must be used to convert back to bf16 as the bfmlalb/t
instructions operate on even/odd lanes, but the neon bfcvtn/2 process
the top/bottom halves of vectors.
Commit: 3a6781ea4d21ce9c21c227131141fcf9665cdf6d
https://github.com/llvm/llvm-project/commit/3a6781ea4d21ce9c21c227131141fcf9665cdf6d
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/test/CodeGen/X86/vector-shuffle-combining-avx512f.ll
Log Message:
-----------
[X86] vector-shuffle-combining-avx512f.ll - add tests showing failure to simplify expand/compress nodes (#171113)
Commit: d94958b2f27affe00c42c1338f99674d2f6271c8
https://github.com/llvm/llvm-project/commit/d94958b2f27affe00c42c1338f99674d2f6271c8
Author: Tirthankar Mazumder <63574588+wermos at users.noreply.github.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/test/Transforms/InstCombine/icmp-add.ll
Log Message:
-----------
[InstCombine] Fold `icmp samesign u{gt/lt} (X +nsw C2), C` -> `icmp s{gt/lt} X, (C - C2)` (#169960)
Fixes #166973
Partially addresses #134028
Alive2 proof: https://alive2.llvm.org/ce/z/BqHQNN
Commit: 1bbff7290f481388e5ec915436181deb4972819e
https://github.com/llvm/llvm-project/commit/1bbff7290f481388e5ec915436181deb4972819e
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/lib/ExecutionEngine/VulkanRuntimeWrappers.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for llvm-qualified-auto in VulkanRuntimeWrappers.cpp (NFC)
Commit: 60492898f8d4143f99f1dc2d3015e97f56acc870
https://github.com/llvm/llvm-project/commit/60492898f8d4143f99f1dc2d3015e97f56acc870
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/lib/Dialect/Shard/IR/ShardOps.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for readability-identifier-naming in ShardOps.cpp (NFC)
Commit: a5e8e77f7ccd15945eb432a3619e57f9600c142a
https://github.com/llvm/llvm-project/commit/a5e8e77f7ccd15945eb432a3619e57f9600c142a
Author: Gergely Bálint <gergely.balint at arm.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M bolt/lib/Passes/PointerAuthCFIAnalyzer.cpp
M bolt/test/AArch64/pacret-cfi-incorrect.s
A bolt/test/runtime/AArch64/pacret-synchronous-unwind.cpp
Log Message:
-----------
[BOLT][PAC] Warn about synchronous unwind tables (#165227)
BOLT currently ignores functions with synchronous PAuth DWARF info.
If more than 10% of functions get ignored for inconsistencies, we
should emit a warning to only use asynchronous unwind tables.
See related issue: #165215
Commit: 7c832fca5374cde2804cebc2ba3c5ad635fb76a1
https://github.com/llvm/llvm-project/commit/7c832fca5374cde2804cebc2ba3c5ad635fb76a1
Author: Adrian Vogelsgesang <avogelsgesang at salesforce.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M lldb/source/Commands/CommandObjectTarget.cpp
Log Message:
-----------
[lldb] Fix command line of `target frame-provider register` (#167803)
So far, the syntax was `target frame-provider register <cmd-options>
[<run-args>]`. Note the optional `run-args` at the end. They are
completely ignored by the actual command, but the command line parser
still accepts them.
This commit removes them.
This was probably a copy-paste error from `CommandObjectProcessLaunch`
which was probably used as a blue-print for `target frame-provider
register`.
Commit: 33d779dfbf258eac826b2a22b4fece602cce321f
https://github.com/llvm/llvm-project/commit/33d779dfbf258eac826b2a22b4fece602cce321f
Author: Robert Imschweiler <robert.imschweiler at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M openmp/runtime/src/kmp_ftn_entry.h
Log Message:
-----------
[OpenMP] Fix undefined symbol for Darwin builds (#170999)
cf.
https://github.com/llvm/llvm-project/pull/168554#issuecomment-3617253169
Commit: 07bafab83de2ba9f7d15fb194e0d34cd71f17af2
https://github.com/llvm/llvm-project/commit/07bafab83de2ba9f7d15fb194e0d34cd71f17af2
Author: Jay Foad <jay.foad at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/lib/Target/AMDGPU/VOP2Instructions.td
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fma.legacy.ll
Log Message:
-----------
[AMDGPU] Do not generate V_FMAC_DX9_ZERO_F32 on GFX12 (#171116)
GFX12 does not have the FMAC form of this instruction, only the FMA
form.
Fixes: #170437
Commit: c1d030e9a48c2167b52b8b296c9e30ecfb7adb40
https://github.com/llvm/llvm-project/commit/c1d030e9a48c2167b52b8b296c9e30ecfb7adb40
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/lib/ExecutionEngine/ExecutionEngine.cpp
Log Message:
-----------
[MLIR][ExecutionEngine] Don't create a `_mlir_` wrapper function for internal linkage (#171115)
This is somehow NFC, we were creating wrapper for interal functions,
which are de-facto not callable.
Commit: 7fbd443491db62a3fe316f9cc4e3e47036f5730b
https://github.com/llvm/llvm-project/commit/7fbd443491db62a3fe316f9cc4e3e47036f5730b
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M lldb/source/Commands/CommandObjectBreakpoint.cpp
Log Message:
-----------
[lldb] Remove printf in breakpoint add command
Added in 2110db0f49593 / #156067.
Commit: f29f01db8fa0be64e8de66adc2c0037f3e18d448
https://github.com/llvm/llvm-project/commit/f29f01db8fa0be64e8de66adc2c0037f3e18d448
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M compiler-rt/test/sanitizer_common/TestCases/Linux/soft_rss_limit_mb_test.cpp
Log Message:
-----------
[Sanitizer] Bump soft_rss_limit_mb in test (#170911)
This test is failing on some buildbots now that the internal shell has
been turned on and was failing previously on some ppc bots when turning
it on a while back (before it got reverted).
At least one X86 bot is barely hitting the limit
(https://lab.llvm.org/buildbot/#/builders/174/builds/28487 224MB-235MB).
This likely needs to be bumped due to changes in the process tree (now
that we invoke things through python rather than a bash shell) with the
enablement of the internal shell.
Commit: f1af9b027eaf41f884e63b7121f6b6af6dd81126
https://github.com/llvm/llvm-project/commit/f1af9b027eaf41f884e63b7121f6b6af6dd81126
Author: Mend Renovate <bot at renovateapp.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M .github/workflows/bazel-checks.yml
M .github/workflows/build-ci-container-tooling.yml
M .github/workflows/build-ci-container-windows.yml
M .github/workflows/build-ci-container.yml
M .github/workflows/build-metrics-container.yml
M .github/workflows/check-ci.yml
M .github/workflows/ci-post-commit-analyzer.yml
M .github/workflows/commit-access-greeter.yml
M .github/workflows/commit-access-review.yml
M .github/workflows/docs.yml
M .github/workflows/email-check.yaml
M .github/workflows/gha-codeql.yml
M .github/workflows/hlsl-test-all.yaml
M .github/workflows/issue-release-workflow.yml
M .github/workflows/issue-subscriber.yml
M .github/workflows/issue-write.yml
M .github/workflows/libc-fullbuild-tests.yml
M .github/workflows/libc-overlay-tests.yml
M .github/workflows/libclang-abi-tests.yml
M .github/workflows/libclang-python-tests.yml
M .github/workflows/libcxx-build-and-test.yaml
M .github/workflows/libcxx-build-containers.yml
M .github/workflows/libcxx-check-generated-files.yml
M .github/workflows/libcxx-run-benchmarks.yml
M .github/workflows/llvm-abi-tests.yml
M .github/workflows/llvm-bugs.yml
M .github/workflows/merged-prs.yml
M .github/workflows/mlir-spirv-tests.yml
M .github/workflows/new-prs.yml
M .github/workflows/pr-code-format.yml
M .github/workflows/pr-code-lint.yml
M .github/workflows/pr-request-release-note.yml
M .github/workflows/pr-subscriber.yml
M .github/workflows/premerge.yaml
M .github/workflows/release-asset-audit.yml
M .github/workflows/release-binaries.yml
M .github/workflows/release-documentation.yml
M .github/workflows/release-doxygen.yml
M .github/workflows/release-lit.yml
M .github/workflows/release-sources.yml
M .github/workflows/release-tasks.yml
M .github/workflows/scorecard.yml
M .github/workflows/spirv-tests.yml
M .github/workflows/test-unprivileged-download-artifact.yml
M .github/workflows/version-check.yml
Log Message:
-----------
Update [Github] Update GHA Dependencies (#171064)
This PR contains the following updates:
| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| [actions/checkout](https://redirect.github.com/actions/checkout) |
action | patch | `v6.0.0` -> `v6.0.1` | |
| [actions/setup-node](https://redirect.github.com/actions/setup-node) |
action | minor | `v6.0.0` -> `v6.1.0` | |
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | patch | `v4.31.5` -> `v4.31.6` | `v4.31.7` |
Commit: 11866c499b06ae2f259ef870c8ea15c560bee04d
https://github.com/llvm/llvm-project/commit/11866c499b06ae2f259ef870c8ea15c560bee04d
Author: Hongyu Chen <xxs_chy at outlook.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/RISCV/mul.ll
Log Message:
-----------
[DAGCombiner] Don't peek through bitcast when checking isMulAddWithConstProfitable (#171056)
Fixes https://github.com/llvm/llvm-project/issues/171035
Peeking through bitcast may cause type mismatch between `AddNode` and
`ConstNode` in `isMulAddWithConstProfitable`.
Commit: bab4d1e8b2ada6b238b1672d589726f18ee464c1
https://github.com/llvm/llvm-project/commit/bab4d1e8b2ada6b238b1672d589726f18ee464c1
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/test/CodeGen/X86/shift-i512.ll
Log Message:
-----------
[X86] shift-i512.ll - extend test coverage (#171125)
Remove v8i64 dependency from original shift-by-1 tests - this was added for #132601 but is unlikely to be necessary
Add tests for general shifts as well as shift-by-constant and shift-of-constant examples
Commit: dd06214394977729a3f2715bfadf1b31467551b8
https://github.com/llvm/llvm-project/commit/dd06214394977729a3f2715bfadf1b31467551b8
Author: Erich Keane <ekeane at nvidia.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenDeclOpenACC.cpp
A clang/test/CIR/CodeGenOpenACC/routine-bind.c
A clang/test/CIR/CodeGenOpenACC/routine-bind.cpp
M mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
M mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
Log Message:
-----------
[OpenACC][CIR] Implement routine 'bind'-with-a-string lowering (#170916)
The 'bind' clause emits an attribute on the RoutineOp that states which
function it should call on the device side. When provided in
double-quotes, the function on the device side should be the exact name
given. This patch emits the IR to do that.
As a part of that, we add a helper function to the OpenACC dialect to do
so, as well as a version that adds the ID version (though we don't
exercise th at yet).
The 'bind' with an ID should do the MANGLED name, but it isn't quite
clear what that name SHOULD be yet. Since the signature of a function is
included in its mangling, and we're not providing said signature, we
have to come up with something. This is left as an exercise for a future
patch.
Commit: e8219e5ce84db26fd521ce5091d18e75c7afbc6a
https://github.com/llvm/llvm-project/commit/e8219e5ce84db26fd521ce5091d18e75c7afbc6a
Author: Luke Lau <luke at igalia.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
M llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/early_exit_costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/predicated-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/simple_early_exit.ll
A llvm/test/Transforms/LoopVectorize/AArch64/sve-predicated-costs.ll
A llvm/test/Transforms/LoopVectorize/RISCV/predicated-costs.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll
A llvm/test/Transforms/PhaseOrdering/loop-vectorize-bfi.ll
Log Message:
-----------
[VPlan] Use BlockFrequencyInfo in getPredBlockCostDivisor (#158690)
In 531.deepsjeng_r from SPEC CPU 2017 there's a loop that we
unprofitably loop vectorize on RISC-V.
The loop looks something like:
```c
for (int i = 0; i < n; i++) {
if (x0[i] == a)
if (x1[i] == b)
if (x2[i] == c)
// do stuff...
}
```
Because it's so deeply nested the actual inner level of the loop rarely
gets executed. However we still deem it profitable to vectorize, which
due to the if-conversion means we now always execute the body.
This stems from the fact that `getPredBlockCostDivisor` currently
assumes that blocks have 50% chance of being executed as a heuristic.
We can fix this by using BlockFrequencyInfo, which gives a more accurate
estimate of the innermost block being executed 12.5% of the time. We can
then calculate the probability as `HeaderFrequency / BlockFrequency`.
Fixing the cost here gives a 7% speedup for 531.deepsjeng_r on RISC-V.
Whilst there's a lot of changes in the in-tree tests, this doesn't
affect llvm-test-suite or SPEC CPU 2017 that much:
- On armv9-a -flto -O3 there's 0.0%/0.2% more geomean loops vectorized
on llvm-test-suite/SPEC CPU 2017.
- On x86-64 -flto -O3 **with PGO** there's 0.9%/0% less geomean loops
vectorized on llvm-test-suite/SPEC CPU 2017.
Overall geomean compile time impact is 0.03% on stage1-ReleaseLTO:
https://llvm-compile-time-tracker.com/compare.php?from=9eee396c58d2e24beb93c460141170def328776d&to=32fbff48f965d03b51549fdf9bbc4ca06473b623&stat=instructions%3Au
Commit: 048715458855222919cd2632d740e9221ef3cb50
https://github.com/llvm/llvm-project/commit/048715458855222919cd2632d740e9221ef3cb50
Author: Tim Gymnich <tim at gymni.ch>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPU.td
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
M mlir/lib/Dialect/AMDGPU/IR/AMDGPUDialect.cpp
M mlir/test/Conversion/AMDGPUToROCDL/gfx1250.mlir
M mlir/test/Dialect/AMDGPU/ops.mlir
Log Message:
-----------
[mlir][amdgpu] Add workgroup_mask to MakeDmaDescriptorOp (#171103)
- add `workgroup_mask` and `early_timeout`
Commit: cc19f420b99fcda4ab4252fcf857d0e7ed6339e7
https://github.com/llvm/llvm-project/commit/cc19f420b99fcda4ab4252fcf857d0e7ed6339e7
Author: Dark Steve <Prasoon.Mishra at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPU.h
M llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.h
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPassRegistry.def
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/llc-pipeline-npm.ll
Log Message:
-----------
[AMDGPU][NPM] Port AMDGPUArgumentUsageInfo to NPM (#170886)
Port AMDGPUArgumentUsageInfo analysis to the NPM to fix suboptimal code
generation when NPM is enabled by default.
Previously, DAG.getPass() returns nullptr when using NPM, causing the
argument usage info to be unavailable during ISel. This resulted in
fallback to FixedABIFunctionInfo which assumes all implicit arguments
are needed, generating unnecessary register setup code for entry
functions.
Fixes LLVM::CodeGen/AMDGPU/cc-entry.ll
Changes:
- Split AMDGPUArgumentUsageInfo into a data class and NPM analysis
wrapper
- Update SIISelLowering to use DAG.getMFAM() for NPM path
- Add RequireAnalysisPass in addPreISel() to ensure analysis
availability
This follows the same pattern used for PhysicalRegisterUsageInfo.
Commit: ce73cbb6abdcd3188150c9063933bfe15c73f523
https://github.com/llvm/llvm-project/commit/ce73cbb6abdcd3188150c9063933bfe15c73f523
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/lib/Headers/__clang_cuda_complex_builtins.h
M clang/test/Headers/amdgcn-openmp-device-math-complex.c
M clang/test/Headers/amdgcn-openmp-device-math-complex.cpp
M clang/test/Headers/nvptx_device_math_complex.c
M clang/test/Headers/nvptx_device_math_complex.cpp
Log Message:
-----------
clang: Use generic builtins in cuda complex builtins header (#171106)
There's no reason to use the ocml or nv prefixed functions and
maintain this list of alias macros. I left these macros in for
NVPTX in the scalbn and logb case, since those have a special
case hack in the AMDGPU codegen and probably do not work on ptx.
Commit: a6fc5a1d77e78333f26a44b145ad43149e9ada17
https://github.com/llvm/llvm-project/commit/a6fc5a1d77e78333f26a44b145ad43149e9ada17
Author: Victor Chernyakin <chernyakin.victor.j at outlook.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp
M clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.h
Log Message:
-----------
[clang-tidy][NFC] Refactor `fuchsia-multiple-inheritance` (#171059)
Commit: 1ae957515cccf8825733fbe100ff32864543d248
https://github.com/llvm/llvm-project/commit/1ae957515cccf8825733fbe100ff32864543d248
Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
Log Message:
-----------
[AMDGPU][NFC] Update a comment about FLAT v/s LDSDMA
The change in #170263 does not do justice to common knowledge in the backend.
Fix the comment to reflect the relation between FLAT encoding, flat pointer
access, and LDSDMA operations.
Commit: 886f54a04c04d1b7c4649ae9d00f85cf7655269a
https://github.com/llvm/llvm-project/commit/886f54a04c04d1b7c4649ae9d00f85cf7655269a
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
Log Message:
-----------
DAG: Set MachinePointerInfo for stack when expanding divrem libcall (#170537)
Commit: 9a5fa3075ac670e7d748b693895d4d347af5f83d
https://github.com/llvm/llvm-project/commit/9a5fa3075ac670e7d748b693895d4d347af5f83d
Author: Benjamin Maxwell <macdue at dueutil.tech>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/include/llvm/ADT/STLExtras.h
M llvm/unittests/ADT/STLExtrasTest.cpp
Log Message:
-----------
[ADT] Add `llvm::reverse_conditionally()` iterator (#171040)
This patch adds a simple iterator range that allows conditionally
iterating a collection in reverse. It works with any collection
supported by `llvm::reverse(Collection)`.
```
void foo(bool Reverse, std::vector<int>& C) {
for (int I : reverse_conditionally(C, Reverse)) {
// ...
}
}
```
Commit: c5b90103da58c261fcc9720e8700a06fac7e0388
https://github.com/llvm/llvm-project/commit/c5b90103da58c261fcc9720e8700a06fac7e0388
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/pr60831-sve-inv-store-crash.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-inductions-unusual-types.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-vector-reverse.ll
M llvm/test/Transforms/LoopVectorize/RISCV/riscv-vector-reverse.ll
M llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses.ll
M llvm/test/Transforms/LoopVectorize/scalable-assume.ll
M llvm/test/Transforms/LoopVectorize/scalable-first-order-recurrence.ll
M llvm/test/Transforms/LoopVectorize/scalable-inductions.ll
M llvm/test/Transforms/LoopVectorize/scalable-iv-outside-user.ll
Log Message:
-----------
[VPlan] Use nuw when computing {VF,VScale}xUF (#170710)
These quantities should never unsigned-wrap. This matches the behavior
if only VFxUF is used (and not VF): when computing both VF and VFxUF,
nuw should hold for each step separately.
Commit: b08c72b26c95cf8e76cfb1af46a1ed7cab9d721e
https://github.com/llvm/llvm-project/commit/b08c72b26c95cf8e76cfb1af46a1ed7cab9d721e
Author: Anchu Rajendran S <asudhaku at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M flang/lib/Parser/openmp-parsers.cpp
M flang/lib/Parser/unparse.cpp
A flang/test/Lower/OpenMP/Todo/threadset.f90
A flang/test/Parser/OpenMP/threadset-clause.f90
A flang/test/Semantics/OpenMP/threadset-clause.f90
Log Message:
-----------
[Flang][OpenMP] Enables parsing of threadset clause (#169856)
Commit: ebdb903c105deefc2598181497f0aebcf65f4b01
https://github.com/llvm/llvm-project/commit/ebdb903c105deefc2598181497f0aebcf65f4b01
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/compress-undef-float-passthrough.ll
M llvm/test/CodeGen/X86/vector-shuffle-combining-avx512f.ll
Log Message:
-----------
[X86] Handle X86ISD::EXPAND/COMPRESS nodes as target shuffles (#171119)
Allows for shuffle simplification
Required a minor fix to the overly reduced compress-undef-float-passthrough.ll regression test
Commit: ca8419d6cc59c14e20d8de5c73ed3c51d739eb93
https://github.com/llvm/llvm-project/commit/ca8419d6cc59c14e20d8de5c73ed3c51d739eb93
Author: Ivan Butygin <ivan.butygin at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPU.td
M mlir/lib/Dialect/AMDGPU/IR/AMDGPUDialect.cpp
M mlir/test/Dialect/AMDGPU/canonicalize.mlir
Log Message:
-----------
[mlir][amdgpu] Fuse adjacent `MemoryCounterWaitOp` (#171148)
Taking the minimum value.
Commit: b8ddbc4f0398e363ba74276b8c9e299110d1b6e8
https://github.com/llvm/llvm-project/commit/b8ddbc4f0398e363ba74276b8c9e299110d1b6e8
Author: Sang Ik Lee <sang.ik.lee at intel.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/test/Integration/Dialect/XeVM/GPU/gpu_printf.mlir
Log Message:
-----------
[MLIR][XeVM] gpu.printf test: use correct runtime. (#170754)
gpu printf test was not using the runtime required by lit.local.cfg
All other tests in the directory are correctly using level zero runtime.
But gpu printf test is using sycl runtime.
Commit: 447af32fbb8c9522bc01948caadd1ae562c01373
https://github.com/llvm/llvm-project/commit/447af32fbb8c9522bc01948caadd1ae562c01373
Author: Sang Ik Lee <sang.ik.lee at intel.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/lib/Conversion/XeGPUToXeVM/XeGPUToXeVM.cpp
M mlir/test/Conversion/XeGPUToXeVM/create_nd_tdesc.mlir
M mlir/test/Conversion/XeGPUToXeVM/loadstore_nd.mlir
M mlir/test/Conversion/XeGPUToXeVM/prefetch_nd.mlir
Log Message:
-----------
[MLIR][XeGPU][XeVM] create_nd_tdesc: use correct pitch from strides. (#170384)
Base memory pitch should be derived from base stride, not base width.
Remove offset fields from tensor descriptor payload and add pitch field.
Commit: d1ad0856f8264543f8814150889a13bb27839a17
https://github.com/llvm/llvm-project/commit/d1ad0856f8264543f8814150889a13bb27839a17
Author: zhijian lin <zhijian at ca.ibm.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
A llvm/test/CodeGen/PowerPC/splat-after-xxsldwi.ll
Log Message:
-----------
Fix [PowerPC] llc crashed at -O1/O2/O3: Assertion `isImm() && "Wrong MachineOperand mutator"' failed. (#170548)
Fixed issue
[[PowerPC] llc crashed at -O1/O2/O3: Assertion `isImm() && "Wrong
MachineOperand mutator"'
failed.](https://github.com/llvm/llvm-project/issues/167672)
the root cause of the crash, the IMM operand is in different operand num
of the instruction PPC::XXSPLTW and PPC::XXSPLTB/PPC::XXSPLTH.
and the patch also fix a potential bug that the new element index of
PPC::XXSPLTB/PPC::XXSPLTH/XXSPLTW use the same logic. It should be
different .We need to convert the element index into the proper unit
(byte for VSPLTB, halfword for VSPLTH, word for VSPLTW) because
PPC::XXSLDWI interprets its ShiftImm in 32-bit word units.
Commit: a05fc9edb99b143f837baf136a68c35444558069
https://github.com/llvm/llvm-project/commit/a05fc9edb99b143f837baf136a68c35444558069
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/Hexagon/HexagonGenWideningVecInstr.cpp
Log Message:
-----------
HexagonGenWideningVecInstr.cpp - fix MSVC "result of 32-bit shift implicitly converted to 64 bits" warning. NFC. (#171095)
Commit: fccb65ef8f0faf40ca5dfaaa0ef70821f8843821
https://github.com/llvm/llvm-project/commit/fccb65ef8f0faf40ca5dfaaa0ef70821f8843821
Author: Michael Liao <michael.hliao at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/lib/Pass/PassRegistry.cpp
Log Message:
-----------
[mlir] Fix '-Wtemplate-id-cdtor'. NFC
Commit: b32a2f418ac21cba03d73a87b89cd82bf7b318a6
https://github.com/llvm/llvm-project/commit/b32a2f418ac21cba03d73a87b89cd82bf7b318a6
Author: Rana Pratap Reddy <109514914+ranapratap55 at users.noreply.github.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/include/clang/Basic/BuiltinsAMDGPU.def
M clang/lib/AST/ASTContext.cpp
M clang/lib/Sema/SemaExpr.cpp
A clang/test/CodeGen/half-float16-vector-compatibility.cl
A clang/test/SemaOpenCL/half-float16-vector-compatibility.cl
Log Message:
-----------
[Clang][OpenCL][AMDGPU] Allow _Float16 and half vector type compatibility (#170605)
## Summary
Allowing implicit compatibility between `_Float16` vector types and
`half` vector types in OpenCL mode. This enables AMDGPU builtins to work
correctly across OpenCL, HIP, and C++ without requiring separate builtin
definitions.
## Problem Statement
When using AMDGPU image builtins that return half-precision vectors in
OpenCL, users encounter type incompatibility errors:
**Builtin Definition:**
`TARGET_BUILTIN(__builtin_amdgcn_image_load_1d_v4f16_i32, "V4xiiQtii",
"nc", "image-insts")`
**Test Case:**
```
typedef half half4 __attribute__((ext_vector_type(4)));
half4 test_builtin_image_load_1d_2(half4 v4f16, int i32, __amdgpu_texture_t tex) {
return __builtin_amdgcn_image_load_1d_v4f16_i32(100, i32, tex, 120, i32);
}
```
**Error:**
```
error: returning '__attribute__((__vector_size__(4 * sizeof(_Float16)))) _Float16'
(vector of 4 '_Float16' values) from a function with incompatible result type
'half4' (vector of 4 'half' values)
```
## Solution
In OpenCL, allow implicit compatibility between `_Float16` vector types
and `half` vector types. This is needed for AMDGPU builtins that may
return _Float16 vectors to work correctly with OpenCL half vector types.
Commit: 614fe6da145e883cb0aa1b1406bbd5e5d103747b
https://github.com/llvm/llvm-project/commit/614fe6da145e883cb0aa1b1406bbd5e5d103747b
Author: Men-cotton <mencotton0410 at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/lib/Conversion/OpenMPToLLVM/OpenMPToLLVM.cpp
A mlir/test/Conversion/OpenMPToLLVM/map-info-type-conversion-fail.mlir
Log Message:
-----------
[mlir][OpenMP] Fix crash in MapInfoOp conversion when type conversion fails (#171045)
Check the result of `convertType` before calling `TypeAttr::get`. This
prevents a crash on unsupported types (e.g. `tensor`) by ensuring the
pattern fails gracefully.
Added regression test: map-info-type-conversion-fail.mlir
Fixes: #108159
Commit: 2a5420ea5184a334c2af9f2f9f43de4dfc6b76d3
https://github.com/llvm/llvm-project/commit/2a5420ea5184a334c2af9f2f9f43de4dfc6b76d3
Author: Shreeyash Pandey <shreeyash335 at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M libc/hdr/errno_macros.h
M libc/include/errno.h.def
M libc/src/__support/threads/linux/CMakeLists.txt
M libc/src/__support/threads/linux/futex_utils.h
M libc/src/__support/threads/linux/raw_mutex.h
M libc/src/__support/threads/linux/rwlock.h
M libc/src/__support/time/CMakeLists.txt
A libc/src/__support/time/abs_timeout.h
M libc/src/__support/time/linux/CMakeLists.txt
R libc/src/__support/time/linux/abs_timeout.h
R libc/src/__support/time/linux/monotonicity.h
A libc/src/__support/time/monotonicity.h
M libc/src/pthread/pthread_rwlock_clockwrlock.cpp
M libc/src/pthread/pthread_rwlock_timedrdlock.cpp
M libc/src/pthread/pthread_rwlock_timedwrlock.cpp
M libc/test/src/__support/time/linux/CMakeLists.txt
M libc/test/src/__support/time/linux/timeout_test.cpp
Log Message:
-----------
[libc] move abs_timesout and monotonicity out of linux dir (#167719)
This patch moves abs_timeout and monotonicity out of the linux dir into
common. Both of these functions depend on clock_gettime which is the
actual os-dependent component. As other features in `__support/threads`
may want to use these, it's better to share it in common.
Commit: 58cb4873f965271956ca32f0a9dfdad20012a6c5
https://github.com/llvm/llvm-project/commit/58cb4873f965271956ca32f0a9dfdad20012a6c5
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/lib/Pass/PassRegistry.cpp
Log Message:
-----------
Revert "[mlir] Fix '-Wtemplate-id-cdtor'. NFC"
This reverts commit fccb65ef8f0faf40ca5dfaaa0ef70821f8843821.
It breaks pre-merge CI:
```
2025-12-08T16:35:11.7239054Z /home/gha/actions-runner/_work/llvm-project/llvm-project/mlir/lib/Pass/PassRegistry.cpp:439:37: error: ISO C++ requires the name after '::~' to be found in the same scope as the name before '::~' [-Werror,-Wdtor-name]
2025-12-08T16:35:11.7240458Z 439 | llvm::cl::OptionValue<OpPassManager>::~OptionValue() = default;
2025-12-08T16:35:11.7241014Z | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
2025-12-08T16:35:11.7241494Z | ::OptionValue
2025-12-08T16:35:11.7241903Z 1 error generated.
```
Commit: cbce30e0f862099758c4f375cc35fb214fb1b513
https://github.com/llvm/llvm-project/commit/cbce30e0f862099758c4f375cc35fb214fb1b513
Author: Anutosh Bhat <andersonbhat491 at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/lib/Interpreter/IncrementalAction.cpp
M clang/test/Interpreter/pretty-print.c
Log Message:
-----------
[clang-repl] Skip CodeGen for top-level decls when diagnostics report errors (#169989)
We can see the following while running clang-repl in C mode
```
anutosh491 at vv-nuc:/build/anutosh491/llvm-project/build/bin$ ./clang-repl --Xcc=-x --Xcc=c --Xcc=-std=c23
clang-repl> printf("hi\n");
In file included from <<< inputs >>>:1:
input_line_1:1:1: error: call to undeclared library function 'printf' with type 'int (const char *, ...)'; ISO C99 and
later do not support implicit function declarations [-Wimplicit-function-declaration]
1 | printf("hi\n");
| ^
input_line_1:1:1: note: include the header <stdio.h> or explicitly provide a declaration for 'printf'
error: Parsing failed.
clang-repl> #include <stdio.h>
hi
```
In debug mode while dumping the generated Module, i see this
```
clang-repl> printf("hi\n");
In file included from <<< inputs >>>:1:
input_line_1:1:1: error: call to undeclared library function 'printf' with type 'int (const char *, ...)'; ISO C99 and
later do not support implicit function declarations [-Wimplicit-function-declaration]
1 | printf("hi\n");
| ^
input_line_1:1:1: note: include the header <stdio.h> or explicitly provide a declaration for 'printf'
error: Parsing failed.
clang-repl> #include <stdio.h>
=== compile-ptu 1 ===
[TU=0x55556cfbf830, M=0x55556cfc13a0 (incr_module_1)]
[LLVM IR]
; ModuleID = 'incr_module_1'
source_filename = "incr_module_1"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
@.str = private unnamed_addr constant [4 x i8] c"hi\0A\00", align 1
@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_incr_module_1, ptr null }]
define internal void @__stmts__0() #0 {
entry:
%call = call i32 (ptr, ...) @printf(ptr noundef @.str)
ret void
}
declare i32 @printf(ptr noundef, ...) #1
; Function Attrs: noinline nounwind uwtable
define internal void @_GLOBAL__sub_I_incr_module_1() #2 section ".text.startup" {
entry:
call void @__stmts__0()
ret void
}
attributes #0 = { "min-legal-vector-width"="0" }
attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { noinline nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
!llvm.module.flags = !{!0, !1, !2, !3, !4}
!llvm.ident = !{!5}
!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{i32 7, !"frame-pointer", i32 2}
!5 = !{!"clang version 22.0.0git (https://github.com/anutosh491/llvm-project.git 81ad8fbc2bb09bae61ed59316468011e4a42cf47)"}
=== end compile-ptu ===
execute-ptu 1: [TU=0x55556cfbf830, M=0x55556cfc13a0 (incr_module_1)]
hi
```
Basically I see that CodeGen emits IR for a cell before we know whether
DiagnosticsEngine has an error. For C code like `printf("hi\n");`
without <stdio.h>, Sema emits a diagnostic but still produces a
"codegen-able" `TopLevelStmt`, so the `printf` call is IR-generated into
the current module.
Previously, when `Diags.hasErrorOccurred()` was true, we only cleaned up
the PTU AST and left the CodeGen module untouched. The next successful
cell then called `GenModule()`, which returned that same module (now
also containing the next cell’s IR), causing side effects from the
failed cell (e.g. printf)
Commit: f27fbca37c4a66d4e237bae1256d775ca7471cb9
https://github.com/llvm/llvm-project/commit/f27fbca37c4a66d4e237bae1256d775ca7471cb9
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M lldb/include/lldb/Core/Module.h
M lldb/include/lldb/Symbol/SymbolFile.h
M lldb/source/Core/Module.cpp
M lldb/source/Symbol/SymbolFile.cpp
Log Message:
-----------
[lldb][NFC] Replace const std::vector& with ArrayRef in APIs (#170834)
Inside the LLVM codebase, const vector& should just be ArrayRef, as this
more general API works both with vectors, SmallVectors and
SmallVectorImpl, as well as with single elements.
This commit replaces two uses introduced in
https://github.com/llvm/llvm-project/pull/168797 .
Commit: f88d060c4176d17df56587a083944637ca865cb3
https://github.com/llvm/llvm-project/commit/f88d060c4176d17df56587a083944637ca865cb3
Author: Ivan Butygin <ivan.butygin at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPU.td
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
M mlir/lib/Dialect/AMDGPU/IR/AMDGPUDialect.cpp
M mlir/test/Conversion/AMDGPUToROCDL/memory_counter_wait.mlir
A mlir/test/Conversion/AMDGPUToROCDL/memory_counter_wait_tensor.mlir
A mlir/test/Conversion/AMDGPUToROCDL/memory_counter_wait_unsupported.mlir
M mlir/test/Dialect/AMDGPU/canonicalize.mlir
M mlir/test/Dialect/AMDGPU/ops.mlir
Log Message:
-----------
[mlir][amdgpu] `memory_counter_wait` tensor counter support (#171153)
Commit: c3579f01996a0ac018b9d452b8ae1cc2cac36acf
https://github.com/llvm/llvm-project/commit/c3579f01996a0ac018b9d452b8ae1cc2cac36acf
Author: Sang Ik Lee <sang.ik.lee at intel.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUTypes.td
M mlir/lib/Conversion/XeGPUToXeVM/XeGPUToXeVM.cpp
A mlir/test/Conversion/XeGPUToXeVM/loadstore_nd_sub_byte.mlir
A mlir/test/Conversion/XeGPUToXeVM/prefetch_nd_sub_byte.mlir
Log Message:
-----------
[MLIR][XeGPU][Conversion] Add 2D block op support for sub byte types (#169099)
Some usage case or shapes for 2D block op with sub byte types can be
emulated with 2D block operations for non-sub byte types. Add sub byte
type i4 as a valid XeGPU type. And add lowering of certain 2D
block operations by emulating with larger element types.
Commit: fdd0d53430e87b6ee792735ee714e756235978ba
https://github.com/llvm/llvm-project/commit/fdd0d53430e87b6ee792735ee714e756235978ba
Author: Folkert de Vries <folkert at folkertdev.nl>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/ARM/ARMAsmPrinter.cpp
M llvm/lib/Target/ARM/ARMAsmPrinter.h
A llvm/test/CodeGen/ARM/cmse-entry-alias.ll
Log Message:
-----------
cmse: emit `__acle_se_` symbol for aliases to entry functions (#162109)
Emitting the symbol in `emitGlobalAlias` seemed most efficient,
otherwise I think you'd have to traverse all aliases. I have verified
that the additional symbol is picked up by `arm-none-eabi-ld` and
correctly generates an entry in `veneers.o`.
Fixes #162084
Commit: 8c8074f0fa516210011c7b3beb63807ffbe5c5f7
https://github.com/llvm/llvm-project/commit/8c8074f0fa516210011c7b3beb63807ffbe5c5f7
Author: Michael Klemm <michael.klemm at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/test/OpenMP/irbuilder_for_unsigned_static_chunked.c
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
Log Message:
-----------
[Flang][OpenMP] Fix OpenMP static scheduling when trip count is zero (#170863)
Code-gen produced incorrect code for cases when the trip count an
associated DO loop was zero. The generated code evaluated the trip count
of the loop and substracted 1 from it. When this was passed to
__kmpc_for_static_init_4u, the value was interpreted as unsigned, which
made the upper bound of the worksharing loop 2^32-1 and caused a
division by zero in the calculation of the loop bounds for the threads.
Commit: 66134e7136154cbb839484afd8f356cc4ed4a021
https://github.com/llvm/llvm-project/commit/66134e7136154cbb839484afd8f356cc4ed4a021
Author: Artem Kroviakov <71938912+akroviakov at users.noreply.github.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/lib/Conversion/XeGPUToXeVM/XeGPUToXeVM.cpp
M mlir/test/Conversion/XeGPUToXeVM/loadstore_matrix.mlir
Log Message:
-----------
[MLIR][XeVM] Improve matrix ops lowering (#170268)
Commit: 039c834b031b52f6a316e9ec0eadd2c42fc71cef
https://github.com/llvm/llvm-project/commit/039c834b031b52f6a316e9ec0eadd2c42fc71cef
Author: Michael Liao <michael.hliao at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/RegisterScavenging.cpp
Log Message:
-----------
[scavenger] Remove unused iterator. NFC
Commit: 0e92beb0c0f050e1180c88aa31713f3d6ba9d34e
https://github.com/llvm/llvm-project/commit/0e92beb0c0f050e1180c88aa31713f3d6ba9d34e
Author: Kevin Sala Penades <salapenades1 at llnl.gov>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
M clang/test/OpenMP/amdgcn_target_device_vla.cpp
M clang/test/OpenMP/amdgpu_target_with_aligned_attribute.c
M clang/test/OpenMP/declare_target_codegen_globalization.cpp
M clang/test/OpenMP/metadirective_device_arch_codegen.cpp
M clang/test/OpenMP/metadirective_device_isa_codegen_amdgcn.cpp
M clang/test/OpenMP/nvptx_SPMD_codegen.cpp
M clang/test/OpenMP/nvptx_allocate_codegen.cpp
M clang/test/OpenMP/nvptx_data_sharing.cpp
M clang/test/OpenMP/nvptx_distribute_parallel_generic_mode_codegen.cpp
M clang/test/OpenMP/nvptx_lambda_capturing.cpp
M clang/test/OpenMP/nvptx_multi_target_parallel_codegen.cpp
M clang/test/OpenMP/nvptx_nested_parallel_codegen.cpp
M clang/test/OpenMP/nvptx_parallel_codegen.cpp
M clang/test/OpenMP/nvptx_parallel_for_codegen.cpp
M clang/test/OpenMP/nvptx_target_codegen.cpp
M clang/test/OpenMP/nvptx_target_parallel_codegen.cpp
M clang/test/OpenMP/nvptx_target_parallel_num_threads_codegen.cpp
M clang/test/OpenMP/nvptx_target_parallel_proc_bind_codegen.cpp
M clang/test/OpenMP/nvptx_target_parallel_reduction_codegen.cpp
M clang/test/OpenMP/nvptx_target_parallel_reduction_codegen_tbaa_PR46146.cpp
M clang/test/OpenMP/nvptx_target_teams_codegen.cpp
M clang/test/OpenMP/nvptx_target_teams_distribute_codegen.cpp
M clang/test/OpenMP/nvptx_target_teams_distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/nvptx_target_teams_distribute_parallel_for_generic_mode_codegen.cpp
M clang/test/OpenMP/nvptx_target_teams_distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/nvptx_target_teams_generic_loop_codegen.cpp
M clang/test/OpenMP/nvptx_teams_reduction_codegen.cpp
M clang/test/OpenMP/reduction_implicit_map.cpp
M clang/test/OpenMP/target_parallel_debug_codegen.cpp
M clang/test/OpenMP/target_parallel_for_debug_codegen.cpp
M clang/test/OpenMP/target_parallel_generic_loop_codegen-3.cpp
M clang/test/OpenMP/target_parallel_generic_loop_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen_as_parallel_for.cpp
M llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
M llvm/test/Transforms/OpenMP/add_attributes.ll
M llvm/test/Transforms/OpenMP/custom_state_machines.ll
M llvm/test/Transforms/OpenMP/custom_state_machines_pre_lto.ll
M llvm/test/Transforms/OpenMP/custom_state_machines_remarks.ll
M llvm/test/Transforms/OpenMP/get_hardware_num_threads_in_block_fold.ll
M llvm/test/Transforms/OpenMP/gpu_state_machine_function_ptr_replacement.ll
M llvm/test/Transforms/OpenMP/indirect_call_kernel_info_crash.ll
M llvm/test/Transforms/OpenMP/is_spmd_exec_mode_fold.ll
M llvm/test/Transforms/OpenMP/nested_parallelism.ll
M llvm/test/Transforms/OpenMP/parallel_level_fold.ll
M llvm/test/Transforms/OpenMP/spmdization.ll
M llvm/test/Transforms/OpenMP/spmdization_assumes.ll
M llvm/test/Transforms/OpenMP/spmdization_constant_prop.ll
M llvm/test/Transforms/OpenMP/spmdization_guarding.ll
M llvm/test/Transforms/OpenMP/spmdization_guarding_two_reaching_kernels.ll
M llvm/test/Transforms/OpenMP/spmdization_indirect.ll
M llvm/test/Transforms/OpenMP/spmdization_no_guarding_two_reaching_kernels.ll
M llvm/test/Transforms/OpenMP/spmdization_remarks.ll
M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
M mlir/test/Target/LLVMIR/omptarget-multi-block-reduction.mlir
M mlir/test/Target/LLVMIR/omptarget-parallel-llvm.mlir
M mlir/test/Target/LLVMIR/omptarget-parallel-wsloop.mlir
M mlir/test/Target/LLVMIR/openmp-target-generic-spmd.mlir
M mlir/test/Target/LLVMIR/openmp-target-spmd.mlir
M openmp/device/src/Parallelism.cpp
Log Message:
-----------
[Clang][OpenMP] Switch to __kmpc_parallel_60 with strict parameter (#171082)
This commit switches the `__kmpc_parallel_51` to `__kmpc_parallel_60`,
and adds the strict boolean for the number of threads.
Commit: f8d0c355f5f8d373b1c31161d31d490b771aa03e
https://github.com/llvm/llvm-project/commit/f8d0c355f5f8d373b1c31161d31d490b771aa03e
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/copyable-child-node-used-outside.ll
A llvm/test/Transforms/SLPVectorizer/X86/copyable-with-used-outside-bb.ll
Log Message:
-----------
[SLP]Prefer instructions, ued outside the block, as the initial main copyable instructions
Instructions, used outside the block, must be considered the first
choice for the main instructionsin the copyable nodes, to avoid
use-before-def.
Fixes #171055
Commit: da7174958be43d69b2ed6b581c8ac8a382b59180
https://github.com/llvm/llvm-project/commit/da7174958be43d69b2ed6b581c8ac8a382b59180
Author: Tarun Prabhu <tarun at lanl.gov>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/include/clang/Options/Options.td
M clang/lib/Driver/ToolChains/Flang.cpp
M flang/test/Driver/flang-f-opts.f90
Log Message:
-----------
[flang][Driver] Accept (and ignore) some gfortran-specific options
Enable the clang_ignored_gcc_optimization_f_group in flang. These
options are accepted by clang, but ignored after emitting a warning
message. flang's behavior now mirrors both clang and gfortran.
Fixes #158436
Commit: c7f62d28eac6fe0e9e9219cf57e32a1c8e61be15
https://github.com/llvm/llvm-project/commit/c7f62d28eac6fe0e9e9219cf57e32a1c8e61be15
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[bazel] Port 2a5420ea5184a334c2af9f2f9f43de4dfc6b76d3 (#171161)
Move some headers into the common __support_time library now that they
are no longer platform specific.
Commit: 57607e2b51e318519c171801ebce99d8ee01a2da
https://github.com/llvm/llvm-project/commit/57607e2b51e318519c171801ebce99d8ee01a2da
Author: anonymous <shyeyian at icloud.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/Sarif.h
M clang/include/clang/Frontend/SARIFDiagnostic.h
M clang/lib/Basic/Sarif.cpp
M clang/lib/Frontend/SARIFDiagnostic.cpp
M clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp
M clang/unittests/Basic/SarifTest.cpp
Log Message:
-----------
[Clang][Diagnose] Minimal support on emit-include-location in sarif mode (#170415)
Currently, invoking `clang++` with `-fdiagnostics-format=sarif` causes a
crash, with stack traces indicating that
`SARIFDiagnostic::emitIncludeLocation` is unimplemented.
This PR adds minimal support for converting `In file included from ...`
and `In module ...` into `SARIF.result.relatedLocations`. With this
change, `clang++ -fdiagnostics-format=sarif` no longer crashes and now
provides a minimal amount of useful information.
Thank you.
Commit: 3e008cb333d1824a1f69b01d0fab9ee69ce3d9ed
https://github.com/llvm/llvm-project/commit/3e008cb333d1824a1f69b01d0fab9ee69ce3d9ed
Author: Chow <Shaochi.Zhou at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Scalar/Scalarizer.cpp
M llvm/test/Transforms/Scalarizer/min-bits.ll
A llvm/test/Transforms/Scalarizer/vector-bool-not-aligned-min-bits.ll
Log Message:
-----------
Scalarizer : Fix vector shuffle issue when can't aligned to customized minBits. (#163912)
When set a value to minBits, and doing scalarizer pass, if last remained
boolean vector size can't be aligned to min bits, remained bits should
be processed each by each, and not allowed to do a direct shuffle during
packing.
Problem:
In 'concatenate' step, when processing a boolean vector, if last
remained bits (fragment) can't be aligned to minBits, but required to be
packed, those bits should be processed each by each.
A direct call to vector shuffle is to assume those remained boolean bits
can be packed to target pack size. For example, when processing a
boolean vector with `size = 7`, but set `min bits = 4`, first fragment
with `4` bits can be packed correctly, but there are still `3` bits
remained which can't be used in a vector shuffle call.
Solution:
If remained bits can't be aligned to required target (min bits) pack
size, process them each by each.
(This will mostly only influence boolean vector as they have bit width
not aligned to pow(2).)
---------
Co-authored-by: Zhou, Shaochi(AMD) <shaozhou at amd.com>
Commit: bc9f96a5e62d0b89588092343d137995811a9b80
https://github.com/llvm/llvm-project/commit/bc9f96a5e62d0b89588092343d137995811a9b80
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M lldb/include/lldb/Core/Debugger.h
M lldb/source/API/SBDebugger.cpp
M lldb/source/Commands/CommandObjectVersion.cpp
M lldb/source/Commands/CommandObjectVersion.h
M lldb/source/Commands/Options.td
M lldb/source/Core/Debugger.cpp
A lldb/test/Shell/Commands/command-version.test
Log Message:
-----------
[lldb] Dump build configuration with `version -v` (#170772)
Add a verbose option to the version command and include the "build
configuration" in the command output. This allows users to quickly
identify if their version of LLDB was built with support for
xml/curl/python/lua etc. This data is already available through the SB
API using SBDebugger::GetBuildConfiguration, but this makes it more
discoverable.
```
(lldb) version -v
lldb version 22.0.0git (git at github.com:llvm/llvm-project.git revision 21a2aac5e5456f9181384406f3b3fcad621a7076)
clang revision 21a2aac5e5456f9181384406f3b3fcad621a7076
llvm revision 21a2aac5e5456f9181384406f3b3fcad621a7076
editline_wchar: yes
lzma: yes
curses: yes
editline: yes
fbsdvmcore: yes
xml: yes
lua: yes
python: yes
targets: [AArch64, AMDGPU, ARM, AVR, BPF, Hexagon, Lanai, LoongArch, Mips, MSP430, NVPTX, PowerPC, RISCV, Sparc, SPIRV, SystemZ, VE, WebAssembly, X86, XCore]
curl: yes
```
Resolves #170727
Commit: c6e23ab80753a01dce270f5f8a133fbec942315d
https://github.com/llvm/llvm-project/commit/c6e23ab80753a01dce270f5f8a133fbec942315d
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/lib/Conversion/XeGPUToXeVM/XeGPUToXeVM.cpp
Log Message:
-----------
[MLIR][XeVM] Fix unused variable warning in 66134e7 (#171171)
Inline the variable only used in an assert per the LLVM coding
standards.
Commit: 7305ed7e1554d5af652bdf7afc731f217cc49f09
https://github.com/llvm/llvm-project/commit/7305ed7e1554d5af652bdf7afc731f217cc49f09
Author: Ravil Dorozhinskii <ravil.aviva.com at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
M mlir/test/Dialect/LLVMIR/rocdl.mlir
M mlir/test/Target/LLVMIR/rocdl.mlir
Log Message:
-----------
[ROCDL] added math instructions to the ROCDL dialect (#169672)
Exposed llvm amdgcn math intrinsic calls through ROCDL
Commit: 371da58cfa05caa6ff654e538b913b059d9a1f44
https://github.com/llvm/llvm-project/commit/371da58cfa05caa6ff654e538b913b059d9a1f44
Author: Sergei Druzhkov <serzhdruzhok at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M lldb/tools/lldb-dap/Handler/PauseRequestHandler.cpp
M lldb/tools/lldb-dap/Handler/RequestHandler.h
M lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp
M lldb/tools/lldb-dap/Protocol/ProtocolRequests.h
M lldb/unittests/DAP/ProtocolRequestsTest.cpp
Log Message:
-----------
[lldb-dap] Migrate pause request to structured types (#171096)
This patch migrates `pause` request into structured types and adds test
for it.
Commit: 4709018c8c8632093337ddcd67ddba1dbf17d718
https://github.com/llvm/llvm-project/commit/4709018c8c8632093337ddcd67ddba1dbf17d718
Author: Stefan Weigl-Bosker <stefan at s00.xyz>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp
M mlir/test/Conversion/TensorToSPIRV/tensor-ops-to-spirv.mlir
Log Message:
-----------
[MLIR][Spirv] Don't lower tensors that can't be represented by an ArrayType (#171002)
I noticed this because of
https://github.com/llvm/llvm-project/issues/159738, though it was only
caught by his fuzzer because it wrapped to 0.
Also, is there a reason for the usage of `unsigned` for sizes in spirv
types? I believe most of the builtin types use `int64_t` for sizes, so
it may make sense to do the same for spirv.
Commit: c9a3ab293bda9b73e9df03459ea26ee536d78d64
https://github.com/llvm/llvm-project/commit/c9a3ab293bda9b73e9df03459ea26ee536d78d64
Author: Robert Imschweiler <robert.imschweiler at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
M llvm/test/Transforms/UnifyLoopExits/basic.ll
Log Message:
-----------
[AMDGPU][UnifyLoopExits] Fix duplicate successor handling (#170759)
Fixes https://github.com/llvm/llvm-project/issues/170730
Maybe I can also come up with a more elegant solution. But I think it
wouldn't make a lot of sense trying to avoid multiple "fake" target
blocks. Would require a mapping between original and fake target
blocks...
Commit: fa511cde48ea218dadfa8b35658ac06368f34607
https://github.com/llvm/llvm-project/commit/fa511cde48ea218dadfa8b35658ac06368f34607
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M .ci/premerge_advisor_explain.py
Log Message:
-----------
[CI] Make premerge advisor log comments path
This is necessary to debug a problem where Windows comments are not
being uploaded correctly. This should also make future debugging easier
if a similar issue ever comes up again.
Commit: c5d17bdf0cec7b0cfd9bb497228bad160be361af
https://github.com/llvm/llvm-project/commit/c5d17bdf0cec7b0cfd9bb497228bad160be361af
Author: Andrew Haberlandt <ndrewh at users.noreply.github.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
M compiler-rt/cmake/builtin-config-ix.cmake
M compiler-rt/lib/builtins/CMakeLists.txt
M compiler-rt/test/CMakeLists.txt
M compiler-rt/test/builtins/CMakeLists.txt
M llvm/runtimes/CMakeLists.txt
Log Message:
-----------
[compiler-rt] Add check-builtins target for LLVM_ENABLE_RUNTIMES builds (#166837)
When doing a LLVM_ENABLE_RUNTIMES-based build of clang+compiler_rt, the
`check-builtins` target is missing and builtins tests are not run
(#112105, #144090).
This provides one possible path forward for enabling these tests.
The approach taken here is to test the builtins with the `compiler-rt`
runtime build (i.e. only if you pass
`LLVM_ENABLE_RUNTIMES='compiler-rt'`). The builtins tests currently rely
on shared test infrastructure in `compiler-rt/`, so this is probably the
easiest solution without relocating the builtins and their tests outside
of `compiler-rt/`.
The main challenge is that the built-ins test configuration expects to
be able to inspect the builtin target and see the sources used to build
it:
```
get_target_property(BUILTIN_LIB_SOURCES "${BUILTIN_LIB_TARGET_NAME}" SOURCES)
```
Since the builtins build and runtimes build are separate under
LLVM_ENABLE_RUNTIMES, this target inspection is not possible. To get
around this, we write a temporary file alongside each builtins library
containing the list of sources (e.g.
`"${CMAKE_BINARY_DIR}/clang_rt.builtins-${arch}.sources.txt"`). Then, we
introduce an undocumented compiler-rt option
`COMPILER_RT_FORCE_TEST_BUILTINS_DIR` (which is only intended to be used
by the LLVM_ENABLE_RUNTIMES build, and could be removed after builtins
re relocated) that passes the path to the directory containing this
file, and configures builtins tests (even though the runtimes build has
`COMPILER_RT_BUILD_BUILTINS=OFF`)
rdar://163518748
Commit: 2ac832bac344a4b73dd2d8b7e3c02ba05629b914
https://github.com/llvm/llvm-project/commit/2ac832bac344a4b73dd2d8b7e3c02ba05629b914
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/test/Headers/__clang_hip_math.hip
Log Message:
-----------
clang/HIP: Regenerate __clang_hip_math test checks (#171185)
Commit: de53b1a4ef4cd7c641b3ec7ca6ac272a1b292185
https://github.com/llvm/llvm-project/commit/de53b1a4ef4cd7c641b3ec7ca6ac272a1b292185
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/test/Transforms/LoopVectorize/AArch64/gather-cost.ll
M llvm/test/Transforms/LoopVectorize/ARM/gather-cost.ll
M llvm/test/Transforms/LoopVectorize/X86/gather-cost.ll
Log Message:
-----------
[LV] Simplify IR for gather-cost.ll, auto-generate checks. (NFC)
Simplify tests and auto-generate check in preparation for further
updates.
Commit: a38f84718713b5c6fedb1ca0f2e800c2f1851fa1
https://github.com/llvm/llvm-project/commit/a38f84718713b5c6fedb1ca0f2e800c2f1851fa1
Author: Steven Wu <stevenwu at apple.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/CAS/OnDiskCommon.cpp
M llvm/lib/CAS/OnDiskCommon.h
M llvm/lib/CAS/UnifiedOnDiskCache.cpp
Log Message:
-----------
[CAS] Fix deprecation warning in `getBootTime` (#171168)
For some older Linux distro that still ships deprecated sysctl header,
there can be deprecation warnings when building LLVMCAS. This also
results LLVMCAS to use the deprecated sysctl function, while it is only
intended to be used on Darwin platforms.
Fix the issue by only including sysctl on Apple platforms. Also move the
platform dependent `getBootTime` code into OnDiskCommon.cpp.
Commit: 7c9aa14b964ceab0ff9d06042f9d57b7979893f8
https://github.com/llvm/llvm-project/commit/7c9aa14b964ceab0ff9d06042f9d57b7979893f8
Author: David Green <david.green at arm.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/sve-int-mulh-pred.ll
M llvm/test/CodeGen/AArch64/sve2-int-mulh.ll
Log Message:
-----------
[AArch64] Use sve instructions for fixed-width smulh/umulh. (#166168)
Like v2i64 mul and operations like divide, we should be able to use the SVE
umulh and smulh instructions with 128bit vectors, providing that we have
SVE/SVE2. There are a number of other instructions that look like they should
presumably be treated the same way.
Commit: 7be3973a27e7ff231135687c8705e84a19987aab
https://github.com/llvm/llvm-project/commit/7be3973a27e7ff231135687c8705e84a19987aab
Author: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/test/ThinLTO/X86/pr35472.ll
Log Message:
-----------
[DebugInfo][test] Fix llvm/test/ThinLTO/X86/pr35472.ll (NFC) (#170952)
The test is intended to verify lazy loading of debug-location scope
metadata. However, after d5d3eb16b7ab72529c83dacb2889811491e48909,
DILexicalScope that was expected to be lazily loaded was not used in IR,
so lazy loading did not occur.
This patch fixes that, and adds an extra bcanalyzer check to ensure that
DILexicalScope record is emitted.
Commit: 0959bb30016f439e8f9e975e770c49b2eb0dd129
https://github.com/llvm/llvm-project/commit/0959bb30016f439e8f9e975e770c49b2eb0dd129
Author: David Green <david.green at arm.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/Thumb2/mve-vmulh.ll
Log Message:
-----------
[DAG] Generate UMULH/SMULH with wider vector types (#170283)
The existing code for generating umulh/smulh was checking that that the
getTypeToTransformTo was a LegalOrCustom operation. This only takes a
single legalization step though, so if v4i32 was legal, a v8i32 would be
transformed but a v16i32 would not.
This patch introduces a getLegalTypeToTransformTo that performs
getTypeToTransformTo until a legal type is reached. The umulh/smulh code
can then use it to check if the final resultant type will be legal.
Commit: 7dfe599bda5bd2b6644ca2ec339565d53d20a718
https://github.com/llvm/llvm-project/commit/7dfe599bda5bd2b6644ca2ec339565d53d20a718
Author: Sean Fertile <sd.fertile at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/test/CodeGen/PowerPC/aix32-cc-abi-vaarg-mir.ll
M llvm/test/CodeGen/PowerPC/aix32-cc-abi-vaarg.ll
M llvm/test/CodeGen/PowerPC/aix32-vector-vararg-callee.ll
M llvm/test/CodeGen/PowerPC/aix64-cc-abi-vaarg-mir.ll
M llvm/test/CodeGen/PowerPC/aix64-cc-abi-vaarg.ll
M llvm/test/CodeGen/PowerPC/aix64-vector-vararg-callee.ll
M llvm/test/CodeGen/PowerPC/aix64-vector-vararg-fixed-callee.ll
Log Message:
-----------
Fix VarArgs FixedStack object on AIX. (#170240)
Create a mutable aliased fixed stack object for the va_list when any of
the optional arguments are passed in gprs. Since we need to spill the
gpr registers into the parameter save area the stack object is not
immutable, and since the values will almost certainly be accessed
through the IR value for a va_list make the stack object aliased as
well.
Commit: b8a50c7cdb08ad757a931e6b6005e758258e1781
https://github.com/llvm/llvm-project/commit/b8a50c7cdb08ad757a931e6b6005e758258e1781
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/lib/Headers/__clang_hip_math.h
M clang/test/Headers/__clang_hip_math.hip
Log Message:
-----------
clang/HIP: Avoid using ocml logb (#171186)
We have special case handling for the logb builtins, so use them.
Commit: 3ccd67295bfb9bf6f88e3315506fda8359df2668
https://github.com/llvm/llvm-project/commit/3ccd67295bfb9bf6f88e3315506fda8359df2668
Author: Shilei Tian <i at tianshilei.me>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/inlineasm-mismatched-size-error.ll
Log Message:
-----------
[AMDGPU] Fix a crash when a bool variable is used in inline asm (#171004)
Fixes SWDEV-570184.
Commit: 83fd2c994a82119edf249ac3c169250c26f0b21c
https://github.com/llvm/llvm-project/commit/83fd2c994a82119edf249ac3c169250c26f0b21c
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/tools/dsymutil/dsymutil.cpp
Log Message:
-----------
[dsymutil] Remove spurious exit when falling back to fat64 header (#171189)
In #118898 I changed dsymutil to emit a warning instead of an error when
exceeding the 4GB limit for a slice and automatically fall back to using
the fat64 header. However, while doing so, I forgot to remove the return
which defeats the whole purpose.
rdar://140998416
Commit: 56fdc61e3a73cad6acb3e7f52c30590b215506b4
https://github.com/llvm/llvm-project/commit/56fdc61e3a73cad6acb3e7f52c30590b215506b4
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/lib/Dialect/SCF/IR/SCF.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for llvm-qualified-auto in SCF.cpp (NFC)
Commit: 5d53085d7aa832452efcfae3a187724a0456ac7e
https://github.com/llvm/llvm-project/commit/5d53085d7aa832452efcfae3a187724a0456ac7e
Author: Florian Mayer <fmayer at google.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/unittests/Analysis/FlowSensitive/MockHeaders.cpp
Log Message:
-----------
[NFC] [FlowSensitive] Fix missing namespace in MockHeaders (#170954)
This happened to work because we were missing both a namespace close and
open and things happened to be included in the correct order.
Commit: 863a4e410b0ac1c734291b79ddb84cbe19936220
https://github.com/llvm/llvm-project/commit/863a4e410b0ac1c734291b79ddb84cbe19936220
Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
A llvm/test/Verifier/AMDGPU/test-cvt-fp4f6f8-immarg-ranges.ll
Log Message:
-----------
[AMDGPU] Add argument range annotations to intrinsics where applicable (#170958)
This commit adds annotations to AMDGPU intrinscis that take arguments
which are documented to lie within a specified range, ensuring that
invalid instances of these intrinsics don't pass verification.
(Note that certain intrinsics that could have range annothations don't,
as their existing behavior is to clamp out-of-range values silently.)
Disclaimer: tests generated by LLM (code is mine)
Commit: 7ecc9ee9198931ceabbd85cc4a39c5f07a5437a2
https://github.com/llvm/llvm-project/commit/7ecc9ee9198931ceabbd85cc4a39c5f07a5437a2
Author: Evgenii Kudriashov <evgenii.kudriashov at intel.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/Target/X86/GISel/X86LegalizerInfo.cpp
M llvm/test/CodeGen/X86/isel-icmp.ll
Log Message:
-----------
[X86][GlobalISel] Set Dst register correctly when narrowing G_ICMP (#169947)
Due to untested branch in #119335
Fixes #167326
Commit: b802fdbe76ae52f2e66fd6aea32b3299136a6f31
https://github.com/llvm/llvm-project/commit/b802fdbe76ae52f2e66fd6aea32b3299136a6f31
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.h
Log Message:
-----------
[RISCV] Remove unnecesary override of getVectorTypeBreakdownForCallingConv. NFC (#171155)
There used to be code in here to make i32 legal on RV64, but it was
removed.
Also remove unnecessary temporary variable from
getRegisterTypeForCallingConv.
Commit: bb79b350681493ce0718d0ae70a080c981010e6a
https://github.com/llvm/llvm-project/commit/bb79b350681493ce0718d0ae70a080c981010e6a
Author: Florian Mayer <fmayer at google.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/include/clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h
M clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
M clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
Log Message:
-----------
[FlowSensitive] [StatusOr] [11/N] Assume const accessor calls are stable (#170935)
This is not necessarily correct, but prevents us from flagging lots of
false positives because code usually abides by this.
Commit: 41363b40bebaad3e04fa128a177b85224ef66214
https://github.com/llvm/llvm-project/commit/41363b40bebaad3e04fa128a177b85224ef66214
Author: Florian Mayer <fmayer at google.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/unittests/Analysis/FlowSensitive/MockHeaders.cpp
Log Message:
-----------
[NFC] [FlowSensitive] Add mock unique_ptr header (#170942)
Commit: d17f3b53e913a9ceb0b3747bb83eeb6dbe3d727b
https://github.com/llvm/llvm-project/commit/d17f3b53e913a9ceb0b3747bb83eeb6dbe3d727b
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M compiler-rt/test/xray/TestCases/Posix/basic-filtering.cpp
M compiler-rt/test/xray/TestCases/Posix/fdr-mode.cpp
Log Message:
-----------
[XRay] Disable two more tests on armhf
Similar to d6f92050c0c2f60e78f3c8bcf557c5e69b025d7a. Needed now that
these tests are actually running more broadly.
Commit: 1e16f4e43d4bda3dc21b4a66dd0ce95e8dac8fd5
https://github.com/llvm/llvm-project/commit/1e16f4e43d4bda3dc21b4a66dd0ce95e8dac8fd5
Author: stomfaig <55883018+stomfaig at users.noreply.github.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M flang/include/flang/Optimizer/Builder/FIRBuilder.h
M flang/lib/Optimizer/Builder/FIRBuilder.cpp
M flang/lib/Optimizer/HLFIR/Transforms/SimplifyHLFIRIntrinsics.cpp
A flang/test/HLFIR/simplify-hlfir-intrinsics-product.fir
Log Message:
-----------
[flang] add simplification for ProductOp intrinsic (#169575)
Add simplification for `ProductOp`, by implementing support for
`ReductionConversion` and adding it to the pattern list in
`SimplifyHLFIRIntrinsics` pass.
Closes:
https://github.com/issues/recent?issue=llvm%7Cllvm-project%7C169433
---------
Co-authored-by: Eugene Epshteyn <eepshteyn at nvidia.com>
Commit: e3905a4aa6aaeef643f4e0c64fc6402186548057
https://github.com/llvm/llvm-project/commit/e3905a4aa6aaeef643f4e0c64fc6402186548057
Author: Teresa Johnson <tejohnson at google.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemProfUse.cpp
M llvm/test/Transforms/PGOProfile/memprof_annotate_indirect_call.test
Log Message:
-----------
[MemProf] Merge all callee guids for indirect call VP metadata (#170964)
When matching memprof profiles, for indirect calls we use the callee
guids recorded on callsites in the profile to synthesize indirect call
VP metadata when none exists. However, we only do this for the first
matching CallSiteEntry from the profile.
In some case there can be multiple, for example when the current
function was eventually inlined into multiple callers. Profile
generation propagates the CallSiteEntry from those callers into the
inlined callee's profile as it may not yet have been inlined in the
new compile.
To capture all of these potential indirect call targets, merge callee
guids across all matching CallSiteEntries.
Commit: f6971bf25daff242590ea025ae3b37603845c0b4
https://github.com/llvm/llvm-project/commit/f6971bf25daff242590ea025ae3b37603845c0b4
Author: Florian Mayer <fmayer at google.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
M clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
Log Message:
-----------
[FlowSensitive] [StatusOr] [12/N] Add support for smart pointers (#170943)
Commit: d33d9ac0ed2f548e53b8266fff35662054b44486
https://github.com/llvm/llvm-project/commit/d33d9ac0ed2f548e53b8266fff35662054b44486
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M .github/workflows/premerge.yaml
Log Message:
-----------
[Github] Make premerge update correct comments file for Windows
platform.machine() on x86_64 on Windows returns AMD64 rather than
x86_64. Make premerge.yaml reflect this.
Commit: 65dd29b335ce67ff815c539a4f6836a1f0dd4a63
https://github.com/llvm/llvm-project/commit/65dd29b335ce67ff815c539a4f6836a1f0dd4a63
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV] Compare induction start values via SCEV in assertion (NFCI).
Instead of comparing plain VPValue in the assertion checking the start
values, directly compare the SCEV's. This future-proofs the code in
preparation of performing more simplifications/canonicalizations for
live-ins.
Commit: e7f6038e897368840e2778a93f8de093f7d7512a
https://github.com/llvm/llvm-project/commit/e7f6038e897368840e2778a93f8de093f7d7512a
Author: Daniel Thornburgh <dthorn at google.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/test/CodeGen/Generic/reloc-none.ll
Log Message:
-----------
[LLVM] Mark reloc-none test unsupported on Hexagon (#171205)
Prevents infinite loop issue recorded in #147427. More work will be
required to make @llvm.reloc_none work correctly on Hexagon.
Commit: 89bc5fff54b750c145c27d44e70692c7af7aba3b
https://github.com/llvm/llvm-project/commit/89bc5fff54b750c145c27d44e70692c7af7aba3b
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
Log Message:
-----------
[CIR] Clean up visibility conversion (NFC) (#171000)
Commit: 5c8c7f3d21ce37bfecd671de4e139a4d933f9be9
https://github.com/llvm/llvm-project/commit/5c8c7f3d21ce37bfecd671de4e139a4d933f9be9
Author: Drew Kersnar <dkersnar at nvidia.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
M llvm/test/CodeGen/NVPTX/LoadStoreVectorizer.ll
A llvm/test/CodeGen/NVPTX/masked-load-3xhalf.ll
M llvm/test/CodeGen/NVPTX/param-vectorize-device.ll
M llvm/test/Transforms/LoadStoreVectorizer/NVPTX/4x2xhalf.ll
A llvm/test/Transforms/LoadStoreVectorizer/NVPTX/extend-chain.ll
A llvm/test/Transforms/LoadStoreVectorizer/NVPTX/gap-fill-cleanup.ll
A llvm/test/Transforms/LoadStoreVectorizer/NVPTX/gap-fill-invariant.ll
A llvm/test/Transforms/LoadStoreVectorizer/NVPTX/gap-fill-vectors.ll
A llvm/test/Transforms/LoadStoreVectorizer/NVPTX/gap-fill-with-redundant-elements.ll
A llvm/test/Transforms/LoadStoreVectorizer/NVPTX/gap-fill.ll
M llvm/test/Transforms/LoadStoreVectorizer/NVPTX/many_loads_stores.ll
A llvm/test/Transforms/LoadStoreVectorizer/NVPTX/masked-store.ll
M llvm/test/Transforms/LoadStoreVectorizer/NVPTX/vectorize_i8.ll
Log Message:
-----------
[LoadStoreVectorizer] Fill gaps in load/store chains to enable vectorization (#159388)
This change introduces Gap Filling, an optimization that aims to fill in
holes in otherwise contiguous load/store chains to enable vectorization.
It also introduces Chain Extending, which extends the end of a chain to
the closest power of 2.
This was originally motivated by the NVPTX target, but I tried to
generalize it to be universally applicable to all targets that may use
the LSV. I'm more than willing to make adjustments to improve the
target-agnostic-ness of this change. I fully expect there are some
issues and encourage feedback on how to improve things.
For both loads and stores we only perform the optimization when we can
generate a legal llvm masked load/store intrinsic, masking off the
"extra" elements. Determining legality for stores is a little tricky
from the NVPTX side, because these intrinsics are only supported for
256-bit vectors. See the other PR I opened for the implementation of the
NVPTX lowering of masked store intrinsics, which include NVPTX TTI
changes that return true for isLegalMaskedStore under certain
conditions: https://github.com/llvm/llvm-project/pull/159387. This
change is dependent on that backend change, but I predict this change
will require more discussion, so I am putting them both up at the same
time. The backend change will be merged first assuming both are
approved.
Edited: both stores _and loads_ must use masked intrinsics for this
optimization to be legal.
---------
Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>
Commit: b71eb53cd4399cea26c4aebdefb238e80c22ba95
https://github.com/llvm/llvm-project/commit/b71eb53cd4399cea26c4aebdefb238e80c22ba95
Author: Eli Friedman <efriedma at qti.qualcomm.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M compiler-rt/lib/asan/asan_allocator.h
Log Message:
-----------
[asan] Add config for AArch64 Linux with 39-bit VA. (#170929)
This is leveraging work which has already been done for Android, which
ships 39-bit VA kernels, and extending it to other embedded Linux
targets.
(SANITIZER_AARCH64_39BIT_VA was added in 58c8f57681.)
Commit: c3acafcda289ffa09f1bcae93221eaaf8fcffe79
https://github.com/llvm/llvm-project/commit/c3acafcda289ffa09f1bcae93221eaaf8fcffe79
Author: Eli Friedman <efriedma at qti.qualcomm.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M compiler-rt/lib/hwasan/hwasan_allocator.h
Log Message:
-----------
[hwasan] Add config for AArch64 Linux with 39-bit VA. (#170927)
This is leveraging work which has already been done for Android, which
ships 39-bit VA kernels, and extending it to other embedded Linux
targets.
(SANITIZER_AARCH64_39BIT_VA was added in 58c8f57681.)
Commit: f803e463f921f9cf460f4c3e96372fb3755cc934
https://github.com/llvm/llvm-project/commit/f803e463f921f9cf460f4c3e96372fb3755cc934
Author: Fei Peng <feip at nvidia.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
M llvm/test/CodeGen/AMDGPU/agpr-copy-no-free-registers.ll
M llvm/test/CodeGen/AMDGPU/dagcombine-reassociate-bug.ll
M llvm/test/CodeGen/AMDGPU/idot2.ll
M llvm/test/CodeGen/AMDGPU/idot4s.ll
M llvm/test/CodeGen/AMDGPU/idot8u.ll
M llvm/test/CodeGen/AMDGPU/promote-constOffset-to-imm.ll
M llvm/test/CodeGen/AMDGPU/splitkit-getsubrangeformask.ll
M llvm/test/CodeGen/AMDGPU/waitcnt-vscnt.ll
M llvm/test/Transforms/StraightLineStrengthReduce/AMDGPU/pr23975.ll
M llvm/test/Transforms/StraightLineStrengthReduce/AMDGPU/reassociate-geps-and-slsr-addrspace.ll
A llvm/test/Transforms/StraightLineStrengthReduce/NVPTX/slsr-i8-gep.ll
A llvm/test/Transforms/StraightLineStrengthReduce/NVPTX/slsr-invalid.ll
A llvm/test/Transforms/StraightLineStrengthReduce/NVPTX/slsr-var-delta.ll
A llvm/test/Transforms/StraightLineStrengthReduce/path-compression.ll
A llvm/test/Transforms/StraightLineStrengthReduce/pick-candidate.ll
M llvm/test/Transforms/StraightLineStrengthReduce/slsr-add.ll
M llvm/test/Transforms/StraightLineStrengthReduce/slsr-gep.ll
Log Message:
-----------
Reland "Redesign Straight-Line Strength Reduction (SLSR) (#162930)" (#169614)
This PR implements parts of
https://github.com/llvm/llvm-project/issues/162376
- **Broader equivalence than constant index deltas**:
- Add Base-delta and Stride-delta matching for Add and GEP forms using
ScalarEvolution deltas.
- Reuse enabled for both constant and variable deltas when an available
IR value dominates the user.
- **Dominance-aware dictionary instead of linear scans**:
- Tuple-keyed candidate dictionary grouped by basic block.
- Walk the immediate-dominator chain to find the nearest dominating
basis quickly and deterministically.
- **Simple cost model and best-rewrite selection**:
- Score candidate expressions and rewrites; select the highest-profit
rewrite per instruction.
- Skip rewriting when expressions are already foldable or
high-efficiency.
- **Path compression for better ILP**:
- Compress chains of rewrites to a deeper dominating basis when a
constant delta exists along the path, reducing dependent bumps on
critical paths.
- **Dependency-aware rewrite ordering**:
- Build a dependency graph (basis, stride, variable delta producers) and
rewrite in topological order.
- This dependency graph will be needed by the next PR that adds partial
strength reduction.
- **Correctness enhencment**
- Fix a correctness issue that reusing instructions with the same SCEV
may introduce poison.
---------
Co-authored-by: Kazu Hirata <kazu at google.com>
Commit: 1911ce132659222aee353882bd5570d689745a7d
https://github.com/llvm/llvm-project/commit/1911ce132659222aee353882bd5570d689745a7d
Author: NagaChaitanya Vellanki <pnagato at protonmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/include/clang/Basic/BuiltinsX86.td
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/lib/AST/ExprConstShared.h
M clang/lib/AST/ExprConstant.cpp
M clang/lib/Headers/gfniintrin.h
M clang/test/CodeGen/X86/gfni-builtins.c
Log Message:
-----------
[Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - Allow GFNI intrinsics to be used in constexpr (#169619)
Resolves #169295
Commit: 2ab198fd15ccbc7f79d11af2383c4534e762fb60
https://github.com/llvm/llvm-project/commit/2ab198fd15ccbc7f79d11af2383c4534e762fb60
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
A llvm/test/Transforms/VectorCombine/AMDGPU/shuffles-of-length-changing-shuffles.ll
Log Message:
-----------
AMDGPU: Precommit a test (#171208)
Commit: 0ce6d5699632cb2821f53978afb22e2466ec85c3
https://github.com/llvm/llvm-project/commit/0ce6d5699632cb2821f53978afb22e2466ec85c3
Author: jimingham <jingham at apple.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M lldb/source/Commands/CommandObjectBreakpoint.cpp
M lldb/test/API/functionalities/breakpoint/breakpoint_by_line_and_column/TestBreakpointByLineAndColumn.py
Log Message:
-----------
Fix a typo in "breakpoint add file" and add a test (#171206)
lldbutil.run_to_line_breakpoint had usages that set column breakpoints,
so I thought there was coverage of that on the command-line, but
actually all the `run_to` utilities use the SB API's, and there weren't
any tests of setting file line & column breakpoint through
`run_break_set`. So I missed that I had typed the column option `c` -
that's taken by `--command`.
This patch fixes that typo and adds a CLI test for file + line + column.
Commit: 786498b2816368b02f51514e71f6c6f6ceceba1a
https://github.com/llvm/llvm-project/commit/786498b2816368b02f51514e71f6c6f6ceceba1a
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/fp_trunc_store_fp32_to_bf16.ll
M llvm/test/CodeGen/AMDGPU/trunc-store-f64-to-f16.ll
M llvm/test/CodeGen/AMDGPU/trunc-store.ll
Log Message:
-----------
AMDGPU: Fix truncstore from v6f32 to v6f16 (#171212)
The v6bf16 cases work, but that's likely because v6bf16 isn't
currently an MVT.
Fixes: SWDEV-570985
Commit: 05b7720ccafaca5269dae44254547d1622607485
https://github.com/llvm/llvm-project/commit/05b7720ccafaca5269dae44254547d1622607485
Author: Priyanshu Kumar <10b.priyanshu at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
A clang/test/CIR/CodeGen/X86/cir-sqrt-builtins.c
Log Message:
-----------
[CIR][X86] Implement lowering for sqrt builtins (#169310)
Implements CIR IR generation for X86-specific sqrt builtin functions,
addressing issue #167765.
## Test Results
Successfully tested the implementation locally. All tests pass:
```bash
$ ./bin/llvm-lit -v ../clang/test/CIR/CodeGen/X86/cir-sqrt-builtins.c
Testing: 1 tests, 1 workers
PASS: Clang :: CIR/CodeGen/X86/cir-sqrt-builtins.c (1 of 1)
Testing Time: 1.18s
Total Discovered Tests: 1
Passed: 1 (100.00%)
```
---------
Co-authored-by: Copilot <175728472+Copilot at users.noreply.github.com>
Co-authored-by: Andy Kaylor <akaylor at nvidia.com>
Commit: 392c302d790d82fdbf22ebeeaa7e97a261cb23fe
https://github.com/llvm/llvm-project/commit/392c302d790d82fdbf22ebeeaa7e97a261cb23fe
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
Log Message:
-----------
[Clang] Fix unused variable warning from 1911ce132659222aee353882bd55… (#171223)
…70d689745a7d
These are only used in assertions so trigger warnings in release builds.
Fix this per the LLVM programming standards.
Commit: c595282f7d281012a21467655dd310826d86ddb9
https://github.com/llvm/llvm-project/commit/c595282f7d281012a21467655dd310826d86ddb9
Author: Maksim Levental <maksim.levental at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M mlir/CMakeLists.txt
Log Message:
-----------
[mlir][CMake] enable disabling MLIR_ENABLE_EXECUTION_ENGINE (#171060)
Currently if you pass MLIR_ENABLE_EXECUTION_ENGINE=OFF it's overwritten.
Commit: 3686ff2b15be36b510e8efef2d3f95968f716b68
https://github.com/llvm/llvm-project/commit/3686ff2b15be36b510e8efef2d3f95968f716b68
Author: Harald van Dijk <hdijk at accesssoftek.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
M llvm/lib/Target/AArch64/AArch64A53Fix835769.cpp
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/test/tools/llvm-mca/AArch64/Cortex/A55-load-store-alias.s
M llvm/test/tools/llvm-mca/AArch64/Cortex/A55-load-store-noalias.s
Log Message:
-----------
[AArch64] Treat NOP as a separate instruction. (#170968)
Previously, nop was treated as just an alias for hint #0. The
consequence of that was that all the general rules for hint instructions
applied to nop too, in particular that during binary analysis, they were
assumed to have unknown effects. This commit adds AArch64::NOP as a
standalone instruction with no side effects.
The scheduling update in A55-load-store-alias.s is probably not entirely
accurate, but should be more accurate than the previous result.
Commit: a1f948947ddcd53c8459c978f67c4dd207a43550
https://github.com/llvm/llvm-project/commit/a1f948947ddcd53c8459c978f67c4dd207a43550
Author: Ming Yan <ming.yan at terapines.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M flang/lib/Optimizer/Transforms/FIRToSCF.cpp
M flang/test/Fir/FirToSCF/iter-while.fir
Log Message:
-----------
[Flang][Fir] Fix the comparison when lowering `fir.iterate_while` to `scf.while`. (#171080)
The comparison depends on the sign of the `step`, and when `step == 0` it always returns `false`.
Commit: c05ba635c4818816d704096197abeb00bad7bf99
https://github.com/llvm/llvm-project/commit/c05ba635c4818816d704096197abeb00bad7bf99
Author: paperchalice <liujunchang97 at outlook.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/test/CodeGen/PowerPC/vec_rounding.ll
Log Message:
-----------
[PowerPC] Use the same lowering rule for vector rounding instructions (#166307)
They should have the same lowering rule.
Commit: cdb525d2e420de1348e4f7a6b75ca07664f4ca43
https://github.com/llvm/llvm-project/commit/cdb525d2e420de1348e4f7a6b75ca07664f4ca43
Author: Drew Kersnar <dkersnar at nvidia.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
M llvm/lib/Target/NVPTX/NVPTXSubtarget.h
M llvm/test/CodeGen/NVPTX/LoadStoreVectorizer.ll
M llvm/test/CodeGen/NVPTX/param-vectorize-device.ll
A llvm/test/CodeGen/NVPTX/used-bytes-mask.ll
Log Message:
-----------
[NVPTX] Fix lit test issue from used_bytes_mask (#171220)
Whoops, I made the same mistake as
https://github.com/llvm/llvm-project/pull/169535/files again, so
https://github.com/llvm/llvm-project/commit/5c8c7f3d21ce37bfecd671de4e139a4d933f9be9
is causing build issues.
Commit: 1e33e12f252f55245d78e01fc25a99147c794247
https://github.com/llvm/llvm-project/commit/1e33e12f252f55245d78e01fc25a99147c794247
Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
Log Message:
-----------
[AMDGPU][NFC] fix function names in debug log for SIInsertWaitcnts
Commit: 8c8196c8021f21fd39145d03337bf0e8fd214857
https://github.com/llvm/llvm-project/commit/8c8196c8021f21fd39145d03337bf0e8fd214857
Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
Log Message:
-----------
[AMDGPU][NFC] cleanup whitespace in debug log of SIInsertWaitcnts
Commit: 9fc1c49e4a98e1c312e7ff6028eb4e74787ebfdf
https://github.com/llvm/llvm-project/commit/9fc1c49e4a98e1c312e7ff6028eb4e74787ebfdf
Author: Wenju He <wenju.he at intel.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
R libclc/opencl/include/clc/opencl/async/async_work_group_copy.h
R libclc/opencl/include/clc/opencl/async/async_work_group_copy.inc
R libclc/opencl/include/clc/opencl/async/async_work_group_strided_copy.h
R libclc/opencl/include/clc/opencl/async/async_work_group_strided_copy.inc
R libclc/opencl/include/clc/opencl/async/prefetch.h
R libclc/opencl/include/clc/opencl/async/prefetch.inc
R libclc/opencl/include/clc/opencl/async/wait_group_events.h
R libclc/opencl/include/clc/opencl/atomic/atom_add.h
R libclc/opencl/include/clc/opencl/atomic/atom_and.h
R libclc/opencl/include/clc/opencl/atomic/atom_cmpxchg.h
R libclc/opencl/include/clc/opencl/atomic/atom_dec.h
R libclc/opencl/include/clc/opencl/atomic/atom_decl_int32.inc
R libclc/opencl/include/clc/opencl/atomic/atom_decl_int64.inc
R libclc/opencl/include/clc/opencl/atomic/atom_inc.h
R libclc/opencl/include/clc/opencl/atomic/atom_max.h
R libclc/opencl/include/clc/opencl/atomic/atom_min.h
R libclc/opencl/include/clc/opencl/atomic/atom_or.h
R libclc/opencl/include/clc/opencl/atomic/atom_sub.h
R libclc/opencl/include/clc/opencl/atomic/atom_xchg.h
R libclc/opencl/include/clc/opencl/atomic/atom_xor.h
R libclc/opencl/include/clc/opencl/atomic/atomic_add.h
R libclc/opencl/include/clc/opencl/atomic/atomic_and.h
R libclc/opencl/include/clc/opencl/atomic/atomic_cmpxchg.h
R libclc/opencl/include/clc/opencl/atomic/atomic_compare_exchange_strong.h
R libclc/opencl/include/clc/opencl/atomic/atomic_compare_exchange_weak.h
R libclc/opencl/include/clc/opencl/atomic/atomic_dec.h
R libclc/opencl/include/clc/opencl/atomic/atomic_decl.inc
R libclc/opencl/include/clc/opencl/atomic/atomic_decl_legacy.inc
R libclc/opencl/include/clc/opencl/atomic/atomic_exchange.h
R libclc/opencl/include/clc/opencl/atomic/atomic_fetch_add.h
R libclc/opencl/include/clc/opencl/atomic/atomic_fetch_and.h
R libclc/opencl/include/clc/opencl/atomic/atomic_fetch_max.h
R libclc/opencl/include/clc/opencl/atomic/atomic_fetch_min.h
R libclc/opencl/include/clc/opencl/atomic/atomic_fetch_or.h
R libclc/opencl/include/clc/opencl/atomic/atomic_fetch_sub.h
R libclc/opencl/include/clc/opencl/atomic/atomic_fetch_xor.h
R libclc/opencl/include/clc/opencl/atomic/atomic_flag_clear.h
R libclc/opencl/include/clc/opencl/atomic/atomic_flag_test_and_set.h
R libclc/opencl/include/clc/opencl/atomic/atomic_inc.h
R libclc/opencl/include/clc/opencl/atomic/atomic_init.h
R libclc/opencl/include/clc/opencl/atomic/atomic_init.inc
R libclc/opencl/include/clc/opencl/atomic/atomic_load.h
R libclc/opencl/include/clc/opencl/atomic/atomic_max.h
R libclc/opencl/include/clc/opencl/atomic/atomic_min.h
R libclc/opencl/include/clc/opencl/atomic/atomic_or.h
R libclc/opencl/include/clc/opencl/atomic/atomic_store.h
R libclc/opencl/include/clc/opencl/atomic/atomic_sub.h
R libclc/opencl/include/clc/opencl/atomic/atomic_xchg.h
R libclc/opencl/include/clc/opencl/atomic/atomic_xor.h
R libclc/opencl/include/clc/opencl/common/degrees.h
R libclc/opencl/include/clc/opencl/common/mix.h
R libclc/opencl/include/clc/opencl/common/mix.inc
R libclc/opencl/include/clc/opencl/common/radians.h
R libclc/opencl/include/clc/opencl/common/sign.h
R libclc/opencl/include/clc/opencl/common/smoothstep.h
R libclc/opencl/include/clc/opencl/common/smoothstep.inc
R libclc/opencl/include/clc/opencl/common/step.h
R libclc/opencl/include/clc/opencl/common/step.inc
R libclc/opencl/include/clc/opencl/explicit_fence/explicit_memory_fence.h
R libclc/opencl/include/clc/opencl/geometric/cross.h
R libclc/opencl/include/clc/opencl/geometric/distance.h
R libclc/opencl/include/clc/opencl/geometric/dot.h
R libclc/opencl/include/clc/opencl/geometric/fast_distance.h
R libclc/opencl/include/clc/opencl/geometric/fast_length.h
R libclc/opencl/include/clc/opencl/geometric/fast_normalize.h
R libclc/opencl/include/clc/opencl/geometric/length.h
R libclc/opencl/include/clc/opencl/geometric/normalize.h
R libclc/opencl/include/clc/opencl/image/image.h
R libclc/opencl/include/clc/opencl/image/image_defines.h
R libclc/opencl/include/clc/opencl/integer/abs.h
R libclc/opencl/include/clc/opencl/integer/abs.inc
R libclc/opencl/include/clc/opencl/integer/abs_diff.h
R libclc/opencl/include/clc/opencl/integer/abs_diff.inc
R libclc/opencl/include/clc/opencl/integer/add_sat.h
R libclc/opencl/include/clc/opencl/integer/bit_reverse.h
R libclc/opencl/include/clc/opencl/integer/bitfield_extract_signed.h
R libclc/opencl/include/clc/opencl/integer/bitfield_extract_unsigned.h
R libclc/opencl/include/clc/opencl/integer/bitfield_insert.h
R libclc/opencl/include/clc/opencl/integer/clz.h
R libclc/opencl/include/clc/opencl/integer/ctz.h
R libclc/opencl/include/clc/opencl/integer/hadd.h
R libclc/opencl/include/clc/opencl/integer/mad24.h
R libclc/opencl/include/clc/opencl/integer/mad_hi.h
R libclc/opencl/include/clc/opencl/integer/mad_sat.h
R libclc/opencl/include/clc/opencl/integer/mul24.h
R libclc/opencl/include/clc/opencl/integer/mul_hi.h
R libclc/opencl/include/clc/opencl/integer/popcount.h
R libclc/opencl/include/clc/opencl/integer/rhadd.h
R libclc/opencl/include/clc/opencl/integer/rotate.h
R libclc/opencl/include/clc/opencl/integer/sub_sat.h
R libclc/opencl/include/clc/opencl/integer/upsample.h
R libclc/opencl/include/clc/opencl/math/acos.h
R libclc/opencl/include/clc/opencl/math/acosh.h
R libclc/opencl/include/clc/opencl/math/acospi.h
R libclc/opencl/include/clc/opencl/math/asin.h
R libclc/opencl/include/clc/opencl/math/asinh.h
R libclc/opencl/include/clc/opencl/math/asinpi.h
R libclc/opencl/include/clc/opencl/math/atan.h
R libclc/opencl/include/clc/opencl/math/atan2.h
R libclc/opencl/include/clc/opencl/math/atan2pi.h
R libclc/opencl/include/clc/opencl/math/atanh.h
R libclc/opencl/include/clc/opencl/math/atanpi.h
R libclc/opencl/include/clc/opencl/math/cbrt.h
R libclc/opencl/include/clc/opencl/math/ceil.h
R libclc/opencl/include/clc/opencl/math/copysign.h
R libclc/opencl/include/clc/opencl/math/cos.h
R libclc/opencl/include/clc/opencl/math/cosh.h
R libclc/opencl/include/clc/opencl/math/cospi.h
R libclc/opencl/include/clc/opencl/math/erf.h
R libclc/opencl/include/clc/opencl/math/erfc.h
R libclc/opencl/include/clc/opencl/math/exp.h
R libclc/opencl/include/clc/opencl/math/exp10.h
R libclc/opencl/include/clc/opencl/math/exp2.h
R libclc/opencl/include/clc/opencl/math/expm1.h
R libclc/opencl/include/clc/opencl/math/fabs.h
R libclc/opencl/include/clc/opencl/math/fdim.h
R libclc/opencl/include/clc/opencl/math/floor.h
R libclc/opencl/include/clc/opencl/math/fma.h
R libclc/opencl/include/clc/opencl/math/fmax.h
R libclc/opencl/include/clc/opencl/math/fmin.h
R libclc/opencl/include/clc/opencl/math/fmod.h
R libclc/opencl/include/clc/opencl/math/fract.h
R libclc/opencl/include/clc/opencl/math/frexp.h
R libclc/opencl/include/clc/opencl/math/half_cos.h
R libclc/opencl/include/clc/opencl/math/half_divide.h
R libclc/opencl/include/clc/opencl/math/half_exp.h
R libclc/opencl/include/clc/opencl/math/half_exp10.h
R libclc/opencl/include/clc/opencl/math/half_exp2.h
R libclc/opencl/include/clc/opencl/math/half_log.h
R libclc/opencl/include/clc/opencl/math/half_log10.h
R libclc/opencl/include/clc/opencl/math/half_log2.h
R libclc/opencl/include/clc/opencl/math/half_powr.h
R libclc/opencl/include/clc/opencl/math/half_recip.h
R libclc/opencl/include/clc/opencl/math/half_rsqrt.h
R libclc/opencl/include/clc/opencl/math/half_sin.h
R libclc/opencl/include/clc/opencl/math/half_sqrt.h
R libclc/opencl/include/clc/opencl/math/half_tan.h
R libclc/opencl/include/clc/opencl/math/hypot.h
R libclc/opencl/include/clc/opencl/math/ilogb.h
R libclc/opencl/include/clc/opencl/math/ldexp.h
R libclc/opencl/include/clc/opencl/math/ldexp.inc
R libclc/opencl/include/clc/opencl/math/lgamma.h
R libclc/opencl/include/clc/opencl/math/lgamma_r.h
R libclc/opencl/include/clc/opencl/math/log.h
R libclc/opencl/include/clc/opencl/math/log10.h
R libclc/opencl/include/clc/opencl/math/log1p.h
R libclc/opencl/include/clc/opencl/math/log2.h
R libclc/opencl/include/clc/opencl/math/logb.h
R libclc/opencl/include/clc/opencl/math/mad.h
R libclc/opencl/include/clc/opencl/math/maxmag.h
R libclc/opencl/include/clc/opencl/math/minmag.h
R libclc/opencl/include/clc/opencl/math/modf.h
R libclc/opencl/include/clc/opencl/math/nan.h
R libclc/opencl/include/clc/opencl/math/nan.inc
R libclc/opencl/include/clc/opencl/math/native_cos.h
R libclc/opencl/include/clc/opencl/math/native_divide.h
R libclc/opencl/include/clc/opencl/math/native_exp.h
R libclc/opencl/include/clc/opencl/math/native_exp10.h
R libclc/opencl/include/clc/opencl/math/native_exp2.h
R libclc/opencl/include/clc/opencl/math/native_log.h
R libclc/opencl/include/clc/opencl/math/native_log10.h
R libclc/opencl/include/clc/opencl/math/native_log2.h
R libclc/opencl/include/clc/opencl/math/native_powr.h
R libclc/opencl/include/clc/opencl/math/native_recip.h
R libclc/opencl/include/clc/opencl/math/native_rsqrt.h
R libclc/opencl/include/clc/opencl/math/native_sin.h
R libclc/opencl/include/clc/opencl/math/native_sqrt.h
R libclc/opencl/include/clc/opencl/math/native_tan.h
R libclc/opencl/include/clc/opencl/math/nextafter.h
R libclc/opencl/include/clc/opencl/math/pow.h
R libclc/opencl/include/clc/opencl/math/pown.h
R libclc/opencl/include/clc/opencl/math/powr.h
R libclc/opencl/include/clc/opencl/math/remainder.h
R libclc/opencl/include/clc/opencl/math/remquo.h
R libclc/opencl/include/clc/opencl/math/rint.h
R libclc/opencl/include/clc/opencl/math/rootn.h
R libclc/opencl/include/clc/opencl/math/round.h
R libclc/opencl/include/clc/opencl/math/rsqrt.h
R libclc/opencl/include/clc/opencl/math/sin.h
R libclc/opencl/include/clc/opencl/math/sincos.h
R libclc/opencl/include/clc/opencl/math/sinh.h
R libclc/opencl/include/clc/opencl/math/sinpi.h
R libclc/opencl/include/clc/opencl/math/sqrt.h
R libclc/opencl/include/clc/opencl/math/tan.h
R libclc/opencl/include/clc/opencl/math/tanh.h
R libclc/opencl/include/clc/opencl/math/tanpi.h
R libclc/opencl/include/clc/opencl/math/tgamma.h
R libclc/opencl/include/clc/opencl/math/trunc.h
R libclc/opencl/include/clc/opencl/misc/shuffle.h
R libclc/opencl/include/clc/opencl/misc/shuffle2.h
R libclc/opencl/include/clc/opencl/relational/all.h
R libclc/opencl/include/clc/opencl/relational/any.h
R libclc/opencl/include/clc/opencl/relational/bitselect.h
R libclc/opencl/include/clc/opencl/relational/bitselect.inc
R libclc/opencl/include/clc/opencl/relational/isequal.h
R libclc/opencl/include/clc/opencl/relational/isfinite.h
R libclc/opencl/include/clc/opencl/relational/isgreater.h
R libclc/opencl/include/clc/opencl/relational/isgreaterequal.h
R libclc/opencl/include/clc/opencl/relational/isinf.h
R libclc/opencl/include/clc/opencl/relational/isless.h
R libclc/opencl/include/clc/opencl/relational/islessequal.h
R libclc/opencl/include/clc/opencl/relational/islessgreater.h
R libclc/opencl/include/clc/opencl/relational/isnan.h
R libclc/opencl/include/clc/opencl/relational/isnormal.h
R libclc/opencl/include/clc/opencl/relational/isnotequal.h
R libclc/opencl/include/clc/opencl/relational/isordered.h
R libclc/opencl/include/clc/opencl/relational/isunordered.h
R libclc/opencl/include/clc/opencl/relational/select.h
R libclc/opencl/include/clc/opencl/relational/signbit.h
R libclc/opencl/include/clc/opencl/shared/clamp.h
R libclc/opencl/include/clc/opencl/shared/clamp.inc
R libclc/opencl/include/clc/opencl/shared/max.h
R libclc/opencl/include/clc/opencl/shared/max.inc
R libclc/opencl/include/clc/opencl/shared/min.h
R libclc/opencl/include/clc/opencl/shared/min.inc
R libclc/opencl/include/clc/opencl/shared/vload.h
R libclc/opencl/include/clc/opencl/shared/vstore.h
R libclc/opencl/include/clc/opencl/synchronization/barrier.h
R libclc/opencl/include/clc/opencl/workitem/get_global_id.h
R libclc/opencl/include/clc/opencl/workitem/get_global_offset.h
R libclc/opencl/include/clc/opencl/workitem/get_global_size.h
R libclc/opencl/include/clc/opencl/workitem/get_group_id.h
R libclc/opencl/include/clc/opencl/workitem/get_local_id.h
R libclc/opencl/include/clc/opencl/workitem/get_local_linear_id.h
R libclc/opencl/include/clc/opencl/workitem/get_local_size.h
R libclc/opencl/include/clc/opencl/workitem/get_max_sub_group_size.h
R libclc/opencl/include/clc/opencl/workitem/get_num_groups.h
R libclc/opencl/include/clc/opencl/workitem/get_num_sub_groups.h
R libclc/opencl/include/clc/opencl/workitem/get_sub_group_id.h
R libclc/opencl/include/clc/opencl/workitem/get_sub_group_local_id.h
R libclc/opencl/include/clc/opencl/workitem/get_sub_group_size.h
R libclc/opencl/include/clc/opencl/workitem/get_work_dim.h
M libclc/opencl/lib/amdgcn-amdhsa/workitem/get_global_size.cl
M libclc/opencl/lib/amdgcn-amdhsa/workitem/get_local_size.cl
M libclc/opencl/lib/amdgcn-amdhsa/workitem/get_num_groups.cl
M libclc/opencl/lib/amdgcn/mem_fence/fence.cl
M libclc/opencl/lib/amdgcn/synchronization/barrier.cl
M libclc/opencl/lib/amdgcn/workitem/get_global_offset.cl
M libclc/opencl/lib/amdgcn/workitem/get_global_size.cl
M libclc/opencl/lib/amdgcn/workitem/get_group_id.cl
M libclc/opencl/lib/amdgcn/workitem/get_local_id.cl
M libclc/opencl/lib/amdgcn/workitem/get_local_size.cl
M libclc/opencl/lib/amdgcn/workitem/get_num_groups.cl
M libclc/opencl/lib/amdgcn/workitem/get_work_dim.cl
M libclc/opencl/lib/clspv/math/fma.cl
M libclc/opencl/lib/clspv/shared/vstore_half.cl
M libclc/opencl/lib/generic/async/async_work_group_copy.cl
M libclc/opencl/lib/generic/async/async_work_group_strided_copy.cl
M libclc/opencl/lib/generic/async/prefetch.cl
M libclc/opencl/lib/generic/async/wait_group_events.cl
M libclc/opencl/lib/generic/atomic/atom_add.cl
M libclc/opencl/lib/generic/atomic/atom_and.cl
M libclc/opencl/lib/generic/atomic/atom_cmpxchg.cl
M libclc/opencl/lib/generic/atomic/atom_dec.cl
M libclc/opencl/lib/generic/atomic/atom_inc.cl
M libclc/opencl/lib/generic/atomic/atom_max.cl
M libclc/opencl/lib/generic/atomic/atom_min.cl
M libclc/opencl/lib/generic/atomic/atom_or.cl
M libclc/opencl/lib/generic/atomic/atom_sub.cl
M libclc/opencl/lib/generic/atomic/atom_xchg.cl
M libclc/opencl/lib/generic/atomic/atom_xor.cl
M libclc/opencl/lib/generic/atomic/atomic_add.cl
M libclc/opencl/lib/generic/atomic/atomic_and.cl
M libclc/opencl/lib/generic/atomic/atomic_cmpxchg.cl
M libclc/opencl/lib/generic/atomic/atomic_compare_exchange_strong.cl
M libclc/opencl/lib/generic/atomic/atomic_compare_exchange_weak.cl
M libclc/opencl/lib/generic/atomic/atomic_dec.cl
M libclc/opencl/lib/generic/atomic/atomic_exchange.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_add.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_and.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_max.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_min.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_or.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_sub.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_xor.cl
M libclc/opencl/lib/generic/atomic/atomic_flag_clear.cl
M libclc/opencl/lib/generic/atomic/atomic_flag_test_and_set.cl
M libclc/opencl/lib/generic/atomic/atomic_inc.cl
M libclc/opencl/lib/generic/atomic/atomic_init.cl
M libclc/opencl/lib/generic/atomic/atomic_load.cl
M libclc/opencl/lib/generic/atomic/atomic_max.cl
M libclc/opencl/lib/generic/atomic/atomic_min.cl
M libclc/opencl/lib/generic/atomic/atomic_or.cl
M libclc/opencl/lib/generic/atomic/atomic_store.cl
M libclc/opencl/lib/generic/atomic/atomic_sub.cl
M libclc/opencl/lib/generic/atomic/atomic_xchg.cl
M libclc/opencl/lib/generic/atomic/atomic_xor.cl
M libclc/opencl/lib/generic/common/degrees.cl
M libclc/opencl/lib/generic/common/mix.cl
M libclc/opencl/lib/generic/common/radians.cl
M libclc/opencl/lib/generic/common/sign.cl
M libclc/opencl/lib/generic/common/smoothstep.cl
M libclc/opencl/lib/generic/common/step.cl
M libclc/opencl/lib/generic/geometric/cross.cl
M libclc/opencl/lib/generic/geometric/distance.cl
M libclc/opencl/lib/generic/geometric/dot.cl
M libclc/opencl/lib/generic/geometric/fast_distance.cl
M libclc/opencl/lib/generic/geometric/fast_length.cl
M libclc/opencl/lib/generic/geometric/fast_normalize.cl
M libclc/opencl/lib/generic/geometric/length.cl
M libclc/opencl/lib/generic/geometric/normalize.cl
M libclc/opencl/lib/generic/integer/abs.cl
M libclc/opencl/lib/generic/integer/abs_diff.cl
M libclc/opencl/lib/generic/integer/add_sat.cl
M libclc/opencl/lib/generic/integer/bit_reverse.cl
M libclc/opencl/lib/generic/integer/bitfield_extract_signed.cl
M libclc/opencl/lib/generic/integer/bitfield_extract_unsigned.cl
M libclc/opencl/lib/generic/integer/bitfield_insert.cl
M libclc/opencl/lib/generic/integer/clz.cl
M libclc/opencl/lib/generic/integer/ctz.cl
M libclc/opencl/lib/generic/integer/hadd.cl
M libclc/opencl/lib/generic/integer/mad24.cl
M libclc/opencl/lib/generic/integer/mad_hi.cl
M libclc/opencl/lib/generic/integer/mad_sat.cl
M libclc/opencl/lib/generic/integer/mul24.cl
M libclc/opencl/lib/generic/integer/mul_hi.cl
M libclc/opencl/lib/generic/integer/popcount.cl
M libclc/opencl/lib/generic/integer/rhadd.cl
M libclc/opencl/lib/generic/integer/rotate.cl
M libclc/opencl/lib/generic/integer/sub_sat.cl
M libclc/opencl/lib/generic/integer/upsample.cl
M libclc/opencl/lib/generic/math/acos.cl
M libclc/opencl/lib/generic/math/acosh.cl
M libclc/opencl/lib/generic/math/acospi.cl
M libclc/opencl/lib/generic/math/asin.cl
M libclc/opencl/lib/generic/math/asinh.cl
M libclc/opencl/lib/generic/math/asinpi.cl
M libclc/opencl/lib/generic/math/atan.cl
M libclc/opencl/lib/generic/math/atan2.cl
M libclc/opencl/lib/generic/math/atan2pi.cl
M libclc/opencl/lib/generic/math/atanh.cl
M libclc/opencl/lib/generic/math/atanpi.cl
M libclc/opencl/lib/generic/math/cbrt.cl
M libclc/opencl/lib/generic/math/ceil.cl
M libclc/opencl/lib/generic/math/copysign.cl
M libclc/opencl/lib/generic/math/cos.cl
M libclc/opencl/lib/generic/math/cosh.cl
M libclc/opencl/lib/generic/math/cospi.cl
M libclc/opencl/lib/generic/math/erf.cl
M libclc/opencl/lib/generic/math/erfc.cl
M libclc/opencl/lib/generic/math/exp.cl
M libclc/opencl/lib/generic/math/exp10.cl
M libclc/opencl/lib/generic/math/exp2.cl
M libclc/opencl/lib/generic/math/expm1.cl
M libclc/opencl/lib/generic/math/fabs.cl
M libclc/opencl/lib/generic/math/fdim.cl
M libclc/opencl/lib/generic/math/floor.cl
M libclc/opencl/lib/generic/math/fma.cl
M libclc/opencl/lib/generic/math/fmax.cl
M libclc/opencl/lib/generic/math/fmin.cl
M libclc/opencl/lib/generic/math/fmod.cl
M libclc/opencl/lib/generic/math/fract.cl
M libclc/opencl/lib/generic/math/frexp.cl
M libclc/opencl/lib/generic/math/half_cos.cl
M libclc/opencl/lib/generic/math/half_divide.cl
M libclc/opencl/lib/generic/math/half_exp.cl
M libclc/opencl/lib/generic/math/half_exp10.cl
M libclc/opencl/lib/generic/math/half_exp2.cl
M libclc/opencl/lib/generic/math/half_log.cl
M libclc/opencl/lib/generic/math/half_log10.cl
M libclc/opencl/lib/generic/math/half_log2.cl
M libclc/opencl/lib/generic/math/half_powr.cl
M libclc/opencl/lib/generic/math/half_recip.cl
M libclc/opencl/lib/generic/math/half_rsqrt.cl
M libclc/opencl/lib/generic/math/half_sin.cl
M libclc/opencl/lib/generic/math/half_sqrt.cl
M libclc/opencl/lib/generic/math/half_tan.cl
M libclc/opencl/lib/generic/math/hypot.cl
M libclc/opencl/lib/generic/math/ilogb.cl
M libclc/opencl/lib/generic/math/ldexp.cl
M libclc/opencl/lib/generic/math/lgamma.cl
M libclc/opencl/lib/generic/math/lgamma_r.cl
M libclc/opencl/lib/generic/math/log.cl
M libclc/opencl/lib/generic/math/log10.cl
M libclc/opencl/lib/generic/math/log1p.cl
M libclc/opencl/lib/generic/math/log2.cl
M libclc/opencl/lib/generic/math/logb.cl
M libclc/opencl/lib/generic/math/mad.cl
M libclc/opencl/lib/generic/math/maxmag.cl
M libclc/opencl/lib/generic/math/minmag.cl
M libclc/opencl/lib/generic/math/modf.cl
M libclc/opencl/lib/generic/math/native_cos.cl
M libclc/opencl/lib/generic/math/native_divide.cl
M libclc/opencl/lib/generic/math/native_exp.cl
M libclc/opencl/lib/generic/math/native_exp10.cl
M libclc/opencl/lib/generic/math/native_exp2.cl
M libclc/opencl/lib/generic/math/native_log.cl
M libclc/opencl/lib/generic/math/native_log10.cl
M libclc/opencl/lib/generic/math/native_log2.cl
M libclc/opencl/lib/generic/math/native_powr.cl
M libclc/opencl/lib/generic/math/native_recip.cl
M libclc/opencl/lib/generic/math/native_rsqrt.cl
M libclc/opencl/lib/generic/math/native_sin.cl
M libclc/opencl/lib/generic/math/native_sqrt.cl
M libclc/opencl/lib/generic/math/native_tan.cl
M libclc/opencl/lib/generic/math/nextafter.cl
M libclc/opencl/lib/generic/math/pow.cl
M libclc/opencl/lib/generic/math/pown.cl
M libclc/opencl/lib/generic/math/powr.cl
M libclc/opencl/lib/generic/math/remainder.cl
M libclc/opencl/lib/generic/math/remquo.cl
M libclc/opencl/lib/generic/math/rint.cl
M libclc/opencl/lib/generic/math/rootn.cl
M libclc/opencl/lib/generic/math/round.cl
M libclc/opencl/lib/generic/math/rsqrt.cl
M libclc/opencl/lib/generic/math/sin.cl
M libclc/opencl/lib/generic/math/sincos.cl
M libclc/opencl/lib/generic/math/sinh.cl
M libclc/opencl/lib/generic/math/sinpi.cl
M libclc/opencl/lib/generic/math/sqrt.cl
M libclc/opencl/lib/generic/math/tan.cl
M libclc/opencl/lib/generic/math/tanh.cl
M libclc/opencl/lib/generic/math/tanpi.cl
M libclc/opencl/lib/generic/math/tgamma.cl
M libclc/opencl/lib/generic/math/trunc.cl
M libclc/opencl/lib/generic/misc/shuffle.cl
M libclc/opencl/lib/generic/misc/shuffle2.cl
M libclc/opencl/lib/generic/relational/all.cl
M libclc/opencl/lib/generic/relational/any.cl
M libclc/opencl/lib/generic/relational/bitselect.cl
M libclc/opencl/lib/generic/relational/isequal.cl
M libclc/opencl/lib/generic/relational/isfinite.cl
M libclc/opencl/lib/generic/relational/isgreater.cl
M libclc/opencl/lib/generic/relational/isgreaterequal.cl
M libclc/opencl/lib/generic/relational/isinf.cl
M libclc/opencl/lib/generic/relational/isless.cl
M libclc/opencl/lib/generic/relational/islessequal.cl
M libclc/opencl/lib/generic/relational/islessgreater.cl
M libclc/opencl/lib/generic/relational/isnan.cl
M libclc/opencl/lib/generic/relational/isnormal.cl
M libclc/opencl/lib/generic/relational/isnotequal.cl
M libclc/opencl/lib/generic/relational/isordered.cl
M libclc/opencl/lib/generic/relational/isunordered.cl
M libclc/opencl/lib/generic/relational/select.cl
M libclc/opencl/lib/generic/relational/signbit.cl
M libclc/opencl/lib/generic/shared/clamp.cl
M libclc/opencl/lib/generic/shared/max.cl
M libclc/opencl/lib/generic/shared/min.cl
M libclc/opencl/lib/generic/shared/vload.cl
M libclc/opencl/lib/generic/shared/vstore.cl
M libclc/opencl/lib/generic/workitem/get_global_id.cl
M libclc/opencl/lib/generic/workitem/get_global_size.cl
M libclc/opencl/lib/ptx-nvidiacl/mem_fence/fence.cl
M libclc/opencl/lib/ptx-nvidiacl/synchronization/barrier.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_global_id.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_group_id.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_local_id.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_local_linear_id.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_local_size.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_max_sub_group_size.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_num_groups.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_num_sub_groups.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_sub_group_id.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_sub_group_local_id.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_sub_group_size.cl
M libclc/opencl/lib/r600/image/get_image_channel_data_type.cl
M libclc/opencl/lib/r600/image/get_image_channel_order.cl
M libclc/opencl/lib/r600/image/get_image_depth.cl
M libclc/opencl/lib/r600/image/get_image_dim.cl
M libclc/opencl/lib/r600/image/get_image_height.cl
M libclc/opencl/lib/r600/image/get_image_width.cl
M libclc/opencl/lib/r600/image/read_imagef.cl
M libclc/opencl/lib/r600/image/read_imagei.cl
M libclc/opencl/lib/r600/image/read_imageui.cl
M libclc/opencl/lib/r600/image/write_imagef.cl
M libclc/opencl/lib/r600/image/write_imagei.cl
M libclc/opencl/lib/r600/image/write_imageui.cl
M libclc/opencl/lib/r600/synchronization/barrier.cl
M libclc/opencl/lib/r600/workitem/get_global_offset.cl
M libclc/opencl/lib/r600/workitem/get_global_size.cl
M libclc/opencl/lib/r600/workitem/get_group_id.cl
M libclc/opencl/lib/r600/workitem/get_local_id.cl
M libclc/opencl/lib/r600/workitem/get_local_size.cl
M libclc/opencl/lib/r600/workitem/get_num_groups.cl
M libclc/opencl/lib/r600/workitem/get_work_dim.cl
M libclc/opencl/lib/spirv/math/fma.cl
Log Message:
-----------
[NFC][libclc] Delete OpenCL builtin declarations (#170803)
This is follow-up of comment
https://github.com/llvm/llvm-project/pull/168318#discussion_r2588117855
libclc OpenCL library is already compiled with flag
`-fdeclare-opencl-builtins -finclude-default-header`.
Commit: 898963b029619ee399393e49b547f3e80386d746
https://github.com/llvm/llvm-project/commit/898963b029619ee399393e49b547f3e80386d746
Author: Zhaoxuan Jiang <jiangzhaoxuan94 at gmail.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64LowerHomogeneousPrologEpilog.cpp
A llvm/test/CodeGen/AArch64/arm64-homogeneous-prolog-epilog-tail-call.mir
Log Message:
-----------
[AArch64] Fix missing register definitions in homogeneous epilog lowering (#171118)
The lowering for HOM_Epilog did not transfer explicit register defs from
the pseudo-instruction to the generated helper calls. MachineVerifier
would complain if a following tail call uses one of the restored CSRs.
This scenario occurs in code generated by the Swift compiler, where X20
is used to pass swiftself.
This patch fixes the issue by adding the missing defs back to the helper
call as implicit defs.
Commit: f2ddc7b0be83b1c9b247f0c3d5dcce189568e5e9
https://github.com/llvm/llvm-project/commit/f2ddc7b0be83b1c9b247f0c3d5dcce189568e5e9
Author: Mircea Trofin <mtrofin at google.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/test/Transforms/LowerTypeTests/import.ll
Log Message:
-----------
[NFC] Run UTC --check-globals on LowerTypeTests/import.ll (#170755)
Commit: 893479adcc03e8ce0ed5e0b550cae7d32724cd9a
https://github.com/llvm/llvm-project/commit/893479adcc03e8ce0ed5e0b550cae7d32724cd9a
Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/test/Transforms/LoopUnroll/RISCV/vector.ll
Log Message:
-----------
[RISCV] Precommit test for unrolling loops with vector operands
Commit: e5a1821f5b345d278a3fadee0a975dbd228f9a65
https://github.com/llvm/llvm-project/commit/e5a1821f5b345d278a3fadee0a975dbd228f9a65
Author: Wenju He <wenju.he at intel.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/include/clang/Basic/OpenCLExtensions.def
M clang/test/SemaOpenCL/extension-version.cl
Log Message:
-----------
[OpenCL] Add missing Intel extensions to OpenCLExtensions.def (#169875)
Add following extensions:
cl_intel_bfloat16_conversion
cl_intel_subgroup_buffer_prefetch
cl_intel_subgroup_local_block_io
cl_intel_subgroups_char
cl_intel_subgroups_long
This allows targets to expose these extensions via
getSupportedOpenCLOpts and ensures macros are defined when enabled.
Commit: a0b6638c85065b6a098a9a4b1bc468652e8cddc5
https://github.com/llvm/llvm-project/commit/a0b6638c85065b6a098a9a4b1bc468652e8cddc5
Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/test/Transforms/LoopUnroll/RISCV/vector.ll
Log Message:
-----------
[RISCV] Don't unroll vectorized loops with vector operands (#171089)
We have disabled unrolling for vectorized loops in #151525 but this
PR only checked the instruction type.
For some loops, there is no instruction with vector type but they
are still vector operations (just like the memset zero test in the
precommit test).
Here we check the operands as well to cover these cases.
Commit: ba3208e19f7dcaf8c8a95f47f03c46a5b3acf57d
https://github.com/llvm/llvm-project/commit/ba3208e19f7dcaf8c8a95f47f03c46a5b3acf57d
Author: Owen Anderson <resistor at mac.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
Log Message:
-----------
[LLVM/CodeGen] Use the correct address space when building structor tables. (#171247)
No in-tree target exercises this, but it's needed for CHERI, and I
believe its correctness is verifiable by inspection.
Co-authored-by: Alex Richardson <alexrichardson at google.com>
Commit: ce76c393ce749f854e51e1d32a1bb2e5e092e106
https://github.com/llvm/llvm-project/commit/ce76c393ce749f854e51e1d32a1bb2e5e092e106
Author: Mircea Trofin <mtrofin at google.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/test/CodeGen/AArch64/arm64-homogeneous-prolog-epilog-tail-call.mir
Log Message:
-----------
Fix test outputting to test dir (#171255)
The test introduced in #171118 has `llc` inadvertently producing an
output into the same dir as the test file itself. Most build bots don't
clean up the local git repo, which is assumed to not be written by build
+ test, and patch on top (for build performance reasons), which means
the produced output from the aforementioned PR is treated as a test from
here onwards, by all bots. Since it's missing `RUN` lines, we get
errors, for example
https://lab.llvm.org/buildbot/#/builders/108/builds/20674
This patch fixes the `llc` line and also removes the `.s`. This avoids
all bot maintainers go restart their bots. Then, the cleanup is removed
in #171256.
Commit: 93c7ad188042bfade0af38754ab87426a17e059c
https://github.com/llvm/llvm-project/commit/93c7ad188042bfade0af38754ab87426a17e059c
Author: Mircea Trofin <mtrofin at google.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
M llvm/test/Transforms/LowerTypeTests/import.ll
M llvm/utils/profcheck-xfail.txt
Log Message:
-----------
[LTT] Bias branch weights as "expected" when lowering type tests with conditional (#170752)
We expect the type test to succeed.
Commit: 0df8306479aba5a51971e9d358508ad8b65393ca
https://github.com/llvm/llvm-project/commit/0df8306479aba5a51971e9d358508ad8b65393ca
Author: Rajat Bajpai <rbajpai at nvidia.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/include/clang/Basic/BuiltinsNVPTX.td
M clang/include/clang/Basic/Cuda.h
M clang/include/clang/Basic/OffloadArch.h
M clang/lib/Basic/Cuda.cpp
M clang/lib/Basic/OffloadArch.cpp
M clang/lib/Basic/Targets/NVPTX.cpp
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
M clang/test/Misc/target-invalid-cpu-note/nvptx.c
Log Message:
-----------
[Clang][CUDA] Add support for SM_88, SM_110, and SM_110a architectures (#170258)
This patch adds support for new GPU architectures introduced in CUDA
13.0 in Clang:
- SM_88: Ampere architecture variant
- SM_110/SM_110a: Blackwell architecture variants
Additionally, this patch deprecates SM_101/SM_101a support for CUDA 13.0
and later versions. The SM_101 architecture is superseded by SM_110 and
is no longer supported by CUDA 13.0+ toolchain components.
Commit: 773a6a9cc8b659c3790d430699e8a8b93ec27317
https://github.com/llvm/llvm-project/commit/773a6a9cc8b659c3790d430699e8a8b93ec27317
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/lib/AST/ByteCode/Descriptor.cpp
M clang/lib/AST/ByteCode/Descriptor.h
M clang/lib/AST/ByteCode/Disasm.cpp
M clang/lib/AST/ByteCode/EvaluationResult.cpp
M clang/lib/AST/ByteCode/Interp.cpp
M clang/lib/AST/ByteCode/Interp.h
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/lib/AST/ByteCode/InterpBuiltinBitCast.cpp
M clang/lib/AST/ByteCode/InterpBuiltinBitCast.h
M clang/lib/AST/ByteCode/Pointer.cpp
M clang/lib/AST/ByteCode/Pointer.h
M clang/test/AST/ByteCode/const-eval.c
Log Message:
-----------
Revert "[clang][bytecode] Allocate InitMaps via Program/InterpState allocators (#170272)"
This reverts commit 8fe38c4c9c71c7a86ecdba476ee5bae4c02c0dfe.
This breaks the clang-armv7-2stage build bot:
https://lab.llvm.org/buildbot/#/builders/79/builds/2531
Commit: 9baf76a9f8603e8f5c40aec6a1b755c46d279e00
https://github.com/llvm/llvm-project/commit/9baf76a9f8603e8f5c40aec6a1b755c46d279e00
Author: Alexander Richardson <alexrichardson at google.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
M llvm/lib/MC/MCAsmStreamer.cpp
M llvm/test/CodeGen/Mips/llvm-ir/fptosi.ll
M llvm/test/CodeGen/Mips/llvm-ir/load.ll
M llvm/test/CodeGen/Mips/llvm-ir/store.ll
M llvm/test/CodeGen/Mips/micromips-pseudo-mtlohi-expand.ll
M llvm/test/CodeGen/Mips/setcc-se.ll
M llvm/test/MC/AMDGPU/buffer-op-swz-operand.s
M llvm/test/MC/Disassembler/ARM/sub-sp-imm-thumb2.txt
M llvm/test/MC/Lanai/conditional_inst.s
M llvm/test/MC/Lanai/memory.s
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/asm-show-inst.ll.expected
Log Message:
-----------
[MCAsmStreamer] Print register names in --show-inst mode
Passing the context to `Inst.dump_pretty()` allows printing symbolic
register names instead of `<MCOperand Reg:1234>` in the output.
I plan to use this in a future RVY test cases where we have register
class with the same name in assembly syntax, but different underlying
register enum values. Printing the name of the enum value makes it
easier to test that we selected the correct register.
Reviewed By: lenary
Pull Request: https://github.com/llvm/llvm-project/pull/171252
Commit: 5079260ec73506e57f8cd8baf903595efca34c73
https://github.com/llvm/llvm-project/commit/5079260ec73506e57f8cd8baf903595efca34c73
Author: Alexander Richardson <alexrichardson at google.com>
Date: 2025-12-08 (Mon, 08 Dec 2025)
Changed paths:
A llvm/test/TableGen/Common/RegClassByHwModeCommon.td
M llvm/test/TableGen/RegClassByHwMode.td
A llvm/test/TableGen/RegClassByHwModeErrors.td
M llvm/utils/TableGen/Common/CodeGenInstAlias.cpp
M llvm/utils/TableGen/Common/CodeGenRegisters.cpp
M llvm/utils/TableGen/Common/CodeGenRegisters.h
M llvm/utils/TableGen/Common/CodeGenTarget.cpp
M llvm/utils/TableGen/Common/CodeGenTarget.h
M llvm/utils/TableGen/CompressInstEmitter.cpp
Log Message:
-----------
[TableGen] Slightly improve error location for a fatal error
I was hitting this error and the error location was pointing to the
register class definition instead of the incorrect InstAlias. Pass in
the InstAlias location to make it easier to debug.
Happens with `def : InstAlias<"foo", (Inst X0)>`, where `Inst` takes
a RegClassByHwMode operand that is not necessarily satisfied by
register X0. Similar problem with the CompressPat backend.
Reviewed By: arsenm
Pull Request: https://github.com/llvm/llvm-project/pull/170790
Commit: 86c5539aa89ac61058e3ba4fc0ae578c2879bf9e
https://github.com/llvm/llvm-project/commit/86c5539aa89ac61058e3ba4fc0ae578c2879bf9e
Author: Luke Lau <luke at igalia.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/include/llvm/IR/Intrinsics.td
M llvm/include/llvm/IR/VPIntrinsics.def
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/lib/IR/IntrinsicInst.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.h
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/RISCV/vp-intrinsics.ll
R llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vp-splat.ll
M llvm/test/CodeGen/RISCV/rvv/sink-splat-operands.ll
R llvm/test/CodeGen/RISCV/rvv/vp-splat-mask.ll
R llvm/test/CodeGen/RISCV/rvv/vp-splat.ll
M llvm/unittests/IR/VPIntrinsicTest.cpp
Log Message:
-----------
[IR][RISCV] Remove @llvm.experimental.vp.splat (#171084)
@llvm.experimental.vp.splat was originally added in #98731 in order to
prevent VL toggles when optimizing a zero strided load to a scalar load
+ splat on RISC-V: #101329
However, the need to explicitly set the VL operand has been superseded
by RISCVVLOptimizer which can infer this automatically based on the
splat's users, and the use of the vp.splat intrinsic was removed in
#170543.
Now that there are no users of @llvm.experimental.vp.splat internal to
LLVM and it's unlikely we will need it in future due to
RISCVVLOptimizer, this patch removes the intrinsic. I couldn't find any
publicly available out-of-tree users of the intrinsic with a quick
search on GitHub.
Commit: ad29ee51f4269bb9838ab7428ccc59dbfbd232e4
https://github.com/llvm/llvm-project/commit/ad29ee51f4269bb9838ab7428ccc59dbfbd232e4
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Compiler.h
M clang/test/AST/ByteCode/cxx20.cpp
Log Message:
-----------
[clang][bytecode] Always initialize scope before conditional operator (#171133)
Otherwise, the scope might be (lazily) initialized in one of the arms of
the conditional operator, which means the will NOT be intialized in the
other arm.
Fixes https://github.com/llvm/llvm-project/issues/170981
Commit: d46d99cb4126b2f956a3b43e7d8ea95fdda6886b
https://github.com/llvm/llvm-project/commit/d46d99cb4126b2f956a3b43e7d8ea95fdda6886b
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Scalar/InferAlignment.cpp
M llvm/test/Transforms/InferAlignment/ptrtoint.ll
Log Message:
-----------
[InferAlign] Eliminate `and ptr, -align` pattern (#171147)
To complement the `and ptr, align-1 -> 0` pattern, also fold
`and ptr, -align` to `ptr`.
Proof: https://alive2.llvm.org/ce/z/TbeG6d
Commit: 2fa492726e774c050d6f21d57990c8bfbd7f1400
https://github.com/llvm/llvm-project/commit/2fa492726e774c050d6f21d57990c8bfbd7f1400
Author: Dominicentek <69892109+Dominicentek at users.noreply.github.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang-tools-extra/clangd/ClangdLSPServer.cpp
M clang-tools-extra/clangd/ClangdServer.h
M clang-tools-extra/clangd/GlobalCompilationDatabase.cpp
M clang-tools-extra/clangd/GlobalCompilationDatabase.h
M clang-tools-extra/clangd/tool/Check.cpp
M clang-tools-extra/clangd/tool/ClangdMain.cpp
M clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp
Log Message:
-----------
[clangd] Add a (currently hidden) --strong-workspace-mode flag (#155905)
Its current effect is to use the `rootUri` provided by the client as the
working directory for fallback commands.
Future effects will include other behaviors appropriate for cases
where clangd is being run in the context of editing a single
workspace, such as using the `compile_commands.json` file in the
workspace root for all opened files.
The flag is hidden until other behaviors are implemented and they
constitute a cohesive "mode" for users.
---------
Co-authored-by: Nathan Ridge <zeratul976 at hotmail.com>
Commit: d040667dbe616ecd1d3359e7460073873e195b2e
https://github.com/llvm/llvm-project/commit/d040667dbe616ecd1d3359e7460073873e195b2e
Author: Richard Thomson <legalize at xmission.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
A llvm/CMakePresets.json
Log Message:
-----------
Add CMake configure preset building blocks (#170019)
All of these presets are hidden and won't be shown with --list-presets.
They are intended to be used as building blocks to be combined through
inheritance to create customized user presets.
All of these presets begin with "llvm-" to avoid clashing with user
defined presets.
Commit: d5b3ba6596b7946b691a6e2db862d6e70f39cb75
https://github.com/llvm/llvm-project/commit/d5b3ba6596b7946b691a6e2db862d6e70f39cb75
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/test/CodeGen/AArch64/arm64-rounding.ll
M llvm/test/CodeGen/AArch64/floatdp_1source.ll
M llvm/test/CodeGen/ARM/arm32-rounding.ll
M llvm/test/CodeGen/Mips/mips64-f128.ll
M llvm/test/CodeGen/RISCV/double-zfa.ll
M llvm/test/CodeGen/RISCV/float-zfa.ll
M llvm/test/CodeGen/X86/rounding-ops.ll
Log Message:
-----------
[SDAG] Don't handle non-canonical libcalls in SDAG lowering (#171114)
SDAG currently tries to lower certain libcalls to ISD opcodes. However,
many of these are already canonicalized from libcalls to intrinsic in
the middle-end (and often already emitted as intrinsics in the
front-end).
I believe that SDAG should not be doing anything for such libcalls. This
PR just drops a single libcall to get consensus on the direction, as
these changes need a non-trivial amount of test updates.
A lot of the remaining libcalls *should* probably also be canonicalized
to intrinsics in the middle-end when annotated with `memory(none)`, but
that would require additional work in SimplifyLibCalls.
Commit: f1f3160fa710248c1d93a32c03a58dae475dc2f4
https://github.com/llvm/llvm-project/commit/f1f3160fa710248c1d93a32c03a58dae475dc2f4
Author: hstk30-hw <hanwei62 at huawei.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
A llvm/test/CodeGen/AArch64/apply-terminal-rule.mir
Log Message:
-----------
[RegAlloc][AArch64] Add test case for terminal rule. NFC (#170035)
Add testcase for terminal
rule(https://github.com/llvm/llvm-project/pull/169219)
Commit: 9dc3255cb9711279dfd8262ed3c027c4db9b4288
https://github.com/llvm/llvm-project/commit/9dc3255cb9711279dfd8262ed3c027c4db9b4288
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/include/clang/Basic/TargetInfo.h
M clang/lib/Basic/TargetInfo.cpp
M clang/lib/Basic/Targets/AArch64.cpp
M clang/lib/Basic/Targets/AArch64.h
M clang/lib/Basic/Targets/AMDGPU.cpp
M clang/lib/Basic/Targets/ARC.h
M clang/lib/Basic/Targets/ARM.cpp
M clang/lib/Basic/Targets/AVR.h
M clang/lib/Basic/Targets/BPF.h
M clang/lib/Basic/Targets/CSKY.h
M clang/lib/Basic/Targets/DirectX.h
M clang/lib/Basic/Targets/Hexagon.h
M clang/lib/Basic/Targets/Lanai.h
M clang/lib/Basic/Targets/LoongArch.h
M clang/lib/Basic/Targets/M68k.cpp
M clang/lib/Basic/Targets/MSP430.h
M clang/lib/Basic/Targets/Mips.h
M clang/lib/Basic/Targets/NVPTX.cpp
M clang/lib/Basic/Targets/OSTargets.h
M clang/lib/Basic/Targets/PPC.h
M clang/lib/Basic/Targets/RISCV.h
M clang/lib/Basic/Targets/SPIR.h
M clang/lib/Basic/Targets/Sparc.h
M clang/lib/Basic/Targets/SystemZ.h
M clang/lib/Basic/Targets/VE.h
M clang/lib/Basic/Targets/WebAssembly.h
M clang/lib/Basic/Targets/X86.h
M clang/lib/Basic/Targets/XCore.h
M clang/lib/Basic/Targets/Xtensa.h
M llvm/lib/Target/XCore/XCoreTargetMachine.cpp
M llvm/lib/TargetParser/TargetDataLayout.cpp
Log Message:
-----------
[Clang] Use DataLayout from TargetParser (#171135)
This switches clang to use the data layouts from TargetParser, instead
of maintaining its own copy of data layouts, which are required to match
the backend data layouts.
For now I've kept explicit calls to resetDataLayout(), just with the
argument implied by the triple and ABI. Ideally this would happen
automatically, but the way these classes are initialized currently
doesn't offer a great place to do this.
Previously resetDataLayout() also set the UserLabelPrefix. I've
separated this out, with a reasonable default so that most targets don't
need to worry about it.
I've kept the explicit data layouts for TCE and SPIR (without the V).
These seem to not correspond to real LLVM targets.
I've also fixed the XCore data layout in TargetParser, which was
incorrectly set to the same one as Xtensa. It was previously unused.
Commit: 0fbb45e7d6dcccf88248d6be5e4f167ddb3e3fa8
https://github.com/llvm/llvm-project/commit/0fbb45e7d6dcccf88248d6be5e4f167ddb3e3fa8
Author: Luke Lau <luke at igalia.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/predicated-costs.ll
Log Message:
-----------
[LV] Return getPredBlockCostDivisor in uint64_t
When the probability of a block is extremely low, HeaderFreq / BBFreq
may be larger than 32 bits. Previously this got truncated to uint32_t
which could cause division by zero exceptions on x86. Widen the return
type to uint64_t which should fit the entire range of BlockFrequency
values.
It's also worth noting that a frequency can never be zero according to
BlockFrequency.h, so we shouldn't need to worry about divide by zero in
getPredBlockCostDivisor itself.
Commit: 0bb0e26aaf25f0f34bd2c5f2bc90540639fda4b7
https://github.com/llvm/llvm-project/commit/0bb0e26aaf25f0f34bd2c5f2bc90540639fda4b7
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
A lldb/test/API/lang/cpp/inline-namespace-in-typename/Makefile
A lldb/test/API/lang/cpp/inline-namespace-in-typename/TestInlineNamespaceInTypename.py
A lldb/test/API/lang/cpp/inline-namespace-in-typename/main.cpp
Log Message:
-----------
[lldb][TypeSystemClang] Set SuppressInlineNamespace to 'All' (#171138)
We used to set it to `true` up until recently, see
[here](https://github.com/llvm/llvm-project/pull/170802). That's
incorrect because `SuppressInlineNamespace` is actually an enum. What
probably happened is that `SuppressInlineNamespace` used to be a boolean
but got turned into an enum. But the assignment in LLDB wasn't updated.
But because the bitfield is an `unsigned`, the compiler never
complained.
This meant that ever since `SuppressInlineNamespace` became an enum,
we've been setting it to `SuppressInlineNamespaceMode::Redundant`. Which
means we would only omit the inline namespace when displaying typenames
if Clang deemed it unambiguous. This is probably a rare situtation but
the attached test-case is one such scenario. Here, `target var t1`
followed by `target var t2` would print the inline namespace for `t2`,
because in that context, the type is otherwise ambiguous. But because
LLDB's context is lazily constructed, evaluating `t2` first would omit
the inline namespace, because `t1` isn't in the context yet to make it
ambiguous.
This patch sets the `SuppressInlineNamespace` to
`SuppressInlineNamespaceMode::All`, which is most likely what was
intended in the first place, and also removes the above-mentioned
non-determinism from our typename printing.
Commit: f53f6f725085996662055a669407f388c3ba2486
https://github.com/llvm/llvm-project/commit/f53f6f725085996662055a669407f388c3ba2486
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
A lldb/test/API/lang/cpp/template-alias/Makefile
A lldb/test/API/lang/cpp/template-alias/TestTemplateAlias.py
A lldb/test/API/lang/cpp/template-alias/main.cpp
Log Message:
-----------
[lldb][test] Add basic API tests for DW_TAG_template_alias (#170804)
Basic API tests to check how template aliases are rendered by LLDB
(using both `DW_TAG_template_alias` and `DW_TAG_typedef`, with and
without `-gsimple-template-names`).
Commit: 33e0301b072860259cfd0a5032e69f92d7e2784c
https://github.com/llvm/llvm-project/commit/33e0301b072860259cfd0a5032e69f92d7e2784c
Author: Jinjie Huang <huangjinjie at bytedance.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M bolt/include/bolt/Core/BinaryContext.h
M bolt/include/bolt/Core/BinaryFunction.h
M bolt/lib/Core/BinaryContext.cpp
M bolt/lib/Core/BinaryFunction.cpp
M bolt/lib/Rewrite/RewriteInstance.cpp
M bolt/test/AArch64/constant-island-alignment.s
A bolt/test/AArch64/validate-branch-target.s
A bolt/test/X86/validate-branch-target.s
Log Message:
-----------
[BOLT] Add validation for direct call/branch targets (#165406)
In some edge cases, a binary may contain direct `branch` or `call`
instructions whose target do not point to a valid executable
instruction. This can occur due to compiler bugs, hand-written assembly,
obfuscation technique, **or when control flow targets a data by
mistake.**
We also encountered the problems as described in this
[issue](https://github.com/llvm/llvm-project/issues/149382), where "data
in code" within OpenSSL's hand-written assembly was misidentified as
instructions(island identification seems fail due to the absence of a
corresponding data symbol). The problem occurred because a data sequence
was incorrectly disassembled as a "jb" instruction.
The point here is that the data should not be pointed to by any edge, so
this patch tries to address this by validating the destination address
for **direct branches and calls**. If the target instruction is
invalid(implies a corrupted control flow), this function will be set
ignored.
Although this approach appears helpful for addressing the 'data in code'
problem, its validation might be compromised if the data can be
disassembled as normal instruction.
Commit: 13012fe20816c7ce7a4eec62b325a131b6570593
https://github.com/llvm/llvm-project/commit/13012fe20816c7ce7a4eec62b325a131b6570593
Author: yingopq <115543042+yingopq at users.noreply.github.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/Mips/MipsISelLowering.cpp
M llvm/lib/Target/Mips/MipsISelLowering.h
M llvm/test/CodeGen/Mips/named-register-n32.ll
M llvm/test/CodeGen/Mips/named-register-n64.ll
M llvm/test/CodeGen/Mips/named-register-o32.ll
Log Message:
-----------
[Mips] Support "$sp" named register (#136821)
Fix #47656.
Commit: c590b35f0f0417d97129cdb71ee83f85be0c1dcc
https://github.com/llvm/llvm-project/commit/c590b35f0f0417d97129cdb71ee83f85be0c1dcc
Author: Vikram Hegde <Vikram.Hegde at amd.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/test/CodeGen/AMDGPU/llc-pipeline-npm.ll
Log Message:
-----------
[AMDGPU][NPM] Enable SIModeRegister and SIInsertHardclauses passes (#168831)
Passes already ported.
Commit: 60bb4500f25b21854152eaaaa1461c569ed01065
https://github.com/llvm/llvm-project/commit/60bb4500f25b21854152eaaaa1461c569ed01065
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
A llvm/test/CodeGen/X86/pr166058.ll
Log Message:
-----------
[X86] LowerAsmOperandForConstraint - ensure we treat L constraint immediates as signed constants (#171098)
getTargetConstant no longer tolerates sign-extended values that can't be
represented by the appropriate APInt bitwidth, which defaults to
unsigned behaviour.
Fixes #166058
Commit: 6061b909453991001a77bebe30982d754943e4e0
https://github.com/llvm/llvm-project/commit/6061b909453991001a77bebe30982d754943e4e0
Author: Mészáros Gergely <gergely.meszaros at intel.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M compiler-rt/test/lit.common.cfg.py
Log Message:
-----------
[compiler-rt] [test] refine target_page_size() in lit.common.cfg.py (NFC) (#170475)
Use mmap.PAGESIZE and fallback to os.sysconf if it is not available.
This allows to query the page size on Windows too, which has mmap but
not sysconf.
This is a pedantic change because Windows has a fixed page size of 4KiB.
I found this solution independently of #168857, and thought it might be
worth committing, since this is technically more correct.
[mmap.PAGESIZE implementation in
CPython](https://github.com/python/cpython/blob/88cd5d9850d2dc51abe43eb84198904d9870c26e/Modules/mmapmodule.c#L47)
Commit: 1ef0a56b55e69cfe8f43b32688c9ce33f31b1969
https://github.com/llvm/llvm-project/commit/1ef0a56b55e69cfe8f43b32688c9ce33f31b1969
Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV][NFC] Use foldTailWithEVL() (#171282)
Commit: 9f7fff19a1da1041f841c6ced80726ec3777b855
https://github.com/llvm/llvm-project/commit/9f7fff19a1da1041f841c6ced80726ec3777b855
Author: YunQiang Su <yunqiang at isrc.iscas.ac.cn>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/Mips/MipsISelLowering.cpp
M llvm/lib/Target/Mips/MipsISelLowering.h
M llvm/test/CodeGen/Mips/named-register-n32.ll
M llvm/test/CodeGen/Mips/named-register-n64.ll
M llvm/test/CodeGen/Mips/named-register-o32.ll
Log Message:
-----------
Revert "[Mips] Support "$sp" named register (#136821)"
This reverts commit 13012fe20816c7ce7a4eec62b325a131b6570593.
Commit: ca927e564dfb3230480e5874ce4484dd73b32d2c
https://github.com/llvm/llvm-project/commit/ca927e564dfb3230480e5874ce4484dd73b32d2c
Author: David Green <david.green at arm.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/ShrinkWrap.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.h
M llvm/lib/Target/AArch64/AArch64RedundantCondBranchPass.cpp
M llvm/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp
M llvm/test/CodeGen/AArch64/arm64-shrink-wrapping.ll
M llvm/test/CodeGen/AArch64/block-placement-optimize-branches.ll
M llvm/test/CodeGen/AArch64/lr-reserved-for-ra-live-in.ll
M llvm/test/CodeGen/AArch64/pr164181.ll
M llvm/test/CodeGen/AArch64/pr166870.ll
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll.generated.expected
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll.nogenerated.expected
Log Message:
-----------
[AArch64] Run optimizeTerminators earlier too. (#170907)
Running optimizeTerminators prior to other optimizations like branch
layout can lead to more folding and better codegen, but is not on its
own able to capture all cases. There is benefit to running it in both
places. This adds the existing code from #161508 into the
AArch64RedundantCopyElimination pass, which sounds like a sensible
enough place for it.
Commit: 085dc63e3a4490a67f5e1916d686fdba4504ea44
https://github.com/llvm/llvm-project/commit/085dc63e3a4490a67f5e1916d686fdba4504ea44
Author: Benjamin Maxwell <macdue at dueutil.tech>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/PrologEpilogInserter.cpp
M llvm/lib/CodeGen/RegisterClassInfo.cpp
M llvm/lib/MC/MCWin64EH.cpp
Log Message:
-----------
[llvm] Make use of `llvm::reverse_conditionally()` in a few places (NFCI) (#171150)
Commit: ccd76c550371ca47032732cef8dbef0df4aed013
https://github.com/llvm/llvm-project/commit/ccd76c550371ca47032732cef8dbef0df4aed013
Author: Victor Chernyakin <chernyakin.victor.j at outlook.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-control-flow.cpp
Log Message:
-----------
[clang-tidy][NFC] Remove regex hacks to match full lines in `readability-redundant-control-flow`'s tests (#171298)
I think I just missed this file when doing #162293. Also, I took the
opportunity to make the `CHECK-FIXES` lines a bit more nicely indented.
Commit: 4ef5cef58134d14ee0273f6ad24403b6c794b133
https://github.com/llvm/llvm-project/commit/4ef5cef58134d14ee0273f6ad24403b6c794b133
Author: Romaric Jodin <rjodin at google.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M libclc/opencl/lib/clspv/shared/vstore_half.cl
Log Message:
-----------
[libclc] fix clspv/shared/vstore_half.cl (#171105)
Update as_type functions
Commit: 88273a063c5a395f96e76d023aabb46b60ea223f
https://github.com/llvm/llvm-project/commit/88273a063c5a395f96e76d023aabb46b60ea223f
Author: David Green <david.green at arm.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/lib/Driver/ToolChains/Arch/AArch64.cpp
M clang/test/CodeGen/AArch64/fix-cortex-a53-835769.c
M clang/test/Driver/aarch64-fix-cortex-a53-835769.c
Log Message:
-----------
[AArch64] Disable cortex-a53-835769 when compiling for armv8.1-a or later (#170649)
Any code compiled with armv8.1-a or later cannot run on a cortex-a53, so
does not need to enable the 835769 errata fix. This patch disables the
+fix-cortex-a53-835769 feature when the architecture is later than
armv8.0-a. The command line flag -mfix_cortex_a53_835769 will still
enable it.
Commit: 3a81e0308845151df9c9e9462a032997d245d467
https://github.com/llvm/llvm-project/commit/3a81e0308845151df9c9e9462a032997d245d467
Author: Artur Bermond Torres <git-arturbtorres at proton.me>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/include/llvm/CodeGen/SDPatternMatch.h
M llvm/unittests/CodeGen/SelectionDAGPatternMatchTest.cpp
Log Message:
-----------
[DAG] SDPatternMatch - Fix m_Reassociatable mismatching (#170061)
Fixes #169645
The issue was caused by a for-loop improperly overwriting SDValue binds
when m_Reassociatable is given two or more patterns that (1) call
m_Value with an SDValue parameter and (2) differ by that parameter. This
fix comes with added unit tests relevant to SDValue bindings inside
m_Reassociatable patterns.
Essentially, the original implementation first tried to match every
combination of leaf node and pattern possible and stored that in a
matrix-like structure, and then did a recursive search on that matrix to
check if it's possible to pair every leaf with a pattern. The problem is
that m_Value has a side effect where it changes an SDValue, and the
creation of this matrix was corrupting these values. Below is an example
of this, following the order of execution in the original implementation
and using the case brought by issue #169645, where this behavior was
found. The example tries to match ((a >> 1) + (b >> 1) + (a & b & 1)),
using uppercase letters for the SDValue variables themselves and
lowercase for their values. The result is that the pattern matches the
same value for A and B, which was the behavior observed in the issue:
| Line | Leaf | Pattern | Match? | Effect |
|--------|--------|--------|--------|--------|
| 1 | a >> 1 | m_Srl(m_Value(A), m_One()) | Yes | A <- a |
| 2 | a >> 1 | m_Srl(m_Value(B), m_One()) | Yes | B <- a |
| 3 | a >> 1 | m_ReassociableAnd(m_Deferred(A), m_Deferred(B), m_One())
| No | -- |
| 4 | b >> 1 | m_Srl(m_Value(A), m_One()) | Yes | A <- b |
| 5 | b >> 1 | m_Srl(m_Value(B), m_One()) | Yes | B <- b |
| 6 | b >> 1 | m_ReassociableAnd(m_Deferred(A), m_Deferred(B), m_One())
| No | -- |
| 7 | a & b & 1 | m_Srl(m_Value(A), m_One()) | No | -- |
| 8 | a & b & 1 | m_Srl(m_Value(B), m_One()) | No | -- |
| 9 | a & b & 1 | m_ReassociableAnd(m_Deferred(A), m_Deferred(B),
m_One()) | a == b | -- |
To fix this, the function now matches the patterns during the recursive
search itself, instead of preparing the matrix beforehand. Although this
does fix the issue, it does mean that we're performing a best case of n
and worst case of n! matching attempts, instead of the fixed nˆ2 in the
original, where n is the number of patterns provided. Going back to the
table above, using this fix the lines 2, 3, 4, 6, 7, and 8 do not
happen, and so the only effects happening are A <- a and B <- b, which
then will result in line 9 matching correctly.
Commit: 41a8d9b324e318c030e14e0337609bdc0f4e15ec
https://github.com/llvm/llvm-project/commit/41a8d9b324e318c030e14e0337609bdc0f4e15ec
Author: Paschalis Mpeis <paschalis.mpeis at arm.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M bolt/test/AArch64/safe-icf.s
Log Message:
-----------
[BOLT] Fix typo in adrp/add sequence (#171315)
RHEL-8 fails to link against a non-existing symbol. ld.lld: error:
relocation R_AARCH64_ADD_ABS_LO12_NC cannot be used against symbol 'goo'
Commit: c15a3dd932b681df084436f164dcf5237002104a
https://github.com/llvm/llvm-project/commit/c15a3dd932b681df084436f164dcf5237002104a
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/test/CodeGen/SystemZ/vec-max-05.ll
M llvm/test/CodeGen/SystemZ/vec-min-05.ll
Log Message:
-----------
[SystemZ] Generate test checks (NFC)
Commit: a94f01a6f868bf8ead1de190d1461dd5ced81a2f
https://github.com/llvm/llvm-project/commit/a94f01a6f868bf8ead1de190d1461dd5ced81a2f
Author: Amr Hesham <amr96 at programmer.net>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprComplex.cpp
M clang/test/CIR/CodeGen/stmt-expr.cpp
Log Message:
-----------
[CIR] Implement StmtExpr for ComplexType (#171196)
Implement StmtExpr for ComplexType
Commit: 29611f4cbea0e867a3e55516f8dfdeca595be436
https://github.com/llvm/llvm-project/commit/29611f4cbea0e867a3e55516f8dfdeca595be436
Author: Guy David <guyda96 at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
A llvm/test/CodeGen/AArch64/ignore-signed-zero.ll
M llvm/test/CodeGen/AMDGPU/fcanonicalize-elimination.ll
M llvm/test/CodeGen/AMDGPU/swdev380865.ll
Log Message:
-----------
[DAGCombiner] Relax nsz constraint for FP optimizations (#165011)
Some floating-point optimization don't trigger because they can produce
incorrect results around signed zeros, and rely on the existence of the
nsz flag which commonly appears when fast-math is enabled.
However, this flag is not a hard requirement when all of the users of
the combined value are either guaranteed to overwrite the sign-bit or
simply ignore it (comparisons, etc.).
The optimizations affected:
- fadd x, +0.0 -> x
- fsub x, -0.0 -> x
- fsub +0.0, x -> fneg x
- fdiv(x, sqrt(x)) -> sqrt(x)
- frem lowering with power-of-2 divisors
Commit: ca12d1d8f1809ab69b5536ef619ab971e746c2e6
https://github.com/llvm/llvm-project/commit/ca12d1d8f1809ab69b5536ef619ab971e746c2e6
Author: Dominik Steenken <dost at de.ibm.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
A llvm/test/CodeGen/SystemZ/condfolding.ll
Log Message:
-----------
[SystemZ] Improve CCMask optimization (#171137)
This commit addresses a shortcoming in the implementation of
`combineBR_CCMASK` and `combineSELECT_CCMASK`. In cases where
`combineCCMask` was able to reduce the ccmask going into the select or
branch to either true (`ccvalid`) or false (`0`), a trivial instruction
would be emitted (i.e. either a select that would only ever select one
side, or a conditional branch with `true` or `false` as the branch
condition).
This led under certain circumstances to, e.g., `BRC` instructions being
emitted that triggered an assert in the AsmPrinter meant to exclude such
branch conditions.
For the select case, this commit introduces an early bailout that simply
returns the value that would "always" be selected. For the branch case,
the commit introduces an additional guard that prevents the DAGCombine
from taking effect, thereby preventing the illegal instruction from
being emitted.
Commit: ff59ecd8856f5501ba90850baa4b0f0d4d309bad
https://github.com/llvm/llvm-project/commit/ff59ecd8856f5501ba90850baa4b0f0d4d309bad
Author: Islam Imad <143586474+Islam-Imad at users.noreply.github.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
R clang-tools-extra/clang-tidy/google/AvoidCStyleCastsCheck.cpp
R clang-tools-extra/clang-tidy/google/AvoidCStyleCastsCheck.h
M clang-tools-extra/clang-tidy/google/CMakeLists.txt
M clang-tools-extra/clang-tidy/google/GoogleTidyModule.cpp
A clang-tools-extra/clang-tidy/modernize/AvoidCStyleCastCheck.cpp
A clang-tools-extra/clang-tidy/modernize/AvoidCStyleCastCheck.h
M clang-tools-extra/clang-tidy/modernize/CMakeLists.txt
M clang-tools-extra/clang-tidy/modernize/ModernizeTidyModule.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/google/readability-casting.rst
M clang-tools-extra/docs/clang-tidy/checks/list.rst
A clang-tools-extra/docs/clang-tidy/checks/modernize/avoid-c-style-cast.rst
R clang-tools-extra/test/clang-tidy/checkers/google/readability-casting.c
R clang-tools-extra/test/clang-tidy/checkers/google/readability-casting.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/avoid-c-style-cast.c
A clang-tools-extra/test/clang-tidy/checkers/modernize/avoid-c-style-cast.cpp
M clang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-LIFO.cpp
M clang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-begin-multiple-end-single.cpp
M clang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-begin-single-end-multiple.cpp
M clang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-mismatched-check-names.cpp
Log Message:
-----------
[clang-tidy] Rename `google-readability-casting` to `modernize-avoid-c-style-cast` (#171058)
Rename `google-readability-casting` to `modernize-avoid-c-style-cast`
The old name is kept as an alias for backward compatibility.
Fixes #170978
Commit: 2c3ca1025aaa0dc3156f190544adcd860e54cf2c
https://github.com/llvm/llvm-project/commit/2c3ca1025aaa0dc3156f190544adcd860e54cf2c
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/google/BUILD.gn
M llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/modernize/BUILD.gn
Log Message:
-----------
[gn build] Port ff59ecd8856f
Commit: 86755dd0bf559ec64fafc753142ca7e1d5c247f7
https://github.com/llvm/llvm-project/commit/86755dd0bf559ec64fafc753142ca7e1d5c247f7
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/lib/Analysis/MemoryBuiltins.cpp
M llvm/lib/Frontend/Offloading/OffloadWrapper.cpp
M llvm/lib/Target/AMDGPU/AMDGPUAsanInstrumentation.cpp
M llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
M llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp
M llvm/lib/Target/NVPTX/NVPTXCtorDtorLowering.cpp
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
M llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
Log Message:
-----------
[llvm] Use ConstantInt::getAllOnesValue()
Prefer getAllOnesValue() over get(-1). This is good practice to
avoid issues with sign extension for large types.
Commit: e60a3325a387be9bea9a8c558b7fa19e7475f9f1
https://github.com/llvm/llvm-project/commit/e60a3325a387be9bea9a8c558b7fa19e7475f9f1
Author: anoopkg6 <anoop.kumar6 at ibm.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
A compiler-rt/test/orc/TestCases/Linux/systemz/ehframe-default.cpp
A compiler-rt/test/orc/TestCases/Linux/systemz/ehframe-libunwind.cpp
A compiler-rt/test/orc/TestCases/Linux/systemz/lit.local.cfg.py
A compiler-rt/test/orc/TestCases/Linux/systemz/lljit-ehframe.cpp
A compiler-rt/test/orc/TestCases/Linux/systemz/lljit-initialize-deinitialize.ll
A compiler-rt/test/orc/TestCases/Linux/systemz/priority-static-initializer.S
A compiler-rt/test/orc/TestCases/Linux/systemz/trivial-atexit.S
A compiler-rt/test/orc/TestCases/Linux/systemz/trivial-cxa-atexit.S
A compiler-rt/test/orc/TestCases/Linux/systemz/trivial-static-initializer.S
M llvm/include/llvm/ExecutionEngine/JITLink/systemz.h
M llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp
Log Message:
-----------
[JITLink] Add orc-runtime support for SystemZ (#171062)
Add orc-runtime support and tests for SystemZ.
Co-authored-by: anoopkg6 <anoopkg6 at github.com>
Commit: 6b59a95506cd9b56c9c74f1f5c05059245fa110e
https://github.com/llvm/llvm-project/commit/6b59a95506cd9b56c9c74f1f5c05059245fa110e
Author: mitchell <mitchell.xu2 at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang-tools-extra/docs/clang-tidy/checks/google/readability-casting.rst
M clang-tools-extra/docs/clang-tidy/checks/modernize/avoid-c-style-cast.rst
Log Message:
-----------
[clang-tidy] Fix documentation in `modernize-avoid-c-style-cast` (#171413)
Related discussion:
https://github.com/llvm/llvm-project/pull/171058#discussion_r2602100364
Commit: 9bfb3be8c82cf5cb5c564d628f3ea7e2b31c792f
https://github.com/llvm/llvm-project/commit/9bfb3be8c82cf5cb5c564d628f3ea7e2b31c792f
Author: Joshua Rodriguez <josh.rodriguez at arm.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
M llvm/test/CodeGen/AArch64/arm64-int-neon.ll
M llvm/test/CodeGen/AArch64/arm64-vshift.ll
M llvm/test/CodeGen/AArch64/neon-addlv.ll
Log Message:
-----------
[AArch64][GlobalISel] Added support for neon left shift intrinsics on single-element vector types (#170827)
Previously, the left shift family of intrinsics would fail to lower for
<1 x i64> / <1 x i32> vector types, as IRTranslation lowers these to
scalars. Marking these intrinsics as only using fp operands ensures the
RegBankSelect phase places the vector on an fpr bank, instead of a gpr
bank.
Commit: 5446eb9275b77d4a768c594aef83257f334074fd
https://github.com/llvm/llvm-project/commit/5446eb9275b77d4a768c594aef83257f334074fd
Author: Stephen Tozer <stephen.tozer at sony.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M cross-project-tests/debuginfo-tests/dexter/dex/debugger/DAP.py
Log Message:
-----------
[Dexter] Adjust launch sequencing to align closer with DAP spec (#170523)
Following PR #169744 the DAP launch sequencing of Dexter was changed to
complete a launch request/response before performing configuration
steps. This matches LLDB's current behaviour, but is not compatible with
the DAP specification and causes issues interfacing with other
debuggers.
This patch tries to bridge the gap by using a sequencing that is mostly
DAP-compliant while still interfacing correctly with lldb-dap: we send a
launch request first, then perform all configuration steps and send
configurationDone, and then await the launch response. For lldb-dap, we
do not wait for the launch response and may send configuration requests
before it is received, but lldb-dap appears to handle this without
issue. For other debug adapters, the launch request will be ignored
until the configurationDone request is received and responded to, at
which point the launch request will be acted upon and responded to.
As an additional note, the initialized event should be sent after the
initialize response and before the launch request according to the spec,
but as LLDB currently sends it after the launch response Dexter has
avoided checking for it. Since the initialized event is now being sent
after the launch response by LLDB, we can start checking for it earlier
in the sequence as well (though technically the client should receive
the initialized event before it sends the launch request).
Commit: 358c4d85f99c6bfb1e3273dcda1c0229718cca7c
https://github.com/llvm/llvm-project/commit/358c4d85f99c6bfb1e3273dcda1c0229718cca7c
Author: Adrian Kuegel <akuegel at google.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/clang-tools-extra/clang-tidy/BUILD.bazel
Log Message:
-----------
[clang-tidy][Bazel] Add missing dependency after ff59ecd8856f550
Commit: edf80dce39b3c9f731423c1a1da4f99cbf768e7c
https://github.com/llvm/llvm-project/commit/edf80dce39b3c9f731423c1a1da4f99cbf768e7c
Author: Usha Gupta <usha.gupta at arm.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/LTO/LTOBackend.cpp
M llvm/lib/LTO/ThinLTOCodeGenerator.cpp
M llvm/lib/LTO/UpdateCompilerUsed.cpp
A llvm/test/LTO/AArch64/frem-scalable-veclib.ll
A llvm/test/LTO/AArch64/veclib-armpl-lto.ll
A llvm/test/LTO/AArch64/veclib-armpl-lto2.ll
Log Message:
-----------
[LTO][Veclib] Fix vector library handling with LTO (#170638)
Commit #167996 moved VecLib into TargetOptions and ensured clang
properly sets it. However, some LTO backend code paths were still
creating _TargetLibraryInfoImpl_ without passing the VecLib parameter
from `TargetMachine::Options`.
This PR completes the fix by ensuring that:
_LTOBackend.cpp, ThinLTOCodeGenerator.cpp, UpdateCompilerUsed.cpp_ all
pass `TM->Options.VecLib` when constructing _TargetLibraryInfoImpl_.
Without this fix, vector library information (e.g., -fveclib=ArmPL)
would not be properly recognized during LTO optimization and code
generation, potentially causing incorrect optimizations or linker errors
when vector library functions are referenced.
Commit: ca9f43fe158d929e78d0443d075f07947eb86fcd
https://github.com/llvm/llvm-project/commit/ca9f43fe158d929e78d0443d075f07947eb86fcd
Author: Fabrice de Gans <Steelskin at users.noreply.github.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/include/llvm/Transforms/Utils/SSAUpdaterBulk.h
M llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp
M llvm/unittests/Transforms/Utils/SSAUpdaterBulkTest.cpp
Log Message:
-----------
llvm: Export EliminateNewDuplicatePHINodes (#169564)
This is needed for tests, when building with `LLVM_BUILD_LLVM_DYLIB` so
LLVM can be built as a DLL on Windows.
This effort is tracked in #109483.
Commit: d8e651f37c8bf4b10a99568f7a5ab6c9b254715f
https://github.com/llvm/llvm-project/commit/d8e651f37c8bf4b10a99568f7a5ab6c9b254715f
Author: Lukacma <Marian.Lukac at arm.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/include/clang/Basic/arm_sve.td
A clang/test/CodeGen/AArch64/sme2p2-intrinsics/acle_sme2p2_fmul.c
M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
A llvm/test/CodeGen/AArch64/sme2p2-intrinsics-fmul.ll
Log Message:
-----------
[AArch64] Add intrinsics support for multi-vector FMUL (#163397)
This patch adds intrinsics for multi-vector FMUL instructions introduced
in armv9.6, based on
[this](https://github.com/ARM-software/acle/pull/412) ACLE proposal.
Depends on #163536
Intrinsics implemented:
//BFMUL:
svbfloat16x2_t svmul[_bf16_x2](svbfloat16x2_t zd, svbfloat16x2_t zm) __arm_streaming;
svbfloat16x2_t svmul[_single_bf16_x2](svbfloat16x2_t zd, svbfloat16_t zm) __arm_streaming;
svbfloat16x4_t svmul[_bf16_x4](svbfloat16x4_t zd, svbfloat16x4_t zm) __arm_streaming;
svbfloat16x4_t svmul[_single_bf16_x4](svbfloat16x4_t zd, svbfloat16_t zm) __arm_streaming;
Commit: 7675fc79c802cf7f6a95660f6ee59bf6cb62102f
https://github.com/llvm/llvm-project/commit/7675fc79c802cf7f6a95660f6ee59bf6cb62102f
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/include/clang/Driver/ToolChain.h
M clang/include/clang/Options/Options.td
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/Flang.cpp
M clang/lib/Driver/ToolChains/HIPAMD.cpp
M clang/lib/Driver/ToolChains/HIPSPV.cpp
A cmake/Modules/GetToolchainDirs.cmake
M flang-rt/CMakeLists.txt
M flang-rt/cmake/modules/AddFlangRT.cmake
M flang-rt/cmake/modules/AddFlangRTOffload.cmake
A flang-rt/cmake/modules/FlangRTIntrospection.cmake
R flang-rt/cmake/modules/GetToolchainDirs.cmake
M flang-rt/lib/CMakeLists.txt
M flang-rt/lib/runtime/CMakeLists.txt
A flang-rt/lib/runtime/__cuda_builtins.f90
A flang-rt/lib/runtime/__cuda_device.f90
A flang-rt/lib/runtime/__fortran_builtins.f90
A flang-rt/lib/runtime/__fortran_ieee_exceptions.f90
A flang-rt/lib/runtime/__fortran_type_info.f90
A flang-rt/lib/runtime/__ppc_intrinsics.f90
A flang-rt/lib/runtime/__ppc_types.f90
A flang-rt/lib/runtime/cooperative_groups.f90
A flang-rt/lib/runtime/cudadevice.f90
A flang-rt/lib/runtime/flang_debug.f90
A flang-rt/lib/runtime/ieee_arithmetic.f90
A flang-rt/lib/runtime/ieee_exceptions.f90
A flang-rt/lib/runtime/ieee_features.f90
A flang-rt/lib/runtime/iso_c_binding.f90
A flang-rt/lib/runtime/iso_fortran_env.f90
A flang-rt/lib/runtime/iso_fortran_env_impl.f90
A flang-rt/lib/runtime/mma.f90
M flang-rt/test/lit.site.cfg.py.in
M flang-rt/unittests/CMakeLists.txt
M flang/CMakeLists.txt
M flang/include/flang/Frontend/CompilerInvocation.h
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/lib/Semantics/semantics.cpp
R flang/module/.clang-format
R flang/module/__cuda_builtins.f90
R flang/module/__cuda_device.f90
R flang/module/__fortran_builtins.f90
R flang/module/__fortran_ieee_exceptions.f90
R flang/module/__fortran_type_info.f90
R flang/module/__ppc_intrinsics.f90
R flang/module/__ppc_types.f90
R flang/module/cooperative_groups.f90
R flang/module/cudadevice.f90
R flang/module/flang_debug.f90
R flang/module/ieee_arithmetic.f90
R flang/module/ieee_exceptions.f90
R flang/module/ieee_features.f90
R flang/module/iso_c_binding.f90
R flang/module/iso_fortran_env.f90
R flang/module/iso_fortran_env_impl.f90
R flang/module/mma.f90
M flang/test/CMakeLists.txt
M flang/test/Driver/Inputs/ieee_arithmetic.mod
M flang/test/Driver/Inputs/iso_fortran_env.mod
A flang/test/Driver/intrinsic-module-path.F90
R flang/test/Driver/intrinsic-module-path.f90
M flang/test/Driver/lto-fatlto.f90
M flang/test/Driver/pp-fixed-form.f90
M flang/test/Lower/HLFIR/type-bound-call-mismatch.f90
M flang/test/Lower/OpenMP/simd_aarch64.f90
M flang/test/Lower/OpenMP/target-enter-data-default-openmp52.f90
M flang/test/Preprocessing/fixed-free.f
M flang/test/Preprocessing/no-pp-if.f90
M flang/test/Semantics/bug163242.f90
M flang/test/Semantics/bug164303.f90
M flang/test/lit.cfg.py
M flang/test/lit.site.cfg.py.in
M flang/tools/CMakeLists.txt
M flang/tools/bbc/bbc.cpp
R flang/tools/f18/CMakeLists.txt
R flang/tools/f18/dump.cpp
M llvm/runtimes/CMakeLists.txt
M openmp/CMakeLists.txt
M openmp/README.rst
R openmp/cmake/modules/LibompCheckFortranFlag.cmake
M openmp/cmake/modules/LibompHandleFlags.cmake
M openmp/module/CMakeLists.txt
M openmp/runtime/CMakeLists.txt
M openmp/runtime/cmake/LibompExports.cmake
M openmp/runtime/test/lit.cfg
M openmp/runtime/test/lit.site.cfg.in
M runtimes/CMakeLists.txt
Log Message:
-----------
[Flang] Move builtin .mod generation into runtimes (Reapply #137828) (#169638)
Reapplication of #137828, changes:
* Workaround CMAKE_Fortran_PREPROCESS_SOURCE issue for CMake < 2.24: The
issue is that `try_compile` does not forward manually-defined compiler
flang variables to the test build environment; instead of just a
negative test result, it aborts the configuration step itself. To be
fair, manually defining these variables is deprecated since at least
CMake 3.6.
* Missing flang cmd line flags for CMake < 3.28 `-target=`, `-O2`, `-O3`
* It is now possible to set FLANG_RT_ENABLED_STATIC=OFF and
FLANG_RT_ENABLE_SHARED=OFF at the same and is the default for amdgpu and
nvptx targets. In this mode, only the .mod files are compiled --
necessary for module files in
lib/clang/22/finclude/flang/(nvptx64-nvidia-cuda|amdgpu-amd-amdhsa)/*.mod
to be available.
* For compiling omp_lib.mod for nvptx and amdgpu, the module build
functionality must be hoisted out if openmp's runtime/ directory which
is only included for host targets. This PR now requires #169909.
Move building the .mod files from openmp/flang to openmp/flang-rt using
a shared mechanism. Motivations to do so are:
1. Most modules are target-dependent and need to be re-compiled for each
target separately, which is something the LLVM_ENABLE_RUNTIMES system
already does. Prime example is `iso_c_binding.mod` which encodes the
target's ABI. Constants such as [`c_long_double` also have different
values](https://github.com/llvm/llvm-project/blob/d748c81218bee39dafb9cc0c00ed7831a3ed44c3/flang-rt/lib/runtime/iso_c_binding.f90#L77-L81).
Most other modules have `#ifdef`-enclosed code as well. For instance
this caused offload targets nvptx64-nvidia-cuda/amdgpu-amd-amdhsa to use
the modules files compiled for the host which may contrain uses of the
types REAL(10) or REAL(16) not available for nvptx/amdgpu.
#146876
#128015
#129742
#158790
3. CMake has support for Fortran that we should use. Among other things,
it automatically determines module dependencies so there is no need to
hardcode them in the CMakeLists.txt.
4. It allows using Fortran itself to implement Flang-RT. Currently, only
`iso_fortran_env_impl.f90` emits object files that are needed by Fortran
applications (#89403). The workaround of #95388 could be reverted (PR
#169525).
If using Flang for cross-compilation or target-offloading, flang-rt must
now be compiled for each target not only for the library, but also to
get the target-specific module files. For instance in a bootstrapping
runtime build, this can be done by adding:
`-DLLVM_RUNTIME_TARGETS=default;nvptx64-nvidia-cuda;amdgpu-amd-amdhsa`.
Some new dependencies come into play:
* openmp depends on flang-rt for building `lib_omp.mod` and
`lib_omp_kinds.mod`. Currently, if flang-rt is not found then the
modules are not built.
* check-flang depends on flang-rt: If not found, the majority of tests
are disabled. If not building in a bootstrpping build, the location of
the module files can be pointed to using
`-DFLANG_INTRINSIC_MODULES_DIR=<path>`, e.g. in a flang-standalone
build. Alternatively, the test needing any of the intrinsic modules
could be marked with `REQUIRES: flangrt-modules`.
* check-flang depends on openmp: Not a change; tests requiring
`lib_omp.mod` and `lib_omp_kinds.mod` those are already marked with
`openmp_runtime`.
As intrinsic are now specific to the target, their location is moved
from `include/flang` to `<resource-dir>/finclude/flang/<triple>`. The
mechnism to compute the location have been moved from flang-rt
(previously used to compute the location of `libflang_rt.*.a`) to common
locations in `cmake/GetToolchainDirs.cmake` and
`runtimes/CMakeLists.txt` so they can be used by both, openmp and
flang-rt. Potentially the mechnism could also be shared by other
libraries such as compiler-rt.
`finclude` was chosen because `gfortran` uses it as well and avoids
misuse such as `#include <flang/iso_c_binding.mod>`. The search location
is now determined by `ToolChain` in the driver, instead of by the
frontend. Another subdirectory `flang` avoids accidental inclusion of
gfortran-modules which due to compression would result in
user-unfriendly errors. Now the driver adds `-fintrinsic-module-path`
for that location to the frontend call (Just like gfortran does).
`-fintrinsic-module-path` had to be fixed for this because ironically it
was only added to `searchDirectories`, but not
`intrinsicModuleDirectories_`. Since the driver determines the location,
tests invoking `flang -fc1` and `bbc` must also be passed the location
by llvm-lit. This works like llvm-lit does for finding the include dirs
for Clang using `-print-file-name=...`.
Commit: 0768068ff086999b49badbf31259afcfa04783ed
https://github.com/llvm/llvm-project/commit/0768068ff086999b49badbf31259afcfa04783ed
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
M llvm/test/Transforms/LoopVectorize/interleave-and-scalarize-only.ll
Log Message:
-----------
[VPlan] Remove ExtractLastLane for plans with scalar VFs. (#171145)
ExtractLastLane is a no-op for scalar VFs. Update simplifyRecipe to
remove them. This also requires adjusting the code in VPlanUnroll.cpp to
split off handling of ExtractLastLane/ExtractPenultimateElement for
scalar VFs, which now needs to match ExtractLastPart.
PR: https://github.com/llvm/llvm-project/pull/171145
Commit: 182a59d59abf6f865bc2b0474f66cf1a62259159
https://github.com/llvm/llvm-project/commit/182a59d59abf6f865bc2b0474f66cf1a62259159
Author: Matthias Springer <me at m-sp.org>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/Bufferization/Pipelines/Passes.h
M mlir/lib/Dialect/Bufferization/Pipelines/BufferizationPipelines.cpp
Log Message:
-----------
[mlir][bufferization][NFC] Add convenience overload for `buildBufferDeallocationPipeline` (#171305)
Add an overload that does not take any options and uses the default
options instead.
Commit: 9c834286740aa4ee09d08006d2a7fc94231bb2ac
https://github.com/llvm/llvm-project/commit/9c834286740aa4ee09d08006d2a7fc94231bb2ac
Author: Baranov Victor <bar.victor.2002 at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang-tools-extra/clang-tidy/google/CMakeLists.txt
Log Message:
-----------
[clang-tidy] Add missing Modernize module to Google module link libs (#171427)
Fixes failures in
https://github.com/llvm/llvm-project/pull/171058#issuecomment-3631809933
Commit: 31c03c93b1b8dbfa398185fc698066c0480f40e7
https://github.com/llvm/llvm-project/commit/31c03c93b1b8dbfa398185fc698066c0480f40e7
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M lldb/docs/use/variable.rst
Log Message:
-----------
[lldb][docs] Fix plaintext marker in variables doc
Single backtick tries to make a reference to something
and if that fails, renders as plain text.
These 3 weren't finding a reference and so produced
a warning:
variable.rst:975: WARNING: 'any' reference target not found: max_children
Commit: 4e94198c3c3aeb15539bac73221b0f34a3370f23
https://github.com/llvm/llvm-project/commit/4e94198c3c3aeb15539bac73221b0f34a3370f23
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang-tools-extra/clangd/SemanticSelection.cpp
M clang-tools-extra/clangd/SemanticSelection.h
M clang-tools-extra/clangd/unittests/SemanticSelectionTests.cpp
Log Message:
-----------
[clangd] Remove the unused AST-based code folding Implementation. (#166189)
In clangd, we use the non-ast version one.
Commit: 870aa89fbc07956f8672740a5243d422dbf43b87
https://github.com/llvm/llvm-project/commit/870aa89fbc07956f8672740a5243d422dbf43b87
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M lldb/docs/use/tutorials/custom-frame-recognizers.md
M lldb/docs/use/tutorials/script-driven-debugging.md
M lldb/docs/use/tutorials/writing-custom-commands.md
Log Message:
-----------
[lldb][docs] Remove syntax hint from some output blocks
This tries to parse the block as that language but in these
cases fails because they aren't purely that language. This
falls back to a permissive mode which is fine, but highlights
the invalid tokens like errors which isn't great.
Instead don't try to highlight these blocks. This fixes 4
warnings seen in the docs build:
lldb/docs/use/tutorials/custom-frame-recognizers.md:43: WARNING: Lexing literal_block <...> as "c++" resulted in an error at token: '#'. Retrying in relaxed mode.
lldb/docs/use/tutorials/script-driven-debugging.md:175: WARNING: Lexing literal_block <...> as "c++" resulted in an error at token: '#'. Retrying in relaxed mode.
lldb/docs/use/tutorials/script-driven-debugging.md:426: WARNING: Lexing literal_block <...> as "c++" resulted in an error at token: '#'. Retrying in relaxed mode.
lldb/docs/use/tutorials/writing-custom-commands.md:416: WARNING: Lexing literal_block <...> as "python3" resulted in an error at token: '$'. Retrying in relaxed mode.
Commit: 95bd87848d7a62cd52ed73b198633ce776c64b95
https://github.com/llvm/llvm-project/commit/95bd87848d7a62cd52ed73b198633ce776c64b95
Author: Cullen Rhodes <cullen.rhodes at arm.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
A llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/bf16-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/complxnum-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/fp16fml-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/fptoint-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/i8mm-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/Inputs/neon-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/N1-neon-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-bf16-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-complxnum-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-fp16fml-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-fptoint-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-i8mm-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-neon-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-bf16-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-complxnum-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-fp16fml-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-fptoint-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-i8mm-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-neon-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-bf16-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-complxnum-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-fp16fml-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-i8mm-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-neon-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-bf16-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-complxnum-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-fp16fml-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-fptoint-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-i8mm-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-neon-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-bf16-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-complxnum-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-fp16fml-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-fptoint-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-i8mm-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-neon-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-bf16-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-complxnum-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-fp16fml-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-fptoint-instructions.s
A llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-i8mm-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-neon-instructions.s
Log Message:
-----------
[llvm-mca][AArch64] Merge Neoverse NEON tests (NFC) (#170881)
Follow-on from #170324 to also refactor the NEON tests to reuse the
input assembly across all Neoverse cores.
The approach is as follows:
- Inputs for Neoverse N1/N2/N3 NEON tests are already identical, so
first combine those.
- Inputs for V2/V3/V3AE NEON tests are also already identical, but
differ from N-cores, so combine those separately.
- Most significantly, input for V1 differs from all other cores
primarily because of 24f0901 (#128892).
- Split out features that are not supported across all cores.
- Split out FEAT_I8MM, FEAT_FHM, FEAT_FCMA. N1 doesn't have this
feature but all other Neoverse cores do. Also adds coverage for
N2/N3 since they were missing tests.
- Split out FEAT_BF16. V1 doesn't have this feature but all other
Neoverse cores do. Also adds coverage for N1/N2/N3 since they were
missing tests.
- Split out FEAT_FRINTTS. V1/N1 don't have this feature but all other
Neoverse cores do. Also adds coverage for N2/N3 since they were
missing tests.
- Bring Neoverse V2/V3/V3AE and N1/N2/N3 neon tests inline. Comparing
N[1-3] against V[2-3] the only change the N cores have that V[2-3]
dont is:
```
< st4 { v0.d, v1.d, v2.d, v3.d }[1], [x0], x5
---
> st4 { v0.b, v1.b, v2.b, v3.b }[9], [x0], x5
```
So we take it for all cores. The rest of the diff is
instructions in V[2-3] that arent in N cores, so we also take them.
All Neoverse cores can optionally support the Cryptographic Extension.
The related features (AES, ...) are enabled by default for V1/N1 but not
the other cores, so need to be explicitly enabled via -mattr.
- Finally bring Neoverse V1 inline with V2/V3/V3AE/N1/N2/N3
- loads/stores are blended
- duplicates with different spaces like `shll v0.2d, v0.2s, #32` are
removed
- the rest of the diff is instructions in V1 that are not tested in the
other cores, so we add them for the other cores
Commit: 2cb8e526f73635ca562221c93ff9f237919049b1
https://github.com/llvm/llvm-project/commit/2cb8e526f73635ca562221c93ff9f237919049b1
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M lldb/docs/resources/contributing.rst
Log Message:
-----------
[lldb][docs] Fix plain text markers in Contributing
RST tries to resolve things in single backticks to a reference,
which is not the intention here. Double backticks indicates
plain text formatting.
Fixes warnings in the docs build:
contributing.rst:92: WARNING: 'any' reference target not found: A1
contributing.rst:92: WARNING: 'any' reference target not found: B1
contributing.rst:92: WARNING: 'any' reference target not found: B2
contributing.rst:92: WARNING: 'any' reference target not found: A2
contributing.rst:95: WARNING: 'any' reference target not found: A1->B1
contributing.rst:95: WARNING: 'any' reference target not found: B2->C2
contributing.rst:95: WARNING: 'any' reference target not found: C3->A3
contributing.rst:100: WARNING: 'any' reference target not found: LLDB_ACCEPTABLE_PLUGIN_DEPENDENCIES
contributing.rst:100: WARNING: 'any' reference target not found: LLDB_TOLERATED_PLUGIN_DEPENDENCIES
Commit: afb3852c8b089221dfc67f7b4f0cc4ec20d57043
https://github.com/llvm/llvm-project/commit/afb3852c8b089221dfc67f7b4f0cc4ec20d57043
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M lldb/docs/use/variable.rst
Log Message:
-----------
[lldb][docs] Fix title formatting in Variable document
Commit: b1ef2db4c681680d969c0e7d280b0e469ba877a9
https://github.com/llvm/llvm-project/commit/b1ef2db4c681680d969c0e7d280b0e469ba877a9
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M lldb/docs/use/tutorials/creating-custom-breakpoints.md
M lldb/docs/use/tutorials/implementing-standalone-scripts.md
M lldb/docs/use/tutorials/script-driven-debugging.md
M lldb/docs/use/tutorials/writing-custom-commands.md
Log Message:
-----------
[lldb][docs] Fix header level warnings in a few documents
All these are using H1 for the main heading but H3 for the
rest, Sphinx warns about this:
WARNING: Non-consecutive header level increase; H1 to H3 [myst.header]
Commit: bf9344099c63549b2f19f8ede29f883669b0baca
https://github.com/llvm/llvm-project/commit/bf9344099c63549b2f19f8ede29f883669b0baca
Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
M llvm/test/CodeGen/AMDGPU/lds-dma-waits.ll
Log Message:
-----------
[AMDGPU][SIInsertWaitCnts] Use RegUnits-based tracking (#162077)
The pass was already "reinventing" the concept just to deal with 16 bit
registers. Clean up the entire tracking logic to only use register
units.
There are no test changes because functionality didn't change, except:
- We can now track more LDS DMA IDs if we need it (up to `1 << 16`)
- The debug prints also changed a bit because we now talk in terms of
register units.
This also changes the tracking to use a DenseMap instead of a massive
fixed size table. This trades a bit of access speed for a smaller memory
footprint. Allocating and memsetting a huge table to zero caused a
non-negligible performance impact (I've observed up to 50% of the time
in the pass spent in the `memcpy` built-in on a big test file).
I also think we don't access these often enough to really justify using
a vector. We do a few accesses per instruction, but not much more. In a
huge 120MB LL file, I can barely see the trace of the DenseMap accesses.
Commit: 1cbed4fb94a0419934694824927d8e2cfa071928
https://github.com/llvm/llvm-project/commit/1cbed4fb94a0419934694824927d8e2cfa071928
Author: Mirko Brkušanin <Mirko.Brkusanin at amd.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/VOP3PInstructions.td
Log Message:
-----------
[NFC][AMDGPU] Remove unused TableGen generated enum (#171170)
This GenericEnum was just adding separate values for VOP3P_Pseudo
opcodes in the same namespace as existing opcodes that did not match.
They were defined in AMDGPUGenSearchableTables.inc by tablegen emitter
but were guarded out by #ifdef. Because of that, they were never
included in the code, so the compiler never reported the naming
conflict and the bug never had a chance to surface.
Commit: 719d079382931edf366c578b39e26a4480121e51
https://github.com/llvm/llvm-project/commit/719d079382931edf366c578b39e26a4480121e51
Author: Luke Hutton <luke.hutton at arm.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/Tosa/IR/TosaComplianceData.h.inc
M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
M mlir/test/Dialect/Tosa/availability.mlir
M mlir/test/Dialect/Tosa/invalid_extension.mlir
M mlir/test/Dialect/Tosa/tosa-validation-version-1p1-valid.mlir
Log Message:
-----------
[mlir][tosa] Remove EXT_MXFP support for cast (#167301)
This was removed in the specification by:
https://github.com/arm/tosa-specification/pull/11
Commit: 1b82c16fa8e017ff4de4f96c31af682e5a6ea649
https://github.com/llvm/llvm-project/commit/1b82c16fa8e017ff4de4f96c31af682e5a6ea649
Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Sema/SemaARM.h
M clang/include/clang/Sema/SemaRISCV.h
M clang/lib/CodeGen/Targets/AArch64.cpp
M clang/lib/Sema/SemaARM.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaRISCV.cpp
M clang/test/AST/attr-target-version.c
M clang/test/CodeGen/AArch64/fmv-duplicate-mangled-name.c
A clang/test/CodeGen/AArch64/fmv-explicit-priority.c
M clang/test/Sema/attr-target-clones-aarch64.c
M clang/test/Sema/attr-target-version.c
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/TargetParser/AArch64FeatPriorities.inc
M llvm/include/llvm/TargetParser/AArch64TargetParser.h
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Target/AArch64/AArch64FMV.td
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
M llvm/lib/TargetParser/AArch64TargetParser.cpp
M llvm/lib/Transforms/IPO/GlobalOpt.cpp
M llvm/test/Transforms/GlobalOpt/resolve-fmv-ifunc.ll
M llvm/utils/TableGen/Basic/ARMTargetDefEmitter.cpp
Log Message:
-----------
[FMV][AArch64] Allow user to override version priority. (#150267)
Implements https://github.com/ARM-software/acle/pull/404
This allows the user to specify "featA+featB;priority=[1-255]" where
priority=255 means highest priority. If the explicit priority string is
omitted then the priority of "featA+featB" is implied, which is lower
than priority=1.
Internally this gets expanded using special FMV features P0 ... P7 which
can encode up to 256-1 priority levels (excluding all zeros). Those do
not have corresponding detection bit at pos FEAT_#enum so I made this
field optional in FMVInfo. Also they don't affect the codegen or name
mangling of versioned functions.
Commit: 27660022743c560d266bb9c0c83454f663a2d7ad
https://github.com/llvm/llvm-project/commit/27660022743c560d266bb9c0c83454f663a2d7ad
Author: Lukacma <Marian.Lukac at arm.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
A llvm/test/CodeGen/AArch64/arm64-cvt-simd-round-rint-strictfp.ll
A llvm/test/CodeGen/AArch64/arm64-cvt-simd-round-rint.ll
Log Message:
-----------
[AArch64]SIMD fpcvt codegen for rounding nodes (#165546)
This is followup patch to
https://github.com/llvm/llvm-project/pull/157680, which allows simd
fpcvt instructions to be generated from l/llround and l/llrint nodes.
Commit: 4572f4f5b197b184fbae8feeb62734719139be19
https://github.com/llvm/llvm-project/commit/4572f4f5b197b184fbae8feeb62734719139be19
Author: pvanhout <pierre.vanhoutryve at amd.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
M llvm/test/CodeGen/AMDGPU/lds-dma-waits.ll
Log Message:
-----------
Revert "[AMDGPU][SIInsertWaitCnts] Use RegUnits-based tracking (#162077)"
Fails on https://lab.llvm.org/buildbot/#/builders/123/builds/31922
This reverts commit bf9344099c63549b2f19f8ede29f883669b0baca.
Commit: f90fe01f8580fa79979703d435d354c061aed503
https://github.com/llvm/llvm-project/commit/f90fe01f8580fa79979703d435d354c061aed503
Author: Mikael Holmen <mikael.holmen at ericsson.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
Log Message:
-----------
[OpenMP] Fix -Wparentheses warning [NFC]
Without this gcc warned
../lib/Frontend/OpenMP/OMPIRBuilder.cpp:5082:45: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
Commit: 7f6c907e80d3ef23267ab0c4541791b6efd51b86
https://github.com/llvm/llvm-project/commit/7f6c907e80d3ef23267ab0c4541791b6efd51b86
Author: Mikael Holmen <mikael.holmen at ericsson.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M mlir/lib/Dialect/SCF/IR/SCF.cpp
Log Message:
-----------
[mlir] Fix -Wparentheses warning [NFC]
Without this gcc warned
../../mlir/lib/Dialect/SCF/IR/SCF.cpp:3748:70: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
Commit: e3cf462d4494694a0077512ceb1426e0df9cb4f4
https://github.com/llvm/llvm-project/commit/e3cf462d4494694a0077512ceb1426e0df9cb4f4
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for llvm-else-after-return in LinalgTransformOps.cpp (NFC)
Commit: 257417eb9554a370fcec7c89b78db08a41be8905
https://github.com/llvm/llvm-project/commit/257417eb9554a370fcec7c89b78db08a41be8905
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M mlir/tools/mlir-irdl-to-cpp/mlir-irdl-to-cpp.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for readability-container-size-empty in mlir-irdl-to-cpp.cpp (NFC)
Commit: 95e6edc4f7bce7cf9506997f649e798ea445b82c
https://github.com/llvm/llvm-project/commit/95e6edc4f7bce7cf9506997f649e798ea445b82c
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M mlir/lib/Dialect/NVGPU/TransformOps/NVGPUTransformOps.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for performance-unnecessary-copy-initialization in NVGPUTransformOps.cpp (NFC)
Commit: d478baa238ddb0ef139b3d1be05336e6a954370b
https://github.com/llvm/llvm-project/commit/d478baa238ddb0ef139b3d1be05336e6a954370b
Author: Fabrice de Gans <Steelskin at users.noreply.github.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/include/llvm-c/Core.h
M llvm/include/llvm/CAS/ActionCache.h
M llvm/include/llvm/CAS/BuiltinUnifiedCASDatabases.h
M llvm/include/llvm/CAS/ObjectStore.h
M llvm/include/llvm/IR/RuntimeLibcalls.h
M llvm/include/llvm/SandboxIR/Instruction.h
M llvm/lib/Transforms/Vectorize/VPlan.h
Log Message:
-----------
Add more missing `LLVM_ABI` annotations (#168765)
This patch updates various LLVM headers to properly add the `LLVM_ABI`
and `LLVM_ABI_FOR_TEST` annotations ot build LLVM as a DLL on Windows.
This effort is tracked in #109483.
Commit: fe68fb62eabf65995a2abe05c9710fce22b14620
https://github.com/llvm/llvm-project/commit/fe68fb62eabf65995a2abe05c9710fce22b14620
Author: David Green <david.green at arm.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/atomic-ops.ll
Log Message:
-----------
[AArch64] Make the list of LSE supported operations explicit (#171126)
Similar to #167760 this makes the list of LSE atomics explicit in case
new operations are added in the future. UIncWrap, UDecWrap, USubCond and
USubSat are excluded.
Fixes #170450
Commit: 734ea9a4052447414228570e4a83dad317367609
https://github.com/llvm/llvm-project/commit/734ea9a4052447414228570e4a83dad317367609
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M mlir/lib/Target/LLVMIR/Dialect/GPU/SelectObjectAttr.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for llvm-qualified-auto in SelectObjectAttr.cpp (NFC)
Commit: 2f502f37ae825aba9c5b605d7ad8bd9698cbb578
https://github.com/llvm/llvm-project/commit/2f502f37ae825aba9c5b605d7ad8bd9698cbb578
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp
Log Message:
-----------
[Hexagon] Remove unnecessarily complicated helpers (NFC)
All the constant construction APIs already have native splat
support. They can be directly used with a vector. It's not
necessary to first create a scalar constant and then splat it
to the element count.
Commit: bf41fd7558403c2720866db54fe01e28f5662674
https://github.com/llvm/llvm-project/commit/bf41fd7558403c2720866db54fe01e28f5662674
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/Hexagon/HexagonGenWideningVecInstr.cpp
Log Message:
-----------
[Hexagon] Avoid unnecessary by reference passing (NFC)
SplatVal is not modified in these functions, so pass it by value.
This was probably a copy&paste mistake from checkConstantVector(),
which does modify SplatVal.
Commit: a6fa720e72c8c514e97b7cf1fd1043fff52746ac
https://github.com/llvm/llvm-project/commit/a6fa720e72c8c514e97b7cf1fd1043fff52746ac
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/Hexagon/HexagonGenWideningVecInstr.cpp
Log Message:
-----------
[Hexagon] Simplify creation of splat value (NFC)
ConstantInt::get() already knows how to create splats, no need to
do it manually.
Commit: 45267ece8fabc9eda598af47b91418fec17d5204
https://github.com/llvm/llvm-project/commit/45267ece8fabc9eda598af47b91418fec17d5204
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/X86/X86ISelLoweringCall.cpp
Log Message:
-----------
[X86] Use getSigned() for segment offset
The offset here is a signed quantity.
Commit: bd8c06387f1ca109c213967a7e5dad3cfb7537a3
https://github.com/llvm/llvm-project/commit/bd8c06387f1ca109c213967a7e5dad3cfb7537a3
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/SjLjEHPrepare.cpp
Log Message:
-----------
[SjLjEHPrepare] Use getSigned() for call site number
This may be -1.
Commit: 53ce8502c6cfb7058c89f9e38f75934cab765eea
https://github.com/llvm/llvm-project/commit/53ce8502c6cfb7058c89f9e38f75934cab765eea
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
Log Message:
-----------
[Bitcode] Use ConstantInt::getSigned()
This is encoded as a signed value, so use getSigned().
Commit: db59def3b88410f0abd66c601153c8db7cb2dc57
https://github.com/llvm/llvm-project/commit/db59def3b88410f0abd66c601153c8db7cb2dc57
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/ARM/ThumbRegisterInfo.cpp
Log Message:
-----------
[ThumbRegisterInfo] Use getSigned() for constant pool loads
To match the signed int parameter for the value.
Commit: 748e7af8dd6e9b4683a6402a0ca6598fe23a9c1e
https://github.com/llvm/llvm-project/commit/748e7af8dd6e9b4683a6402a0ca6598fe23a9c1e
Author: Krish Gupta <krishom70 at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M flang/lib/Lower/OpenMP/OpenMP.cpp
A flang/test/Integration/OpenMP/do-simd-firstprivate-lastprivate-runtime.f90
A flang/test/Lower/OpenMP/do-simd-firstprivate-lastprivate.f90
M flang/test/Lower/OpenMP/order-clause.f90
M flang/test/Lower/OpenMP/wsloop-simd.f90
Log Message:
-----------
[flang][OpenMP] Fix firstprivate not working with lastprivate in DO SIMD (#170163)
This fixes a bug where firstprivate was ignored when the same variable
had both firstprivate and lastprivate clauses in a do simd construct.
What was broken:
```
integer :: a
a = 10
!$omp do simd firstprivate(a) lastprivate(a)
do i = 1, 1
print *, a ! Should print 10, but printed garbage/0
a = 20
end do
!$omp end do simd
print *, a ! Correctly prints 20
```
Inside the loop, [a] wasn't being initialized from the firstprivate
clause—it just had whatever uninitialized value was there.
The fix:
In genCompositeDoSimd(), we were using simdItemDSP to handle
privatization for the whole loop nest. This only looked at SIMD clauses
and missed the firstprivate from the DO part. Changed it to use
wsloopItemDSP instead, which handles both DO clauses (firstprivate,
lastprivate) correctly.
One line change in OpenMP.cpp
Tests added:
Lowering test to check MLIR generation
Runtime test to verify the actual values are correct
<img width="740" height="440" alt="image"
src="https://github.com/user-attachments/assets/fa911ea8-2024-4edf-b710-52c10659742e"
/>
Fixes #168306
---------
Co-authored-by: Krish Gupta <krishgupta at Krishs-MacBook-Air.local>
Commit: b0bd8bdbd89701173db0d446757aad1ad166f08d
https://github.com/llvm/llvm-project/commit/b0bd8bdbd89701173db0d446757aad1ad166f08d
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/AtomicExpandPass.cpp
Log Message:
-----------
[AtomicExpand] Use getSigned() for negative value
Commit: 80fc9bc17715cb4e68ec233ae1db668ac321e777
https://github.com/llvm/llvm-project/commit/80fc9bc17715cb4e68ec233ae1db668ac321e777
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
Log Message:
-----------
[Hexagon] Use getSigned() for signed value
Commit: cf9ba401e3fb2a9c3c728f1a0f49e75db372e704
https://github.com/llvm/llvm-project/commit/cf9ba401e3fb2a9c3c728f1a0f49e75db372e704
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Utils/BypassSlowDivision.cpp
Log Message:
-----------
[BypassSlowDivision] Explicitly create bit mask
Explicitly create the high bit mask using getBitsSetFrom() instead
of inverting an integer. This avoids relying on implicit
truncation.
Commit: 005ef5cda00d4a5a03c9b7ebd2113b5f2314da89
https://github.com/llvm/llvm-project/commit/005ef5cda00d4a5a03c9b7ebd2113b5f2314da89
Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M .github/workflows/libc-overlay-tests.yml
Log Message:
-----------
[libc][CI] update macOS version in workflow configuration (#171228)
upgrade macOS version to latest stable version in github action. We run
into a problem that timed `os_sync` API only becomes available in 14.4+.
Commit: 6960b633ee7633d0ed7e9853baea296dbe201ab2
https://github.com/llvm/llvm-project/commit/6960b633ee7633d0ed7e9853baea296dbe201ab2
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
Log Message:
-----------
[LSR] Use getSigned() for negated immediate
Commit: 4afc92e43a1462df613e26997f64cb368d552648
https://github.com/llvm/llvm-project/commit/4afc92e43a1462df613e26997f64cb368d552648
Author: Jessica Clarke <jrtc27 at jrtc27.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M lld/ELF/Relocations.cpp
M lld/ELF/Symbols.h
Log Message:
-----------
[NFC][ELF] Remove pointless NEEDS_TLSGD_TO_IE (#171046)
NEEDS_TLSGD_TO_IE is only ever set when the symbol is preeptible, in
which case addTpOffsetGotEntry will just add the symbol to the GOT and
emit a symbolic tlsGotRel anyway, so there is no need to give it its own
special case.
As well as simplifying the code upstream, this is useful downstream for
Morello, which doesn't really have a proper GD/IE-to-LE relaxation, and
so for GD-to-IE can benefit from being able to use the optimisations
addTpOffsetGotEntry has for non-preemptible symbols, rather than having
to reimplement them here.
Commit: 51d928f0cff426c70d368afd09afd14cf9a67dfe
https://github.com/llvm/llvm-project/commit/51d928f0cff426c70d368afd09afd14cf9a67dfe
Author: Gergely Bálint <gergely.balint at arm.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M bolt/test/runtime/AArch64/pacret-synchronous-unwind.cpp
Log Message:
-----------
[BOLT] Fix pacret-synchronous-unwind.cpp test (#171395)
The test case build a binary from C++, and checks for the number of
functions the PointerAuthCFIFixup pass runs on.
This can change based on the platform. To account for this, the patch
changes the number to a regex.
The test failed when running on RHEL 9.
Commit: b2ddb909cfd410ed22fee79511bd09e1ba3d9829
https://github.com/llvm/llvm-project/commit/b2ddb909cfd410ed22fee79511bd09e1ba3d9829
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M libcxx/src/include/refstring.h
Log Message:
-----------
[libc++] Don't try to be compatible with libstdc++ in __libcpp_refstring on iOS (#170816)
iOS doesn't provide a libstdc++ dylib anymore, so we can remove the
compatiblity check whether we can load the dylib.
Commit: 6b58449b2c813588f9c251d4f0963762d6746881
https://github.com/llvm/llvm-project/commit/6b58449b2c813588f9c251d4f0963762d6746881
Author: Aaron Ballman <aaron at aaronballman.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/utils/ClangVisualizers/clang.natvis
Log Message:
-----------
Update the NATVIS file
ElaboratedType is no longer a thing.
Commit: b3a5870c64c94c361b4144333066382aac0b6dc9
https://github.com/llvm/llvm-project/commit/b3a5870c64c94c361b4144333066382aac0b6dc9
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/docs/ReleaseNotes.md
Log Message:
-----------
[llvm][docs] Add a release note for LLDB "version -v"
Added by #170772.
Commit: c66eb25459279ce7663bcd51eabaeeffafae0366
https://github.com/llvm/llvm-project/commit/c66eb25459279ce7663bcd51eabaeeffafae0366
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/bindings/ocaml/llvm/llvm_ocaml.c
Log Message:
-----------
[OCaml] Fix build
Fix a mistake introduced in https://github.com/llvm/llvm-project/pull/163979:
We should stick with the deprecated LLVMGetGlobalContext() API
in this file, as getGlobalContextForCAPI() is a C++ API that is
not available here.
Commit: 7f2bbba60dce67c1eb8cc8b0633d04ca0adfff62
https://github.com/llvm/llvm-project/commit/7f2bbba60dce67c1eb8cc8b0633d04ca0adfff62
Author: valadaptive <79560998+valadaptive at users.noreply.github.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
A llvm/test/Transforms/InstCombine/AArch64/tbl.ll
R llvm/test/Transforms/InstCombine/AArch64/tbl1.ll
A llvm/test/Transforms/InstCombine/ARM/tbl.ll
R llvm/test/Transforms/InstCombine/ARM/tbl1.ll
Log Message:
-----------
[AArch64][ARM] Optimize more `tbl`/`tbx` calls into `shufflevector` (#169748)
Resolves #169701.
This PR extends the existing InstCombine operation which folds `tbl1`
intrinsics to `shufflevector` if the mask operand is constant. Before
this change, it only handled 64-bit `tbl1` intrinsics with no
out-of-bounds indices. I've extended it to support both 64-bit and
128-bit vectors, and it now handles the full range of `tbl1`-`tbl4` and
`tbx1`-`tbx4`, as long as at most two of the input operands are actually
indexed into.
For the purposes of `tbl`, we need a dummy vector of zeroes if there are
any out-of-bounds indices, and for the purposes of `tbx`, we use the
"fallback" operand. Both of those take up an operand for the purposes of
`shufflevector`.
This works a lot like https://github.com/llvm/llvm-project/pull/169110,
with some added complexity because we need to handle multiple operands.
I raised a couple questions in that PR that still need to be answered:
- Is it correct to check `IsA<UndefValue>` for each mask index, and set
the output mask index to -1 if so? This is later folded to a poison
value, and I'm not sure about the subtle differences between poison and
undef and when you can substitute one for the other. As I mentioned in
#169110, the existing x86 pass (`simplifyX86vpermilvar`) already behaves
this way when it comes to undef.
- How can I write an Alive2 proof for this? It's very hard to find good
documentation or tutorials about Alive2.
As with #169110, most of the regression test cases were generated using
Claude. Everything else was written by me.
Commit: 1a66474ca0f995868367fd4c22aa1259dcc6cf96
https://github.com/llvm/llvm-project/commit/1a66474ca0f995868367fd4c22aa1259dcc6cf96
Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/test/CodeGen/AArch64/fmv-explicit-priority.c
Log Message:
-----------
[clang][FMV][AArch64] Remove O3 from failing test (#171457)
This fixes the buildbot failures from
https://github.com/llvm/llvm-project/pull/150267.
I could not reproduce them locally but my intuition suggests that the
-O3 option on the RUN line behaves incosistently on different hosts
judging from the error logs.
My intention was to run an integration test which will use llvm's
globalopt pass, but there's no need actually. We have unittests in place
for it.
Commit: c61a481a231025a90ef12e4f9a04bedb04eeeb99
https://github.com/llvm/llvm-project/commit/c61a481a231025a90ef12e4f9a04bedb04eeeb99
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/test/Transforms/LoopVectorize/hoist-predicated-loads-with-predicated-stores.ll
Log Message:
-----------
[VPlan] Use SCEV to prove non-aliasing for stores at different offsets. (#170347)
Extend the logic add in https://github.com/llvm/llvm-project/pull/168771
to also allow sinking stores past stores in the same noalias set by
checking if we can prove no-alias via the distance between accesses,
checked via SCEV.
PR: https://github.com/llvm/llvm-project/pull/170347
Commit: 76cffd310ac45c43c95c879d1bfdc1580a3d591e
https://github.com/llvm/llvm-project/commit/76cffd310ac45c43c95c879d1bfdc1580a3d591e
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M .ci/generate_test_report_lib.py
M .ci/generate_test_report_lib_test.py
Log Message:
-----------
[CI] Tweak wording for builds with passing tests and build errors (#171436)
"All tests passed" is too easily interpreted as every possible test was
run and was fine. A lot of the time it means all the tests that didn't
fail to build ran and were fine.
Maybe the wording is still too subtle but at least it hints to the idea
that the tests run might be fewer than if the build had no compilation
errors.
Commit: a03318360649c8b6f30b28e1ee5a76af1f559c51
https://github.com/llvm/llvm-project/commit/a03318360649c8b6f30b28e1ee5a76af1f559c51
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M compiler-rt/test/sanitizer_common/TestCases/Linux/soft_rss_limit_mb_test.cpp
Log Message:
-----------
[compiler-rt] Try bumping soft_rss_limit again (#171469)
This is still failing on some of the bots. Try bumping the limit again
to see if this fixes things.
Commit: 94ebcfd16dac67486bae624f74e1c5c789448bae
https://github.com/llvm/llvm-project/commit/94ebcfd16dac67486bae624f74e1c5c789448bae
Author: Men-cotton <mencotton0410 at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp
M mlir/test/Dialect/Vector/vector-sink.mlir
Log Message:
-----------
[mlir][vector] Fix crash in ReorderCastOpsOnBroadcast with non-vector result (#170985)
Fixes a crash in `ReorderCastOpsOnBroadcast` by ensuring the cast result
is a `VectorType` before applying the pattern.
A regression test has been added to
mlir/test/Dialect/Vector/vector-sink.mlir.
Fixes: #126371
Commit: 5236af88e5ed0a3449b2292ef02be28b8722b172
https://github.com/llvm/llvm-project/commit/5236af88e5ed0a3449b2292ef02be28b8722b172
Author: Jianhui Li <jian.hui.li at intel.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUAttrs.td
M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUOps.td
M mlir/lib/Dialect/XeGPU/IR/XeGPUDialect.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUPropagateLayout.cpp
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSubgroupDistribute.cpp
M mlir/test/Dialect/XeGPU/propagate-layout.mlir
M mlir/test/Dialect/XeGPU/subgroup-distribute-unit.mlir
M mlir/test/Dialect/XeGPU/subgroup-distribute.mlir
Log Message:
-----------
[MLIR][XeGPU] Extend propagation and sg_to_lane distribution pass support broadcast with low rank and scalar source input (#170409)
This PR extends XeGPU layout propagation and distribution for
vector.broadcast operation.
It relaxes the restriction of layout propagation to allow low-rank and
scalar source input, and adds a pattern in sg-to-wi distribution to
support the lowering.
Commit: 0c0ed398ecef2d3840b4ebc11b41d638339d299b
https://github.com/llvm/llvm-project/commit/0c0ed398ecef2d3840b4ebc11b41d638339d299b
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h
Log Message:
-----------
[lldb] Don't read firstSubclass and nextSiblingClass from class_rw_t (#171213)
We're considering modifying the ObjC runtime's class_rw_t structure to
remove the firstSubclass and nextSiblingClass fields in some cases. LLDB
is currently reading those but not actually using them. Stop doing that
to avoid issues if they are removed by the runtime.
rdar://166084122
Commit: 2e16f24957eea220d09bdc869d369c80904eecaf
https://github.com/llvm/llvm-project/commit/2e16f24957eea220d09bdc869d369c80904eecaf
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVRegisterInfo.td
M llvm/test/CodeGen/RISCV/GlobalISel/instruction-select/rvv/select.mir
M llvm/test/CodeGen/RISCV/rvv/pass-fast-math-flags-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-to-vmv.mir
M llvm/test/CodeGen/RISCV/rvv/strided-vpload-vpstore-output.ll
M llvm/test/CodeGen/RISCV/rvv/vleff-vlseg2ff-output.ll
M llvm/test/CodeGen/RISCV/rvv/vmerge-peephole.mir
M llvm/test/CodeGen/RISCV/rvv/vmv.v.v-peephole.mir
M llvm/test/CodeGen/RISCV/rvv/vsetvli-insert-crossbb.mir
Log Message:
-----------
[RISCV] Add VMNoV0 register class with only the VMaskVTs. (#171231)
I plan to use this for inline assembly "vd" contraints with mask types
in a follow up patch. Due to the test changes I wanted to post this
separately.
Commit: 632cbee244f31854c3d7320033471772a7a2f453
https://github.com/llvm/llvm-project/commit/632cbee244f31854c3d7320033471772a7a2f453
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
Log Message:
-----------
[RISCV] Use VM and VMNoV0 for "vr" and "vd" inline asm constraints with mask type. (#171235)
The inline assembly handling in SelectionDAG uses the first type
for the register class as the type at the input/output of the
inlineassembly. If this isn't the type for the surrounding DAG,
it needs to be converted.
nxv8i8 is the first type for the VR and VRNoV0 register classes.
So we currently generate insert/extract_subvector and bitcasts to
convert to/from nxv8i8.
I believe some of the special casing we have for this in
splitValueIntoRegisterParts and joinRegisterPartsIntoValue is causing
us to also generate incorrect code for arguments with nxv16i4 types
that should be any extended to nxv16i8. Instead we widen them to nxv32i4
and bitcast to nxv16i8.
This patch uses VM and VMNoV0 for masks which has nxv64i1 as their
first type. This means we will only emit an insert/extract_subvector
without any bitcasts. This will allow me to fix
splitValueIntoRegisterParts and joinRegisterPartsIntoValue to fix the
nxv16i4 argument issue without breaking inline assembly.
I may need to add more register classes to cover fractional LMULs,
but I'm not sure yet.
Commit: b3b033bf7350e6a7cd581caa21f18471aad65c0f
https://github.com/llvm/llvm-project/commit/b3b033bf7350e6a7cd581caa21f18471aad65c0f
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenStmt.cpp
Log Message:
-----------
[CIR][NFC] Fix bad switch fallthroughs in emitStmt (#171224)
This moves a couple of statement emitters that were incorrectly
implemented in the middle of a switch statement where all cases in the
final group are intended to fall through to a handler that emits an NYI
error message. The placement of these implementations was causing some
statement types that should have emitted the NYI error to instead go to
a handler for a different statement type.
Commit: e6145e870977babfc599d8339675a2b8c56da730
https://github.com/llvm/llvm-project/commit/e6145e870977babfc599d8339675a2b8c56da730
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
Log Message:
-----------
[CIR][NFC] Add stubs for missing visitors in ScalarExprEmitter (#171222)
This adds stubs that issue NYI errors for any visitor that is present in
the ClangIR incubator but missing in the upstream implementation. This
will make it easier to find to correct locations to implement missing
functionality.
Commit: 9b12f8fcaeb4e9f8a03de6e982e94e525a9a4dc6
https://github.com/llvm/llvm-project/commit/9b12f8fcaeb4e9f8a03de6e982e94e525a9a4dc6
Author: nerix <nerixdev at outlook.de>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/shared_ptr/TestDataFormatterStdSharedPtr.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/unique_ptr/TestDataFormatterStdUniquePtr.py
Log Message:
-----------
[LLDB] Run MSVC STL smart pointer tests with PDB (#166946)
Runs the `std::shared/unique_ptr` tests with PDB with two changes:
- PDB uses the "full" name, so `std::string` is `std::basic_string<char,
std::char_traits<char>, std::allocator<char>>`
- The type of the pointer inside the shared/unique_ptr isn't the
`element_type` typedef
Commit: 1bada0af22d878b2ec0cfefd655c09b801b44918
https://github.com/llvm/llvm-project/commit/1bada0af22d878b2ec0cfefd655c09b801b44918
Author: Rajat Bajpai <rbajpai at nvidia.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/NVPTX/CMakeLists.txt
M llvm/lib/Target/NVPTX/NVPTX.h
A llvm/lib/Target/NVPTX/NVPTXIRPeephole.cpp
M llvm/lib/Target/NVPTX/NVPTXPassRegistry.def
M llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
A llvm/test/CodeGen/NVPTX/nvptx-fold-fma.ll
Log Message:
-----------
[NVPTX] Add IR pass for FMA transformation in the llc pipeline (#154735)
This change introduces a new IR pass in the llc pipeline for NVPTX that
transforms sequences of FMUL followed by FADD or FSUB into a single FMA
instruction.
Currently, all FMA folding for NVPTX occurs at the DAGCombine stage,
which is too late for any IR-level passes that might want to optimize or
analyze FMAs. By moving this transformation earlier into the IR phase,
we enable more opportunities for FMA folding, including across basic
blocks.
Additionally, this new pass relies on the contract instruction level
fast-math flag to perform these transformations, rather than depending
on the -fp-contract=fast or -enable-unsafe-fp-math options passed to
llc.
Commit: 4f79552d25c25606f5487076c109b2fe2a76a7e2
https://github.com/llvm/llvm-project/commit/4f79552d25c25606f5487076c109b2fe2a76a7e2
Author: BaiXilin <x53bai at uwaterloo.ca>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/include/clang/Basic/BuiltinsX86.td
M clang/lib/Headers/avx10_2_512niintrin.h
M clang/lib/Headers/avx512vlvnniintrin.h
M clang/lib/Headers/avx512vnniintrin.h
M clang/lib/Headers/avxvnniint16intrin.h
M clang/lib/Headers/avxvnniintrin.h
M clang/test/CodeGen/X86/avx10_2_512ni-builtins.c
M clang/test/CodeGen/X86/avx10_2ni-builtins.c
M clang/test/CodeGen/X86/avx512vlvnni-builtins.c
M clang/test/CodeGen/X86/avx512vnni-builtins.c
M clang/test/CodeGen/X86/avxvnni-builtins.c
M clang/test/CodeGen/X86/avxvnniint16-builtins.c
M llvm/include/llvm/IR/IntrinsicsX86.td
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/test/CodeGen/X86/avx10.2-intrinsic-upgrade.ll
M llvm/test/CodeGen/X86/avx10_2_512ni-intrinsics.ll
M llvm/test/CodeGen/X86/avx10_2ni-intrinsics.ll
M llvm/test/CodeGen/X86/avx512vl_vnni-intrinsics.ll
M llvm/test/CodeGen/X86/avx512vnni-intrinsics-upgrade.ll
M llvm/test/CodeGen/X86/avx512vnni-intrinsics.ll
M llvm/test/CodeGen/X86/avx_vnni-intrinsics-upgrade.ll
M llvm/test/CodeGen/X86/avx_vnni-intrinsics.ll
A llvm/test/CodeGen/X86/avxvnniint16-intrinsics-upgrade.ll
M llvm/test/CodeGen/X86/avxvnniint16-intrinsics.ll
M llvm/test/CodeGen/X86/stack-folding-int-avxvnni.ll
M llvm/test/CodeGen/X86/stack-folding-int-avxvnniint16.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx10_2_512ni-intrinsics.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx10_2ni-intrinsics.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx512vl_vnni-intrinsics-upgrade.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx512vl_vnni-intrinsics.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx512vnni-intrinsics-upgrade.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx512vnni-intrinsics.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx_vnni-intrinsics.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avxvnniint16-intrinsics.ll
Log Message:
-----------
[x86][AVX-VNNI] Fix VPDPWXXD Argument Types (#169456)
Fixed the argument types of the following intrinsics to match with the
ISA:
- vpdpwssd_128, vpdpwssd_256, vpdpwssd_512,
- vpdpwssds_128, vpdpwssds_256, vpdpwssds_512
- vpdpwsud_128, vpdpwsud_256, vpdowsud_512
- vpdpwsuds_128, vpdpwsuds_256, vpdpwsuds_512
- vpdpwusd_128, vpdpwusd_256, vpdpwusd_512
- vpdpwusds_128, vpdpwusds_256, vpdpwusds_512
- vpdpwuud_128, vpdpwuud_256, vpdpwuud_512
- vpdpwuuds_128, vpdpwuuds_256, vpdpwuuds_512
Fixes #97271. Note that this is the last PR for the issue.
Commit: ef47462ce9f1ade501da011a18869ea2a653d2cb
https://github.com/llvm/llvm-project/commit/ef47462ce9f1ade501da011a18869ea2a653d2cb
Author: Alex Voicu <alexandru.voicu at amd.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVInstPrinter.cpp
M llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
A llvm/test/CodeGen/SPIRV/extensions/SPV_ALTERA_arbitrary_precision_integers/i128-addsub.ll
A llvm/test/CodeGen/SPIRV/extensions/SPV_ALTERA_arbitrary_precision_integers/i128-arith.ll
A llvm/test/CodeGen/SPIRV/extensions/SPV_ALTERA_arbitrary_precision_integers/i128-switch-lower.ll
M llvm/test/CodeGen/SPIRV/extensions/enable-all-extensions-but-one.ll
Log Message:
-----------
[SPIRV] Start adding support for `int128` (#170798)
LLVM has pretty thorough support for `int128`, and it has started seeing
some use. Even thouth we already have support for the
`SPV_ALTERA_arbitrary_precision_integers` extension, the BE was oddly
capping integer width to 64-bits. This patch adds partial support for
lowering 128-bit integers to `OpTypeInt 128`. Some work remains to be
done around legalisation support and validating constant uses (e.g.
cases that get lowered to `OpSpecConstantOp`).
Commit: 04a5ee6065fe6f2955fece5e8db3ae95cfbcce1c
https://github.com/llvm/llvm-project/commit/04a5ee6065fe6f2955fece5e8db3ae95cfbcce1c
Author: Rana Pratap Reddy <109514914+ranapratap55 at users.noreply.github.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/include/clang/Basic/BuiltinsAMDGPU.def
Log Message:
-----------
[AMDGPU] Modifies builtin def to take _Float16('x') for both HIP/C++ and for OpenCL (#167652)
For extended imges insts amdgcn_image_sample_*_/gather4_* builtins,
using 'x' in the builtin def so that it will take _Float16 for both
HIP/C++ and OpenCL.
Commit: fa607658a2bdbb5b47e6243b3871d4d6aab09335
https://github.com/llvm/llvm-project/commit/fa607658a2bdbb5b47e6243b3871d4d6aab09335
Author: cs25resch11005-bhuvan <cs25resch11005 at iith.ac.in>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
M clang/test/CIR/CodeGenBuiltins/X86/avx512vl-builtins.c
A clang/test/CIR/CodeGenBuiltins/X86/avx512vlvbmi2-builtins.c
Log Message:
-----------
[CIR][CIRGen][Builtin][X86] Masked compress Intrinsics (#169582)
Added masked compress builtin in CIR.
Note: This is my first PR to llvm. Looking forward to corrections
---------
Co-authored-by: bhuvan1527 <balabhuvanvarma at gmail.com>
Commit: ab8208f4f13a256e923342e54439d17022befa01
https://github.com/llvm/llvm-project/commit/ab8208f4f13a256e923342e54439d17022befa01
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M lldb/docs/resources/build.rst
Log Message:
-----------
[lldb][docs] Fix Visual Studio link in build doc
Fixes warning:
build.rst:107: WARNING: 'any' reference target not found: https://visualstudio.microsoft.com
Commit: 0aa8b8292314be29b02c8d93335c7b04d0fc2221
https://github.com/llvm/llvm-project/commit/0aa8b8292314be29b02c8d93335c7b04d0fc2221
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M lldb/docs/use/map.rst
Log Message:
-----------
[lldb][docs] Fix plaintext markers in command map
Single backticks RST tries to resolve to a reference.
Double means plaintext.
Fixes these warnings:
map.rst:803: WARNING: 'any' reference target not found: target.prefer-dynamic-value
map.rst:814: WARNING: 'any' reference target not found: expr
Commit: 1dacdbe6669a5df92d7e2a4dcf11110eaaaa41ea
https://github.com/llvm/llvm-project/commit/1dacdbe6669a5df92d7e2a4dcf11110eaaaa41ea
Author: Tomohiro Kashiwada <kikairoya at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/include/clang/Basic/LangOptions.h
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/test/CodeGenCXX/dllexport.cpp
M clang/test/CodeGenCXX/dllimport.cpp
M clang/test/CodeGenCXX/mingw-template-dllexport.cpp
Log Message:
-----------
[Clang] Export inline move constructors in dllexport-ed template instantiations on non-MSVC targets (#168170)
Previously, even when MSVC compatibility was not requested, inline move
constructors in dllexport-ed templates were not exported, which was
seemingly unintended.
On non-MSVC targets (MinGW, Cygwin, and PS), such move constructors
should be exported consistently with copy constructors and with the
behavior of modern MSVC.
Commit: 0a39d1ff9e4f8e8fb5138bdd21d88ed163aede3b
https://github.com/llvm/llvm-project/commit/0a39d1ff9e4f8e8fb5138bdd21d88ed163aede3b
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Target/NVPTX/BUILD.gn
Log Message:
-----------
[gn build] Port 1bada0af22d8
Commit: c0eac77f3cc94a1671297b0ef09e1875f7f74dda
https://github.com/llvm/llvm-project/commit/c0eac77f3cc94a1671297b0ef09e1875f7f74dda
Author: Anatoly Trosinenko <atrosinenko at accesssoftek.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M bolt/lib/Passes/PAuthGadgetScanner.cpp
M llvm/include/llvm/ADT/BitVector.h
M llvm/include/llvm/ADT/SmallBitVector.h
M llvm/lib/Analysis/StackLifetime.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
M llvm/lib/CodeGen/StackColoring.cpp
M llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp
M llvm/lib/Target/Hexagon/HexagonGenInsert.cpp
M llvm/unittests/ADT/BitVectorTest.cpp
Log Message:
-----------
[ADT] BitVector: give `subsetOf(RHS)` name to `!test(RHS)` (NFC) (#170875)
Define `LHS.subsetOf(RHS)` as a more descriptive name for `!LHS.test(RHS)`
and update the existing callers to use that name.
Co-authored-by: Jakub Kuderski <jakub at nod-labs.com>
Commit: cd805a73737a951049a106de0f61b50e194d7241
https://github.com/llvm/llvm-project/commit/cd805a73737a951049a106de0f61b50e194d7241
Author: nerix <nerixdev at outlook.de>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M lldb/source/Plugins/Language/CPlusPlus/GenericList.cpp
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/forward_list/TestDataFormatterGenericForwardList.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/list/TestDataFormatterGenericList.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/list/loop/TestDataFormatterGenericListLoop.py
Log Message:
-----------
[LLDB] Run MSVC STL (forward-)list test with PDB (#166953)
Since PDB doesn't have template information, we need to get the element
type from somewhere else. I'm using the type of `_Myval` in a list node,
which holds the element type.
Commit: d796d73631a9c9cc8a0c6386dba20938b22d34c5
https://github.com/llvm/llvm-project/commit/d796d73631a9c9cc8a0c6386dba20938b22d34c5
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M mlir/lib/Transforms/Utils/Inliner.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for readability-identifier-naming in Inliner.cpp (NFC)
Commit: 00bccfca7cc4aacbbef6127a411c22c0e08bc466
https://github.com/llvm/llvm-project/commit/00bccfca7cc4aacbbef6127a411c22c0e08bc466
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/test/CodeGen/X86/bitcnt-big-integer.ll
Log Message:
-----------
[X86] bitcnt-big-integer.ll - add additional test coverage where the source values are bitcast from vectors (#171481)
Commit: 93d2ef105703254769a8f182300b329dad5ed976
https://github.com/llvm/llvm-project/commit/93d2ef105703254769a8f182300b329dad5ed976
Author: Jacques Pienaar <jpienaar at google.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M mlir/lib/Bytecode/Reader/BytecodeReader.cpp
M mlir/unittests/Bytecode/BytecodeTest.cpp
Log Message:
-----------
[mlir][bytecode] Add support for deferred attribute/type parsing. (#170993)
Add ability to defer parsing and re-enqueueing oneself. This enables
changing CallSiteLoc parsing to not recurse as deeply: previously this
could fail (especially on large inputs in debug mode the recursion could
overflow). Add a default depth cutoff, this could be a parameter later
if needed.
Commit: cc25ac424a856554edb152c09f8217e95b59a7b6
https://github.com/llvm/llvm-project/commit/cc25ac424a856554edb152c09f8217e95b59a7b6
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M flang/lib/Parser/openmp-parsers.cpp
M flang/lib/Semantics/check-omp-loop.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/resolve-directives.cpp
M flang/lib/Semantics/rewrite-parse-tree.cpp
Log Message:
-----------
[flang][OpenMP] Use DirId() instead of DirName().v, NFC (#171484)
Commit: 719826d33df18a2d386c008b11521275e9ec1d74
https://github.com/llvm/llvm-project/commit/719826d33df18a2d386c008b11521275e9ec1d74
Author: nerix <nerixdev at outlook.de>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/optional/TestDataFormatterGenericOptional.py
Log Message:
-----------
[LLDB] Run MSVC STL optional test with PDB (#171486)
Similar to the other PRs, this runs the `std::optional` test with PDB.
Since we don't know that variables use typedefs, we check for the full
name when testing PDB.
Commit: 03160c186e90463402786b611826a1702420e1c7
https://github.com/llvm/llvm-project/commit/03160c186e90463402786b611826a1702420e1c7
Author: Folkert de Vries <folkert at folkertdev.nl>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/X86/X86IntrinsicsInfo.h
M llvm/test/CodeGen/X86/avx10_2satcvtds-intrinsics.ll
Log Message:
-----------
[X86] fix typo: `MCVTTP2SIS` -> `MCVTTP2UIS` (#171229)
This LLVM IR
https://godbolt.org/z/5bM1vrMY1
```llvm
define <4 x i32> @masked(<2 x double> %a, <4 x i32> %src, i8 noundef zeroext %mask) unnamed_addr #0 {
%r = tail call <4 x i32> @llvm.x86.avx10.mask.vcvttpd2udqs.128(<2 x double> %a, <4 x i32> %src, i8 noundef %mask)
ret <4 x i32> %r
}
define <4 x i32> @unmasked(<2 x double> %a) unnamed_addr #0 {
%r = tail call <4 x i32> @llvm.x86.avx10.mask.vcvttpd2udqs.128(<2 x double> %a, <4 x i32> zeroinitializer, i8 noundef -1)
ret <4 x i32> %r
}
declare <4 x i32> @llvm.x86.avx10.mask.vcvttpd2udqs.128(<2 x double>, <4 x i32>, i8) unnamed_addr
attributes #0 = { mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" "target-features"="+avx10.2-512" }
```
produces
```asm
masked: # @masked
kmovd k1, edi
vcvttpd2dqs xmm1 {k1}, xmm0
vmovaps xmm0, xmm1
ret
unmasked: # @unmasked
vcvttpd2udqs xmm0, xmm0
ret
```
So, when a mask is used, somehow the signed version of this instruction
is selected. I suspect this is a typo.
Commit: 5052b6ce1d3a1d1b36333f036525ec8cff6c9a10
https://github.com/llvm/llvm-project/commit/5052b6ce1d3a1d1b36333f036525ec8cff6c9a10
Author: Anshil Gandhi <95053726+gandhi56 at users.noreply.github.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
A llvm/test/CodeGen/AMDGPU/flat-scratch-alloca-issue-155902.ll
Log Message:
-----------
[AMDGPU] Scavenge a VGPR to eliminate a frame index (#166979)
If the subtarget supports flat scratch SVS mode and there is no SGPR
available to replace a frame index, convert a scratch instruction in SS
form into SV form and replace the frame index with a scavenged VGPR.
Resolves #155902
Co-authored-by: Matt Arsenault <matthew.arsenault at amd.com>
Commit: 24117f75ad9d7bbb439e8e1bd596fdcf0aa8d6e2
https://github.com/llvm/llvm-project/commit/24117f75ad9d7bbb439e8e1bd596fdcf0aa8d6e2
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang-tools-extra/clang-doc/CMakeLists.txt
M clang-tools-extra/clang-doc/Generators.cpp
M clang-tools-extra/clang-doc/Generators.h
M clang-tools-extra/clang-doc/HTMLGenerator.cpp
R clang-tools-extra/clang-doc/HTMLMustacheGenerator.cpp
M clang-tools-extra/clang-doc/support/Utils.cpp
M clang-tools-extra/clang-doc/support/Utils.h
M clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
M clang-tools-extra/test/clang-doc/DR-131697.cpp
M clang-tools-extra/test/clang-doc/assets.cpp
M clang-tools-extra/test/clang-doc/basic-project.mustache.test
M clang-tools-extra/test/clang-doc/basic-project.test
M clang-tools-extra/test/clang-doc/comments-in-macros.cpp
M clang-tools-extra/test/clang-doc/conversion_function.cpp
M clang-tools-extra/test/clang-doc/enum.cpp
M clang-tools-extra/test/clang-doc/long-name.cpp
M clang-tools-extra/test/clang-doc/mustache-index.cpp
M clang-tools-extra/test/clang-doc/mustache-separate-namespace.cpp
M clang-tools-extra/test/clang-doc/namespace.cpp
R clang-tools-extra/test/clang-doc/test-path-abs.cpp
M clang-tools-extra/unittests/clang-doc/CMakeLists.txt
M clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp
R clang-tools-extra/unittests/clang-doc/HTMLMustacheGeneratorTest.cpp
Log Message:
-----------
[clang-doc] Replace HTML generation with Mustache backend (#170199)
Removes the legacy HTML backend and replaces it with the Mustache
backend.
Commit: 4bff9fdb908b1f9a3710e4570d249e24bd2aae4d
https://github.com/llvm/llvm-project/commit/4bff9fdb908b1f9a3710e4570d249e24bd2aae4d
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/utils/gn/secondary/clang-tools-extra/clang-doc/BUILD.gn
M llvm/utils/gn/secondary/clang-tools-extra/unittests/clang-doc/BUILD.gn
Log Message:
-----------
[gn build] Port 24117f75ad9d
Commit: dc92bd03c965a200724a51ec6d5e89f2d449f1dd
https://github.com/llvm/llvm-project/commit/dc92bd03c965a200724a51ec6d5e89f2d449f1dd
Author: Andrew Haberlandt <ndrewh at users.noreply.github.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_posix.h
M compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_internal.h
M compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp
Log Message:
-----------
[sanitizer_common] [Darwin] Replace pty with pipe on posix_spawn path for spawning symbolizer (#170809)
Due to a legacy incompatibility with `atos`, we were allocating a pty
whenever we spawned the symbolizer. This is no longer necessary and we
can use a regular ol' pipe.
This PR is split into two commits:
- The first removes the pty allocation and replaces it with a pipe. This
relocates the `CreateTwoHighNumberedPipes` call to be common to the
`posix_spawn` and `StartSubprocess` path.
- The second commit adds the `child_stdin_fd_` field to
`SymbolizerProcess`, storing the read end of the stdin pipe. By holding
on to this fd for the lifetime of the symbolizer, we are able to avoid
getting SIGPIPE (which would occur when we write to a pipe whose
read-end had been closed due to the death of the symbolizer). This will
be very close to solving #120915, but this PR is intentionally not
touching the non-posix_spawn path.
rdar://165894284
Commit: 7a5e2c9358eabff3d9eb66141590ac453a2e0e08
https://github.com/llvm/llvm-project/commit/7a5e2c9358eabff3d9eb66141590ac453a2e0e08
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
A llvm/test/Transforms/LoopVectorize/runtime-check-threshold-with-force-metadata.ll
Log Message:
-----------
[LV] Add test with threshold=0 and metadata forcing vectorization.
Test case for the mis-compile mentioned in
https://github.com/llvm/llvm-project/pull/166247#issuecomment-3631471588
The issue is that we don't generate a runtime check even though it is
required to vectorize.
Commit: b3d05e680709dbe7988c25c144dabdadc0c4cf27
https://github.com/llvm/llvm-project/commit/b3d05e680709dbe7988c25c144dabdadc0c4cf27
Author: Fateme Hosseini <quic_fhossein at quicinc.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/include/clang/Basic/BuiltinsHexagon.td
Log Message:
-----------
[Hexagon] Add HVX V81 builtins (#170680)
Expose the HVXV81 abs, conversion, comparison, log2, negate and mixed
subtract intrinsics so Clang can emit the new instructions.
Commit: 0eb00eff475dd3950d8a1e7db14f3905d67d119e
https://github.com/llvm/llvm-project/commit/0eb00eff475dd3950d8a1e7db14f3905d67d119e
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/WebKit/RetainPtrCtorAdoptChecker.cpp
M clang/test/Analysis/Checkers/WebKit/retain-ptr-ctor-adopt-use.mm
Log Message:
-----------
[alpha.webkit.RetainPtrCtorAdoptChecker] Don't treat assignment to an +1 out argument as a leak (#161633)
Make RetainPtrCtorAdoptChecker recognize an assignment to an +1 out
argument so that it won't emit a memory leak warning.
Commit: f9326ffb7ede55229a81907cc03aaa8c523520ab
https://github.com/llvm/llvm-project/commit/f9326ffb7ede55229a81907cc03aaa8c523520ab
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefLambdaCapturesChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefLocalVarsChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
A clang/test/Analysis/Checkers/WebKit/unretained-lambda-captures-weak-arc.mm
A clang/test/Analysis/Checkers/WebKit/unretained-lambda-captures-weak.mm
A clang/test/Analysis/Checkers/WebKit/unretained-local-vars-weak-arc.mm
A clang/test/Analysis/Checkers/WebKit/unretained-local-vars-weak.mm
A clang/test/Analysis/Checkers/WebKit/unretained-members-weak-arc.mm
A clang/test/Analysis/Checkers/WebKit/unretained-members-weak.mm
Log Message:
-----------
[WebKit checkers] Treat a weak property / variable as safe (#163689)
Treat a weak Objective-C property, ivar, member variable, and local
variable as safe.
Commit: 06f0758282bfa5457ea779e66c79fdff34e58320
https://github.com/llvm/llvm-project/commit/06f0758282bfa5457ea779e66c79fdff34e58320
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.h
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefCallArgsChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/RetainPtrCtorAdoptChecker.cpp
M clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
Log Message:
-----------
[alpha.webkit.UnretainedCallArgsChecker] Recognize [allocObj() init] pattern (#161019)
Generalize the check for recognizing [[Obj alloc] init] to also
recognize [allocObj() init]. We do this by utilizing isAllocInit
function in RetainPtrCtorAdoptChecker.
Commit: 8a115b6934a90441d77ea54af73e7aaaa1394b38
https://github.com/llvm/llvm-project/commit/8a115b6934a90441d77ea54af73e7aaaa1394b38
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/runtime-check-threshold-with-force-metadata.ll
Log Message:
-----------
[LV] Mark checks as never succeeding for high cost cutoff.
When GeneratedRTChecks::create bails out due to exceeding the cost
threshold, no runtime checks are generated and we must not proceed
assuming checks have been generated.
Mark the checks as never succeeding, to make sure we don't try to
vectorize assuming the runtime checks hold. This fixes a case where we
previously incorrectly vectorized assuming runtime checks had been
generated when forcing vectorization via metadate.
Fixes the mis-compile mentioned in
https://github.com/llvm/llvm-project/pull/166247#issuecomment-3631471588
Commit: af3c3ecb181994146df20c82c3046727b62bc269
https://github.com/llvm/llvm-project/commit/af3c3ecb181994146df20c82c3046727b62bc269
Author: Philip Ginsbach-Chen <philip.ginsbach at cantab.net>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64PerfectShuffle.h
M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
M llvm/test/CodeGen/AArch64/arm64-trn.ll
M llvm/test/CodeGen/AArch64/fixed-vector-deinterleave.ll
M llvm/test/CodeGen/AArch64/reduce-shuffle.ll
Log Message:
-----------
[AArch64] recognise trn1/trn2 with flipped operands (#169858)
This PR is very similar to #167235, but applied to `trn` rather than
`zip`. There are two further differences:
- The `@combine_v8i16_8first` and `@combine_v8i16_8firstundef` test
cases in `arm64-zip.ll` didn't have equivalents in `arm64-trn.ll`, so
this PR adds new test cases `@vtrni8_8first`, `@vtrni8_9first`,
`@vtrni8_89first_undef`.
- `AArch64TTIImpl::getShuffleCost` calls `isZIPMask`, but not
`isTRNMask`. It relies on `Kind == TTI::SK_Transpose` instead (which
in turn is based on `ShuffleVectorInst::isTransposeMask` through
`improveShuffleKindFromMask`).
Therefore, this PR does not itself influence the slp-vectorizer. In a
follow-up PR, I intend to override
`AArch64TTIImpl::improveShuffleKindFromMask` to ensure we get
`ShuffleKind::SK_Transpose` based on the new `isTRNMask`. In fact, that
follow-up change is the actual motivation for this PR, as it will result
in
```C++
int8x16_t g(int8_t x)
{
return (int8x16_t) { 0, x, 1, x, 2, x, 3, x,
4, x, 5, x, 6, x, 7, x };
}
```
from #137447 being optimised by the slp-vectorizer.
Commit: 0895163097b66f944b0e0a59960eab1deaf36684
https://github.com/llvm/llvm-project/commit/0895163097b66f944b0e0a59960eab1deaf36684
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/clang-tools-extra/clang-doc/BUILD.bazel
Log Message:
-----------
[bazel] Port 24117f75ad9d7bbb439e8e1bd596fdcf0aa8d6e2 (#171497)
This patch removed some source files that were explicitly enumerated in
the bazel files. Remove them so that the build passes.
Commit: 019a2947719b979a4192ad4baa96e155e240f145
https://github.com/llvm/llvm-project/commit/019a2947719b979a4192ad4baa96e155e240f145
Author: Medha Tiwari <75640645+medhatiwari at users.noreply.github.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
A clang/test/CIR/CodeGenBuiltins/X86/xsave-builtins.c
Log Message:
-----------
[CIR][X86] Implement xsave/xrstor builtins Fixes part of #167752 (#170877)
Handle xsave/xrstor family of X86 builtins in ClangIR
Part of #167752
---------
Signed-off-by: Medha Tiwari <medhatiwari at ibm.com>
Commit: 87bf5ee23863bc0b467ee44b2184b2c134a98464
https://github.com/llvm/llvm-project/commit/87bf5ee23863bc0b467ee44b2184b2c134a98464
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.h
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIRTypeConstraints.td
M clang/include/clang/CIR/Dialect/IR/CIRTypes.td
M clang/include/clang/CIR/MissingFeatures.h
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
M clang/lib/CIR/CodeGen/CIRGenTypes.cpp
M clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/IR/CIRTypes.cpp
M clang/lib/CIR/Dialect/Transforms/CMakeLists.txt
A clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRCXXABI.cpp
A clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRCXXABI.h
A clang/lib/CIR/Dialect/Transforms/TargetLowering/CMakeLists.txt
A clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerItaniumCXXABI.cpp
A clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerModule.cpp
A clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerModule.h
M clang/lib/CIR/Lowering/DirectToLLVM/CMakeLists.txt
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.h
A clang/test/CIR/CodeGen/pointer-to-data-member.cpp
A clang/test/CIR/IR/invalid-data-member.cir
M clang/utils/TableGen/CIRLoweringEmitter.cpp
Log Message:
-----------
[CIR] Add basic support for data member pointers (#170939)
This adds the minimum support for C++ data member pointer variables.
Commit: 8f3c8dabc64517132c9c438ff467e75f39fbf8a6
https://github.com/llvm/llvm-project/commit/8f3c8dabc64517132c9c438ff467e75f39fbf8a6
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M mlir/lib/Bytecode/Reader/BytecodeReader.cpp
Log Message:
-----------
[MLIR][Bytecode] Use consistent types for resolveEntry (#171502)
uint64_t and size_t are not the same across all platforms. This was
causing build failures when building this file for wasm:
llvm-project/mlir/lib/Bytecode/Reader/BytecodeReader.cpp:1323:19: error:
out-of-line definition of 'resolveEntry' does not match any declaration
in '(anonymous namespace)::AttrTypeReader'
1323 | T AttrTypeReader::resolveEntry(SmallVectorImpl<Entry<T>>
&entries, size_t index,
| ^~~~~~~~~~~~
third_party/llvm/llvm-project/mlir/lib/Bytecode/Reader/BytecodeReader.cpp:851:7:
note: AttrTypeReader defined here
851 | class AttrTypeReader {
| ^~~~~~~~~~~~~~
1 error generated.
Use uint64_t everywhere to ensure portability.
Commit: 926cbddc185e035a4266f25203e81eec8960f114
https://github.com/llvm/llvm-project/commit/926cbddc185e035a4266f25203e81eec8960f114
Author: Andrew Haberlandt <ndrewh at users.noreply.github.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp
Log Message:
-----------
[sanitizer_common] child_stdin_fd_ should only be set on posix_spawn path (#171508)
#170809 added the child_stdin_fd_ field on SymbolizerProcess to allow
the parent process to hold on to the read in of the child's stdin pipe.
This was to avoid SIGPIPE.
However, the `StartSubprocess` path still closes the stdin fd in the
parent here:
https://github.com/llvm/llvm-project/blob/7f5ed91684c808444ede24eb01ad9af73b5806e5/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp#L525-L535
This could cause a double-close of this fd (problematic in the case of
fd reuse).
This moves the `child_stdin_fd_` field to only be initialized on the
posix_spawn path. This should ensure #170809 only truly affects Darwin.
Commit: 64ee4bf73411d1462fec0c2c2b5c44aaaa3a1903
https://github.com/llvm/llvm-project/commit/64ee4bf73411d1462fec0c2c2b5c44aaaa3a1903
Author: Christopher Ferris <cferris1000 at users.noreply.github.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
M compiler-rt/lib/scudo/standalone/tsd_exclusive.h
M compiler-rt/lib/scudo/standalone/tsd_shared.h
Log Message:
-----------
[scudo] Refactor initialization of TSDs. (#169738)
Instead of getting a lock and then checking/modifying the Initialization
variable, make it an atomic. Doing this, we can remove one of the
mutexes in shared TSDs and avoid any potential lock contention in both
shared TSDs and exclusive TSDs if multiple threads do allocation
operations at the same time.
Add two new tests that make sure no crashes occur if multiple threads
try and do allocations at the same time.
Commit: f29d06029f1ccae7359440a5d33d06406d10df31
https://github.com/llvm/llvm-project/commit/f29d06029f1ccae7359440a5d33d06406d10df31
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/runtime-check-threshold-with-force-metadata.ll
Log Message:
-----------
Revert "[LV] Mark checks as never succeeding for high cost cutoff."
This reverts commit 8a115b6934a90441d77ea54af73e7aaaa1394b38.
This broke premerge. https://lab.llvm.org/staging/#/builders/192/builds/13326
/home/gha/llvm-project/clang/test/Frontend/optimization-remark-options.c:10:11: remark: loop not vectorized: cannot prove it is safe to reorder floating-point operations; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop or by providing the compiler option '-ffast-math'
Commit: d86bc19ad79896b956c828a8f9c2c0d94d131466
https://github.com/llvm/llvm-project/commit/d86bc19ad79896b956c828a8f9c2c0d94d131466
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang-tools-extra/clang-doc/JSONGenerator.cpp
M clang-tools-extra/test/clang-doc/basic-project.mustache.test
M clang-tools-extra/test/clang-doc/json/class.cpp
Log Message:
-----------
[clang-doc] Do not serialize empty text comments (#169087)
Commit: 3310c0be583451e5770b6afbedd926ff3781356f
https://github.com/llvm/llvm-project/commit/3310c0be583451e5770b6afbedd926ff3781356f
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
Log Message:
-----------
[VPlan] Strip TODO to consolidate (ActiveLaneMask|Widen)PHI (#171392)
They cannot be consolidated, as WidenPHI is not a header PHI, while
ActtiveLaneMaskPHI is.
Commit: d233e787f0adfa2acd2e6c67aa2c362f9cf47ab4
https://github.com/llvm/llvm-project/commit/d233e787f0adfa2acd2e6c67aa2c362f9cf47ab4
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/include/clang/Driver/ToolChain.h
M clang/include/clang/Options/Options.td
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/Flang.cpp
M clang/lib/Driver/ToolChains/HIPAMD.cpp
M clang/lib/Driver/ToolChains/HIPSPV.cpp
R cmake/Modules/GetToolchainDirs.cmake
M flang-rt/CMakeLists.txt
M flang-rt/cmake/modules/AddFlangRT.cmake
M flang-rt/cmake/modules/AddFlangRTOffload.cmake
R flang-rt/cmake/modules/FlangRTIntrospection.cmake
A flang-rt/cmake/modules/GetToolchainDirs.cmake
M flang-rt/lib/CMakeLists.txt
M flang-rt/lib/runtime/CMakeLists.txt
R flang-rt/lib/runtime/__cuda_builtins.f90
R flang-rt/lib/runtime/__cuda_device.f90
R flang-rt/lib/runtime/__fortran_builtins.f90
R flang-rt/lib/runtime/__fortran_ieee_exceptions.f90
R flang-rt/lib/runtime/__fortran_type_info.f90
R flang-rt/lib/runtime/__ppc_intrinsics.f90
R flang-rt/lib/runtime/__ppc_types.f90
R flang-rt/lib/runtime/cooperative_groups.f90
R flang-rt/lib/runtime/cudadevice.f90
R flang-rt/lib/runtime/flang_debug.f90
R flang-rt/lib/runtime/ieee_arithmetic.f90
R flang-rt/lib/runtime/ieee_exceptions.f90
R flang-rt/lib/runtime/ieee_features.f90
R flang-rt/lib/runtime/iso_c_binding.f90
R flang-rt/lib/runtime/iso_fortran_env.f90
R flang-rt/lib/runtime/iso_fortran_env_impl.f90
R flang-rt/lib/runtime/mma.f90
M flang-rt/test/lit.site.cfg.py.in
M flang-rt/unittests/CMakeLists.txt
M flang/CMakeLists.txt
M flang/include/flang/Frontend/CompilerInvocation.h
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/lib/Semantics/semantics.cpp
A flang/module/.clang-format
A flang/module/__cuda_builtins.f90
A flang/module/__cuda_device.f90
A flang/module/__fortran_builtins.f90
A flang/module/__fortran_ieee_exceptions.f90
A flang/module/__fortran_type_info.f90
A flang/module/__ppc_intrinsics.f90
A flang/module/__ppc_types.f90
A flang/module/cooperative_groups.f90
A flang/module/cudadevice.f90
A flang/module/flang_debug.f90
A flang/module/ieee_arithmetic.f90
A flang/module/ieee_exceptions.f90
A flang/module/ieee_features.f90
A flang/module/iso_c_binding.f90
A flang/module/iso_fortran_env.f90
A flang/module/iso_fortran_env_impl.f90
A flang/module/mma.f90
M flang/test/CMakeLists.txt
M flang/test/Driver/Inputs/ieee_arithmetic.mod
M flang/test/Driver/Inputs/iso_fortran_env.mod
R flang/test/Driver/intrinsic-module-path.F90
A flang/test/Driver/intrinsic-module-path.f90
M flang/test/Driver/lto-fatlto.f90
M flang/test/Driver/pp-fixed-form.f90
M flang/test/Lower/HLFIR/type-bound-call-mismatch.f90
M flang/test/Lower/OpenMP/simd_aarch64.f90
M flang/test/Lower/OpenMP/target-enter-data-default-openmp52.f90
M flang/test/Preprocessing/fixed-free.f
M flang/test/Preprocessing/no-pp-if.f90
M flang/test/Semantics/bug163242.f90
M flang/test/Semantics/bug164303.f90
M flang/test/lit.cfg.py
M flang/test/lit.site.cfg.py.in
M flang/tools/CMakeLists.txt
M flang/tools/bbc/bbc.cpp
A flang/tools/f18/CMakeLists.txt
A flang/tools/f18/dump.cpp
M llvm/runtimes/CMakeLists.txt
M openmp/CMakeLists.txt
M openmp/README.rst
A openmp/cmake/modules/LibompCheckFortranFlag.cmake
M openmp/cmake/modules/LibompHandleFlags.cmake
M openmp/module/CMakeLists.txt
M openmp/runtime/CMakeLists.txt
M openmp/runtime/cmake/LibompExports.cmake
M openmp/runtime/test/lit.cfg
M openmp/runtime/test/lit.site.cfg.in
M runtimes/CMakeLists.txt
Log Message:
-----------
Revert "[Flang] Move builtin .mod generation into runtimes (Reapply #137828) (#169638)"
This reverts commit 7675fc79c802cf7f6a95660f6ee59bf6cb62102f.
Requested in PR:
https://github.com/llvm/llvm-project/pull/169638#issuecomment-3634227707
Commit: 9e2b8b0254ccd26dc6f3c7abf053646429d9f15d
https://github.com/llvm/llvm-project/commit/9e2b8b0254ccd26dc6f3c7abf053646429d9f15d
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M lldb/include/lldb/Interpreter/CommandReturnObject.h
M lldb/source/Commands/CommandObjectMultiword.cpp
M lldb/source/Interpreter/CommandInterpreter.cpp
M lldb/source/Interpreter/CommandReturnObject.cpp
M lldb/test/API/functionalities/abbreviation/TestAbbreviations.py
M lldb/test/API/functionalities/ambigous_commands/TestAmbiguousCommands.py
M lldb/test/API/functionalities/wrong_commands/TestWrongCommands.py
M lldb/test/Shell/Commands/command-wrong-subcommand-error-msg.test
Log Message:
-----------
[lldb] Remove CommandReturnObject::AppendRawError (#171517)
Remove `CommandReturnObject::AppendRawError` and replace its two uses
with `AppendError`, which correctly prefixes the message with `error:`.
The comment for the method is outdated and the prefixing is clearly
desired in both situations.
Commit: 794218bc53a42bd87048317506e8794deb0dc8be
https://github.com/llvm/llvm-project/commit/794218bc53a42bd87048317506e8794deb0dc8be
Author: Prajwal Nadig <pnadig at apple.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/lib/ExtractAPI/DeclarationFragments.cpp
M clang/test/ExtractAPI/typedef.c
Log Message:
-----------
[ExtractAPI] Format typedef params correctly (#171516)
Typically, pointer types are formatted in a way where the identifier
comes right after the type definition without a space separating them,
e.g. `int *foo`, where the type is `int *` and the identifier is `foo`.
However, if a type alias to a pointer type is used, the emitted
declaration fragments are incorrect due to the missing space between the
type and identifier, like in the below example:
```
typedef int *T;
// The declaration fragment contains `Tbar` instead of `T bar`
void foo(T bar);
```
This patch checks if pointer types are aliased, and inserts the space
correctly if so.
rdar://132022003
Commit: fb29a6e4075894e799dd2fb29399c478a4df4462
https://github.com/llvm/llvm-project/commit/fb29a6e4075894e799dd2fb29399c478a4df4462
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoXSf.td
Log Message:
-----------
[RISCV] Fix formatting in RISCVInstrInfoXSf.td. NFC (#171500)
Commit: 84b9e444454a06ddf01f568164e3d5c8d956707d
https://github.com/llvm/llvm-project/commit/84b9e444454a06ddf01f568164e3d5c8d956707d
Author: adams381 <adams at nvidia.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
A clang/test/CIR/CodeGen/kr-func-promote.c
Log Message:
-----------
[CIR] Add Function Argument Demotion support (#170915)
This PR migrates the Function Argument Demotion feature from the
incubator repository to upstream. The feature handles K&R-style function
parameters that are promoted (e.g., short->int, float->double) and
demotes them back to their declared types.
## Changes
- Add emitArgumentDemotion helper function for type demotion
- Create emitFunctionProlog function to handle function prologue setup
(addresses existing TODO to move parameter handling logic)
- Move parameter handling logic into emitFunctionProlog
- Add test case kr-func-promote.c to verify the feature
Tested: All CIR tests pass (320/321, 99.69%). The one unsupported test
is an expected failure.
Commit: 0a2e56df64c936bacc746aeb94878d66ee00dec3
https://github.com/llvm/llvm-project/commit/0a2e56df64c936bacc746aeb94878d66ee00dec3
Author: adams381 <adams at nvidia.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/lib/CIR/CodeGen/CIRGenDecl.cpp
M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
A clang/test/CIR/CodeGen/tls.c
A clang/test/CIR/IR/invalid-tls.cir
Log Message:
-----------
[CIR] Add support for thread-local storage (TLS) (#168662)
This commit adds full support for thread-local storage variables in
ClangIR, including code generation, lowering to LLVM IR, and
comprehensive testing.
Changes include:
- Added CIR_TLSModel enum with 4 TLS models (GeneralDynamic,
LocalDynamic, InitialExec, LocalExec) to CIROps.td
- Extended GlobalOp with optional tls_model attribute
- Extended GetGlobalOp with thread_local unit attribute
- Added verification to ensure thread_local GetGlobalOp references
globals with tls_model set
- Implemented GetDefaultCIRTLSModel() and setTLSMode() in CIRGenModule
- Updated getAddrOfGlobalVar() to handle TLS access
- Removed MissingFeatures assertions for TLS operations
- Added lowering of GetGlobalOp with TLS to llvm.threadlocal.address
intrinsic
- Added lowering of GlobalOp with tls_model to LLVM thread_local globals
- Added comprehensive test with CIR, LLVM, and OGCG checks
Known limitations (matching incubator):
- Static local TLS variables not yet implemented
- TLS_Dynamic with wrapper functions not yet implemented
Fixes #153270
Commit: 27651133e213a6a1eb4d0e47837625cee3613111
https://github.com/llvm/llvm-project/commit/27651133e213a6a1eb4d0e47837625cee3613111
Author: anjenner <161845516+anjenner at users.noreply.github.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/docs/AMDGPUUsage.rst
M llvm/docs/ReleaseNotes.md
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructions.td
M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td
M llvm/lib/Target/AMDGPU/BUFInstructions.td
M llvm/lib/Target/AMDGPU/DSInstructions.td
M llvm/lib/Target/AMDGPU/FLATInstructions.td
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/Analysis/UniformityAnalysis/AMDGPU/atomics.ll
M llvm/test/Bitcode/amdgcn-atomic.ll
R llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.global.atomic.csub.ll
M llvm/test/CodeGen/AMDGPU/atomics_cond_sub.ll
R llvm/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.cond.sub.ll
Log Message:
-----------
AMDGPU: Drop and upgrade llvm.amdgcn.atomic.csub/cond.sub to atomicrmw (#105553)
These both perform conditional subtraction, returning the minuend and
zero respectively, if the difference is negative.
Commit: 7062cd63d0c258ac499c82dc233259aecac29b06
https://github.com/llvm/llvm-project/commit/7062cd63d0c258ac499c82dc233259aecac29b06
Author: Farzon Lotfi <farzonlotfi at microsoft.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/docs/LanguageExtensions.rst
M clang/docs/MatrixTypes.rst
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Basic/LangOptions.h
M clang/include/clang/Options/Options.td
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/Sema/SemaChecking.cpp
A clang/test/Driver/fmatrix-memory-layout.c
A clang/test/Sema/matrix-col-major-builtin-disable.c
M clang/unittests/Frontend/CompilerInvocationTest.cpp
Log Message:
-----------
[Matrix] Add a row\col major toggle in the clang driver (#167628)
fixes #167621
- define the new options in `Options.td` limit the naming to row-major
or column-major.
- In `ToolChains/Clang.cpp` limit the opt usage to only when
`-fenable-matrix` is used.
---------
Co-authored-by: Florian Hahn <flo at fhahn.com>
Commit: a9bcedf49f813977a6ba5e770cf0041bfc2fa6b1
https://github.com/llvm/llvm-project/commit/a9bcedf49f813977a6ba5e770cf0041bfc2fa6b1
Author: Alex Voicu <alexandru.voicu at amd.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
M llvm/lib/Target/SPIRV/SPIRVPreLegalizer.cpp
Log Message:
-----------
[NFC][SPIRV] Fix breakage introduced by #170798 (#171513)
Adding support for i128 missed a few quirks of legalisation, which were
masked previously by early erroring out on bitwidth > 64. i128 uses
should be legal, we decide whether or not the resulting module is viable
(i.e. if the required extensions are present) in the ModuleAnalysis
pass.
Commit: 782f50792f99740f6cb371f66511f9778104f095
https://github.com/llvm/llvm-project/commit/782f50792f99740f6cb371f66511f9778104f095
Author: Derek Schuff <dschuff at chromium.org>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp
M lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.h
M lldb/test/Shell/Symtab/Inputs/simple.wasm.yaml
M lldb/test/Shell/Symtab/symtab-wasm.test
Log Message:
-----------
[lldb][Wasm] Handle imports when parsing Wasm name sections (#170960)
LLDB can use the wasm name section to populate its symbol table and get
names for functions. However the index space used in the name section is
the "function index space" which includes imported as well as locally
defined functions.
Commit: dda715df2d455e8fe0fcb8c2acef961933de1b7c
https://github.com/llvm/llvm-project/commit/dda715df2d455e8fe0fcb8c2acef961933de1b7c
Author: Maksim Panchenko <maks at fb.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M bolt/lib/Core/BinaryContext.cpp
A bolt/test/dwarf5-missing-dwo.c
Log Message:
-----------
[BOLT][DWARF] Improve reporting on missing DWOs (#171506)
List all required missing DWO files and report a summary with
recommendations on how to proceed.
Commit: 29760ce5d9b9eb54f85992c67408074e55f7ea6d
https://github.com/llvm/llvm-project/commit/29760ce5d9b9eb54f85992c67408074e55f7ea6d
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M lldb/source/Interpreter/CommandInterpreter.cpp
M lldb/test/API/functionalities/abbreviation/TestAbbreviations.py
M lldb/test/API/functionalities/ambigous_commands/TestAmbiguousCommands.py
M lldb/test/API/functionalities/wrong_commands/TestWrongCommands.py
Log Message:
-----------
[lldb] Fix capitalization in ambiguous command error (#171519)
We follow LLVM's style guide for diagnostics, which instructs to start
the first sentence with a lowercase letter, and finish the last sentence
without a period, if it would end in one otherwise.
Commit: 21147e7c95c03f554d4a7fb9b55b8e459357eb49
https://github.com/llvm/llvm-project/commit/21147e7c95c03f554d4a7fb9b55b8e459357eb49
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
A mlir/include/mlir/Dialect/OpenACC/OpenACCUtilsTiling.h
M mlir/lib/Dialect/OpenACC/Utils/CMakeLists.txt
A mlir/lib/Dialect/OpenACC/Utils/OpenACCUtilsTiling.cpp
M mlir/unittests/Dialect/OpenACC/CMakeLists.txt
A mlir/unittests/Dialect/OpenACC/OpenACCUtilsTilingTest.cpp
Log Message:
-----------
[mlir][acc] Add loop tiling utilities for OpenACC (#171490)
Add utilities in OpenACCUtilsTiling.h/.cpp to support tiling
transformations on acc.loop operations:
- uncollapseLoops: Expand collapsed loops with multiple IVs into nested
loop structures when tile count exceeds collapse count
- tileACCLoops: Transform loop nests into tile and element loops based
on provided tile sizes, with automatic resolution of unknown tile sizes
(tile(*) represented as -1)
These utilities prepare for the ACCLoopTiling pass which handles the
OpenACC loop tile directive.
---------
Co-authored-by: Vijay Kandiah <vkandiah at nvidia.com>
Commit: 687986eb50c10f5dab4b11aeb65bd1c03a102986
https://github.com/llvm/llvm-project/commit/687986eb50c10f5dab4b11aeb65bd1c03a102986
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/docs/CMake.rst
Log Message:
-----------
[Docs] Add documentation for LLVM_ENABLE_CURL (#170928)
Commit: 53cd4ab41373d07776dc46b75c6759d980f0fbef
https://github.com/llvm/llvm-project/commit/53cd4ab41373d07776dc46b75c6759d980f0fbef
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/ShrinkWrap.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.h
M llvm/lib/Target/AArch64/AArch64RedundantCondBranchPass.cpp
M llvm/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp
M llvm/test/CodeGen/AArch64/arm64-shrink-wrapping.ll
M llvm/test/CodeGen/AArch64/block-placement-optimize-branches.ll
M llvm/test/CodeGen/AArch64/lr-reserved-for-ra-live-in.ll
M llvm/test/CodeGen/AArch64/pr164181.ll
M llvm/test/CodeGen/AArch64/pr166870.ll
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll.generated.expected
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll.nogenerated.expected
Log Message:
-----------
Revert "[AArch64] Run optimizeTerminators earlier too." (#171505)
Reverts llvm/llvm-project#170907
Causes crashes, see
https://github.com/llvm/llvm-project/pull/170907#issuecomment-3634271414
Commit: eab9394a45276f6eba9e0530b2964325efb725e5
https://github.com/llvm/llvm-project/commit/eab9394a45276f6eba9e0530b2964325efb725e5
Author: Naveen Seth Hanig <naveen.hanig at outlook.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/include/clang/DependencyScanning/DependencyScannerImpl.h
M clang/lib/DependencyScanning/DependencyScannerImpl.cpp
M clang/lib/DependencyScanning/DependencyScanningWorker.cpp
Log Message:
-----------
[clang][DependencyScanning] Fix spelling mistake for DiagnosticsEngineWithDiagOpts (#171535)
Commit: c155124bb5189cf0c7fd7db14e07cf3932a11796
https://github.com/llvm/llvm-project/commit/c155124bb5189cf0c7fd7db14e07cf3932a11796
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M mlir/lib/Dialect/OpenACC/Utils/OpenACCUtilsTiling.cpp
Log Message:
-----------
[mlir][acc] Fix build error for tiling API return value (#171546)
The build error looks like:
error: could not convert 'newLoops' from 'SmallVector<[...],3>' to
'SmallVector<[...],6>'
310 | return newLoops;
The fix is to remove the explicit size in the local declaration for the
SmallVector being returned.
Commit: 2d0c14cfb5ca87f15269832269f9e240bad2601d
https://github.com/llvm/llvm-project/commit/2d0c14cfb5ca87f15269832269f9e240bad2601d
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Port 21147e7c95c03f554d4a7fb9b55b8e459357eb49 (#171545)
Adds a couple additional deps to OpenACCUtils.
Commit: b3a5ad14bff5888b6095dbfe31b6ff0bf1200d30
https://github.com/llvm/llvm-project/commit/b3a5ad14bff5888b6095dbfe31b6ff0bf1200d30
Author: Mike Urbach <mikeurbach at gmail.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M mlir/include/mlir-c/Dialect/IRDL.h
M mlir/lib/CAPI/Dialect/IRDL.cpp
M mlir/test/CAPI/irdl.c
Log Message:
-----------
[MLIR][IRDL] Add C API for IRDL Variadicity attributes. (#171076)
This add the basic APIs to create VariadicityAttr and
VariadicityArrayAttr attributes from the C API. This is necessary for
C API users that want to create IRDL dialect declarations.
Commit: f309fabdfc3b6e70968de7e9deef40b3995911b5
https://github.com/llvm/llvm-project/commit/f309fabdfc3b6e70968de7e9deef40b3995911b5
Author: Jianjian Guan <jacquesguan at me.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-insert-subvector.mir
Log Message:
-----------
[RISCV][GISel] Fix legalizer of G_INSERT_SUBVECTOR (#171091)
Fix early exit condition and use the right type as mask type of
vslideup.
Commit: 17b13e9e3f43d7e1d7036e8b03451148e8250b45
https://github.com/llvm/llvm-project/commit/17b13e9e3f43d7e1d7036e8b03451148e8250b45
Author: KAWASHIMA Takahiro <t-kawashima at fujitsu.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M flang/docs/Unsigned.md
Log Message:
-----------
[flang][docs] Correct the title in Unsigned.md (#171553)
Probablly the original author copied `Extensions.md` and forgot to
change the title.
Commit: 09eb25f1fa47b3776e291fb96bd8664e027de27d
https://github.com/llvm/llvm-project/commit/09eb25f1fa47b3776e291fb96bd8664e027de27d
Author: KAWASHIMA Takahiro <t-kawashima at fujitsu.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M flang/docs/OptionComparison.md
Log Message:
-----------
[flang][docs] Replace Flang to Classic Flang in old doc (#171558)
This document was written when Flang was known as F18 and Classic Flang
was known as Flang. The term "Flang" in this document refers to Classic
Flang, except in the first paragraph.
Also, a trivial HTML error is fixed.
Commit: 468cffb72d1abc657f8c4fa24cb79a5fbe1f7fff
https://github.com/llvm/llvm-project/commit/468cffb72d1abc657f8c4fa24cb79a5fbe1f7fff
Author: Brandon Wu <brandon.wu at sifive.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/test/CodeGen/RISCV/rvv/vfadd-sdnode.ll
Log Message:
-----------
[NFC][RISCV] Make vfadd attribute list follow other tests (#170864)
Commit: 01c4eb5b9b0690692638e8be353e1c6cf2da5d9a
https://github.com/llvm/llvm-project/commit/01c4eb5b9b0690692638e8be353e1c6cf2da5d9a
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang-tools-extra/clangd/ClangdLSPServer.cpp
M clang-tools-extra/clangd/ClangdServer.h
M clang-tools-extra/clangd/GlobalCompilationDatabase.cpp
M clang-tools-extra/clangd/GlobalCompilationDatabase.h
M clang-tools-extra/clangd/tool/Check.cpp
M clang-tools-extra/clangd/tool/ClangdMain.cpp
M clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp
Log Message:
-----------
Revert "[clangd] Add a (currently hidden) --strong-workspace-mode flag (#155905)"
This reverts commit 2fa492726e774c050d6f21d57990c8bfbd7f1400.
This caused sanitizer bots to fail and sanitizer errors to show up in
our downstream testing:
```
[ RUN ] LSPTest.DiagnosticsHeaderSaved
<<< initialize: {}
<-- initialize(0)
third_party/llvm/llvm-project/clang-tools-extra/clangd/ClangdLSPServer.cpp:557:14: runtime error: load of value 112, which is not a valid value for type 'bool'
```
With ASan at -O1.
Commit: 390f17f2db07f55716ad60b40192fa2049e4a8b3
https://github.com/llvm/llvm-project/commit/390f17f2db07f55716ad60b40192fa2049e4a8b3
Author: Peter Collingbourne <pcc at google.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/test/CodeGen/AArch64/ptrauth-irelative.ll
Log Message:
-----------
AArch64: Emit PAuth ifuncs into the same comdat as the containing global.
PAuth ifuncs contain a relocation pointing to the section they are
relocating (the place), so they need to be in the same comdat in order
to avoid relocations pointing to discarded sections.
Reviewers: atrosinenko, kovdan01, fmayer
Reviewed By: fmayer
Pull Request: https://github.com/llvm/llvm-project/pull/170944
Commit: c642fa034fd8c6c33b0932615e961bcc4d51979a
https://github.com/llvm/llvm-project/commit/c642fa034fd8c6c33b0932615e961bcc4d51979a
Author: Peter Collingbourne <pcc at google.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/test/CodeGen/AArch64/ptrauth-irelative.ll
M llvm/test/CodeGen/AArch64/ptrauth-reloc.ll
Log Message:
-----------
AArch64: Relax restriction on discriminator when PAuth ifunc used.
When a PAuth ifunc is being used, we can represent any discriminator that
we want in the code and don't need to be restricted to 16 bits. For now we
only need this capability for address discriminated ptrauth expressions,
so keep the restriction in place for other discriminators.
Reviewers: atrosinenko, fmayer
Reviewed By: fmayer
Pull Request: https://github.com/llvm/llvm-project/pull/170945
Commit: 8b87edfa689a3d02ce85ab908fb510585759dde9
https://github.com/llvm/llvm-project/commit/8b87edfa689a3d02ce85ab908fb510585759dde9
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/test/Transforms/InstSimplify/vp-reverse.ll
Log Message:
-----------
[InstSimplify] Ignore mask when combinining vp.reverse(vp.reverse). (#171542)
The mask doesn't really affect the reverse. It only poisons the masked
off elements in the results. It should be ok to ignore the mask if we
can eliminate the pair.
I don't have a specific use case for this, but it matches what I had
implemented in our downstream before the current upstream
implementation. Submitting upstream so I can remove the delta
in my downstream.
Commit: a8a15515c99c5eeb77ad825474f818887ddc70e8
https://github.com/llvm/llvm-project/commit/a8a15515c99c5eeb77ad825474f818887ddc70e8
Author: Susan Tan (ス-ザン タン) <zujunt at nvidia.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
M mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
Log Message:
-----------
[acc] RegionBranchOpInterface for acc regions (#171533)
Defining RegionBranchOpInterface for acc regions will help dataflow
analysis to propagate IN/OUT sets without losing information
Commit: ec84deac747b47dd530c4a0a1fbaa27584184962
https://github.com/llvm/llvm-project/commit/ec84deac747b47dd530c4a0a1fbaa27584184962
Author: Tom Stellard <tstellar at redhat.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M .github/workflows/release-documentation.yml
Log Message:
-----------
workflows/release-documentation: Fix pull request creation (#168981)
Commit: e7015c9afb54d89f1a9df8d3f6bcbea322eac0a2
https://github.com/llvm/llvm-project/commit/e7015c9afb54d89f1a9df8d3f6bcbea322eac0a2
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_posix.h
Log Message:
-----------
[compiler-rt] Fix usage of `stdin`/`stdout` (#171560)
>From #170809.
Causes compile errors when `stdin`/`stdout` are #defined in stdio.h.
Commit: 0bac8f1729512a0b392908d6a57a00b0387a855f
https://github.com/llvm/llvm-project/commit/0bac8f1729512a0b392908d6a57a00b0387a855f
Author: Ben Dunkin <108952361+bdunkin at users.noreply.github.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M clang/lib/Format/TokenAnnotator.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Handle templates in qualified typenames (#143194)
This fixes the `SpaceBeforeParensOptions.AfterFunctionDeclarationName`
and `SpaceBeforeParensOptions.AfterFunctionDefinitionName` options not
adding spaces when a template type's constructor or destructor is
forward declared or defined outside of the type definition.
Attribution Note - I have been authorized to contribute this change on
behalf of my company: ArenaNet LLC
Commit: 21871bb650cde9386a4961329397ed36ba6bfe2b
https://github.com/llvm/llvm-project/commit/21871bb650cde9386a4961329397ed36ba6bfe2b
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVRegisterInfo.td
A llvm/test/CodeGen/RISCV/rvv/pr171141.ll
M llvm/test/CodeGen/RISCV/rvv/subregister-undef-early-clobber.mir
Log Message:
-----------
[RISCV] Add fractional LMUL register classes for inline assembly. (#171278)
Inline assembly uses the first type from the register class to
connect to the rest of SelectionDAG. By adding fractional LMUL
register classes, we can ensure that this type is the size of the
types we use for fractional LMUL in the rest of SelectionDAG.
This allows us to remove some of the handling we had in
splitValueIntoRegisterParts/joinRegisterPartsIntoValue. This code
was incorrectly handling v16i4 arguments/returns which should be
any_extend to v16i8 to match type legalization. Instead we widened
v16i4 -> v32i4 then bitcasted to v16i8. This merged pairs of i4
elements into an i8 element instead of keeping them as separate
elements that have been extended to i8.
This is an alternative to #171243.
Fixes #171141.
Commit: 570bceaa19829cb5943187b8ed5699a14a74042b
https://github.com/llvm/llvm-project/commit/570bceaa19829cb5943187b8ed5699a14a74042b
Author: Sadaf Ebrahimi <sadafebrahimi at google.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M compiler-rt/lib/scudo/standalone/primary64.h
Log Message:
-----------
[scudo] Add last release time info to getStats (#170902)
Knowing when the last page release happened can help us figure out if
the page release is skipped or not.
Commit: aebab0578b8020cfc05542cfeae5220e408c4a21
https://github.com/llvm/llvm-project/commit/aebab0578b8020cfc05542cfeae5220e408c4a21
Author: Vikram Hegde <Vikram.Hegde at amd.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/include/llvm/Passes/CodeGenPassBuilder.h
M llvm/test/CodeGen/AMDGPU/llc-pipeline-npm.ll
Log Message:
-----------
[NPM] Schedule PhysicalRegisterUsageAnalysis before RegUsageInfoCollectorPass (#168832)
RegUsageInfoCollectorPass requires PhysicalRegisterUsageAnalysis to be valid. this change is required since its a module analysis.
Commit: 7464b860e240d76c45cdf0a648f68dbb73b27ea7
https://github.com/llvm/llvm-project/commit/7464b860e240d76c45cdf0a648f68dbb73b27ea7
Author: Kinoshita Kotaro <k.kotaro at fujitsu.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64Features.td
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/lib/Target/AArch64/AArch64Processors.td
M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
M llvm/test/CodeGen/AArch64/sve-ld1-addressing-mode-reg-imm.ll
M llvm/test/CodeGen/AArch64/sve-st1-addressing-mode-reg-imm.ll
Log Message:
-----------
[AArch64][SVE] Add SubtargetFeature to disable lowering unpredicated loads/stores as LDR/STR (#170256)
PR #127837 changed the lowering for unpredicated loads/stores to use LDR/STR instead of LD1/ST1.
However, on some CPUs, such as A64FX, there is a performance difference between LD1/ST1 and LDR/STR.
As a result, the lowering introduced in #127837 can cause a performance regression on these targets.
This patch adds a SubtargetFeature `disable-unpredicated-ld-st-lower` to disable this lowering.
It is enabled for the A64FX target.
Commit: 13d99e3e6ea583ffc26469de041bf5b7a55ba67b
https://github.com/llvm/llvm-project/commit/13d99e3e6ea583ffc26469de041bf5b7a55ba67b
Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
Log Message:
-----------
[RISCV] Fix wrong use of SiFiveP400GetVLMAX in RISCVSchedSiFiveP600 (#171562)
There is no difference of functionality and I believe this is a
copy-paste mistake. :-)
Commit: fcdac8182b834fb9c99f16ce9e2198ba07b62178
https://github.com/llvm/llvm-project/commit/fcdac8182b834fb9c99f16ce9e2198ba07b62178
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoF.td
Log Message:
-----------
[RISCV] Use frmarg instead of ixlenimm in PseudoFROUND. NFC (#171563)
This is expanded with a custom inserter and this immediate will be
copied to the frm operand of a non-pseudo instruction.
Commit: d18cdc99bc1a8814deec1de13c92a867cf8b83bd
https://github.com/llvm/llvm-project/commit/d18cdc99bc1a8814deec1de13c92a867cf8b83bd
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M llvm/include/llvm/TargetParser/RISCVTargetParser.h
M llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp
M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
M llvm/lib/TargetParser/RISCVTargetParser.cpp
M llvm/unittests/TargetParser/RISCVTargetParserTest.cpp
Log Message:
-----------
[RISCVInsertVSETVLI] Don't allow getSEW/getLMUL to be called for hasSEWLMULRatioOnly(). NFC (#171554)
Refactor some logic in transferBefore to handle hasSEWLMULRatioOnly()
before calling getSEW/getLMUL.
Update adjustIncoming to use getSEWLMULRatio(). Update the interface of
RISCVVType::getSameRatioLMUL to take the ratio instead of SEW and LMUL.
Update the few other callers to call RISCVVType::getSEWLMULRatio first.
Commit: efda519a909ff140518301c1235381d865dc4305
https://github.com/llvm/llvm-project/commit/efda519a909ff140518301c1235381d865dc4305
Author: Luke Lau <luke at igalia.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/test/Transforms/LoopVectorize/AArch64/predicated-costs.ll
Log Message:
-----------
[LV] Use branch_weights metadata in getPredBlockCostDivisor test. NFC (#171299)
This is more reliable in the event that the trivial fcmp gets folded
away.
Commit: f40c8e752453fa08b46e21f69842dcf4c8d2422e
https://github.com/llvm/llvm-project/commit/f40c8e752453fa08b46e21f69842dcf4c8d2422e
Author: Fangrui Song <i at maskray.me>
Date: 2025-12-09 (Tue, 09 Dec 2025)
Changed paths:
M lld/ELF/Target.h
Log Message:
-----------
ELF: Remove stray ;. NFC
Commit: dc8fde08211b361b96865cb6e4e7554ddaedeff9
https://github.com/llvm/llvm-project/commit/dc8fde08211b361b96865cb6e4e7554ddaedeff9
Author: Bala_Bhuvan_Varma <balabhuvanvarma at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M mlir/lib/Target/LLVMIR/ModuleImport.cpp
M mlir/test/Target/LLVMIR/Import/constant.ll
M mlir/test/Target/LLVMIR/Import/exception.ll
M mlir/test/Target/LLVMIR/Import/zeroinitializer.ll
Log Message:
-----------
[MLIR][LLVMIR] Fix LLVM IR import of ZeroInitializers to constant zero (#171107)
Constant zero aggregate structures are imported to from llvm IR as
undef.
This includes for example LandingPad Instructions which have zero value
filters, structs.
This fixes the import to use the zeroOp to materialize a
zero-initialized constant.
Commit: 548901000deeda7ae90c167cb77f43cd42d58304
https://github.com/llvm/llvm-project/commit/548901000deeda7ae90c167cb77f43cd42d58304
Author: Michael Klemm <michael.klemm at amd.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M flang-rt/lib/runtime/assign.cpp
Log Message:
-----------
[Flang-rt] Implement same behavior as -O3 for zero-length arrays (#171480)
Commit: 1c7126d8dbeb542ec158665198c8106b8aaad180
https://github.com/llvm/llvm-project/commit/1c7126d8dbeb542ec158665198c8106b8aaad180
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanValue.h
Log Message:
-----------
[VPlan] Combine LiveIns fields into MapVector (NFC) (#170220)
Combine Value2VPValue and VPLiveIns into a single MapVector LiveIns
field, simplifying users.
Commit: 857b68f112ecb61c43a9aa5bc50fc1e0e7dcaf57
https://github.com/llvm/llvm-project/commit/857b68f112ecb61c43a9aa5bc50fc1e0e7dcaf57
Author: Jay Foad <jay.foad at amd.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/include/llvm/MC/MCInstrDesc.h
M llvm/test/TableGen/RegClassByHwMode.td
M llvm/test/TableGen/target-specialized-pseudos.td
M llvm/utils/TableGen/InstrInfoEmitter.cpp
Log Message:
-----------
[MC] Reorder TARGETInstrTable to shrink MCInstrDesc::ImplicitOffset (#171199)
Put ImplicitOps[] before OperandInfo[] in the generated
TARGETInstrTable. This means that offsets to entries into the (small)
ImplicitOps table do not need to skip over the (large) OperandInfo
table.
This allows shrinking ImplicitOffset from 32 bits to 16 bits
(effectively reverting #138127) which will allow expanding Opcode
instead without increasing the size of MCInstrDesc.
Commit: bd9651bf78f2b1713a8203e0bd5b97f7ff199924
https://github.com/llvm/llvm-project/commit/bd9651bf78f2b1713a8203e0bd5b97f7ff199924
Author: Oleksandr "Alex" Zinenko <git at ozinenko.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M mlir/include/mlir/Bindings/Python/NanobindAdaptors.h
M mlir/test/python/dialects/pdl_types.py
Log Message:
-----------
[mlir][py] avoid crashing on None contexts in custom `get`s (#171140)
Following a series of refactorings, MLIR Python bindings would crash if
a
dialect object requiring a context defined using
mlir_attribute/type_subclass
was constructed outside of the `ir.Context` context manager. The type
caster
for `MlirContext` would try using `ir.Context.current` when the default
`None`
value was provided to the `get`, which would also just return `None`.
The
caster would then attempt to obtain the MLIR capsule for that `None`,
fail,
but access it anyway without checking, leading to a C++ assertion
failure or
segfault.
Guard against this case in nanobind adaptors. Also emit a warning to the
user
to clarify expectations, as the default message confusingly says that
`None` is
accepted as context and then fails with a type error. Using Python C API
is
currently recommended by nanobind in this case since the surrounding
function
must be marked `noexcept`.
The corresponding test is in the PDL dialect since it is where I first
observed
the behavior. Core types are not using the `mlir_type_subclass`
mechanism and
are immune to the problem, so cannot be used for checking.
Commit: 43f0b6960e1816d1c1c5ec04ee2bc8c5638fb4e0
https://github.com/llvm/llvm-project/commit/43f0b6960e1816d1c1c5ec04ee2bc8c5638fb4e0
Author: Rana Pratap Reddy <109514914+ranapratap55 at users.noreply.github.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/include/clang/Basic/Builtins.def
M clang/lib/AST/ASTContext.cpp
Log Message:
-----------
[AMDGPU] Removal of language sensitive option for _Float16 and half('e') handling (#170443)
Removing the 'e' handling for the amdgcn builtins as we decided to use
_Float16 for both HIP/C++ and OpenCL
Commit: 56e092c089ed6194b617593eadea45787a29564f
https://github.com/llvm/llvm-project/commit/56e092c089ed6194b617593eadea45787a29564f
Author: Chuan-Yue Yuan <84860242+circYuan at users.noreply.github.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
A llvm/test/CodeGen/RISCV/GlobalISel/fp-fcanonicalize.ll
M llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir
Log Message:
-----------
[RISCV][GISel] Legalize the G_FCANONICALIZE instruction (#166162)
Commit: 62dbe573cf05135875e36fc2a81f5f56c0db5820
https://github.com/llvm/llvm-project/commit/62dbe573cf05135875e36fc2a81f5f56c0db5820
Author: Brad Smith <brad at comstyle.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
Log Message:
-----------
[compiler-rt][sanitizer] fix i386 build for Haiku (#171075)
r13 does not provide the trap err.
Co-authored-by: Jerome Duval <jerome.duval at gmail.com>
Commit: a108881b24ecfea8d194b33dd9fb211943065bca
https://github.com/llvm/llvm-project/commit/a108881b24ecfea8d194b33dd9fb211943065bca
Author: hev <wangrui at loongson.cn>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.h
M llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
M llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
M llvm/test/CodeGen/LoongArch/lasx/bitreverse.ll
M llvm/test/CodeGen/LoongArch/lasx/ir-instruction/avg.ll
A llvm/test/CodeGen/LoongArch/lasx/issue170976.ll
M llvm/test/CodeGen/LoongArch/lsx/bitreverse.ll
M llvm/test/CodeGen/LoongArch/lsx/ir-instruction/avg.ll
A llvm/test/CodeGen/LoongArch/lsx/issue170976.ll
Log Message:
-----------
[LoongArch] Custom lowering for vector logical right shifts of integers (#171097)
After PR #169491, the DAG combiner can still recreate vector UDIV in an
illegal type even after type legalization, which is the root cause of
issue #170976.
The optimization introduced in PR #169491 is still desirable, so this
patch adds custom lowering for vector integer logical right shifts to
prevent the DAG from producing nodes with illegal types.
Fixes #170976
Commit: 804e768bda1697ce0449eec844bd9ac4f29aed64
https://github.com/llvm/llvm-project/commit/804e768bda1697ce0449eec844bd9ac4f29aed64
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/test/CodeGen/X86/avgfloors-scalar.ll
M llvm/test/CodeGen/X86/avgflooru-scalar.ll
Log Message:
-----------
[DAG] Recognise AVGFLOOR (((A >> 1) + (B >> 1)) + (A & B & 1)) patterns (#169644)
Recognise 'LSB' style AVGFLOOR patterns.
Alive2:
[https://alive2.llvm.org/ce/z/nfSSk_](https://alive2.llvm.org/ce/z/nfSSk_)
Fixes #53648
Commit: 5759a3a7798a2c3b5535e0a6a0cd2e8f8632c48e
https://github.com/llvm/llvm-project/commit/5759a3a7798a2c3b5535e0a6a0cd2e8f8632c48e
Author: Mirko Brkušanin <Mirko.Brkusanin at amd.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/include/clang/Basic/BuiltinsAMDGPU.def
M clang/test/CodeGenOpenCL/amdgpu-cluster-dims.cl
M clang/test/CodeGenOpenCL/amdgpu-features.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx1250.cl
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPUMemoryUtils.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SOPInstructions.td
M llvm/lib/TargetParser/TargetParser.cpp
M llvm/test/CodeGen/AMDGPU/amdgpu-lower-exec-sync-and-module-lds.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-lower-exec-sync.ll
A llvm/test/CodeGen/AMDGPU/s-wakeup-barrier.ll
M llvm/test/MC/AMDGPU/gfx1250_asm_sop1.s
M llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_sop1.txt
Log Message:
-----------
[AMDGPU] Add s_wakeup_barrier instruction for gfx1250 (#170501)
Commit: 52efe037cca529ed5f8e6ec8d0978f279c829eea
https://github.com/llvm/llvm-project/commit/52efe037cca529ed5f8e6ec8d0978f279c829eea
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/test/AST/ByteCode/placement-new.cpp
Log Message:
-----------
[clang][bytecode] Enable some placement-new tests (#171567)
They used to cause problems. Use the BYTECODE define to enable them at
least for the bytecode interpreter.
Commit: 8c210640f6f43c8c0b2288d47f18d9a01bb98b7c
https://github.com/llvm/llvm-project/commit/8c210640f6f43c8c0b2288d47f18d9a01bb98b7c
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp
M llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.h
M llvm/test/CodeGen/AArch64/streaming-compatible-memory-ops.ll
Log Message:
-----------
[AArch64][SME] Lower memchr to __arm_sc_memchr in streaming[-compatible] functions (#168896)
This allows us to avoid some streaming-mode switches.
Commit: c567e28a9d1c8f184f9cfdc6f9e1c8a6bcb8d296
https://github.com/llvm/llvm-project/commit/c567e28a9d1c8f184f9cfdc6f9e1c8a6bcb8d296
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M libcxx/docs/ReleaseNotes/22.rst
M libcxx/include/__vector/vector_bool.h
M libcxx/test/benchmarks/containers/sequence/vector_bool.bench.cpp
Log Message:
-----------
[libc++] Optimize vector<bool>::reserve (#170137)
Apple M4:
```
Benchmark old new Difference % Difference
-------------------------------------------------------------------------- ------ ---------- ------------ --------------
vector<bool>(const_vector<bool>&) 12.73 12.87 0.14 1.07%
vector<bool>(size_type,_const_value_type&) 9.39 9.41 0.02 0.22%
vector<bool>(vector<bool>&&,_const_allocator_type&)_(different_allocators) 16.87 15.22 -1.65 -9.80%
vector<bool>(vector<bool>&&,_const_allocator_type&)_(equal_allocators) 2.68 2.73 0.05 1.90%
vector<bool>::reserve() 11.81 9.43 -2.38 -20.14%
Geomean 9.14 8.62 -0.53 -5.76%
```
Commit: 5195daf50ae89982a13121db697cedb6b4462ec0
https://github.com/llvm/llvm-project/commit/5195daf50ae89982a13121db697cedb6b4462ec0
Author: Timm Baeder <tbaeder at redhat.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/test/AST/ByteCode/new-delete.cpp
Log Message:
-----------
[clang][bytecode][NFC] Remove an outdated comment (#171569)
Both implementations emit the same diagnostics these days.
Commit: d6e6661f69ccaa243bf300cc2797452894d2d6b1
https://github.com/llvm/llvm-project/commit/d6e6661f69ccaa243bf300cc2797452894d2d6b1
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M mlir/lib/Bindings/Python/TransformInterpreter.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for llvm-include-order in TransformInterpreter.cpp (NFC)
Commit: 6f1cab2e905f1bb9fb263de3b360753c73ee2922
https://github.com/llvm/llvm-project/commit/6f1cab2e905f1bb9fb263de3b360753c73ee2922
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M mlir/unittests/Analysis/Presburger/PresburgerSetTest.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for misc-use-internal-linkage in PresburgerSetTest.cpp (NFC)
Commit: 4ff1bd53c25e252b6bafd50efde2499281fe8309
https://github.com/llvm/llvm-project/commit/4ff1bd53c25e252b6bafd50efde2499281fe8309
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M bolt/README.md
Log Message:
-----------
[BOLT][docs] Document commands to identify BOLT-ed binaries (#171458)
These have been useful to me in the past and I don't see any docs
referencing the `bolt_info` note either.
There is a test checking that it is emitted, so I assume it's something
we are ok with people looking for.
Commit: 4c7b5dfbc26880c5683494476c208ebb8c95bb22
https://github.com/llvm/llvm-project/commit/4c7b5dfbc26880c5683494476c208ebb8c95bb22
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M flang/docs/GettingStarted.md
Log Message:
-----------
[flang][docs] Do not recommend FLANG_ENABLE_WERROR=ON... (#171152)
...unless the reader is going to contribute to Flang.
Fixes #168911.
In which someone followed the getting started instructions but because
they were using GCC and it produced some warnings, those got upgraded to
errors and failed the build.
The GCC builds of anything in LLVM are always going to have some warning
of some kind, so while it would be nice to fix or silence them, let's
not inflict that on new developers.
This option defaults to `OFF` and is turned `ON` by a handful of bots,
so if the intent was to make developers more attentive to warnings, that
will still happen. Just a bit later, which that's better than putting
them off up front.
If they go on to contribute, they can switch to a Clang build and enable
the option to save themselves some post-commit hassle.
Commit: 53674e2da437646591a6d20397cfd6c645dbf250
https://github.com/llvm/llvm-project/commit/53674e2da437646591a6d20397cfd6c645dbf250
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M lldb/docs/resources/formatterbytecode.rst
Log Message:
-----------
[lldb][docs] Fix plaintext markers in Formatter bytecode doc (#171430)
RST uses double backtick for plain text. For single backtick it will try
to resolve it to a reference then fall back to plain text if it doesn't
resolve.
This leads to a lot of warnings like:
formatterbytecode.rst:7: WARNING: 'any' reference target not found:
~/.lldbinit
As seen on the publish-sphinx-docs bot.
Commit: 951795abaf0dbb2f955b333ccb5ce5f71cb82d24
https://github.com/llvm/llvm-project/commit/951795abaf0dbb2f955b333ccb5ce5f71cb82d24
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/docs/CommandGuide/lit.rst
M llvm/utils/lit/lit/TestTimes.py
M llvm/utils/lit/lit/cl_arguments.py
M llvm/utils/lit/lit/main.py
A llvm/utils/lit/tests/Inputs/filter-failed/fail.txt
A llvm/utils/lit/tests/Inputs/filter-failed/lit.cfg
A llvm/utils/lit/tests/Inputs/filter-failed/pass.txt
A llvm/utils/lit/tests/Inputs/filter-failed/unresolved.txt
A llvm/utils/lit/tests/Inputs/filter-failed/xfail.txt
A llvm/utils/lit/tests/Inputs/filter-failed/xpass.txt
A llvm/utils/lit/tests/filter-failed-delete.py
A llvm/utils/lit/tests/filter-failed-rerun.py
A llvm/utils/lit/tests/filter-failed.py
Log Message:
-----------
[llvm][lit] Add option to run only the failed tests (#158043)
This patch adds a new `--filter-failed` option to `llvm-lit`, which when
set, will only run the tests that have previously failed.
Commit: 680c20d1e39392e67d91f210995f7d97446ac40a
https://github.com/llvm/llvm-project/commit/680c20d1e39392e67d91f210995f7d97446ac40a
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M lldb/docs/resources/sbapi.rst
M lldb/include/lldb/API/SBError.h
M lldb/source/API/SBDebugger.cpp
M lldb/unittests/DAP/TestBase.cpp
Log Message:
-----------
[lldb] Document the behaviour of IsValid for SBError (#170862)
This reverts commit d20d84fec5945fcc16aa6f63879e1458d4af9ea6.
Fixes #169788, but in a different way.
In which I changed an SBError use so that when the function succeeded,
IsValid on the SBError would be true.
This seemed to make sense but SBError acts differently to other SB
classes in this respect. For something like SBMemoryRegionInfo, if
IsValid() is false, you can't do anything with it.
However for SBError, IsValid() true only means there's some underlying
error object in there. If the SBError represents a success, there's no
need to put anything in there.
You can see this intent from a lot of its methods, many have handling
for IsValid() false.
This is not a bug but a misunderstanding of what IsValid means. Yes it
does function the way I expected for most classes, but it does not for
SBError and though that's not intuitive, it is consistent with how we
describe IsValid in the documentation.
So instead of changing that method's use of SBError I'm documenting this
initially counterintuitive behaviour in the SBError header and on the
website (https://lldb.llvm.org/resources/sbapi.html).
Commit: 950f8a8d925d702b76c2f70bf950e5586b63f456
https://github.com/llvm/llvm-project/commit/950f8a8d925d702b76c2f70bf950e5586b63f456
Author: Wenju He <wenju.he at intel.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/include/clang/Basic/OpenCLExtensions.def
M clang/lib/Basic/Targets/AMDGPU.h
M clang/test/Misc/amdgcn.languageOptsOpenCL.cl
Log Message:
-----------
[OpenCL] Re-enable corresponding __opencl_* feature macros for OpenCL 2.0 core extensions (#171529)
Commit 423bdb2bf257e removed OpenCL 2.0 __opencl_* feature macros
(https://github.com/llvm/llvm-project/blob/fd73bdd662da/clang/lib/Headers/opencl-c-base.h#L60-L72)
from header and thus they are disabled by default for non-SPIR/SPIRV
targets now.
This PR re-enables them for OpenCL 2.0, and shall restore previous
behavior that these features macros were always defined for OpenCL 2.0
core extensions. After this PR, targets that support OpenCL 2.0 must
enable these feature macros via setSupportedOpenCLOpts API.
Commit: 365ae7afe26bd473f269be493ca5aaa5a5a596a4
https://github.com/llvm/llvm-project/commit/365ae7afe26bd473f269be493ca5aaa5a5a596a4
Author: Dan Blackwell <dan_blackwell at apple.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M compiler-rt/test/sanitizer_common/CMakeLists.txt
M compiler-rt/test/sanitizer_common/TestCases/Darwin/print-stack-trace-in-code-loaded-after-fork.cpp
M compiler-rt/test/sanitizer_common/TestCases/Darwin/symbolizer-function-offset-atos.cpp
M compiler-rt/test/sanitizer_common/TestCases/Posix/dedup_token_length_test.cpp
M compiler-rt/test/sanitizer_common/TestCases/Posix/posix_spawn.c
M compiler-rt/test/sanitizer_common/TestCases/sanitizer_coverage_trace_pc_guard.cpp
M compiler-rt/test/sanitizer_common/lit.site.cfg.py.in
Log Message:
-----------
[compiler-rt][sanitizer_common] Make sanitizer_common tests work for other Apple Platforms (#150994)
This commit addresses a longstanding TODO comment, by doing the
following:
* Modifies the CMakeLists to add the new test configs
* Modifies the relevant lit file to add the required envs
* Fixes the FileCheck match in
`Darwin/symbolizer-function-offset-atos.cpp`
* XFAILs any appropriate tests
rdar://107758331
Commit: d9291f18ec1a9434b63995bd6e519f4968138b5a
https://github.com/llvm/llvm-project/commit/d9291f18ec1a9434b63995bd6e519f4968138b5a
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M lldb/docs/resources/formatterbytecode.rst
Log Message:
-----------
[lldb][docs] Fix doc link syntax in bytecode formatter doc
This was flagged after the changes in 53674e2da437646591a6d20397cfd6c645dbf250.
Fixes warning:
formatterbytecode.rst:7: WARNING: 'any' reference target not found: ). To use custom data formatters, developers need to edit the global ``~/.lldbinit`
Commit: 86849629ae15bed4cc1613a1d1e95ba1c9a7aa59
https://github.com/llvm/llvm-project/commit/86849629ae15bed4cc1613a1d1e95ba1c9a7aa59
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M lldb/docs/index.rst
Log Message:
-----------
[lldb][docs] Remove dead link in toctree
Fixes warning:
index.rst:144: WARNING: toctree contains reference to nonexisting document 'use/python'
There used to be such a page but the URL now redirects
to "script-driven-debugging" which is in the "Python Reference"
section.
Commit: 3847648e84d2ff5194f605a8a9a5c0a5e5174939
https://github.com/llvm/llvm-project/commit/3847648e84d2ff5194f605a8a9a5c0a5e5174939
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/docs/CommandGuide/lit.rst
M llvm/utils/lit/lit/TestTimes.py
M llvm/utils/lit/lit/cl_arguments.py
M llvm/utils/lit/lit/main.py
R llvm/utils/lit/tests/Inputs/filter-failed/fail.txt
R llvm/utils/lit/tests/Inputs/filter-failed/lit.cfg
R llvm/utils/lit/tests/Inputs/filter-failed/pass.txt
R llvm/utils/lit/tests/Inputs/filter-failed/unresolved.txt
R llvm/utils/lit/tests/Inputs/filter-failed/xfail.txt
R llvm/utils/lit/tests/Inputs/filter-failed/xpass.txt
R llvm/utils/lit/tests/filter-failed-delete.py
R llvm/utils/lit/tests/filter-failed-rerun.py
R llvm/utils/lit/tests/filter-failed.py
Log Message:
-----------
Revert "[llvm][lit] Add option to run only the failed tests" (#171582)
Reverts llvm/llvm-project#158043
This was approved for earlier revisions but the tests were failing on
Windows. I pushed a speculative fix and that fixed the CI, which caused
auto-merge to merge the PR. But I'd like to have approval for the latest
revision. So reverting for now and resubmitting a new PR
Commit: 578a26ada2e51e90733b50d048b0d74ac48ab21c
https://github.com/llvm/llvm-project/commit/578a26ada2e51e90733b50d048b0d74ac48ab21c
Author: Diana Picus <Diana-Magda.Picus at amd.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/IR/Verifier.cpp
M llvm/test/CodeGen/AMDGPU/isel-amdgcn-cs-chain-intrinsic-w32.ll
M llvm/test/Verifier/AMDGPU/intrinsic-amdgpu-cs-chain.ll
Log Message:
-----------
[AMDGPU] Relax restrictions on amdgcn.cs.chain intrinsic (#169785)
We have a new use-case for chain functions, so slightly relax the
restriction on which calling conventions may contain calls to chain
functions.
Commit: fd0fb05ae196cb664ebdd8940aad20f9606c62f7
https://github.com/llvm/llvm-project/commit/fd0fb05ae196cb664ebdd8940aad20f9606c62f7
Author: Ivan Butygin <ivan.butygin at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
M mlir/test/Conversion/AMDGPUToROCDL/load_lds.mlir
Log Message:
-----------
[mlir][amdgpu] Add common gpu mem space conversions to `convert-amdgpu-to-rocdl` (#171543)
Without it `convert-amdgpu-to-rocdl` will fail to convert
`amdgpu.gather_to_lds` with `#gpu.address_space<workgroup>` mem space.
Commit: 0c179aa6bd6490806d91b9fe8b9422907d5fe21b
https://github.com/llvm/llvm-project/commit/0c179aa6bd6490806d91b9fe8b9422907d5fe21b
Author: Ebuka Ezike <yerimyah1 at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py
M lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py
Log Message:
-----------
[lldb-dap] Increase DAP default timeout (#170890)
DAP tests easily timeout when the computer is under-load.
This is easily noticeable if you run the test in a loop a compile llvm.
or running the test on slower CI/machines.
This affects mostly the `DAP_launch`, `DAP_attach`,
`DAP_restart_console` and occasionally `DAP_output` tests.
Would lead in the direction of enabling some of the test on windows.
```
File "/Volumes/workspace/Dev/llvm-project/lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py", line 1140, in request_launch
return self._send_recv(command_dict)
File "/Volumes/workspace/Dev/llvm-project/lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py", line 548, in _send_recv
raise ValueError(f"no response for {request!r}")
ValueError: no response for {'command': 'launch', 'type': 'request', 'arguments': {'program': '/Volumes/workspace/Dev/llvm-build/release/lldb-test-build.noindex/tools/lldb-dap/restart/TestDAP_restart_console.test_basic_functionality/a.out', 'initCommands': ['settings clear --all', 'settings set symbols.enable-external-lookup false', 'settings set target.inherit-tcc true', 'settings set target.disable-aslr false', 'settings set target.detach-on-error false', 'settings set target.auto-apply-fixits false', 'settings set plugin.process.gdb-remote.packet-timeout 60', 'settings set symbols.clang-modules-cache-path "/Volumes/workspace/Dev/llvm-build/release/lldb-test-build.noindex/module-cache-lldb"', 'settings set use-color false', 'settings set show-statusline false'], 'console': 'integratedTerminal', 'disableASLR': False, 'enableAutoVariableSummaries': False, 'enableSyntheticChildDebugging': False, 'displayExtendedBacktrace': False}, 'seq': 2}
Config=arm64-/Volumes/workspace/Dev/llvm-build/release/bin/clang
----------------------------------------------------------------------
Ran 2 tests in 28.579s
```
Increase the DEFAULT_TIMEOUT from 10 to 50
Commit: 5874ddffe705ae011825b8272da83e596da526ec
https://github.com/llvm/llvm-project/commit/5874ddffe705ae011825b8272da83e596da526ec
Author: Wenju He <wenju.he at intel.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/include/clang/Basic/OpenCLExtensions.def
M clang/test/SemaOpenCL/extension-version.cl
A clang/test/SemaOpenCL/intel-unsupported-extensions.cl
Log Message:
-----------
[OpenCL] Add cl_khr_subgroup_named_barrier and cl_intel_required_subgroup_size to OpenCLExtensions.def (#171433)
Fix typo cl_intel_bfloat16_conversion.
Add test for checking intel extension functions.
Commit: 1165e41c876f3beba938805329416647bd21ee5e
https://github.com/llvm/llvm-project/commit/1165e41c876f3beba938805329416647bd21ee5e
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/SelectOptimize.cpp
M llvm/test/CodeGen/AArch64/selectopt-cast.ll
Log Message:
-----------
[SelectOptimize] Fix incorrect -1 immediate for large integers (#170860)
This was creating a -1 with zero extension, while it needs to use sign
extension.
Commit: 036aed099e7e40dec3fb8b6557b242844dbd2523
https://github.com/llvm/llvm-project/commit/036aed099e7e40dec3fb8b6557b242844dbd2523
Author: Sirui Mu <msrlancern at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/MissingFeatures.h
M clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
A clang/test/CIR/CodeGen/atomic-scoped.c
M clang/test/CIR/CodeGen/atomic.c
Log Message:
-----------
[CIR] Add scoped atomic load operation (#171134)
Commit: 5a24dfa3399c2b636152a5bceec1431389eb7380
https://github.com/llvm/llvm-project/commit/5a24dfa3399c2b636152a5bceec1431389eb7380
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/test/CodeGen/AArch64/arm64-rounding.ll
M llvm/test/CodeGen/AArch64/floatdp_1source.ll
M llvm/test/CodeGen/AArch64/round-conv.ll
M llvm/test/CodeGen/AArch64/round-fptosi-sat-scalar.ll
M llvm/test/CodeGen/AArch64/round-fptoui-sat-scalar.ll
M llvm/test/CodeGen/AMDGPU/floor.ll
M llvm/test/CodeGen/ARM/arm32-round-conv.ll
M llvm/test/CodeGen/ARM/arm32-rounding.ll
M llvm/test/CodeGen/ARM/floorf.ll
M llvm/test/CodeGen/Mips/mips64-f128.ll
M llvm/test/CodeGen/PowerPC/ctr-minmaxnum.ll
M llvm/test/CodeGen/PowerPC/fminnum.ll
M llvm/test/CodeGen/PowerPC/rounding-ops.ll
M llvm/test/CodeGen/RISCV/double-zfa.ll
M llvm/test/CodeGen/RISCV/float-zfa.ll
M llvm/test/CodeGen/SystemZ/vec-max-05.ll
M llvm/test/CodeGen/SystemZ/vec-min-05.ll
M llvm/test/CodeGen/X86/fmaxnum.ll
M llvm/test/CodeGen/X86/fminnum.ll
M llvm/test/CodeGen/X86/pr31143.ll
M llvm/test/CodeGen/X86/rounding-ops.ll
Log Message:
-----------
[SDAG] Remove most non-canonical libcall handing (#171288)
This is a followup to https://github.com/llvm/llvm-project/pull/171114,
removing the handling for most libcalls that are already canonicalized
to intrinsics in the middle-end. The only remaining one is fabs, which
has more test coverage than the others.
Commit: 467af2715afc4d7fc2ae08b15b59556f7c30d2e7
https://github.com/llvm/llvm-project/commit/467af2715afc4d7fc2ae08b15b59556f7c30d2e7
Author: Ivan Butygin <ivan.butygin at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
M mlir/test/Conversion/AMDGPUToROCDL/load_lds.mlir
Log Message:
-----------
Revert "[mlir][amdgpu] Add common gpu mem space conversions to `conve… (#171594)
…rt-amdgpu-to-rocdl` (#171543)"
This reverts commit fd0fb05ae196cb664ebdd8940aad20f9606c62f7.
Forgot to link GPU lib and shared lib build failed.
Commit: 0e7adf2d724116a42f34169682595aad07dccc69
https://github.com/llvm/llvm-project/commit/0e7adf2d724116a42f34169682595aad07dccc69
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M lldb/docs/use/troubleshooting.rst
Log Message:
-----------
[lldb][docs] Describe how to check enabled features (#171468)
This makes use of `version -v` added by #170772,
along with fallback methods for LLDB prior to 22.
1. version --verbose (won't work prior to 22)
2. Scripting to call GetBuildConfiguration (won't work if you don't have
a scripting language
3. readelf/other platform's equivalent utility
readelf is recommended for Linux due to security concerns with ldd.
https://man7.org/linux/man-pages/man1/ldd.1.html
"some versions of ldd may attempt to obtain the
dependency information by attempting to directly
execute the program"
The drawback to that is it doesn't show dependencies of dependencies, so
I've noted that. People can use ldd if they trust the binary, but I've
made it clear how to avoid that and why you should avoid it.
Commit: 16aa79d444a32c8d8b4f2e60d58f785e47178987
https://github.com/llvm/llvm-project/commit/16aa79d444a32c8d8b4f2e60d58f785e47178987
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M lldb/docs/resources/formatterbytecode.rst
Log Message:
-----------
[lldb][docs] Fix table formatting in bytecode docs
Me adding extra backticks caused all these to be misaligned.
This didn't show up on the docs buildbot but did error in
CI on a later PR of mine.
Commit: 933960134b5951559d613f51d54e17d21c2ce809
https://github.com/llvm/llvm-project/commit/933960134b5951559d613f51d54e17d21c2ce809
Author: Folkert de Vries <folkert at folkertdev.nl>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
M llvm/test/MC/AArch64/armv8.3a-complex_missing.s
M llvm/test/MC/AArch64/directive-arch_extension.s
Log Message:
-----------
[AArch64] support `.arch_extension` for features that the CLI also accepts (#169999)
fixes https://github.com/llvm/llvm-project/issues/146866
The CLI and `.arch_extension` use a different list of features, and some
features that the CLI supports cannot currently be toggled using
`.arch_extension`. This PR fixes that, adding support for
`.arch_extension` for the following features:
- `dit`
- `brbe`
- `bti`
- `fcma`
- `jscvt`
- `pauth`
- `ssve`
- `wfxt`
The issue discusses that it is unfortunate that command line flag
parsing and assembly parsing don't share the infrastructure for
recognizing features, which can lead to inconsistencies like here. I
don't really see how I can combine them though, so for now this change
will fix the immediate problem.
---------
Co-authored-by: David Spickett <david.spickett at linaro.org>
Commit: 11e457c43d3fd042d899a68c10bcf6fc7c783322
https://github.com/llvm/llvm-project/commit/11e457c43d3fd042d899a68c10bcf6fc7c783322
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/bitcnt-big-integer.ll
Log Message:
-----------
[X86] Use vectorized i256 bit counts when we know the source originated from the vector unit (#171589)
Currently we only permit i256 CTTZ/CTLZ AVX512 lowering when the source
is loadable as GPR->FPU transition costs would outweigh the
vectorization benefit.
This patch checks for other cases where the source can avoid the GPR - a
mayFoldToVector helper checks for a bitcast originally from a vector
type, as well as constant values and the original mayFoldLoad check.
There will be other cases for the mayFoldToVector helper, but I've just
used this for CTTZ/CTLZ initially.
Commit: 2d65bdb00bfed1ace3f5dfeb925b69eda53b381a
https://github.com/llvm/llvm-project/commit/2d65bdb00bfed1ace3f5dfeb925b69eda53b381a
Author: Charles Zablit <c_zablit at apple.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M lldb/packages/Python/lldbsuite/test/decorators.py
A lldb/test/API/functionalities/breakpoint/jit_loader_rtdyld_elf/Makefile
A lldb/test/API/functionalities/breakpoint/jit_loader_rtdyld_elf/TestJitBreakPoint.py
A lldb/test/API/functionalities/breakpoint/jit_loader_rtdyld_elf/jitbp.cpp
R lldb/test/Shell/Breakpoint/jit-loader_rtdyld_elf.test
Log Message:
-----------
[lldb] convert jit-loader_rtdyld_elf.test to an API test (#170333)
This patch converts the `jit-loader_rtdyld_elf.test` test from a Shell
test to an API test.
This test is timing out in CI on Windows and the hang cannot be
reproduced at desk. Converting it to an API test would allow us to
instrument it better in order to trace the failure.
Commit: 5160a05b0e9f4c0d1df0ac8da41c6090955777cb
https://github.com/llvm/llvm-project/commit/5160a05b0e9f4c0d1df0ac8da41c6090955777cb
Author: Amr Hesham <amr96 at programmer.net>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/include/clang/CIR/MissingFeatures.h
M clang/lib/CIR/CodeGen/CIRGenCXXABI.h
M clang/lib/CIR/CodeGen/CIRGenException.cpp
M clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
M clang/test/CIR/CodeGen/try-catch-tmp.cpp
Log Message:
-----------
[CIR] Emit CatchParamOp in the catch region (#171169)
Emit structured CatchParamOp in the catch region
Issue https://github.com/llvm/llvm-project/issues/154992
Commit: fb8a7c774d62406bba98765236111159edfa96c1
https://github.com/llvm/llvm-project/commit/fb8a7c774d62406bba98765236111159edfa96c1
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M libunwind/CMakeLists.txt
M libunwind/test/CMakeLists.txt
Log Message:
-----------
[libunwind] Make sure libunwind test dependencies are installed before running tests (#171474)
This patch adds an installation step where we install libc++ in a fake
installation tree before testing libunwind. This is necessary because
some configurations (in particular "generic-merged") require libc++ to
be installed, since the libunwind tests are actually linking libc++.so
in which libc++abi.a and libunwind.a have been merged.
Without this, we were actually failing to find `libc++.so` to link
against and then linking against whatever system library we'd find in
the provided search directories. While this happens to work in the
current CI configuration, this breaks down when updating to newer build
tools.
Commit: 844590974f7518147d6f809ae14116e5acbe19d7
https://github.com/llvm/llvm-project/commit/844590974f7518147d6f809ae14116e5acbe19d7
Author: Charles Zablit <c_zablit at apple.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M lldb/include/lldb/Host/Terminal.h
M lldb/include/lldb/Host/common/DiagnosticsRendering.h
M lldb/source/Host/common/DiagnosticsRendering.cpp
M lldb/source/Host/common/Terminal.cpp
M lldb/unittests/Host/common/DiagnosticsRenderingTest.cpp
Log Message:
-----------
[lldb] improve the heuristics for checking if a terminal supports Unicode (#171491)
Commit: bfce02548d8ae3d20fd987c1b8aa56bd7578b1c9
https://github.com/llvm/llvm-project/commit/bfce02548d8ae3d20fd987c1b8aa56bd7578b1c9
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
M flang/lib/Lower/OpenMP/Clauses.cpp
M llvm/include/llvm/Frontend/OpenMP/ClauseT.h
Log Message:
-----------
[flang][OpenMP] Store list of expressions in InitializerT (#170923)
The INITIALIZER clause holds a stylized expression that can be
intiantiated with different types. Currently, the InitializerT class
only holds one expression, which happens to correspond to the first type
in the DECLARE_REDUCTION type list.
Change InitializerT to hold a list of expressions instead, one for each
type. Keep the lowering code unchanged by picking the first expression
from the list.
Commit: f85494f6afeb52c18b0fd55fbe340b4b6df630bd
https://github.com/llvm/llvm-project/commit/f85494f6afeb52c18b0fd55fbe340b4b6df630bd
Author: Ahmed Bougacha <ahmed at bougacha.org>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
A clang/test/Driver/print-enabled-extensions/aarch64-apple-m5.c
M clang/test/Driver/print-supported-cpus-aarch64.c
M clang/test/Misc/target-invalid-cpu-note/aarch64.c
M llvm/lib/Target/AArch64/AArch64Processors.td
M llvm/lib/Target/AArch64/AArch64Subtarget.cpp
M llvm/lib/Target/AArch64/AArch64Subtarget.h
M llvm/unittests/TargetParser/TargetParserTest.cpp
Log Message:
-----------
[AArch64] Define apple-m5/a19 CPUs. (#171187)
A19 and M5 have been released in fall 2025.
They add several features on top of M4/A18:
- MTE, CSSC, HBC
- SME2p1, SMEB16B16, SMEF16F16
- SPECRES2
This also bumps apple-latest to apple-m5.
Commit: 36865a1bc761762835781b095a394705af71c3d6
https://github.com/llvm/llvm-project/commit/36865a1bc761762835781b095a394705af71c3d6
Author: Ebuka Ezike <yerimyah1 at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M lldb/test/API/tools/lldb-dap/module/TestDAP_module.py
Log Message:
-----------
[lldb-dap] enable TestDAP_module on linux (#171584)
The issue was fixed in https://github.com/llvm/llvm-project/pull/163821
Commit: a7aa852ee55495379f52323e3729b32638182b21
https://github.com/llvm/llvm-project/commit/a7aa852ee55495379f52323e3729b32638182b21
Author: Amr Hesham <amr96 at programmer.net>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
A clang/test/CIR/CodeGen/noexcept.cpp
Log Message:
-----------
[CIR] Upstream CXXNoexceptExpr (#171462)
Upstream the support for CXXNoexceptExpr
Commit: 617ba837eecf39a65ef4183c36892f8bf58a74cc
https://github.com/llvm/llvm-project/commit/617ba837eecf39a65ef4183c36892f8bf58a74cc
Author: Evgenii Podkorytov <epodkorytov at nvidia.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Transforms/IPO/GlobalOpt.cpp
M llvm/test/Transforms/GlobalOpt/global-opt-addrspace.ll
Log Message:
-----------
[GlobalOpt] Preserve Address Space when recreating GV (#171211)
Fix for GlobalOpt pass: preserve Address Space when recreating GV
This fix prevents dropping `addrspace(1)` in the following code snippet
(see modified LIT-test) for `@llvm.compiler.used`:
Before global-opt
```
@_ZM2C = internal addrspace(1) global %struct.FakeDeviceGlobal zeroinitializer, align 8
@_ZL1C = internal addrspace(1) global %struct.FakeDeviceGlobal zeroinitializer, align 8
@llvm.compiler.used = appending addrspace(1) global [2 x ptr addrspace(4)] [ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZM2C to ptr addrspace(4)), ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZL1C to ptr addrspace(4))]
```
After global-opt
```
@_ZM2C = internal addrspace(1) global %struct.FakeDeviceGlobal zeroinitializer, align 8
@_ZL1C = internal addrspace(1) global %struct.FakeDeviceGlobal zeroinitializer, align 8
@llvm.compiler.used = appending global [2 x ptr addrspace(4)] [ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZM2C to ptr addrspace(4)), ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZL1C to ptr addrspace(4))]
```
With proposed fix `@llvm.compiler.used` will be re-created with
preserving original `addrspace(1)` as:
```
@llvm.compiler.used = appending addrspace(1) global [2 x ptr addrspace(4)] [ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZM2C to ptr addrspace(4)), ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZL1C to ptr addrspace(4))]
```
Commit: 1d0d7da57cdf9f29ab5bb3aca7be46302ea2b9fe
https://github.com/llvm/llvm-project/commit/1d0d7da57cdf9f29ab5bb3aca7be46302ea2b9fe
Author: Jacques Pienaar <jpienaar at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M mlir/include/mlir/IR/CMakeLists.txt
M mlir/include/mlir/IR/SymbolInterfaces.td
M mlir/include/mlir/IR/SymbolTable.h
M mlir/lib/IR/SymbolTable.cpp
A mlir/test/IR/test-verifiers-attr.mlir
M mlir/test/lib/Dialect/Test/TestAttrDefs.td
M mlir/test/lib/Dialect/Test/TestAttributes.cpp
M mlir/test/lib/Dialect/Test/TestAttributes.h
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[mlir] Add symbol user attribute interface. (#153206)
Enables verification of attributes, independent of op, that references symbols.
This enables verifying Attribute with symbol usage independent of operation
attached to (e.g., the validity is on the Attribute independent of the operation).
---------
Co-authored-by: Mehdi Amini <joker.eph at gmail.com>
Commit: 136e5e288402f5519fdba21c8838145399a27e07
https://github.com/llvm/llvm-project/commit/136e5e288402f5519fdba21c8838145399a27e07
Author: Ralf Jung <post at ralfj.de>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/docs/LangRef.rst
Log Message:
-----------
[LangRef] make consequences of NaN rules for pow(i) more explicit (#170177)
The NaN section says
> Floating-point math operations are allowed to treat all NaNs as if
they were quiet NaNs. For example, “pow(1.0, SNaN)” may be simplified to
1.0.
This seems worth also spelling out in the section for `pow` (and `powi`
which has a similar situation), to have everything concerning those
operations in a single place.
Commit: 3ba0ff61390255764a66f4876e2d5a6f8259d4e8
https://github.com/llvm/llvm-project/commit/3ba0ff61390255764a66f4876e2d5a6f8259d4e8
Author: Amr Hesham <amr96 at programmer.net>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
Log Message:
-----------
[CIR][NFC] Remove duplicate VisitCXXNoexceptExpr (#171624)
Remove duplicate VisitCXXNoexceptExpr to fix building ClangIR
Commit: 8c4950951269ec58296afbeba14e99aef467f84d
https://github.com/llvm/llvm-project/commit/8c4950951269ec58296afbeba14e99aef467f84d
Author: Rose Hudson <rose at krx.sh>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/CanonicalType.h
M clang/test/SemaCXX/type-traits.cpp
Log Message:
-----------
[Clang] remove qualifiers in getCanonicalTypeUnqualified (#170271)
It was assumed that since this is a method on Type, there are no quals
present because usually you get a Type by using operator-> on a
QualType. However, quals aren't always stored in the outermost QualType.
For example, if const A is used as a template parameter, the outer
QualType does not have the const flag set. The const actually lives in
the canonical type inside a SubstTemplateTypeParmType. We therefore need
to explicitly remove quals before returning.
Fixes #135273
---
I've been looking at all the call sites as suggested in
https://github.com/llvm/llvm-project/pull/167881#discussion_r2535247632
to check that their usage of this method is sane. So far, most of the
sites seem to either want unqualified types or not care, so this patch
should handle some spooky edge cases of those. Some of them need more
thinking, which I'll do soon.
Supersedes #167881
Commit: c9c4e6eb58c070d65abca68b77b783720de1d5d9
https://github.com/llvm/llvm-project/commit/c9c4e6eb58c070d65abca68b77b783720de1d5d9
Author: Ivan Butygin <ivan.butygin at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
M mlir/lib/Conversion/AMDGPUToROCDL/CMakeLists.txt
M mlir/test/Conversion/AMDGPUToROCDL/load_lds.mlir
Log Message:
-----------
Reland [mlir][amdgpu] Add common gpu mem space conversions to convert-amdgpu-to-rocdl (#171599)
Reland https://github.com/llvm/llvm-project/pull/171543
Added missing GPU lib `MLIRGPUToGPURuntimeTransforms`.
Commit: cef490d94bcb96f78a1a7ccdad86acc9bfde4d46
https://github.com/llvm/llvm-project/commit/cef490d94bcb96f78a1a7ccdad86acc9bfde4d46
Author: natanelh-mobileye <natanelh at mobileye.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Log Message:
-----------
[SDAG] Check context node for free truncates in DemandedBits (#171266)
Allow ShrinkDemandedOp to use Node-specific info
Commit: 2acefcd9d5ab189ffc58d8257d5e2d273fe13218
https://github.com/llvm/llvm-project/commit/2acefcd9d5ab189ffc58d8257d5e2d273fe13218
Author: Amr Hesham <amr96 at programmer.net>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
A clang/test/CIR/CodeGen/source-loc.cpp
Log Message:
-----------
[CIR] Add support for SourceLocExpr (#171492)
Add support for the SourceLocExpr
Commit: fec0a64daea642e699c1b31498a17b9718513774
https://github.com/llvm/llvm-project/commit/fec0a64daea642e699c1b31498a17b9718513774
Author: Ravil Dorozhinskii <ravil.aviva.com at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
M mlir/test/Dialect/LLVMIR/rocdl.mlir
M mlir/test/Target/LLVMIR/rocdl.mlir
Log Message:
-----------
[ROCDL] Added global/flag data prefetch ops (#171449)
This PR brings data prefetch ops to ROCDL for gfx1250 architecture.
Extended all necessary rocdl tests
Commit: 130fa98a29291e559a1061f0684a71e4a150c0dc
https://github.com/llvm/llvm-project/commit/130fa98a29291e559a1061f0684a71e4a150c0dc
Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/include/llvm/ADT/StringExtras.h
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
Log Message:
-----------
[AMDGPU][NFC] dump Waitcnt using an ostream operator (#171251)
Commit: 02a908c4c914b1dcd5e2a7d3857716c20dcfeb9c
https://github.com/llvm/llvm-project/commit/02a908c4c914b1dcd5e2a7d3857716c20dcfeb9c
Author: Alex Duran <alejandro.duran at intel.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M offload/include/Shared/Debug.h
M offload/libomptarget/interface.cpp
M offload/libomptarget/omptarget.cpp
Log Message:
-----------
[OpenMP][Offload] Continue to update libomptarget debug messages (#170425)
* Add support to use lambdas to output debug messages (like LDBG_OS)
* Update messages for interface.cpp and omptarget.cpp
Commit: 835aa48246d5e47b46261ad344c949cbe48eac3a
https://github.com/llvm/llvm-project/commit/835aa48246d5e47b46261ad344c949cbe48eac3a
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Port c9c4e6eb58c070d65abca68b77b783720de1d5d9 (#171632)
Was missing a dep on the bazel side.
Commit: c4ff1f36bf1f28fb56a9f5cfca8453ec3b21af60
https://github.com/llvm/llvm-project/commit/c4ff1f36bf1f28fb56a9f5cfca8453ec3b21af60
Author: Jasmine Tang <jjasmine at igalia.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/Dialect/IR/CIRTypeConstraints.td
M clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/test/CIR/CodeGenBuiltins/X86/avx512f-builtins.c
A clang/test/CIR/IR/select.cir
Log Message:
-----------
[CIR] Implement builtin extractf (#170427)
Implement builtin extractf, tests are from
clang/test/CodeGen/X86/avx512f-builtins.c.
Added a new type constraint "element or vector of element" since
LLVMIR also has said constraint. The new getBoolMaskValue is because the
existing SelectOp already accepts only a boolean condition; it'd make
more sense for it to accept a vector of boolean instead of a vector of
i32.
Commit: feef80cab325165fafe60da1d31c23c8ccfc5a4a
https://github.com/llvm/llvm-project/commit/feef80cab325165fafe60da1d31c23c8ccfc5a4a
Author: Eric Li <li.zhe.hua at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/lib/Tooling/Transformer/SourceCode.cpp
M clang/unittests/Tooling/SourceCodeTest.cpp
Log Message:
-----------
[clang][tooling] Fix `getFileRange` false negative (#171555)
When an expression is in a single macro argument but also contains a
macro, `getFileRange` would incorrectly reject that expression,
concluding that it came from two different macro arguments because they
came from two different expansions.
We adjust the logic to look at the full path of macro argument expansion
locations instead, tracking that if our traversal up the macro
expansions continues all the way through macro arguments all the way to
the top. This is similar to the technique used by `makeFileCharRange`.
We also add some test cases to ensure we don't introduce any false
positives.
Commit: f8580c915f0b5205ddc3ae5e8286653ddc1d8d68
https://github.com/llvm/llvm-project/commit/f8580c915f0b5205ddc3ae5e8286653ddc1d8d68
Author: Victor Chernyakin <chernyakin.victor.j at outlook.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang-tools-extra/clang-tidy/readability/RedundantControlFlowCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-control-flow.cpp
Log Message:
-----------
[clang-tidy] Make `readability-redundant-control-flow` not suggest deleting unrelated lines (#171287)
Closes #171200.
Commit: 54b4bd510a8cc90fac3d2071179d1424af894c9c
https://github.com/llvm/llvm-project/commit/54b4bd510a8cc90fac3d2071179d1424af894c9c
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M flang/docs/Aliasing.md
M flang/include/flang/Optimizer/Analysis/AliasAnalysis.h
M flang/include/flang/Optimizer/Dialect/FIRAttr.td
M flang/include/flang/Optimizer/Dialect/FortranVariableInterface.td
M flang/lib/Lower/ConvertVariable.cpp
M flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
A flang/test/Analysis/AliasAnalysis/alias-analysis-cray-pointers.fir
M flang/test/Lower/HLFIR/cray-pointers.f90
M flang/test/Lower/Intrinsics/free.f90
M flang/test/Lower/Intrinsics/malloc.f90
M flang/test/Lower/OpenMP/cray-pointers01.f90
Log Message:
-----------
[flang][AliasAnalysis] Cray pointers/pointees might alias with anything (#170900)
The LOC intrinsic allows a cray pointer to alias with ordinary variables
with no other attribute. See the new test for an example.
This is not enabled by default. The functionality can be used with
`-mmlir -funsafe-cray-pointers`.
First part of the un-revert of #169544. That will handle TBAA.
Commit: 923974987abef24c5948eb3ade25e0a1c6626035
https://github.com/llvm/llvm-project/commit/923974987abef24c5948eb3ade25e0a1c6626035
Author: Ebuka Ezike <yerimyah1 at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M lldb/test/API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py
Log Message:
-----------
[lldb-dap] enable run-in-terminal test on linux arm. (#171598)
follow up to
https://github.com/llvm/llvm-project/pull/144954#issuecomment-2990767363
Commit: bf81bdec660c29a737f6fcfd8fdeefe6fa1f336c
https://github.com/llvm/llvm-project/commit/bf81bdec660c29a737f6fcfd8fdeefe6fa1f336c
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/OpenACC/Analysis/OpenACCSupport.h
M mlir/lib/Dialect/OpenACC/Analysis/OpenACCSupport.cpp
M mlir/lib/Dialect/OpenACC/Transforms/ACCImplicitData.cpp
Log Message:
-----------
[mlir][acc] Add isValidValueUse to OpenACCSupport (#171538)
Add a new API `isValidValueUse ` to OpenACCSupport. This is used in
ACCImplicitData to check value that are already legal in the OpenACC
region and do not require implicit clause to be generated. An example
would be a CUDA Fortran device variable that is already on the GPU.
Commit: 9848c03ef8e271bfbfc9b4749f4a0f537a2ed4db
https://github.com/llvm/llvm-project/commit/9848c03ef8e271bfbfc9b4749f4a0f537a2ed4db
Author: Andrew Haberlandt <ndrewh at users.noreply.github.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/runtimes/CMakeLists.txt
Log Message:
-----------
[cmake] LLVM_BUILTINS_TARGET='default' should bootstrap builtins without compiler-rt (#171536)
Commit: f692ca145856c6b82160af2df94b9c7b3b549c02
https://github.com/llvm/llvm-project/commit/f692ca145856c6b82160af2df94b9c7b3b549c02
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoXSfmm.td
M llvm/test/CodeGen/RISCV/rvv/sifive-xsfmm-vset-insert.mir
Log Message:
-----------
[RISCV] Use 'sew' insead of ixlenimm in Xsfmm pseudos. (#171570)
Commit: 8f1c593266225c9f5f1cf1a3ce4896a7ce9a1a47
https://github.com/llvm/llvm-project/commit/8f1c593266225c9f5f1cf1a3ce4896a7ce9a1a47
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
Log Message:
-----------
[RISCV] Reduce code duplication. NFC (#171577)
This code was only different in the opcodes of the nodes it created.
Commit: 3a0c006054f79dbb2c921003898b7242a37a38cb
https://github.com/llvm/llvm-project/commit/3a0c006054f79dbb2c921003898b7242a37a38cb
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M flang/lib/Lower/OpenMP/OpenMP.cpp
R flang/test/Integration/OpenMP/do-simd-firstprivate-lastprivate-runtime.f90
R flang/test/Lower/OpenMP/do-simd-firstprivate-lastprivate.f90
M flang/test/Lower/OpenMP/order-clause.f90
M flang/test/Lower/OpenMP/wsloop-simd.f90
Log Message:
-----------
Revert "[flang][OpenMP] Fix firstprivate not working with lastprivate in DO SIMD" (#171646)
Reverts llvm/llvm-project#170163
Regression in fujitsu test suite
Commit: 8adcf0ad5a9ff8649e98120e9101cf48c1585ead
https://github.com/llvm/llvm-project/commit/8adcf0ad5a9ff8649e98120e9101cf48c1585ead
Author: Jianhui Li <jian.hui.li at intel.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M mlir/lib/Conversion/XeGPUToXeVM/XeGPUToXeVM.cpp
M mlir/test/Conversion/XeGPUToXeVM/create_nd_tdesc.mlir
M mlir/test/Conversion/XeGPUToXeVM/loadstore_matrix.mlir
M mlir/test/Conversion/XeGPUToXeVM/loadstoreprefetch.mlir
Log Message:
-----------
[MLIR][XeGPU] Support subview memref: handling the base address during xegpu to xevm type conversion (#170541)
During the XeGPU-to-XeVM type conversion, a memref is lowered to its
base address. This PR extends the conversion to correctly handle memrefs
that include an offset, such as those generated by memref.subview.
Commit: d162afa912300d7b91d5401c377b83838f4d87af
https://github.com/llvm/llvm-project/commit/d162afa912300d7b91d5401c377b83838f4d87af
Author: vangthao95 <vang.thao at amd.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
A llvm/test/CodeGen/AMDGPU/GlobalISel/fpext.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-fpext.mir
Log Message:
-----------
[AMDGPU][GlobalISel] Add RegBankLegalize support for G_FPEXT (#171483)
Commit: 5c98163246187f519e96d16de388183769817b3c
https://github.com/llvm/llvm-project/commit/5c98163246187f519e96d16de388183769817b3c
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
Log Message:
-----------
[lldb] Log when we use fallback register information
These fallback layouts are essentially guesses. Used when there is
no other way to query register information from the debug server.
Therefore there is a risk that LLDB and the debug server disagree,
which can produce strange effects.
I have added a log message here so we have a clue when triaging
these problems.
Note that it's not wrong to assume a layout in some situations.
It's how some debug servers were built. However if you end up
using the fallback when the server expected you to use XML,
you're likely going to have a bad time.
Commit: 16fbbac32f62b4f737ca30a3b107eff451f28e33
https://github.com/llvm/llvm-project/commit/16fbbac32f62b4f737ca30a3b107eff451f28e33
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/test/CodeGen/X86/shift-i512.ll
Log Message:
-----------
[X86] shift-i512.ll - add load test coverage (#171642)
Commit: 05ef57fcb8cd72899dc57419045de2d58e1a5618
https://github.com/llvm/llvm-project/commit/05ef57fcb8cd72899dc57419045de2d58e1a5618
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M .github/workflows/libcxx-build-and-test.yaml
Log Message:
-----------
[libc++][Github] Bump Runners to Next Group (#168122)
To start using the more recently built containers.
Commit: 0ab6a63c4f754aee77903ec9ef66dcbe5d08fe3a
https://github.com/llvm/llvm-project/commit/0ab6a63c4f754aee77903ec9ef66dcbe5d08fe3a
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/include/llvm/IR/DataLayout.h
M llvm/lib/AsmParser/LLParser.cpp
M llvm/lib/IR/AsmWriter.cpp
M llvm/lib/IR/DataLayout.cpp
A llvm/test/Assembler/symbolic-addrspace-datalayout.ll
M llvm/unittests/IR/DataLayoutTest.cpp
Log Message:
-----------
[LLVM][IR] Add support for address space names in DataLayout (#170559)
Add support for specifying the names of address spaces when specifying
pointer properties for an address space. Update LLVM's AsmPrinter and
LLParser to print and read these symbolic address space name.
Commit: 6cacbdbc38e793720c8c6569097c682afd545ada
https://github.com/llvm/llvm-project/commit/6cacbdbc38e793720c8c6569097c682afd545ada
Author: Haocong Lu <haoconglu at qq.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
Log Message:
-----------
[CIR][NFC] Rename AtomicFence to AtomicFenceOp (#171248)
This fixes missed suffix `Op` of `CIR_AtomicFence` defination and also
improves API `makeAtomicFenceValue`.
Commit: 126748840d3524d2ef35b72352a0bcf46930aed2
https://github.com/llvm/llvm-project/commit/126748840d3524d2ef35b72352a0bcf46930aed2
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M flang/include/flang/Parser/dump-parse-tree.h
M flang/include/flang/Parser/parse-tree.h
M flang/include/flang/Semantics/openmp-modifiers.h
M flang/lib/Lower/OpenMP/Clauses.cpp
M flang/lib/Parser/openmp-parsers.cpp
M flang/lib/Parser/unparse.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/lib/Semantics/openmp-modifiers.cpp
A flang/test/Parser/OpenMP/dims-modifier.f90
A flang/test/Semantics/OpenMP/dims-modifier.f90
M llvm/include/llvm/Frontend/OpenMP/OMP.td
Log Message:
-----------
[flang][OpenMP] Frontend support for DIMS modifier (#171454)
Add parsing and semantic checks for DIMS modifier on NUM_TEAMS,
NUM_THREADS, and THREAD_LIMIT.
Commit: 4c6aa8fd8abe7e4f072d067f43dee9a30fcd2f2f
https://github.com/llvm/llvm-project/commit/4c6aa8fd8abe7e4f072d067f43dee9a30fcd2f2f
Author: Jan Korous <jkorous at apple.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
A clang/include/clang/Analysis/Scalable/ASTEntityMapping.h
A clang/include/clang/Analysis/Scalable/Model/BuildNamespace.h
A clang/include/clang/Analysis/Scalable/Model/EntityName.h
M clang/lib/Analysis/CMakeLists.txt
A clang/lib/Analysis/Scalable/ASTEntityMapping.cpp
A clang/lib/Analysis/Scalable/CMakeLists.txt
A clang/lib/Analysis/Scalable/Model/BuildNamespace.cpp
A clang/lib/Analysis/Scalable/Model/EntityName.cpp
M clang/unittests/Analysis/CMakeLists.txt
A clang/unittests/Analysis/Scalable/ASTEntityMappingTest.cpp
A clang/unittests/Analysis/Scalable/BuildNamespaceTest.cpp
A clang/unittests/Analysis/Scalable/CMakeLists.txt
A clang/unittests/Analysis/Scalable/EntityNameTest.cpp
Log Message:
-----------
[clang][ssaf] Introduce entity abstraction for SSAF (#169131)
Add core abstractions for identifying program entities across
compilation and link unit boundaries in the Scalable Static Analysis
Framework (SSAF).
Introduces three key components:
- BuildNamespace: Represents build artifacts (compilation units, link
units)
- EntityName: Globally unique entity identifiers across compilation
boundaries
- AST mapping: Functions to map Clang AST declarations to EntityNames
Entity identification uses Unified Symbol Resolution (USR) as the
underlying mechanism, with extensions for sub-entities (parameters,
return values) via suffixes. The abstraction allows whole-program
analysis by providing stable identifiers that persist across separately
compiled translation units.
Commit: deac7915a42f2f1e13e8dbdc042be2b0e1f65e21
https://github.com/llvm/llvm-project/commit/deac7915a42f2f1e13e8dbdc042be2b0e1f65e21
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M flang/lib/Frontend/FrontendActions.cpp
A flang/test/Lower/memory-intrinsics-expansion.F90
Log Message:
-----------
[Flang][Pass]Disable memory intrinsics expansions
Patch disables memory intrinsics expansion, enabled by default in
https://github.com/llvm/llvm-project/pull/168622. This patch does the
same in clang, but not in flang.
The expansion causes massive perf regressions, up to 2x times in
fortran code.
Reviewers: jeanPerier, vzakhari
Reviewed By: vzakhari
Pull Request: https://github.com/llvm/llvm-project/pull/171650
Commit: 000279dcad334bf81ea2e0494f5e12d3564e8a31
https://github.com/llvm/llvm-project/commit/000279dcad334bf81ea2e0494f5e12d3564e8a31
Author: Pankaj Dwivedi <pankajkumar.divedi at amd.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Analysis/UniformityAnalysis.cpp
M llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
M llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
M llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h
Log Message:
-----------
[NFC][TTI] Introduce getInstructionUniformity API for uniformity analysis (#168903)
This patch introduces a new TargetTransformInfo hook
`getInstructionUniformity()`
that provides a unified interface for querying target-specific
uniformity
information about instructions and values.
The new hook returns an `InstructionUniformity` enum with three values:
- Default: Result is uniform if all operands are uniform (standard
propagation)
- AlwaysUniform: Result is always uniform regardless of operands
- NeverUniform: Result can never be assumed uniform
This API wraps the existing `isAlwaysUniform()` and
`isSourceOfDivergence()`
hooks, providing a single entry point for uniformity queries. Both LLVM
IR-level
(via TTI) and MIR-level (via TargetInstrInfo) uniformity analysis have
been
updated to use the new hook.
Target implementations:
- AMDGPU: Wraps existing `isAlwaysUniform()` and
`isSourceOfDivergence()` hooks
- NVPTX: Wraps existing `isSourceOfDivergence()` hook
This is an NFC change - all implementations return conservative defaults
or wrap
existing functionality.
Ref patch:https://github.com/llvm/llvm-project/pull/137639
Commit: 36a95a5cb49bb723470c9c967a6bd54d08743834
https://github.com/llvm/llvm-project/commit/36a95a5cb49bb723470c9c967a6bd54d08743834
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M libcxx/utils/ci/docker/docker-compose.yml
Log Message:
-----------
[libc++][Github] Bump Runner Version to v2.330.0 (#168753)
Bumps the runner version to keep things up to date (and prevent us from
falling below the support horizon).
Commit: f5c28bdaa6658b9d3af5cf62ea899f41bac38d6a
https://github.com/llvm/llvm-project/commit/f5c28bdaa6658b9d3af5cf62ea899f41bac38d6a
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M mlir/lib/Transforms/ViewOpGraph.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for misc-use-internal-linkage in ViewOpGraph.cpp (NFC)
Commit: 097ac330c16405a4feedf08d22512b97fa7a38f5
https://github.com/llvm/llvm-project/commit/097ac330c16405a4feedf08d22512b97fa7a38f5
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M lldb/source/Commands/CommandObjectMultiword.cpp
Log Message:
-----------
[lldb] Stop emitting pointless newline (NFC) (#171531)
AppendError ends up trimming this "\n" from the end of the string, then
putting another on on. So there's no reason to keep appending the
newline in CommandObjectMultiword::Execute.
Commit: 3ece6626cb25330852b4801101cd7669a4f034a6
https://github.com/llvm/llvm-project/commit/3ece6626cb25330852b4801101cd7669a4f034a6
Author: Charitha Saumya <136391709+charithaintc at users.noreply.github.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSubgroupDistribute.cpp
M mlir/test/Dialect/XeGPU/subgroup-distribute-unit.mlir
Log Message:
-----------
[mlir][xegpu] Add support for `vector.extract_strided_slice` XeGPU SIMT distribution with partial offsets. (#171512)
`vector.extract_strided_slice` can have two forms when specifying
offsets.
Case 1:
```
%1 = vector.extract_strided_slice %0 { offsets = [8, 0], sizes = [8, 16], strides = [1, 1]}
: vector<24x16xf32> to vector<8x16xf32>
```
Case 2:
```
%1 = vector.extract_strided_slice %0 { offsets = [8], sizes = [8], strides = [1]}
: vector<24x16xf32> to vector<8x16xf32>
```
These two ops means the same thing, but case 2 is syntactic sugar to
avoid specifying offsets for fully extracted dims. Currently case 2
fails in XeGPU SIMT distribution. This PR fixes this issue.
Commit: 28ff941a2cc302ced0bcc9b50b6ac51c9e6c0e4e
https://github.com/llvm/llvm-project/commit/28ff941a2cc302ced0bcc9b50b6ac51c9e6c0e4e
Author: Maksim Panchenko <maks at fb.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M bolt/include/bolt/Core/BinaryFunction.h
M bolt/lib/Core/BinaryFunction.cpp
M bolt/lib/Passes/VeneerElimination.cpp
M bolt/lib/Rewrite/RewriteInstance.cpp
A bolt/test/AArch64/veneer-bolt.s
Log Message:
-----------
[BOLT][AArch64] Always cover veneers in lite mode (#171534)
If a veneer is not disassembled in lite mode, the veneer elimination
pass will not recognize it as such and the call to such veneer will
remain unchanged.
Later, we may need to insert a new veneer for such code ending up with a
double veneer.
To avoid such suboptimal code generation, always disassemble veneers and
guarantee that they are converted to direct calls in BOLT.
Commit: 49324cd28ca9ba66e55919b008396a7aa5ca1672
https://github.com/llvm/llvm-project/commit/49324cd28ca9ba66e55919b008396a7aa5ca1672
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M lldb/test/API/functionalities/breakpoint/jit_loader_rtdyld_elf/TestJitBreakPoint.py
Log Message:
-----------
[lldb] Make TestJitBreakPoint.py use LLVM_TOOLS_DIR (#171656)
This seems the standard way to get the path to such tools within LLVM.
Calling findBuiltClang() has some annoying behavior like falling back to
CC when it cannot find anything else, which might point to anything or
not even be set.
We noticed this with our internal build system as the lli binary is not
in the same path as the clang binary.
Commit: c5995e25ba6a32b839cefe86abf721f57f9bf615
https://github.com/llvm/llvm-project/commit/c5995e25ba6a32b839cefe86abf721f57f9bf615
Author: Dan Blackwell <dan_blackwell at apple.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M compiler-rt/test/sanitizer_common/TestCases/Posix/popen.cpp
Log Message:
-----------
[sanitizer_common][test-only] Specify full path for sort executable in popen.cpp (#171622)
This test has begun failing on iossim with 'sh: sort: command not found'
in the stderr. I believe this may be due to the change to the lit
internal shell not having 'sort' in it's path.
This patch adds the full path /usr/bin/sort to work around this.
Commit: c1fd5ac50bfa5f58cdcdf106cbb29f5ae79d4d9d
https://github.com/llvm/llvm-project/commit/c1fd5ac50bfa5f58cdcdf106cbb29f5ae79d4d9d
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for readability-simplify-boolean-expr in NVVMDialect.cpp (NFC)
Commit: 6470d1bb981f02cd2a7f634a716e387b00e89726
https://github.com/llvm/llvm-project/commit/6470d1bb981f02cd2a7f634a716e387b00e89726
Author: Maksim Panchenko <maks at fb.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M bolt/include/bolt/Core/BinaryFunction.h
M bolt/lib/Core/BinaryContext.cpp
M bolt/lib/Passes/BinaryPasses.cpp
Log Message:
-----------
[BOLT] Exclude BOLT injected functions from AssignSections. NFCI (#171579)
Assign output sections for injected functions explicitly, and don't
reassign in AssignSections pass.
This change is a prerequisite for further PRs where veneer functions are
created as injected functions and their code section depends on their
placement.
Commit: dde1990b01fa13087b0eab77579f528329555968
https://github.com/llvm/llvm-project/commit/dde1990b01fa13087b0eab77579f528329555968
Author: Victor Chernyakin <chernyakin.victor.j at outlook.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang-tools-extra/clang-tidy/readability/RedundantControlFlowCheck.cpp
M clang-tools-extra/clang-tidy/readability/RedundantControlFlowCheck.h
Log Message:
-----------
[clang-tidy][NFC] Refactor `readability-redundant-control-flow` (#171639)
Besides simplifying the code, this refactor should also make it more
efficient: instead of using the `hasAnySubstatement` matcher to find
blocks we're interested in, which requires looking through every
substatement, this PR introduces a custom `hasFinalStmt` matcher which
only checks the last substatement.
Commit: aca48a44d14d1b7a24fd88c06d21333441f5a836
https://github.com/llvm/llvm-project/commit/aca48a44d14d1b7a24fd88c06d21333441f5a836
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/ForwardDeclChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.h
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefLambdaCapturesChecker.cpp
M clang/test/Analysis/Checkers/WebKit/call-args-checked.cpp
M clang/test/Analysis/Checkers/WebKit/forward-decl-checker.mm
M clang/test/Analysis/Checkers/WebKit/mock-types.h
M clang/test/Analysis/Checkers/WebKit/objc-mock-types.h
M clang/test/Analysis/Checkers/WebKit/uncounted-lambda-captures.cpp
M clang/test/Analysis/Checkers/WebKit/uncounted-obj-arg.cpp
Log Message:
-----------
Add the support for recognizing WTF::move like std::move (#170820)
This PR adds support for treating WTF::move like std::move in various
WebKit checkers.
Commit: 4427e34a6476721b53364e7dad97340dc38f5cb6
https://github.com/llvm/llvm-project/commit/4427e34a6476721b53364e7dad97340dc38f5cb6
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M flang/lib/Frontend/FrontendActions.cpp
Log Message:
-----------
[Flang][Pass]Remove dependence on CodeGen pass
Commit: ec4aba382142c6f52699a4f8cd4862736ee42436
https://github.com/llvm/llvm-project/commit/ec4aba382142c6f52699a4f8cd4862736ee42436
Author: Amr Hesham <amr96 at programmer.net>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
A clang/test/CIR/CodeGen/cxx-traits.cpp
Log Message:
-----------
[CIR] Add support for ExpressionTraitExpr (#171634)
Add support for the ExpressionTraitExpr
Commit: 48d942c7158af43094db1b5e6c59c6e6fcf1b5aa
https://github.com/llvm/llvm-project/commit/48d942c7158af43094db1b5e6c59c6e6fcf1b5aa
Author: Brian Cain <brian.cain at oss.qualcomm.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/include/llvm/IR/IntrinsicsHexagon.td
M llvm/include/llvm/IR/IntrinsicsHexagonDep.td
M llvm/lib/Target/Hexagon/CMakeLists.txt
M llvm/lib/Target/Hexagon/Hexagon.h
M llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp
R llvm/lib/Target/Hexagon/HexagonGenWideningVecFloatInstr.cpp
R llvm/lib/Target/Hexagon/HexagonGenWideningVecInstr.cpp
M llvm/lib/Target/Hexagon/HexagonISelLowering.h
M llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
M llvm/lib/Target/Hexagon/HexagonIntrinsics.td
M llvm/lib/Target/Hexagon/HexagonNewValueJump.cpp
R llvm/lib/Target/Hexagon/HexagonOptShuffleVector.cpp
M llvm/lib/Target/Hexagon/HexagonPatternsHVX.td
M llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
M llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp
M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp
M llvm/test/CodeGen/Hexagon/autohvx/isel-vpackew.ll
M llvm/test/CodeGen/Hexagon/autohvx/widen-setcc.ll
R llvm/test/CodeGen/Hexagon/bug54537-vavg.ll
R llvm/test/CodeGen/Hexagon/extend-multiply-for-output-fpext.ll
R llvm/test/CodeGen/Hexagon/no_widening_of_bf16_vecmul.ll
R llvm/test/CodeGen/Hexagon/shortvec-vasrsat.ll
R llvm/test/CodeGen/Hexagon/shortvec-vavg.ll
R llvm/test/CodeGen/Hexagon/shortvec-vmpy.ll
R llvm/test/CodeGen/Hexagon/vadd-const.ll
R llvm/test/CodeGen/Hexagon/vasr-sat.ll
R llvm/test/CodeGen/Hexagon/vavg.ll
R llvm/test/CodeGen/Hexagon/vec-shuff-invalid-operand.ll
R llvm/test/CodeGen/Hexagon/vec-shuff-multi-uses.ll
R llvm/test/CodeGen/Hexagon/vec-shuff2.ll
R llvm/test/CodeGen/Hexagon/vmpa.ll
R llvm/test/CodeGen/Hexagon/vmpy-const.ll
R llvm/test/CodeGen/Hexagon/vmpy-qfp-const.ll
R llvm/test/CodeGen/Hexagon/vsub-const.ll
R llvm/test/CodeGen/Hexagon/widening-float-vec.ll
R llvm/test/CodeGen/Hexagon/widening-vec.ll
R llvm/test/CodeGen/Hexagon/widening-vec2.ll
Log Message:
-----------
Revert "[Hexagon] Passes for widening vector operations and shuffle o… (#171647)
…pt (#169559)"
This reverts commit 4da31b6f579925e17314ad2de2826dc171cd95f4.
Commit: 07b8aa8ea8d80843146f11b4335b17eedcf1fcb1
https://github.com/llvm/llvm-project/commit/07b8aa8ea8d80843146f11b4335b17eedcf1fcb1
Author: Daniel Thornburgh <mysterymath at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/M68k/M68kExpandPseudo.cpp
M llvm/lib/Target/M68k/M68kInstrData.td
M llvm/lib/Target/M68k/M68kInstrInfo.cpp
M llvm/lib/Target/M68k/M68kInstrInfo.h
Log Message:
-----------
[NFC][M68k] Refactor away MOV8dc and MOV8cd (#169426)
This obsoletes the FIXME in #85686, but it doesn't address the issue
where moves from CCR will still be emitted on 68000. However, all such
moves will now be emitted as physreg copies, and the issue can thus be
handled there in a followup change.
Commit: 62e00a03fba029f82d421fb3c814a6a02d59b8c8
https://github.com/llvm/llvm-project/commit/62e00a03fba029f82d421fb3c814a6a02d59b8c8
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/unittests/Analysis/Scalable/CMakeLists.txt
Log Message:
-----------
[clang][unittest] Fix build break with BUILD_SHARED_LIBS=ON
/usr/bin/ld: tools/clang/unittests/Analysis/Scalable/CMakeFiles/ClangSca
lableAnalysisFrameworkTests.dir/ASTEntityMappingTest.cpp.o: undefined re
ference to symbol '_ZN5clang7ASTUnitD1Ev
Commit: 04dcb1b9ee82d7f7a3b0271920fe0059d7e32ae2
https://github.com/llvm/llvm-project/commit/04dcb1b9ee82d7f7a3b0271920fe0059d7e32ae2
Author: John Harrison <harjohn at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py
Log Message:
-----------
[lldb-dap] Fix running dap_server.py directly for debugging tests. (#167754)
This adjusts the behavior of running dap_server.py directly to better
support the current state of development. A few parts of the 'main' body
were stale and not functional.
These improvements include:
* Instead of the custom tracefile / replay file parsing logic, I
adjusted the replay helper to handle parsing lldb-dap log files created
with the `LLDBDAP_LOG` env variable, allowing you to more easily run a
failing test like: `python3
lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py
--adapter lldb-dap -r
lldb-test-build.noindex/tools/lldb-dap/console/TestDAP_console.test_custom_escape_prefix/dap.txt`
* Migrated argument parsing to `argparse`, that is in all verisons of
py3+ and has a few improvements over `optparse`.
* Corrected the existing arguments and updated `run_vscode` >
`run_adapter`. You can use this for simple debugging like: `xcrun
python3 lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py
--adapter=lldb-dap --adapter-arg='--pre-init-command' --adapter-arg
'help' --program a.out --init-command 'help'`
Commit: bc0d0bbc6b36445730067b6e302f332fa1e3fa35
https://github.com/llvm/llvm-project/commit/bc0d0bbc6b36445730067b6e302f332fa1e3fa35
Author: Eli Friedman <efriedma at qti.qualcomm.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M compiler-rt/CMakeLists.txt
M compiler-rt/cmake/config-ix.cmake
M compiler-rt/lib/profile/CMakeLists.txt
M compiler-rt/lib/profile/InstrProfiling.c
M compiler-rt/lib/profile/InstrProfiling.h
M compiler-rt/lib/profile/InstrProfilingMerge.c
M compiler-rt/lib/profile/InstrProfilingMergeFile.c
M compiler-rt/lib/profile/InstrProfilingPlatformLinux.c
M compiler-rt/lib/profile/InstrProfilingPlatformOther.c
M compiler-rt/lib/profile/InstrProfilingPort.h
Log Message:
-----------
[compiler-rt] Add baremetal version of profile library. (#167998)
Adds a flag COMPILER_RT_PROFILE_BAREMETAL, which disables the parts of
the profile runtime which require a filesystem or malloc. This minimal
library only requires string.h from the C library.
This is useful for profiling or code coverage of baremetal images, which
don't have filesystem APIs, and might not have malloc configured (or
have limited heap space).
Expected usage:
- Add code to your project to call
`__llvm_profile_get_size_for_buffer()` and
`__llvm_profile_write_buffer()` to write the profile data to a buffer in
memory, and then copy that data off the device using target-specific
tools.
- If you're using a linker script, set up your linker script to map the
profiling and coverage input sections to corresponding output sections
with the same name, and mark them KEEP. `__llvm_covfun` and
`__llvm_covmap` are non-allocatable, `__llvm_prf_names` is read-only
allocatable, and `__llvm_prf_cnts` and `__llvm_prf_data` are read-write
allocatable.
- The resulting data is in same format as the non-baremetal profiles.
There's some room for improvement here in the future for doing profiling
and code coverage for baremetal. If we revised the profiling format, and
introduced some additional host tooling, we could move some of the
metadata into non-allocated sections, and construct the profraw file on
the host. But this patch is sufficient for some use-cases.
Commit: c5ac7d66cb96f04287728691ce41fd6e3690295b
https://github.com/llvm/llvm-project/commit/c5ac7d66cb96f04287728691ce41fd6e3690295b
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoXSfmm.td
M llvm/test/CodeGen/RISCV/rvv/sifive-xsfmm-vset-insert.mir
Log Message:
-----------
[RISCV] Add OperandType for XSfmm TWiden. (#171572)
Use the same twiden format for PseudoSF_VSETTM and PseudoSF_VSETTK
as other XSfmm pseudos. Though I don't think we use the operand from
these instructions.
Commit: ccc3835ffaacb2571deda8e9d536dbbbfd0c09fb
https://github.com/llvm/llvm-project/commit/ccc3835ffaacb2571deda8e9d536dbbbfd0c09fb
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Utils/LoopPeel.cpp
M llvm/test/Transforms/LoopUnroll/peel-to-turn-invariant-accesses-dereferenceable.ll
Log Message:
-----------
[LoopPeel] Ignore assume intrinsics for the mayWriteToMemory check in peelToTurnInvariantLoadsDereferenceable. (#171547)
llvm.assume intrinsics have the mayWriteToMemory property, but
won't prevent the load from becoming dereferenceable.
Commit: b13aacee61605e17437fda93e897342c936e5586
https://github.com/llvm/llvm-project/commit/b13aacee61605e17437fda93e897342c936e5586
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoXSfmm.td
Log Message:
-----------
[RISCV] Use vec_rm for VPseudoSF_MatMul_FRM. (#171573)
Commit: e61c2d40b615d72b3ab98ea22c48475502962f8c
https://github.com/llvm/llvm-project/commit/e61c2d40b615d72b3ab98ea22c48475502962f8c
Author: Rahul Joshi <rjoshi at nvidia.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/docs/ProgrammersManual.rst
Log Message:
-----------
[NFC][LLVM] Document variadic `isa` (#136869)
Add documentation for variadic `isa<>` in the LLVM Programmer's Manual.
Commit: ece392575f41327ce82a4bdbe509996e148e47dc
https://github.com/llvm/llvm-project/commit/ece392575f41327ce82a4bdbe509996e148e47dc
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M flang-rt/lib/runtime/CMakeLists.txt
M flang-rt/lib/runtime/exceptions.cpp
M flang/include/flang/Runtime/exceptions.h
Log Message:
-----------
[flang-rt][device] Enable MapException on the device with error message (#171705)
As it is done in `flang-rt/lib/runtime/edit-input.cpp`, emit a runtime
error message when trying to raise IEEE exception on the device.
`MapException` and `feraiseexcept` are used in the lowering of the
nearest intrinsic even on the device.
Commit: 16ee5c7787f3e0065394ee60e664c0aba5dc67f2
https://github.com/llvm/llvm-project/commit/16ee5c7787f3e0065394ee60e664c0aba5dc67f2
Author: Dan Blackwell <dan_blackwell at apple.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M compiler-rt/test/sanitizer_common/TestCases/Posix/popen.cpp
Log Message:
-----------
Revert "[sanitizer_common][test-only] Specify full path for sort executable in popen.cpp" (#171706)
Reverts llvm/llvm-project#171622
Co-authored-by: Andrew Haberlandt <ndrewh at users.noreply.github.com>
Commit: 182c61da17bfd4d06079fc96ed6d47669a2b7ff4
https://github.com/llvm/llvm-project/commit/182c61da17bfd4d06079fc96ed6d47669a2b7ff4
Author: Peter Collingbourne <pcc at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/test/CodeGen/AArch64/ptrauth-irelative.ll
Log Message:
-----------
AArch64: Correctly emit large addends into PAuth ifunc.
Previously we would hit an assertion failure when a relocation represented
by a PAuth ifunc required a GOT and the addend of a relocation did not fit
into the immediate operand of an ADD instruction. Fix it by extracting a
function for materializing arbitrary addends and using it to materialize
the addend.
Reviewers: fmayer, hvdijk
Pull Request: https://github.com/llvm/llvm-project/pull/171707
Commit: f672f32fa24aec5f440827b5beedcb6627769fcf
https://github.com/llvm/llvm-project/commit/f672f32fa24aec5f440827b5beedcb6627769fcf
Author: Alexander Richardson <alexrichardson at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/test/TableGen/RegClassByHwModeErrors.td
M llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
M llvm/utils/TableGen/Common/InfoByHwMode.cpp
M llvm/utils/TableGen/Common/InfoByHwMode.h
Log Message:
-----------
[TableGen] Improve error message for bad VTByHwMode in RegisterByHwMode
Previously we would assert when a ValueTypeByHwMode was missing a case
for the current mode, now we report an error instead. Interestingly this
error only ocurrs when the DAG patterns use RegClassByHwMode, but not
normal RegisterClass instances. Found while I added RegClassByHwMode
to RISC-V and was getting an assertion due to `XLenFVT`/`XLenVecI32VT`
not having an entry for the default mode.
Reviewed By: arsenm
Pull Request: https://github.com/llvm/llvm-project/pull/171254
Commit: 625d5354c56bf710e11ef8d6ed2c7882190b8c85
https://github.com/llvm/llvm-project/commit/625d5354c56bf710e11ef8d6ed2c7882190b8c85
Author: Alexander Richardson <alexrichardson at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/include/llvm/MC/MCInstPrinter.h
M llvm/lib/MC/MCInstPrinter.cpp
A llvm/test/TableGen/RegClassByHwModeAlias.td
M llvm/utils/TableGen/AsmWriterEmitter.cpp
Log Message:
-----------
[TableGen] Handle RegClassByHwMode in AsmWriter
Previously, we were emitting a broken AliasPatternCond array, outputting
`MyTarget::RegClassByHwModeRegClassID` which does not exist.
Instead, we now add a new predicate and pass the RegClassByHwMode index
as the value argument.
Pull Request: https://github.com/llvm/llvm-project/pull/171264
Commit: d34c71744a58e07e8993114a12f310aacb002baa
https://github.com/llvm/llvm-project/commit/d34c71744a58e07e8993114a12f310aacb002baa
Author: Florian Mayer <fmayer at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
M clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
Log Message:
-----------
[FlowSensitive] [StatusOr] [13/N] Add support for gtest ASSERTs
Reviewers: jvoung
Reviewed By: jvoung
Pull Request: https://github.com/llvm/llvm-project/pull/170947
Commit: 5a1299b19650d88225ec2862299c0034d45c94bc
https://github.com/llvm/llvm-project/commit/5a1299b19650d88225ec2862299c0034d45c94bc
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/test/Transforms/LoopVectorize/vplan-printing.ll
Log Message:
-----------
[VPlan] Strip stray whitespace when printing VPWidenSelectRecipe. (NFCI)
printFlags takes care of inserting the correct amount of spaces,
depending on whether there are flags to print or not.
Commit: 575d6892bcc5cef926cfc1b95225148262c96a15
https://github.com/llvm/llvm-project/commit/575d6892bcc5cef926cfc1b95225148262c96a15
Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/OpenACC/Analysis/OpenACCSupport.h
M mlir/include/mlir/Dialect/OpenACC/OpenACCUtils.h
M mlir/include/mlir/Dialect/OpenACC/Transforms/Passes.td
M mlir/lib/Dialect/OpenACC/Analysis/OpenACCSupport.cpp
A mlir/lib/Dialect/OpenACC/Transforms/ACCLoopTiling.cpp
M mlir/lib/Dialect/OpenACC/Transforms/CMakeLists.txt
M mlir/lib/Dialect/OpenACC/Utils/CMakeLists.txt
M mlir/lib/Dialect/OpenACC/Utils/OpenACCUtils.cpp
M mlir/lib/Dialect/OpenACC/Utils/OpenACCUtilsTiling.cpp
A mlir/test/Dialect/OpenACC/acc-loop-tiling-invalid.mlir
A mlir/test/Dialect/OpenACC/acc-loop-tiling-remarks.mlir
A mlir/test/Dialect/OpenACC/acc-loop-tiling.mlir
Log Message:
-----------
[mlir][acc] Introduce acc loop tiling pass (#171692)
This pass implements the OpenACC loop tiling transformation for acc.loop
operations that have the tile clause (OpenACC 3.4 spec, section 2.9.8).
The tile clause specifies that the iterations of the associated loops
should be divided into tiles (rectangular blocks). The pass transforms a
single or nested acc.loop with tile clauses into a structure of "tile
loops" (iterating over tiles) containing "element loops" (iterating
within tiles).
For example, tiling a 2-level nested loop with tile(T1, T2):
```
// Before tiling:
acc.loop tile(T1, T2) control(%i, %j) = ...
// After tiling:
acc.loop control(%i) step (s1*T1) { // tile loop 1
acc.loop control(%j) step (s2*T2) { // tile loop 2
acc.loop control(%ii) = (%i) to (min(ub1, %i+s1*T1)) {
acc.loop control(%jj) = (%j) to (min(ub2, %j+s2*T2)) {
// loop body using %ii, %jj
}
}
}
}
```
Key features:
- Handles constant tile sizes and wildcard tile sizes ('*') which use a
configurable default tile size
- Properly handles collapsed loops with tile counts exceeding collapse
count by uncollapsing loops before tiling
- Distributes gang/worker/vector attributes appropriately: gang -> tile
loops, vector -> element loops
- Validates that tile size types are not wider than loop IV types
- Emits optimization remarks for tiling decisions
Three test files are added:
- acc-loop-tiling.mlir: Tests single and nested loop tiling with
constant tile sizes, unknown tile sizes (*), and loops with collapse
attributes
- acc-loop-tiling-invalid.mlir: Tests error diagnostic when tile size
type is wider than the loop IV type
- acc-loop-tiling-remarks.mlir: Tests optimization remarks emitted for
tiling decisions including default tile size selection
Co-authored-by: Vijay Kandiah <vkandiah at nvidia.com>
Commit: 6ae0b9f586de48ad190fc0843de87f689dbfd04e
https://github.com/llvm/llvm-project/commit/6ae0b9f586de48ad190fc0843de87f689dbfd04e
Author: Jay Foad <jay.foad at amd.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SOPInstructions.td
M llvm/lib/Target/AMDGPU/VOP3Instructions.td
M llvm/test/CodeGen/AMDGPU/bf16.ll
M llvm/test/CodeGen/AMDGPU/fp_to_sint.ll
M llvm/test/CodeGen/AMDGPU/fp_to_uint.ll
Log Message:
-----------
[AMDGPU] Implement codegen for GFX11+ V_CVT_PK_[IU]16_F32 (#168719)
Commit: ddc638c11d91f8efcb4a21a505865c138d593d79
https://github.com/llvm/llvm-project/commit/ddc638c11d91f8efcb4a21a505865c138d593d79
Author: Florian Mayer <fmayer at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
M clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
Log Message:
-----------
[FlowSensitive] [StatusOr] [14/N] Support nested StatusOrs
Reviewers: jvoung
Reviewed By: jvoung
Pull Request: https://github.com/llvm/llvm-project/pull/170950
Commit: 6b75eaea794f638fcf3eb99ee49ec7c1df1a6039
https://github.com/llvm/llvm-project/commit/6b75eaea794f638fcf3eb99ee49ec7c1df1a6039
Author: Jan Korous <jkorous at apple.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/unittests/Analysis/Scalable/CMakeLists.txt
Log Message:
-----------
[clang][ssaf] Speculative fix of unittest build (#171720)
https://github.com/llvm/llvm-project/pull/169131
Should fix:
ASTEntityMappingTest.cpp.o: undefined reference to symbol
'_ZN4llvm3omp27isAllowedClauseForDirectiveENS0_9DirectiveENS0_6ClauseEj'
https://lab.llvm.org/buildbot/#/builders/10/builds/18851
Commit: e603fac7cb2c4b32e14523d936bbe0365f70b0e6
https://github.com/llvm/llvm-project/commit/e603fac7cb2c4b32e14523d936bbe0365f70b0e6
Author: Florian Mayer <fmayer at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
M clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
Log Message:
-----------
[FlowSensitive] [StatusOr] [15/15] Support references to Status(Or) ptrs
That hopefully concludes the initial upstreaming.
Reviewers: jvoung
Reviewed By: jvoung
Pull Request: https://github.com/llvm/llvm-project/pull/170951
Commit: 2b958b9ee24b8ea36dcc777b2d1bcfb66c4972b6
https://github.com/llvm/llvm-project/commit/2b958b9ee24b8ea36dcc777b2d1bcfb66c4972b6
Author: Shubham Sandeep Rastogi <Shubham.Rastogi at sony.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
A llvm/test/DebugInfo/X86/selectionDAG-load-sext-trunc.ll
A llvm/test/DebugInfo/X86/selectionDAG-load-sext.ll
Log Message:
-----------
[SelectionDAG] Salvage debuginfo when combining load and sext instrs. (#169779)
SelectionDAG uses the DAGCombiner to fold a load followed by a sext to a
load and sext instruction. For example, in x86 we will see that
```
%1 = load i32, ptr @GlobArr
#dbg_value(i32 %1, !43, !DIExpression(), !52)
%2 = sext i32 %1 to i64, !dbg !53
```
is converted to:
```
%0:gr64_nosp = MOVSX64rm32 $rip, 1, $noreg, @GlobArr, $noreg, debug-instr-number 1, debug-location !51
DBG_VALUE $noreg, $noreg, !"Idx", !DIExpression(), debug-location !52
```
The `DBG_VALUE` needs to be transferred correctly to the new combined
instruction, and it needs to be appended with a `DIExpression` which
contains a `DW_OP_LLVM_fragment`, describing that the lower bits of the
virtual register contain the value.
This patch fixes the above described problem.
Commit: 56fb92ae643a0ba4def920c347f47e80934314b5
https://github.com/llvm/llvm-project/commit/56fb92ae643a0ba4def920c347f47e80934314b5
Author: Florian Mayer <fmayer at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/include/clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h
M clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
Log Message:
-----------
[NFC] [FlowSensitive] [StatusOr] expose statusType in header (#171719)
Commit: e305cf25cf3dbb8e7e4f203f432e2ec6e62921ab
https://github.com/llvm/llvm-project/commit/e305cf25cf3dbb8e7e4f203f432e2ec6e62921ab
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Port 575d6892bcc5cef926cfc1b95225148262c96a15 (#171722)
Commit: 871dabc8eadcf013df6475369ba7ce34c4c93ffe
https://github.com/llvm/llvm-project/commit/871dabc8eadcf013df6475369ba7ce34c4c93ffe
Author: Charles Zablit <c_zablit at apple.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M lldb/test/Shell/Commands/command-dwim-print.test
M lldb/test/Shell/Commands/command-expr-diagnostics.test
M lldb/test/Shell/Commands/command-options.test
Log Message:
-----------
[lldb] fix failing tests due to CI diagnostics rendering (#171685)
This patch fixes issues introduced by
https://github.com/llvm/llvm-project/pull/171491 when running tests in
CI.
The shell tests expect certain characters when matching diagnostics.
With https://github.com/llvm/llvm-project/pull/171491, those characters
can either be Unicode specific characters or their ASCII equivalent. The
tests were always expecting the ASCII version. This patch fixes this by
using a regex to match one or the other.
Commit: 069d3aa923c7cd5ed0b9e550858a26e63c7ec940
https://github.com/llvm/llvm-project/commit/069d3aa923c7cd5ed0b9e550858a26e63c7ec940
Author: Bill Wendling <morbo at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/test/CodeGen/attr-counted-by-for-pointers.c
M clang/test/CodeGen/attr-counted-by.c
M clang/test/DebugInfo/Generic/bounds-checking-debuginfo.c
Log Message:
-----------
[Clang][counted_by] Correct signed counted_by values (#171260)
If the 'counted_by' value is signed, we will incorrectly allow accesses
when the value is negative. This has obvious bad effects as it will
allow accessing a huge swath of unallocated memory.
Also clarify and rearrange the parameters to make them more
perspicuous.
Fixes: #170987.
Commit: 02b4dd04626c31f225db2bb8e9e0b82cddd28c25
https://github.com/llvm/llvm-project/commit/02b4dd04626c31f225db2bb8e9e0b82cddd28c25
Author: Amara Emerson <amara at apple.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/tbi.ll
Log Message:
-----------
[AArch64] Restrict TBI to ignore top 4 bits for Darwin targets.
In order to allow arm64 code to run on MTE environments, we need to make the
compiler only assume the top 4 bits can be ignored as MTE occupies the lower 4.
rdar://164645323
Commit: 6dafa096f417378e7e7b5540fca14d8a0b4b4e59
https://github.com/llvm/llvm-project/commit/6dafa096f417378e7e7b5540fca14d8a0b4b4e59
Author: jimingham <jingham at apple.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M lldb/source/Interpreter/CommandInterpreter.cpp
M lldb/test/API/functionalities/breakpoint/breakpoint_command/TestRegexpBreakCommand.py
M lldb/test/API/terminal/TestEditlineCompletions.py
Log Message:
-----------
Add a _regexp-break-add and some more tests for the b alias. (#171236)
This commit leaves "b" aliased to the old _regexp-break for now. The two
variants are identical except that `_regexp-break` allows you to say:
`(lldb) b <unrecognized_input>
`
which gets translated to:
`break set <unrecognized_input>
`
So switching people to `_regexp-break-add` would be a surprising
behavior change. It would be wrong for `_regexp_break-add` have one
branch that call `break set`, so to avoid surprise, I'll add the command
and let people who are playing with `break add` instead of `break set`
can set the alias to the new one by hand for now.
Commit: 3abaed8086fae30726b1ffb6fbbad69b1d42a7d0
https://github.com/llvm/llvm-project/commit/3abaed8086fae30726b1ffb6fbbad69b1d42a7d0
Author: Alexander Richardson <alexrichardson at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/test/TableGen/RegClassByHwModeErrors.td
M llvm/utils/TableGen/Common/InfoByHwMode.cpp
Log Message:
-----------
[TableGen] Replace reachable assertion with error in *ByHwMode
Having duplicate mode entries previously asserted (or silently replaced
the last value with a new one in release builds). Report an error with
a helpful message instead.
Pull Request: https://github.com/llvm/llvm-project/pull/171715
Commit: c5470e0f1f51291ac2b59c27a8278494e9f67ebd
https://github.com/llvm/llvm-project/commit/c5470e0f1f51291ac2b59c27a8278494e9f67ebd
Author: Alexander Richardson <alexrichardson at google.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
Log Message:
-----------
[RISC-V][MC] Fix tied operand register class mismatch in P-extension
I have a change to validate the operand classes emitted in the AsmParser
and that caused llvm/test/MC/RISCV/rv32p-valid.s to fail due to the rd_wb
register using a different register class from rd:
`PWADDA_H operand 1 register X6 is not a member of register class GPRPair`
This happens because tablegen's AsmMatcherEmitter emits code to literally
copy over the tied registers and does not feed them through the equivalent
of RISCVAsmParser::validateTargetOperandClass() which would allow adjusting
these operand classes.
Ideally we would handle this in tablegen (or at least add an error), but
the tied operand handling logic is rather complex and I don't understand
it yet. For now just update the rd register class to match rd_wb.
Pull Request: https://github.com/llvm/llvm-project/pull/171738
Commit: 62aaa3a9ac04763b8a5ba91d6f3d8754e4db7e85
https://github.com/llvm/llvm-project/commit/62aaa3a9ac04763b8a5ba91d6f3d8754e4db7e85
Author: Wael Yehia <wmyehia2001 at yahoo.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/runtimes/CMakeLists.txt
Log Message:
-----------
[compiler-rt] follow-up to 166837, rename COMPILER_RT_FORCE_TEST_BUILTINS_DIR to COMPILER_RT_TEST_BUILTINS_DIR (#171741)
Co-authored-by: David Tenty <daltenty at ibm.com>
Commit: 16e6055273e14bd9b8402a6c0e7f3793e287ea0e
https://github.com/llvm/llvm-project/commit/16e6055273e14bd9b8402a6c0e7f3793e287ea0e
Author: Shubham Sandeep Rastogi <Shubham.Rastogi at sony.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
R llvm/test/DebugInfo/X86/selectionDAG-load-sext-trunc.ll
R llvm/test/DebugInfo/X86/selectionDAG-load-sext.ll
Log Message:
-----------
Revert "[SelectionDAG] Salvage debuginfo when combining load and sext… (#171745)
… instrs. (#169779)"
This reverts commit 2b958b9ee24b8ea36dcc777b2d1bcfb66c4972b6.
I might have broken the sanitizer-x86_64-linux bot
/home/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_linux.cpp
clang++:
/home/b/sanitizer-x86_64-linux/build/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:248:
const T &llvm::ArrayRef<llvm::DbgValueLocEntry>::operator[](size_t)
const [T = llvm::DbgValueLocEntry]: Assertion `Index < Length &&
"Invalid index!"' failed.
Commit: ba73d60c43c1c2af5111669f5ec938f1c501fd4a
https://github.com/llvm/llvm-project/commit/ba73d60c43c1c2af5111669f5ec938f1c501fd4a
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoXRivos.td
Log Message:
-----------
[RISCV] Use sew and vec_policy for Rivos vector instruction operands. (#171721)
This enables MachineVerifier and MachineIR printing support for these
operands.
Commit: 76ae530407a42f50fa946ccaca5c1039fff5c7ca
https://github.com/llvm/llvm-project/commit/76ae530407a42f50fa946ccaca5c1039fff5c7ca
Author: Wael Yehia <wyehia at ca.ibm.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M compiler-rt/test/builtins/Unit/ppc/fixtfti_test.c
M compiler-rt/test/builtins/Unit/ppc/fixunstfti_test.c
Log Message:
-----------
[PPC] XFAIL ppc/fixtfti_test.c and ppc/fixunstfti_test.c and track them under issue 171751
Commit: 1f07f7c75a987865a6b428c502983de436c8ca41
https://github.com/llvm/llvm-project/commit/1f07f7c75a987865a6b428c502983de436c8ca41
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M flang-rt/lib/cuda/allocatable.cpp
M flang-rt/lib/cuda/pointer.cpp
M flang/include/flang/Optimizer/Dialect/CUF/CUFOps.td
M flang/include/flang/Runtime/CUDA/allocatable.h
M flang/include/flang/Runtime/CUDA/pointer.h
M flang/lib/Lower/Allocatable.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFAllocationConversion.cpp
M flang/test/Fir/CUDA/cuda-allocate.fir
R flang/test/Lower/CUDA/TODO/cuda-allocate-source-device.cuf
M flang/test/Lower/CUDA/cuda-allocatable.cuf
Log Message:
-----------
[flang][cuda] Add support for allocate with device source (#171743)
Add support for allocate statement with a source that is a device
variable.
Commit: 3fdce799cc184bf1b7c60a6845026df6c6e7630b
https://github.com/llvm/llvm-project/commit/3fdce799cc184bf1b7c60a6845026df6c6e7630b
Author: Brad Smith <brad at comstyle.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M libunwind/src/UnwindCursor.hpp
Log Message:
-----------
[libunwind] fix building on Haiku i386 (#171586)
Co-authored-by: Jérôme Duval <jerome.duval at gmail.com>
Commit: 2614af08c1875e7928c6036237e434943730631a
https://github.com/llvm/llvm-project/commit/2614af08c1875e7928c6036237e434943730631a
Author: mitchell <mitchell.xu2 at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang/lib/Tooling/Tooling.cpp
M clang/unittests/Tooling/ToolingTest.cpp
Log Message:
-----------
[Tooling] Fix misleading progress report when files have multiple compile commands (#169640)
This patch fixes an issue in progress reporting where the processed item
counter could exceed the total item count, leading to confusing outputs
like [22/18].
Closes [#169168](https://github.com/llvm/llvm-project/issues/169168)
Commit: fa9247526a4f8f3cdb946f7ed9a39b4e6691a1aa
https://github.com/llvm/llvm-project/commit/fa9247526a4f8f3cdb946f7ed9a39b4e6691a1aa
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoA.td
Log Message:
-----------
[RISCV] Add an OperandType for ordering for atomic pseudos. (#171744)
Commit: 18b61373d85a279ac08c8b77fedfc1cf991b3e4c
https://github.com/llvm/llvm-project/commit/18b61373d85a279ac08c8b77fedfc1cf991b3e4c
Author: Harald van Dijk <hdijk at accesssoftek.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang/lib/Basic/Targets/PPC.h
M llvm/include/llvm/TargetParser/Triple.h
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
M llvm/lib/Target/X86/X86ISelLoweringCall.cpp
M llvm/lib/Target/X86/X86Subtarget.h
Log Message:
-----------
[NFC] isOSGlibc: musl is not glibc. (#171734)
Previously, `isOSGlibc()` was returning true for musl triples as well.
This commit changes `isOSGlibc()` to return false for musl triples, and
updates all existing `isOSGlibc()` checks to call `isOSGlibc() ||
isMusl()`, in order to preserve existing behaviour.
Commit: e795b8bdea598fb76f50519ae7d164eff8d1efb7
https://github.com/llvm/llvm-project/commit/e795b8bdea598fb76f50519ae7d164eff8d1efb7
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoA.td
Log Message:
-----------
[RISCV] Use GPR instead of ixlenimm for sextshamt in PseudoMaskedAMOMinMax. NFC (#171736)
This operand is always a register.
Commit: 3b04094f36bf224d499e6a289b07ae193937e977
https://github.com/llvm/llvm-project/commit/3b04094f36bf224d499e6a289b07ae193937e977
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
Log Message:
-----------
[RISCV] Add Xsfmm vlte and vste intrinsics to getTgtMemIntrinsics. (#171747)
Replace dyn_cast with cast. The dyn_cast can never fail now. Previously
it never succeeded.
Commit: 71bfdd13040328bc83b520d09eee847fd2b7f82c
https://github.com/llvm/llvm-project/commit/71bfdd13040328bc83b520d09eee847fd2b7f82c
Author: Sirraide <aeternalmail at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/AST/Stmt.h
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/IdentifierTable.h
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Basic/StmtNodes.td
M clang/include/clang/Basic/TokenKinds.def
M clang/include/clang/Options/Options.td
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/lib/AST/Stmt.cpp
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/Basic/IdentifierTable.cpp
M clang/lib/CodeGen/CGStmt.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Frontend/InitPreprocessor.cpp
A clang/lib/Headers/stddefer.h
M clang/lib/Parse/ParseStmt.cpp
M clang/lib/Sema/JumpDiagnostics.cpp
M clang/lib/Sema/SemaExceptionSpec.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaStmt.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
A clang/test/AST/ast-dump-defer-ts.c
A clang/test/AST/ast-print-defer-ts.c
A clang/test/CodeGen/defer-ts-musttail.c
A clang/test/CodeGen/defer-ts-nested-cleanups.c
A clang/test/CodeGen/defer-ts-seh.c
A clang/test/CodeGen/defer-ts.c
A clang/test/Lexer/defer-keyword.cpp
A clang/test/Parser/defer-ts.c
A clang/test/Parser/defer-ts.cpp
A clang/test/Preprocessor/defer-ts.c
A clang/test/Sema/defer-ts-seh.c
A clang/test/Sema/defer-ts-sjlj.c
A clang/test/Sema/defer-ts.c
M clang/tools/libclang/CXCursor.cpp
Log Message:
-----------
[Clang] Add support for the C `_Defer` TS (#162848)
This implements WG14 N3734 (https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3734.pdf),
aka `_Defer`; it is currently only supported in C if `-fdefer-ts` is passed.
Commit: 426cedccd38502babad106fb0a9183750fae3092
https://github.com/llvm/llvm-project/commit/426cedccd38502babad106fb0a9183750fae3092
Author: hev <wangrui at loongson.cn>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/LoongArch/Disassembler/LoongArchDisassembler.cpp
M llvm/lib/Target/LoongArch/LoongArchInstrFormats.td
M llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
M llvm/test/CodeGen/LoongArch/trap.ll
M llvm/test/MC/LoongArch/Basic/Integer/misc.s
Log Message:
-----------
[LoongArch] Add support for the ud macro instruction (#171583)
This patch adds support for the `ud ui5` macro instruction. The `ui5`
operand must be inthe range `0-31`. The macro expands to:
`amswap.w $rd, $r1, $rj`
where `ui5` specifies the register number used for `$rd` in the expanded
instruction, and `$rd` is the same as `$rj`.
Relevant binutils patch:
https://sourceware.org/pipermail/binutils/2025-December/146042.html
Commit: 4f9d5a8bc85431b722e6f90744f3683adffc17b4
https://github.com/llvm/llvm-project/commit/4f9d5a8bc85431b722e6f90744f3683adffc17b4
Author: Sudharsan Veeravalli <svs at qti.qualcomm.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVLoadStoreOptimizer.cpp
A llvm/test/CodeGen/RISCV/xqcilsm-lwmi-swmi.mir
Log Message:
-----------
[RISCV] Generate Xqcilsm LWMI/SWMI load/store multiple instructions (#171079)
This patch adds support for generating the Xqcilsm load/store multiple
instructions as a part of the RISCVLoadStoreOptimizer pass. For now we
only combine two load/store instructions into a load/store multiple.
Support for converting more loads/stores will be added in follow-up
patches. These instructions are only applicable for 32-bit loads/stores
with an alignment of 4-bytes.
Commit: cb4b6ad8171e9f3dd991b0d7fa1771bcafc3c0a6
https://github.com/llvm/llvm-project/commit/cb4b6ad8171e9f3dd991b0d7fa1771bcafc3c0a6
Author: Jasmine Tang <jjasmine at igalia.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/lib/CIR/CodeGen/CIRGenStmt.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/test/CIR/CodeGen/atomic.c
M clang/test/CIR/CodeGen/switch.cpp
M clang/test/CIR/CodeGen/switch_flat_op.cpp
M clang/test/CIR/IR/switch.cir
M clang/test/CIR/Transforms/switch-fold.cir
Log Message:
-----------
[CIR] Add the ability to detect if SwitchOp covers all the cases (#171246)
Commit: 488202935ed9857ad2ad44cb25e99c4365eea2e0
https://github.com/llvm/llvm-project/commit/488202935ed9857ad2ad44cb25e99c4365eea2e0
Author: Adar Dagan <101581112+Adar-Dagan at users.noreply.github.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Transforms/InstCombine/mul.ll
Log Message:
-----------
[ValueTracking] Enhance overflow computation for unsigned mul (#171568)
Changed the range computation in computeOverflowForUnsignedMul to use
computeConstantRange as well.
This expands the patterns that InstCombine manages to narrow a mul that
has values that come from zext, for example if a value comes from a div
operation then the known bits doesn't give the narrowest possible range
for that value.
---------
Co-authored-by: Adar Dagan <adar.dagan at mobileye.com>
Commit: c9648d7acd2686142a4f77a37ff225caed620ca8
https://github.com/llvm/llvm-project/commit/c9648d7acd2686142a4f77a37ff225caed620ca8
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/IR/Verifier.cpp
M llvm/test/Assembler/ptrtoaddr-invalid-constexpr.ll
Log Message:
-----------
[Verifier] Make sure all constexprs in instructions are visited (#171643)
Previously this only happened for constants of some types and missed
incorrect ptrtoaddr.
Commit: 6a25e454d6443a518e1460a9125ed60d0470fe83
https://github.com/llvm/llvm-project/commit/6a25e454d6443a518e1460a9125ed60d0470fe83
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/test/Transforms/InstSimplify/ptrtoaddr.ll
Log Message:
-----------
[ConstantFolding] Support ptrtoaddr in ConstantFoldCompareInstOperands (#162653)
This folds `icmp (ptrtoaddr x, ptrtoaddr y)` to `icmp (x, y)`, matching
the existing ptrtoint fold. Restrict both folds to only the case where
the result type matches the address type.
I think that all folds this can do in practice end up actually being
valid for ptrtoint to a type large than the address size as well, but I
don't really see a way to justify this generically without making
assumptions about what kind of folding the recursive calls may do.
This is based on the icmp semantics specified in
https://github.com/llvm/llvm-project/pull/163936.
Commit: 39a723edbb66e881ae009fdf1c630c3909242a03
https://github.com/llvm/llvm-project/commit/39a723edbb66e881ae009fdf1c630c3909242a03
Author: Abhishek Varma <avarma094 at gmail.com>
Date: 2025-12-10 (Wed, 10 Dec 2025)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/Specialize.cpp
M mlir/lib/Dialect/Linalg/Utils/Utils.cpp
M mlir/test/Dialect/Linalg/convolution/roundtrip-convolution.mlir
Log Message:
-----------
[Linalg] Add *Conv2D* matchers (#168362)
-- This commit is the fourth in the series of adding matchers
for linalg.*conv*/*pool*. Refer:
https://github.com/llvm/llvm-project/pull/163724
-- In this commit all variants of Conv2D convolution ops have been
added.
-- It also refactors the way these matchers work to make adding more
matchers concise.
Signed-off-by: Abhishek Varma <abhvarma at amd.com>
---------
Signed-off-by: Abhishek Varma <abhvarma at amd.com>
Signed-off-by: hanhanW <hanhan0912 at gmail.com>
Co-authored-by: hanhanW <hanhan0912 at gmail.com>
Commit: 2ce17ba3470bfc819ff6a2e5f98f5f7ed9bb38a2
https://github.com/llvm/llvm-project/commit/2ce17ba3470bfc819ff6a2e5f98f5f7ed9bb38a2
Author: Tirthankar Mazumder <tmazumder.github at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Analysis/CmpInstAnalysis.cpp
M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
Log Message:
-----------
[InstCombine][CmpInstAnalysis] Use consistent spelling and function names. NFC. (#171645)
Both `decomposeBitTestICmp` and `decomposeBitTest` have a parameter
called `lookThroughTrunc`. This was spelled in full (i.e. `lookThroughTrunc`)
in the header. However, in the implementation, it's written as `lookThruTrunc`.
I opted to convert all instances of `lookThruTrunc` into
`lookThroughTrunc` to reduce surprise while reading the code and for
conformity.
---
The other change in this PR is the renaming of the wrapper around
`decomposeBitTest()`. Even though it was a wrapper around
`CmpInstAnalysis.h`'s `decomposeBitTest`, the function was called
`decomposeBitTestICmp`. This is quite confusing because such a function
_also_ exists in `CmpInstAnalysis.h`, but it is _not_ the one actually
being used in `InstCombineAndOrXor.cpp`.
Commit: aa31efcee107112c84af7993e9500849e7584f33
https://github.com/llvm/llvm-project/commit/aa31efcee107112c84af7993e9500849e7584f33
Author: Romaric Jodin <rjodin at google.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M libclc/opencl/lib/clspv/shared/vstore_half.cl
Log Message:
-----------
[libclc] use clc functions in clspv/shared/vstore_half.cl (#171770)
Commit: b7c0452a9a3d895b14ec7c5735e4e4ddc311edb3
https://github.com/llvm/llvm-project/commit/b7c0452a9a3d895b14ec7c5735e4e4ddc311edb3
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/test/CodeGen/2007-05-07-PaddingElements.c
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/TargetParser/TargetDataLayout.cpp
M llvm/test/CodeGen/PowerPC/aix-cc-abi-mir.ll
M llvm/test/CodeGen/PowerPC/aix-cc-abi.ll
M llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable.ll
M llvm/test/CodeGen/PowerPC/aix-xcoff-data.ll
M llvm/test/CodeGen/PowerPC/aix32-cc-abi-vaarg-mir.ll
M llvm/test/CodeGen/PowerPC/aix32-cc-abi-vaarg.ll
M llvm/test/CodeGen/PowerPC/aix64-cc-abi-vaarg-mir.ll
M llvm/unittests/Bitcode/DataLayoutUpgradeTest.cpp
Log Message:
-----------
[PowerPC][AIX] Specify correct ABI alignment for double (#144673)
Add `f64:32:64` to the data layout for AIX, to indicate that doubles
have a 32-bit ABI alignment and 64-bit preferred alignment.
Clang was already taking this into account, but it was not reflected in
LLVM's data layout.
A notable effect of this change is that `double` loads/stores with 4
byte alignment are no longer considered "unaligned" and avoid the
corresponding unaligned access legalization. I assume that this is
correct/desired for AIX. (The codegen previously already relied on this
in some places related to the call ABI simply by dint of assuming
certain stack locations were 8 byte aligned, even though they were only
actually 4 byte aligned.)
Fixes https://github.com/llvm/llvm-project/issues/133599.
Commit: 6ad0c7c6f1802abdde55f2c94e98a5fb445e0d3d
https://github.com/llvm/llvm-project/commit/6ad0c7c6f1802abdde55f2c94e98a5fb445e0d3d
Author: Brandon Wu <brandon.wu at sifive.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVFeatures.td
M llvm/lib/Target/RISCV/RISCVInstrInfoV.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoZvfbf.td
Log Message:
-----------
[NFC][RISCV] Unify all zvfbfa vl patterns and sd node patterns (#171072)
This patch try to move all vl patterns and sd node patterns to
RISCVInstrInfoVVLPatterns.td and RISCVInstrInfoVSDPatterns.td
respectively. It removes redefinition of pattern classes for zvfbfa and
make it easier to maintain and change.
Note: this does not include intrinsic patterns, if we want to also unify
intrinsic patterns we need to also move pseudo instruction definitions
of zvfbfa to RISCVInstrInfoVPseudos.td.
Commit: 794551dbffc0910c5b56660f663daacffa1bcdaa
https://github.com/llvm/llvm-project/commit/794551dbffc0910c5b56660f663daacffa1bcdaa
Author: Brandon Wu <brandon.wu at sifive.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/test/CodeGen/RISCV/rvp-ext-rv32.ll
M llvm/test/CodeGen/RISCV/rvp-ext-rv64.ll
Log Message:
-----------
[RISCV][llvm] Support PSRA, PSRAI, PSRL, PSRLI codegen for P extension (#171460)
Commit: f57abf519b8e3a58182a442a78a09de91105680c
https://github.com/llvm/llvm-project/commit/f57abf519b8e3a58182a442a78a09de91105680c
Author: Juan Manuel Martinez Caamaño <jmartinezcaamao at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
M llvm/lib/Target/SPIRV/SPIRVRegularizer.cpp
A llvm/test/CodeGen/SPIRV/transcoding/OpExtInst_vector_promotion.ll
A llvm/test/CodeGen/SPIRV/transcoding/OpExtInst_vector_promotion_bug.ll
R llvm/test/CodeGen/SPIRV/transcoding/OpMin.ll
Log Message:
-----------
[SPIRV] Promote scalar arguments to vector for `OpExtInst` in `generateExtInst` instead of `SPIRVRegularizer` (#170155)
This patch consist of 2 parts:
* A first part that removes the scalar to vector promotion for built-ins
in the `SPIRVRegularizer`;
* and a second part that implements the promotion for built-ins from
scalar to vector in `generateExtInst`.
The implementation in `SPIRVRegularizer` had several issues:
* It rolled its own built-in pattern matching that was extremely
permissive
* the compiler would crash if the built-in had a definition
* the compiler would crash if the built-in had no arguments
* The compiler would crash if there were more than 2 function
definitions in the module.
* It'd be better if this was implemented as a module pass; where we
iterate over the users of the function, instead of scanning the whole
module for callers.
This patch does the scalar to vector promotion just before the
`OpExtInst` is generated. Without relying on the IR transformation.
One change in the generated code from the previous implementation is
that this version uses a single `OpCompositeConstruct` operation to
convert the scalar into a vector. The old implementation inserted an
element at the 0 position in an `undef` vector (using
`OpCompositeInsert`); then copied that element for every vector element
using `OpVectorShuffle`.
This patch also adds a test (`OpExtInst_vector_promotion_bug.ll`) that
highlights an issue in the builtin pattern matching that we're using:
our pattern matching doesn't consider the number of arguments, only the
demangled name, first and last arguments (`min(int,int,int)` matches the same builtin as `min(int, int)`).
Commit: 15df9e701f1f1194a25e6123612cc735ad392ae4
https://github.com/llvm/llvm-project/commit/15df9e701f1f1194a25e6123612cc735ad392ae4
Author: Juan Manuel Martinez Caamaño <jmartinezcaamao at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/test/CodeGen/AMDGPU/extract_vector_dynelt.ll
M llvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll
Log Message:
-----------
[AMDGPU][SDAG] Add missing cases for SI_INDIRECT_SRC/DST (#170323)
Before this patch, `insertelement/extractelement` with dynamic indices
would
fail to select with `-O0` for vector 32-bit element types with sizes 3,
5, 6 and 7,
which did not map to a `SI_INDIRECT_SRC/DST` pattern.
Other "weird" sizes bigger than 8 (like 13) are properly handled
already.
To solve this issue we add the missing patterns for the problematic
sizes.
Solves SWDEV-568862
Commit: 2c1decb7f76661cf3b77b46b7ac3816401ece3cd
https://github.com/llvm/llvm-project/commit/2c1decb7f76661cf3b77b46b7ac3816401ece3cd
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M libcxx/include/__split_buffer
M libcxx/include/__vector/vector.h
M libcxx/include/deque
Log Message:
-----------
[libc++] Don't instantiate __split_buffer with an allocator reference (#171651)
Allocators should be extremely cheap, if not free, to copy. Furthermore,
we have requirements on allocator types that copies must compare equal,
and that move and copy must be the same.
Hence, taking an allocator by reference should not provide benefits
beyond making a copy of it. However, taking the allocator by reference
leads to complexity in __split_buffer, which can be removed if we stop
using that pattern.
Commit: db06ebbb9cdf2ff32e1f6900e441cefce23d4624
https://github.com/llvm/llvm-project/commit/db06ebbb9cdf2ff32e1f6900e441cefce23d4624
Author: Philip Ginsbach-Chen <philip.ginsbach at cantab.net>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64PerfectShuffle.h
Log Message:
-----------
[AArch64][NFC] Add isTRNMask improvements to isZIPMask (#171532)
Some [ideas for
improvement](https://github.com/llvm/llvm-project/pull/169858#pullrequestreview-3525357470)
came up during review of recent changes to `isTRNMask`.
This PR applies them also to `isZIPMask`, which is implemented almost
identically.
Commit: 59b13d6d9cdc5847af0b26732902a7d4af4707d3
https://github.com/llvm/llvm-project/commit/59b13d6d9cdc5847af0b26732902a7d4af4707d3
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M libcxx/include/__algorithm/find_end.h
Log Message:
-----------
[libc++] Add `__find_end` optimizations back (#171374)
This essentially reverts #100685 and fixes the bidirectional and random
access specializations to be actually used.
```
Benchmark old new Difference % Difference
------------------------------------------------------------ -------------- -------------- ------------ --------------
rng::find_end(deque<int>)_(match_near_end)/1000 366.91 47.63 -319.28 -87.02%
rng::find_end(deque<int>)_(match_near_end)/1024 3273.31 35.42 -3237.89 -98.92%
rng::find_end(deque<int>)_(match_near_end)/8192 171608.41 285.04 -171323.38 -99.83%
rng::find_end(deque<int>)_(near_matches)/1000 31808.40 19214.35 -12594.05 -39.59%
rng::find_end(deque<int>)_(near_matches)/1024 37428.72 20773.87 -16654.85 -44.50%
rng::find_end(deque<int>)_(near_matches)/8192 1719468.34 1213967.45 -505500.89 -29.40%
rng::find_end(deque<int>)_(process_all)/1000 275.81 336.29 60.49 21.93%
rng::find_end(deque<int>)_(process_all)/1024 258.88 320.36 61.47 23.74%
rng::find_end(deque<int>)_(process_all)/1048576 277117.41 327640.37 50522.96 18.23%
rng::find_end(deque<int>)_(process_all)/8192 2166.36 2533.52 367.16 16.95%
rng::find_end(deque<int>)_(same_length)/1000 1280.06 362.53 -917.53 -71.68%
rng::find_end(deque<int>)_(same_length)/1024 1419.99 417.58 -1002.40 -70.59%
rng::find_end(deque<int>)_(same_length)/8192 11363.81 2870.63 -8493.18 -74.74%
rng::find_end(deque<int>)_(single_element)/1000 277.22 363.52 86.31 31.13%
rng::find_end(deque<int>)_(single_element)/1024 257.11 353.94 96.84 37.66%
rng::find_end(deque<int>)_(single_element)/8192 2059.02 2762.29 703.27 34.16%
rng::find_end(deque<int>,_pred)_(match_near_end)/1000 696.84 70.07 -626.77 -89.94%
rng::find_end(deque<int>,_pred)_(match_near_end)/1024 4774.82 70.75 -4704.07 -98.52%
rng::find_end(deque<int>,_pred)_(match_near_end)/8192 267492.37 549.57 -266942.81 -99.79%
rng::find_end(deque<int>,_pred)_(near_matches)/1000 39414.88 31070.43 -8344.46 -21.17%
rng::find_end(deque<int>,_pred)_(near_matches)/1024 38168.52 32362.18 -5806.34 -15.21%
rng::find_end(deque<int>,_pred)_(near_matches)/8192 2594717.16 1938056.79 -656660.38 -25.31%
rng::find_end(deque<int>,_pred)_(process_all)/1000 600.88 586.92 -13.96 -2.32%
rng::find_end(deque<int>,_pred)_(process_all)/1024 613.00 592.66 -20.33 -3.32%
rng::find_end(deque<int>,_pred)_(process_all)/1048576 600059.65 603440.98 3381.33 0.56%
rng::find_end(deque<int>,_pred)_(process_all)/8192 4850.32 4764.56 -85.76 -1.77%
rng::find_end(deque<int>,_pred)_(same_length)/1000 1514.90 700.34 -814.57 -53.77%
rng::find_end(deque<int>,_pred)_(same_length)/1024 1561.14 705.80 -855.34 -54.79%
rng::find_end(deque<int>,_pred)_(same_length)/8192 12544.84 5024.45 -7520.39 -59.95%
rng::find_end(deque<int>,_pred)_(single_element)/1000 603.79 650.63 46.84 7.76%
rng::find_end(deque<int>,_pred)_(single_element)/1024 614.93 656.43 41.50 6.75%
rng::find_end(deque<int>,_pred)_(single_element)/8192 4885.89 5225.71 339.82 6.96%
rng::find_end(forward_list<int>)_(match_near_end)/1000 770.05 769.32 -0.73 -0.09%
rng::find_end(forward_list<int>)_(match_near_end)/1024 4833.13 4733.24 -99.90 -2.07%
rng::find_end(forward_list<int>)_(match_near_end)/8192 259324.32 261066.84 1742.52 0.67%
rng::find_end(forward_list<int>)_(near_matches)/1000 38301.11 38608.61 307.50 0.80%
rng::find_end(forward_list<int>)_(near_matches)/1024 39370.54 39878.59 508.05 1.29%
rng::find_end(forward_list<int>)_(near_matches)/8192 2527338.50 2527722.47 383.97 0.02%
rng::find_end(forward_list<int>)_(process_all)/1000 713.63 720.74 7.11 1.00%
rng::find_end(forward_list<int>)_(process_all)/1024 727.81 731.60 3.79 0.52%
rng::find_end(forward_list<int>)_(process_all)/1048576 757728.47 766470.14 8741.67 1.15%
rng::find_end(forward_list<int>)_(process_all)/8192 5821.05 5817.80 -3.25 -0.06%
rng::find_end(forward_list<int>)_(same_length)/1000 1458.99 1454.50 -4.49 -0.31%
rng::find_end(forward_list<int>)_(same_length)/1024 1507.73 1515.78 8.05 0.53%
rng::find_end(forward_list<int>)_(same_length)/8192 20432.32 18658.93 -1773.39 -8.68%
rng::find_end(forward_list<int>)_(single_element)/1000 712.41 708.41 -4.00 -0.56%
rng::find_end(forward_list<int>)_(single_element)/1024 728.05 728.78 0.73 0.10%
rng::find_end(forward_list<int>)_(single_element)/8192 5795.48 6332.88 537.40 9.27%
rng::find_end(forward_list<int>,_pred)_(match_near_end)/1000 843.67 846.77 3.10 0.37%
rng::find_end(forward_list<int>,_pred)_(match_near_end)/1024 5267.90 5343.84 75.94 1.44%
rng::find_end(forward_list<int>,_pred)_(match_near_end)/8192 280912.75 286141.10 5228.35 1.86%
rng::find_end(forward_list<int>,_pred)_(near_matches)/1000 43386.35 44489.38 1103.03 2.54%
rng::find_end(forward_list<int>,_pred)_(near_matches)/1024 44929.84 45608.55 678.71 1.51%
rng::find_end(forward_list<int>,_pred)_(near_matches)/8192 2723281.29 2765369.43 42088.14 1.55%
rng::find_end(forward_list<int>,_pred)_(process_all)/1000 763.13 763.85 0.72 0.09%
rng::find_end(forward_list<int>,_pred)_(process_all)/1024 796.98 773.40 -23.58 -2.96%
rng::find_end(forward_list<int>,_pred)_(process_all)/1048576 858071.76 846166.06 -11905.69 -1.39%
rng::find_end(forward_list<int>,_pred)_(process_all)/8192 6282.19 6244.95 -37.24 -0.59%
rng::find_end(forward_list<int>,_pred)_(same_length)/1000 1560.18 1583.03 22.86 1.47%
rng::find_end(forward_list<int>,_pred)_(same_length)/1024 1603.94 1612.22 8.28 0.52%
rng::find_end(forward_list<int>,_pred)_(same_length)/8192 16907.98 15638.35 -1269.63 -7.51%
rng::find_end(forward_list<int>,_pred)_(single_element)/1000 746.72 754.08 7.36 0.99%
rng::find_end(forward_list<int>,_pred)_(single_element)/1024 761.27 771.75 10.48 1.38%
rng::find_end(forward_list<int>,_pred)_(single_element)/8192 6166.83 6687.87 521.04 8.45%
rng::find_end(list<int>)_(match_near_end)/1000 793.99 67.06 -726.93 -91.55%
rng::find_end(list<int>)_(match_near_end)/1024 4682.12 79.82 -4602.31 -98.30%
rng::find_end(list<int>)_(match_near_end)/8192 263187.10 582.64 -262604.46 -99.78%
rng::find_end(list<int>)_(near_matches)/1000 38066.70 34687.59 -3379.11 -8.88%
rng::find_end(list<int>)_(near_matches)/1024 39721.77 36150.04 -3571.73 -8.99%
rng::find_end(list<int>)_(near_matches)/8192 2543369.85 2247297.03 -296072.82 -11.64%
rng::find_end(list<int>)_(process_all)/1000 716.89 726.65 9.76 1.36%
rng::find_end(list<int>)_(process_all)/1024 742.41 744.05 1.64 0.22%
rng::find_end(list<int>)_(process_all)/1048576 822449.08 873801.46 51352.38 6.24%
rng::find_end(list<int>)_(process_all)/8192 7704.49 9766.50 2062.02 26.76%
rng::find_end(list<int>)_(same_length)/1000 1508.19 710.90 -797.28 -52.86%
rng::find_end(list<int>)_(same_length)/1024 1540.23 735.35 -804.88 -52.26%
rng::find_end(list<int>)_(same_length)/8192 22786.44 10752.45 -12033.98 -52.81%
rng::find_end(list<int>)_(single_element)/1000 699.16 734.76 35.60 5.09%
rng::find_end(list<int>)_(single_element)/1024 717.09 750.91 33.82 4.72%
rng::find_end(list<int>)_(single_element)/8192 9502.45 10289.21 786.76 8.28%
rng::find_end(list<int>,_pred)_(match_near_end)/1000 841.98 83.86 -758.12 -90.04%
rng::find_end(list<int>,_pred)_(match_near_end)/1024 5463.71 76.95 -5386.76 -98.59%
rng::find_end(list<int>,_pred)_(match_near_end)/8192 287070.76 647.14 -286423.62 -99.77%
rng::find_end(list<int>,_pred)_(near_matches)/1000 43878.61 38899.00 -4979.61 -11.35%
rng::find_end(list<int>,_pred)_(near_matches)/1024 45672.50 40520.68 -5151.82 -11.28%
rng::find_end(list<int>,_pred)_(near_matches)/8192 2764800.76 2495879.89 -268920.87 -9.73%
rng::find_end(list<int>,_pred)_(process_all)/1000 764.46 774.78 10.32 1.35%
rng::find_end(list<int>,_pred)_(process_all)/1024 786.81 793.05 6.24 0.79%
rng::find_end(list<int>,_pred)_(process_all)/1048576 934166.34 954637.60 20471.26 2.19%
rng::find_end(list<int>,_pred)_(process_all)/8192 9509.24 10209.73 700.49 7.37%
rng::find_end(list<int>,_pred)_(same_length)/1000 1545.67 782.96 -762.71 -49.34%
rng::find_end(list<int>,_pred)_(same_length)/1024 1580.94 796.87 -784.08 -49.60%
rng::find_end(list<int>,_pred)_(same_length)/8192 21558.41 13370.92 -8187.49 -37.98%
rng::find_end(list<int>,_pred)_(single_element)/1000 766.49 762.81 -3.68 -0.48%
rng::find_end(list<int>,_pred)_(single_element)/1024 784.75 781.47 -3.28 -0.42%
rng::find_end(list<int>,_pred)_(single_element)/8192 9722.26 10399.11 676.85 6.96%
rng::find_end(vector<int>)_(match_near_end)/1000 267.82 25.34 -242.48 -90.54%
rng::find_end(vector<int>)_(match_near_end)/1024 2259.46 25.78 -2233.68 -98.86%
rng::find_end(vector<int>)_(match_near_end)/8192 119747.92 214.53 -119533.39 -99.82%
rng::find_end(vector<int>)_(near_matches)/1000 16913.73 14102.20 -2811.53 -16.62%
rng::find_end(vector<int>)_(near_matches)/1024 16097.97 14767.26 -1330.71 -8.27%
rng::find_end(vector<int>)_(near_matches)/8192 1102803.07 823463.30 -279339.78 -25.33%
rng::find_end(vector<int>)_(process_all)/1000 233.43 380.28 146.85 62.91%
rng::find_end(vector<int>)_(process_all)/1024 238.86 389.32 150.46 62.99%
rng::find_end(vector<int>)_(process_all)/1048576 269619.36 391698.75 122079.39 45.28%
rng::find_end(vector<int>)_(process_all)/8192 2011.46 3061.40 1049.94 52.20%
rng::find_end(vector<int>)_(same_length)/1000 632.19 253.50 -378.69 -59.90%
rng::find_end(vector<int>)_(same_length)/1024 556.53 254.87 -301.66 -54.20%
rng::find_end(vector<int>)_(same_length)/8192 4597.26 2095.57 -2501.68 -54.42%
rng::find_end(vector<int>)_(single_element)/1000 231.57 417.64 186.06 80.35%
rng::find_end(vector<int>)_(single_element)/1024 236.41 427.03 190.62 80.63%
rng::find_end(vector<int>)_(single_element)/8192 1918.95 3367.29 1448.33 75.48%
rng::find_end(vector<int>,_pred)_(match_near_end)/1000 581.49 52.67 -528.82 -90.94%
rng::find_end(vector<int>,_pred)_(match_near_end)/1024 3545.40 53.74 -3491.65 -98.48%
rng::find_end(vector<int>,_pred)_(match_near_end)/8192 190482.78 432.30 -190050.48 -99.77%
rng::find_end(vector<int>,_pred)_(near_matches)/1000 28878.24 24723.01 -4155.23 -14.39%
rng::find_end(vector<int>,_pred)_(near_matches)/1024 30035.85 25597.45 -4438.40 -14.78%
rng::find_end(vector<int>,_pred)_(near_matches)/8192 1858596.45 1584796.11 -273800.34 -14.73%
rng::find_end(vector<int>,_pred)_(process_all)/1000 518.92 813.46 294.53 56.76%
rng::find_end(vector<int>,_pred)_(process_all)/1024 531.17 710.20 179.03 33.70%
rng::find_end(vector<int>,_pred)_(process_all)/1048576 674064.13 905070.15 231006.01 34.27%
rng::find_end(vector<int>,_pred)_(process_all)/8192 4254.34 6372.76 2118.43 49.79%
rng::find_end(vector<int>,_pred)_(same_length)/1000 1106.96 526.23 -580.73 -52.46%
rng::find_end(vector<int>,_pred)_(same_length)/1024 1133.60 539.70 -593.90 -52.39%
rng::find_end(vector<int>,_pred)_(same_length)/8192 8988.10 4302.83 -4685.27 -52.13%
rng::find_end(vector<int>,_pred)_(single_element)/1000 528.11 523.69 -4.42 -0.84%
rng::find_end(vector<int>,_pred)_(single_element)/1024 539.58 838.49 298.91 55.40%
rng::find_end(vector<int>,_pred)_(single_element)/8192 4301.43 7313.22 3011.79 70.02%
std::find_end(deque<int>)_(match_near_end)/1000 347.82 38.56 -309.26 -88.91%
std::find_end(deque<int>)_(match_near_end)/1024 3340.80 34.54 -3306.27 -98.97%
std::find_end(deque<int>)_(match_near_end)/8192 171599.83 281.87 -171317.96 -99.84%
std::find_end(deque<int>)_(near_matches)/1000 29703.68 19712.27 -9991.41 -33.64%
std::find_end(deque<int>)_(near_matches)/1024 32312.41 20008.21 -12304.20 -38.08%
std::find_end(deque<int>)_(near_matches)/8192 1851286.99 1216112.34 -635174.65 -34.31%
std::find_end(deque<int>)_(process_all)/1000 256.69 315.96 59.27 23.09%
std::find_end(deque<int>)_(process_all)/1024 260.97 305.42 44.45 17.03%
std::find_end(deque<int>)_(process_all)/1048576 273310.08 309499.13 36189.05 13.24%
std::find_end(deque<int>)_(process_all)/8192 2071.33 2606.57 535.25 25.84%
std::find_end(deque<int>)_(same_length)/1000 1422.58 441.07 -981.51 -68.99%
std::find_end(deque<int>)_(same_length)/1024 1844.27 350.75 -1493.52 -80.98%
std::find_end(deque<int>)_(same_length)/8192 14681.69 2839.26 -11842.43 -80.66%
std::find_end(deque<int>)_(single_element)/1000 291.63 344.82 53.19 18.24%
std::find_end(deque<int>)_(single_element)/1024 257.97 330.19 72.21 27.99%
std::find_end(deque<int>)_(single_element)/8192 2220.10 2505.02 284.92 12.83%
std::find_end(deque<int>,_pred)_(match_near_end)/1000 694.70 69.60 -625.11 -89.98%
std::find_end(deque<int>,_pred)_(match_near_end)/1024 4735.45 71.12 -4664.33 -98.50%
std::find_end(deque<int>,_pred)_(match_near_end)/8192 267417.02 561.03 -266855.99 -99.79%
std::find_end(deque<int>,_pred)_(near_matches)/1000 42199.71 31597.49 -10602.22 -25.12%
std::find_end(deque<int>,_pred)_(near_matches)/1024 38007.49 32362.16 -5645.33 -14.85%
std::find_end(deque<int>,_pred)_(near_matches)/8192 2607708.49 1935799.88 -671908.60 -25.77%
std::find_end(deque<int>,_pred)_(process_all)/1000 599.65 552.71 -46.94 -7.83%
std::find_end(deque<int>,_pred)_(process_all)/1024 615.88 554.17 -61.71 -10.02%
std::find_end(deque<int>,_pred)_(process_all)/1048576 598471.63 599441.79 970.16 0.16%
std::find_end(deque<int>,_pred)_(process_all)/8192 4853.45 4394.20 -459.25 -9.46%
std::find_end(deque<int>,_pred)_(same_length)/1000 1511.68 797.64 -714.04 -47.23%
std::find_end(deque<int>,_pred)_(same_length)/1024 1568.63 810.85 -757.78 -48.31%
std::find_end(deque<int>,_pred)_(same_length)/8192 12609.34 5092.02 -7517.32 -59.62%
std::find_end(deque<int>,_pred)_(single_element)/1000 601.22 628.80 27.58 4.59%
std::find_end(deque<int>,_pred)_(single_element)/1024 613.25 627.15 13.89 2.27%
std::find_end(deque<int>,_pred)_(single_element)/8192 4823.85 4795.25 -28.60 -0.59%
std::find_end(forward_list<int>)_(match_near_end)/1000 762.64 769.74 7.10 0.93%
std::find_end(forward_list<int>)_(match_near_end)/1024 4767.93 4840.87 72.94 1.53%
std::find_end(forward_list<int>)_(match_near_end)/8192 260275.68 260835.21 559.53 0.21%
std::find_end(forward_list<int>)_(near_matches)/1000 38020.76 38197.53 176.77 0.46%
std::find_end(forward_list<int>)_(near_matches)/1024 39028.86 39333.38 304.51 0.78%
std::find_end(forward_list<int>)_(near_matches)/8192 2524921.48 2523470.32 -1451.16 -0.06%
std::find_end(forward_list<int>)_(process_all)/1000 699.95 699.93 -0.02 -0.00%
std::find_end(forward_list<int>)_(process_all)/1024 715.24 712.07 -3.17 -0.44%
std::find_end(forward_list<int>)_(process_all)/1048576 755926.33 756976.31 1049.98 0.14%
std::find_end(forward_list<int>)_(process_all)/8192 5696.72 5672.92 -23.81 -0.42%
std::find_end(forward_list<int>)_(same_length)/1000 1485.84 1480.19 -5.65 -0.38%
std::find_end(forward_list<int>)_(same_length)/1024 1493.62 1516.95 23.33 1.56%
std::find_end(forward_list<int>)_(same_length)/8192 16833.75 13551.42 -3282.33 -19.50%
std::find_end(forward_list<int>)_(single_element)/1000 688.87 675.02 -13.85 -2.01%
std::find_end(forward_list<int>)_(single_element)/1024 688.89 691.59 2.69 0.39%
std::find_end(forward_list<int>)_(single_element)/8192 5735.87 6748.85 1012.98 17.66%
std::find_end(forward_list<int>,_pred)_(match_near_end)/1000 836.01 853.28 17.27 2.07%
std::find_end(forward_list<int>,_pred)_(match_near_end)/1024 5259.92 5299.30 39.39 0.75%
std::find_end(forward_list<int>,_pred)_(match_near_end)/8192 279479.85 285593.49 6113.65 2.19%
std::find_end(forward_list<int>,_pred)_(near_matches)/1000 42577.60 44550.54 1972.94 4.63%
std::find_end(forward_list<int>,_pred)_(near_matches)/1024 44374.19 45697.95 1323.76 2.98%
std::find_end(forward_list<int>,_pred)_(near_matches)/8192 2711138.03 2742988.33 31850.30 1.17%
std::find_end(forward_list<int>,_pred)_(process_all)/1000 752.03 762.75 10.72 1.43%
std::find_end(forward_list<int>,_pred)_(process_all)/1024 767.04 781.48 14.44 1.88%
std::find_end(forward_list<int>,_pred)_(process_all)/1048576 843453.35 861838.82 18385.47 2.18%
std::find_end(forward_list<int>,_pred)_(process_all)/8192 6241.65 6308.05 66.40 1.06%
std::find_end(forward_list<int>,_pred)_(same_length)/1000 2384.18 1589.21 -794.97 -33.34%
std::find_end(forward_list<int>,_pred)_(same_length)/1024 2428.97 1617.17 -811.80 -33.42%
std::find_end(forward_list<int>,_pred)_(same_length)/8192 16961.22 14972.86 -1988.36 -11.72%
std::find_end(forward_list<int>,_pred)_(single_element)/1000 743.31 752.77 9.47 1.27%
std::find_end(forward_list<int>,_pred)_(single_element)/1024 763.62 768.70 5.08 0.67%
std::find_end(forward_list<int>,_pred)_(single_element)/8192 6189.73 6934.04 744.31 12.02%
std::find_end(list<int>)_(match_near_end)/1000 773.76 76.41 -697.35 -90.12%
std::find_end(list<int>)_(match_near_end)/1024 4715.36 69.09 -4646.27 -98.53%
std::find_end(list<int>)_(match_near_end)/8192 264864.51 584.19 -264280.32 -99.78%
std::find_end(list<int>)_(near_matches)/1000 37650.69 35233.45 -2417.24 -6.42%
std::find_end(list<int>)_(near_matches)/1024 39239.25 36699.13 -2540.13 -6.47%
std::find_end(list<int>)_(near_matches)/8192 2543446.71 2252625.27 -290821.44 -11.43%
std::find_end(list<int>)_(process_all)/1000 718.00 724.59 6.59 0.92%
std::find_end(list<int>)_(process_all)/1024 735.14 746.70 11.57 1.57%
std::find_end(list<int>)_(process_all)/1048576 812620.48 869606.78 56986.30 7.01%
std::find_end(list<int>)_(process_all)/8192 8217.98 8462.53 244.55 2.98%
std::find_end(list<int>)_(same_length)/1000 1500.85 716.45 -784.39 -52.26%
std::find_end(list<int>)_(same_length)/1024 1534.13 736.62 -797.51 -51.98%
std::find_end(list<int>)_(same_length)/8192 20274.06 10621.82 -9652.24 -47.61%
std::find_end(list<int>)_(single_element)/1000 717.05 725.64 8.60 1.20%
std::find_end(list<int>)_(single_element)/1024 732.87 742.44 9.57 1.31%
std::find_end(list<int>)_(single_element)/8192 9835.11 11896.39 2061.28 20.96%
std::find_end(list<int>,_pred)_(match_near_end)/1000 845.46 75.09 -770.37 -91.12%
std::find_end(list<int>,_pred)_(match_near_end)/1024 5301.60 77.14 -5224.46 -98.54%
std::find_end(list<int>,_pred)_(match_near_end)/8192 281976.13 648.87 -281327.25 -99.77%
std::find_end(list<int>,_pred)_(near_matches)/1000 44076.98 39576.32 -4500.67 -10.21%
std::find_end(list<int>,_pred)_(near_matches)/1024 45531.64 41020.11 -4511.54 -9.91%
std::find_end(list<int>,_pred)_(near_matches)/8192 2756383.66 2503085.29 -253298.37 -9.19%
std::find_end(list<int>,_pred)_(process_all)/1000 766.06 764.48 -1.58 -0.21%
std::find_end(list<int>,_pred)_(process_all)/1024 780.35 799.51 19.15 2.45%
std::find_end(list<int>,_pred)_(process_all)/1048576 894643.71 898947.94 4304.24 0.48%
std::find_end(list<int>,_pred)_(process_all)/8192 8436.41 9977.74 1541.33 18.27%
std::find_end(list<int>,_pred)_(same_length)/1000 1545.22 784.29 -760.92 -49.24%
std::find_end(list<int>,_pred)_(same_length)/1024 1583.27 808.52 -774.74 -48.93%
std::find_end(list<int>,_pred)_(same_length)/8192 21850.99 10896.50 -10954.48 -50.13%
std::find_end(list<int>,_pred)_(single_element)/1000 752.03 755.00 2.97 0.39%
std::find_end(list<int>,_pred)_(single_element)/1024 774.22 784.14 9.92 1.28%
std::find_end(list<int>,_pred)_(single_element)/8192 10219.43 10396.49 177.05 1.73%
std::find_end(vector<int>)_(match_near_end)/1000 277.37 28.45 -248.91 -89.74%
std::find_end(vector<int>)_(match_near_end)/1024 2247.56 25.80 -2221.76 -98.85%
std::find_end(vector<int>)_(match_near_end)/8192 119785.10 212.44 -119572.66 -99.82%
std::find_end(vector<int>)_(near_matches)/1000 16351.34 14073.13 -2278.21 -13.93%
std::find_end(vector<int>)_(near_matches)/1024 16656.33 14654.36 -2001.97 -12.02%
std::find_end(vector<int>)_(near_matches)/8192 1181392.88 828918.96 -352473.91 -29.84%
std::find_end(vector<int>)_(process_all)/1000 231.14 235.80 4.66 2.01%
std::find_end(vector<int>)_(process_all)/1024 235.87 232.06 -3.81 -1.61%
std::find_end(vector<int>)_(process_all)/1048576 239922.25 238229.38 -1692.87 -0.71%
std::find_end(vector<int>)_(process_all)/8192 1837.43 1802.25 -35.19 -1.91%
std::find_end(vector<int>)_(same_length)/1000 632.59 252.80 -379.79 -60.04%
std::find_end(vector<int>)_(same_length)/1024 524.51 257.58 -266.94 -50.89%
std::find_end(vector<int>)_(same_length)/8192 5159.01 2090.12 -3068.89 -59.49%
std::find_end(vector<int>)_(single_element)/1000 229.56 250.47 20.91 9.11%
std::find_end(vector<int>)_(single_element)/1024 234.86 252.18 17.32 7.37%
std::find_end(vector<int>)_(single_element)/8192 1825.74 1981.90 156.16 8.55%
std::find_end(vector<int>,_pred)_(match_near_end)/1000 574.17 52.98 -521.19 -90.77%
std::find_end(vector<int>,_pred)_(match_near_end)/1024 3525.35 54.03 -3471.32 -98.47%
std::find_end(vector<int>,_pred)_(match_near_end)/8192 190155.81 423.41 -189732.40 -99.78%
std::find_end(vector<int>,_pred)_(near_matches)/1000 28541.98 24598.37 -3943.61 -13.82%
std::find_end(vector<int>,_pred)_(near_matches)/1024 29696.55 25675.27 -4021.28 -13.54%
std::find_end(vector<int>,_pred)_(near_matches)/8192 1846970.41 1596191.84 -250778.57 -13.58%
std::find_end(vector<int>,_pred)_(process_all)/1000 519.71 592.14 72.43 13.94%
std::find_end(vector<int>,_pred)_(process_all)/1024 529.74 491.07 -38.67 -7.30%
std::find_end(vector<int>,_pred)_(process_all)/1048576 631923.41 643729.57 11806.16 1.87%
std::find_end(vector<int>,_pred)_(process_all)/8192 4215.05 3909.30 -305.75 -7.25%
std::find_end(vector<int>,_pred)_(same_length)/1000 1095.46 524.99 -570.47 -52.08%
std::find_end(vector<int>,_pred)_(same_length)/1024 1117.95 537.65 -580.31 -51.91%
std::find_end(vector<int>,_pred)_(same_length)/8192 8923.95 4307.13 -4616.83 -51.74%
std::find_end(vector<int>,_pred)_(single_element)/1000 516.52 656.32 139.80 27.07%
std::find_end(vector<int>,_pred)_(single_element)/1024 528.82 673.72 144.90 27.40%
std::find_end(vector<int>,_pred)_(single_element)/8192 4210.37 5529.52 1319.15 31.33%
Geomean 6995.43 3440.97 -3554.46 -50.81%
```
Commit: 6573f62a88319e8f43ea369ff248cd9d54deaa14
https://github.com/llvm/llvm-project/commit/6573f62a88319e8f43ea369ff248cd9d54deaa14
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/atomic-fp.ll
Log Message:
-----------
[X86] LowerATOMIC_STORE - on 32-bit targets see if i64 values were originally legal f64 values that we can store directly. (#171602)
Based off feedback from #171478
Commit: 4d335cb5821b02bdc589b8483386a9ef91bbc070
https://github.com/llvm/llvm-project/commit/4d335cb5821b02bdc589b8483386a9ef91bbc070
Author: Cullen Rhodes <cullen.rhodes at arm.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
M llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-rcpc-immo-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/N3-rcpc-immo-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V1-rcpc-immo-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-rcpc-immo-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3-rcpc-immo-instructions.s
M llvm/test/tools/llvm-mca/AArch64/Neoverse/V3AE-rcpc-immo-instructions.s
Log Message:
-----------
[AArch64] Fix scheduling info for Armv8.4-a LDAPUR* instructions (#171637)
They were using the wrong scheduler resource. They're also missing from
the optimisation guides, but WriteLD should be closer at least.
Commit: df6c27e752e17bc68c1c962f159a8fde796071f3
https://github.com/llvm/llvm-project/commit/df6c27e752e17bc68c1c962f159a8fde796071f3
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M libcxx/docs/ReleaseNotes/22.rst
M libcxx/include/__memory/allocator.h
A libcxx/test/libcxx/memory/allocator_triviality.compile.pass.cpp
A libcxx/test/libcxx/memory/allocator_triviality.deprecated_abi.compile.pass.cpp
R libcxx/test/libcxx/memory/allocator_void.trivial.compile.pass.cpp
M libcxx/test/std/utilities/optional/optional.specalg/make_optional_explicit.pass.cpp
M libcxx/test/std/utilities/optional/optional.specalg/make_optional_explicit_initializer_list.pass.cpp
Log Message:
-----------
[libc++] Make std::allocator always trivially default constructible (#169914)
This is technically ABI breaking, since `is_trivial` and
`is_trivially_default_constructible` now return different results.
However, I don't think that's a significant issue, since `allocator` is
almost always used in classes which own memory, making them non-trivial
anyways.
Commit: 57cf1ff8d8a1acaf949d866b52b7c8841a49f46d
https://github.com/llvm/llvm-project/commit/57cf1ff8d8a1acaf949d866b52b7c8841a49f46d
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M libcxx/include/__tree
M libcxx/include/map
M libcxx/include/set
Log Message:
-----------
[libc++] Remove initializer_list specific optimization in __tree (#169413)
We've seen in quite a few cases while optimizing `__tree`'s copy
construction that `_DetachedTreeCache` is actually quite slow and not
necessarily an optimization at all. This patch removes the code, since
it's now only used by `operator=(initializer_list)`, which should be
quite cold code. We might look into actually optimizing it again in the
future, but I doubt an optimization will be small enough compared to the
likely speedup in real-world code this would give.
Commit: d15ff5980bf007d2d26258d65fdae4484efd273f
https://github.com/llvm/llvm-project/commit/d15ff5980bf007d2d26258d65fdae4484efd273f
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M libcxx/include/__algorithm/copy_backward.h
M libcxx/include/__algorithm/for_each_segment.h
M libcxx/include/__algorithm/move_backward.h
Log Message:
-----------
[libc++] Merge the segmented iterator code for {copy,move}_backward (#165160)
This removes a bit of code duplication and might simplify future
segmented iterator optimitations.
Commit: 86f8445293934b1730b8024ffacf14f20387a0fc
https://github.com/llvm/llvm-project/commit/86f8445293934b1730b8024ffacf14f20387a0fc
Author: Kashika Akhouri <akhourik at google.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Options/Options.td
M clang/lib/Analysis/LifetimeSafety/Checker.cpp
M clang/test/Sema/warn-lifetime-safety-suggestions.cpp
Log Message:
-----------
[LifetimeSafety] Infer [[clang::lifetimebound]] annotation (#171081)
Adding Annotation Inference in Lifetime Analysis.
This PR implicitly adds lifetime bound annotations to the AST which is
then used by functions which are parsed later to detect UARs etc.
Example:
```cpp
std::string_view f1(std::string_view a) {
return a;
}
std::string_view f2(std::string_view a) {
return f1(a);
}
std::string_view ff(std::string_view a) {
std::string stack = "something on stack";
return f2(stack); // warning: address of stack memory is returned
}
```
Note:
1. We only add lifetime bound annotations to the functions being
analyzed currently.
2. Currently, both annotation suggestion and inference work
simultaneously. This can be modified based on requirements.
3. The current approach works given that functions are already present
in the correct order (callee-before-caller). For not so ideal cases, we
can create a CallGraph prior to calling the analysis. This can be done
in the next PR.
Commit: 33fcfb37dad3dba7307186d0adeb58e2d825cce8
https://github.com/llvm/llvm-project/commit/33fcfb37dad3dba7307186d0adeb58e2d825cce8
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M flang/include/flang/Optimizer/Analysis/TBAAForest.h
M flang/lib/Optimizer/Analysis/TBAAForest.cpp
M flang/lib/Optimizer/Transforms/AddAliasTags.cpp
M flang/test/Driver/tco-test-gen.fir
M flang/test/Fir/tbaa-codegen2.fir
A flang/test/Transforms/tbaa-cray-pointer.fir
M flang/test/Transforms/tbaa-for-common-vars.fir
M flang/test/Transforms/tbaa-for-global-equiv-vars.fir
M flang/test/Transforms/tbaa-for-local-vars.fir
M flang/test/Transforms/tbaa-with-dummy-scope.fir
M flang/test/Transforms/tbaa-with-dummy-scope2.fir
M flang/test/Transforms/tbaa2.fir
M flang/test/Transforms/tbaa3.fir
M flang/test/Transforms/tbaa4.fir
Log Message:
-----------
[flang][TBAA] refine TARGET/POINTER encoding (#170908)
Depends upon https://github.com/llvm/llvm-project/pull/170900
Re-land https://github.com/llvm/llvm-project/pull/169544
Previously we were less specific for POINTER/TARGET: encoding that they
could alias with (almost) anything.
In the new system, the "target data" tree is now a sibling of the other
trees (e.g. "global data"). POITNTER variables go at the root of the
"target data" tree, whereas TARGET variables get their own nodes under
that tree. For example,
```
integer, pointer :: ip
real, pointer :: rp
integer, target :: it
integer, target :: it2(:)
real, target :: rt
integer :: i
real :: r
```
- `ip` and `rp` may alias with any variable except `i` and `r`.
- `it`, `it2`, and `rt` may alias only with `ip` or `rp`.
- `i` and `r` cannot alias with any other variable.
Fortran 2023 15.5.2.14 gives restrictions on entities associated with
dummy arguments. These do not allow non-target globals to be modified
through dummy arguments and therefore I don't think we need to make all
globals alias with dummy arguments.
I haven't implemented it in this patch, but I wonder whether it is ever
possible for `ip` to alias with `rt`.
While I was updating the tests I fixed up some tests that still assumed
that local alloc tbaa wasn't the default.
Cray pointers/pointees are (optionally) modelled as aliasing with all
non-descriptor data. This is not enabled by default.
I found no functional regressions in the gfortran test suite.
Commit: c02978867e85a992df70aedd2fa41d7a41932375
https://github.com/llvm/llvm-project/commit/c02978867e85a992df70aedd2fa41d7a41932375
Author: Juan Manuel Martinez Caamaño <jmartinezcaamao at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/test/CodeGen/AMDGPU/extract_vector_dynelt.ll
M llvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll
Log Message:
-----------
Revert "[AMDGPU][SDAG] Add missing cases for SI_INDIRECT_SRC/DST (#170323) (#171787)
```
Step 7 (test-check-all) failure: Test just built components: check-all completed (failure)
******************** TEST 'LLVM :: CodeGen/AMDGPU/insert_vector_dynelt.ll' FAILED ********************
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
/home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc -mtriple=amdgcn -mcpu=fiji < /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll | /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/FileCheck -enable-var-scope -check-prefixes=GCN /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll
# executed command: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc -mtriple=amdgcn -mcpu=fiji
# executed command: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/FileCheck -enable-var-scope -check-prefixes=GCN /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll
# RUN: at line 3
/home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc -O0 -mtriple=amdgcn -mcpu=fiji < /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll | /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/FileCheck --check-prefixes=GCN-O0 /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll
# executed command: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc -O0 -mtriple=amdgcn -mcpu=fiji
# .---command stderr------------
# |
# | # After Instruction Selection
# | # Machine code for function insert_dyn_i32_6: IsSSA, TracksLiveness
# | Function Live Ins: $sgpr16 in %8, $sgpr17 in %9, $sgpr18 in %10, $sgpr19 in %11, $sgpr20 in %12, $sgpr21 in %13, $vgpr0 in %14, $vgpr1 in %15
# |
# | bb.0 (%ir-block.0):
# | successors: %bb.1(0x80000000); %bb.1(100.00%)
# | liveins: $sgpr16, $sgpr17, $sgpr18, $sgpr19, $sgpr20, $sgpr21, $vgpr0, $vgpr1
# | %15:vgpr_32 = COPY $vgpr1
# | %14:vgpr_32 = COPY $vgpr0
# | %13:sgpr_32 = COPY $sgpr21
# | %12:sgpr_32 = COPY $sgpr20
# | %11:sgpr_32 = COPY $sgpr19
# | %10:sgpr_32 = COPY $sgpr18
# | %9:sgpr_32 = COPY $sgpr17
# | %8:sgpr_32 = COPY $sgpr16
# | %17:sgpr_192 = REG_SEQUENCE %8:sgpr_32, %subreg.sub0, %9:sgpr_32, %subreg.sub1, %10:sgpr_32, %subreg.sub2, %11:sgpr_32, %subreg.sub3, %12:sgpr_32, %subreg.sub4, %13:sgpr_32, %subreg.sub5
# | %16:sgpr_192 = COPY %17:sgpr_192
# | %19:vreg_192 = COPY %17:sgpr_192
# | %28:sreg_64_xexec = IMPLICIT_DEF
# | %27:sreg_64_xexec = S_MOV_B64 $exec
# |
# | bb.1:
# | ; predecessors: %bb.1, %bb.0
# | successors: %bb.1(0x40000000), %bb.3(0x40000000); %bb.1(50.00%), %bb.3(50.00%)
# |
# | %26:vreg_192 = PHI %19:vreg_192, %bb.0, %18:vreg_192, %bb.1
# | %29:sreg_64 = PHI %28:sreg_64_xexec, %bb.0, %30:sreg_64, %bb.1
# | %31:sreg_32_xm0 = V_READFIRSTLANE_B32 %14:vgpr_32, implicit $exec
# | %32:sreg_64 = V_CMP_EQ_U32_e64 %31:sreg_32_xm0, %14:vgpr_32, implicit $exec
# | %30:sreg_64 = S_AND_SAVEEXEC_B64 killed %32:sreg_64, implicit-def $exec, implicit-def $scc, implicit $exec
# | $m0 = COPY killed %31:sreg_32_xm0
# | %18:vreg_192 = V_INDIRECT_REG_WRITE_MOVREL_B32_V8 %26:vreg_192(tied-def 0), %15:vgpr_32, 3, implicit $m0, implicit $exec
# | $exec = S_XOR_B64_term $exec, %30:sreg_64, implicit-def $scc
# | S_CBRANCH_EXECNZ %bb.1, implicit $exec
# |
# | bb.3:
```
This reverts commit 15df9e701f1f1194a25e6123612cc735ad392ae4.
Commit: 0b522d9e8e450a38fea1ac14b7ec67f682f43725
https://github.com/llvm/llvm-project/commit/0b522d9e8e450a38fea1ac14b7ec67f682f43725
Author: Charles Zablit <c_zablit at apple.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M lldb/include/lldb/Host/Terminal.h
M lldb/include/lldb/Host/common/DiagnosticsRendering.h
M lldb/source/Host/common/DiagnosticsRendering.cpp
M lldb/source/Host/common/Terminal.cpp
M lldb/test/Shell/Commands/command-dwim-print.test
M lldb/test/Shell/Commands/command-expr-diagnostics.test
M lldb/test/Shell/Commands/command-options.test
M lldb/unittests/Host/common/DiagnosticsRenderingTest.cpp
Log Message:
-----------
Revert "[lldb] fix failing tests due to CI diagnostics rendering (#171791)
Commit: 4f5071ffe3772c4e04df81b2ee474548ea430815
https://github.com/llvm/llvm-project/commit/4f5071ffe3772c4e04df81b2ee474548ea430815
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
A llvm/test/Transforms/InstCombine/issue64967-reassoc-fmul.ll
Log Message:
-----------
InstCombine: Add baseline test for #64697 fmul reassociation (#171725)
Currently fmul is not reassociated unless it has nsz, although
this should be unnecessary.
Commit: f8d1f53bb68327c4beba83379385a25e3f1152f3
https://github.com/llvm/llvm-project/commit/f8d1f53bb68327c4beba83379385a25e3f1152f3
Author: Kunwar Grover <groverkss at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M mlir/lib/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.cpp
M mlir/test/Dialect/SCF/value-bounds-op-interface-impl.mlir
Log Message:
-----------
[mlir][scf] Add value bound for computed upper bound of forall loop (#171158)
Add additional bound for the induction variable of the scf.forall such
that:
%iv <= %lower_bound + (%trip_count - 1) * step
Same as https://github.com/llvm/llvm-project/pull/126426 but for
scf.forall loop
Commit: 8af88a45ca2720b0d32da19721d6a6e80a30d197
https://github.com/llvm/llvm-project/commit/8af88a45ca2720b0d32da19721d6a6e80a30d197
Author: Durgadoss R <durgadossr at nvidia.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
M mlir/test/Conversion/NVVMToLLVM/nvvm-to-llvm.mlir
A mlir/test/Target/LLVMIR/nvvm/pm_event.mlir
A mlir/test/Target/LLVMIR/nvvm/pm_event_invalid.mlir
M mlir/test/Target/LLVMIR/nvvmir-invalid.mlir
M mlir/test/Target/LLVMIR/nvvmir.mlir
Log Message:
-----------
[MLIR][NVVM] Update PMEvent lowering to intrinsics (#171649)
The patch updates the lowering of `id` based pmevent
also to intrinsics. The mask is simply (1 << event-id).
Signed-off-by: Durgadoss R <durgadossr at nvidia.com>
Commit: fbc121ce1ee398176bdfeb482b0549e03a2bb5c8
https://github.com/llvm/llvm-project/commit/fbc121ce1ee398176bdfeb482b0549e03a2bb5c8
Author: Gergely Bálint <gergely.balint at arm.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M bolt/include/bolt/Core/MCPlusBuilder.h
M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
M bolt/unittests/Core/MCPlusBuilder.cpp
Log Message:
-----------
[BOLT][BTI] Add MCPlusBuilder::insertBTI (#167329)
This function contains most of the logic for BTI:
- it takes the BasicBlock and the instruction used to jump to it.
- Then it checks if the first non-pseudo instruction is a sufficient
landing pad for the used call.
- if not, it generates the correct BTI instruction.
Also introduce the isCallCoveredByBTI helper to simplify the logic.
Commit: 481ce8169539485fd506792f86c03329c50d4a06
https://github.com/llvm/llvm-project/commit/481ce8169539485fd506792f86c03329c50d4a06
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/IR/Instruction.cpp
M llvm/test/Transforms/InstCombine/2006-10-26-VectorReassoc.ll
M llvm/test/Transforms/InstCombine/fdiv.ll
M llvm/test/Transforms/InstCombine/issue64967-reassoc-fmul.ll
Log Message:
-----------
IR: Stop requiring nsz to reassociate fmul (#171726)
nsz can only change the behavior of the sign bit.
The sign bit for fmul can be implemented as xor,
which is associative. DAGCombiner already reassociates
the multiply by 2 constants without nsz.
Fixes #64967
Commit: d0767e96f9c1f46de60ae6c592459f830af05cca
https://github.com/llvm/llvm-project/commit/d0767e96f9c1f46de60ae6c592459f830af05cca
Author: anoopkg6 <anoop.kumar6 at ibm.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M compiler-rt/lib/orc/CMakeLists.txt
A compiler-rt/lib/orc/elfnix_tls.systemz.S
A compiler-rt/test/orc/TestCases/Linux/systemz/trivial-tls.S
M llvm/include/llvm/ExecutionEngine/JITLink/systemz.h
M llvm/lib/ExecutionEngine/JITLink/ELF_systemz.cpp
M llvm/lib/ExecutionEngine/JITLink/systemz.cpp
M llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp
Log Message:
-----------
[JITLink] Add TLS support for SystemZ (#171559)
This patch adds TLS support for SystemZ on top of orc-runtime support. A
separate orc-runtime support #171062 has been created from earlier TLS
support #[170706](https://github.com/llvm/llvm-project/pull/170706).
See conversations in
[#170706](https://github.com/llvm/llvm-project/pull/170706)
---------
Co-authored-by: anoopkg6 <anoopkg6 at github.com>
Commit: c89d87a512ed5b4bfeedb5d7ae22ae8cba1b123a
https://github.com/llvm/llvm-project/commit/c89d87a512ed5b4bfeedb5d7ae22ae8cba1b123a
Author: Omair Javaid <omair.javaid at linaro.org>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M lldb/test/Shell/BuildScript/toolchain-msvc.test
Log Message:
-----------
[lldb][test] Fix toolchain-msvc.test for native ARM64 MSVC environment (#171797)
This patch fixes toolchain-msvc.test on Windows ARM64 hosts running
under native ARM64 environment via vcvarsarm64.bat. Our lab buildbot
recently switched from using cross vcvarsamd64_arm64.bat environment to
native vcvarsarm64.bat. This patch updates FileCheck patterns to also
allow HostARM64 and arm64 PATH entries.
Changes:
-> Extend host regex to match HostARM64 (case-insensitive)
-> Allow arm64 in PATH tail.
-> Apply same fix in both 32-bit and 64-bit sections.
Commit: 9b6b52b534ba592d7d6b5863e3d9a240119a74d9
https://github.com/llvm/llvm-project/commit/9b6b52b534ba592d7d6b5863e3d9a240119a74d9
Author: JaydeepChauhan14 <chauhan.jaydeep.ashwinbhai at intel.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
Log Message:
-----------
[AsmPrinter][NFC] Reuse Target Triple variable (#171612)
Commit: 06aecdbebe4b300c577a3009d8c831221a42fad8
https://github.com/llvm/llvm-project/commit/06aecdbebe4b300c577a3009d8c831221a42fad8
Author: Men-cotton <mencotton0410 at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M mlir/lib/Dialect/SCF/IR/SCF.cpp
M mlir/test/Dialect/SCF/invalid.mlir
Log Message:
-----------
[MLIR][SCF] Verify number of regions in scf.reduce (#171450)
This patch adds `ReduceOp::verifyRegions` to ensure that the number of
reduction regions equals the number of operands (`getReductions().size()
== getOperands().size()`).
Additionally, `ParallelOp::verify` is updated to gracefully handle cases
where the number of reduce operands differs from the initial values,
preventing verification logic crashes and relying on `ReduceOp` to
report structural inconsistencies.
Fixes: #118768
Commit: 9bcba9de5079e2bf7a5e8de9387d2368eb70871c
https://github.com/llvm/llvm-project/commit/9bcba9de5079e2bf7a5e8de9387d2368eb70871c
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/test/CodeGen/X86/vector-compare-results.ll
Log Message:
-----------
[X86] vector-compare-results.ll - regenerate VPTERNLOG asm comments (#171803)
Commit: ac2291dc452d0ebbcf817dc7cd0ab11b74f2ea3a
https://github.com/llvm/llvm-project/commit/ac2291dc452d0ebbcf817dc7cd0ab11b74f2ea3a
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/elementwise-store-of-scalar-splat.ll
M llvm/test/CodeGen/X86/pr166744.ll
M llvm/test/CodeGen/X86/ptest.ll
M llvm/test/CodeGen/X86/setcc-wide-types.ll
M llvm/test/CodeGen/X86/subvectorwise-store-of-vector-splat.ll
Log Message:
-----------
[X86] Allow handling of i128/256/512 AND/OR/XOR bitlogic on the FPU (#171616)
If the scalar integer sources are freely transferable to the FPU, then
perform the bitlogic op as a SSE/AVX operation.
Uses the mayFoldIntoVector helper added at #171589
Commit: 4be3df8cf1392249b199ec30c0e30b1958f251d7
https://github.com/llvm/llvm-project/commit/4be3df8cf1392249b199ec30c0e30b1958f251d7
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
A llvm/test/Transforms/Attributor/nofpclass-fmul.ll
Log Message:
-----------
ValueTracking: Add baseline test for fmul denormal scaling handling (#171729)
Commit: f548902922953c4a08f4498c259ae6126daedd90
https://github.com/llvm/llvm-project/commit/f548902922953c4a08f4498c259ae6126daedd90
Author: Dan Blackwell <dan_blackwell at apple.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M compiler-rt/test/sanitizer_common/TestCases/Posix/dedup_token_length_test.cpp
Log Message:
-----------
[sanitizer_common][test-only] Remove xfail for darwin ubsan on dedup_token_length_test (#171812)
This test is currently XPASSing on the iossim CI.
rdar://166219043
Commit: bb40d94721785379d6a6fcadd228a5eae0ed8f04
https://github.com/llvm/llvm-project/commit/bb40d94721785379d6a6fcadd228a5eae0ed8f04
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for llvm-else-after-return in ElementwiseOpFusion.cpp (NFC)
Commit: 3558537e281929706398659a92c91eb3a99917ec
https://github.com/llvm/llvm-project/commit/3558537e281929706398659a92c91eb3a99917ec
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for readability-identifier-naming in TosaOps.cpp (NFC)
Commit: de29f24bdee7d409b855445ff52db779d06d12e6
https://github.com/llvm/llvm-project/commit/de29f24bdee7d409b855445ff52db779d06d12e6
Author: Dan Blackwell <dan_blackwell at apple.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M compiler-rt/test/sanitizer_common/TestCases/Posix/popen.cpp
Log Message:
-----------
[sanitizer_common][test-only] Mark popen xfail on iossim (#171814)
rdar://166246774
Commit: 0f2f9e1c80cdaa3f6beb3516b6e5c1f9519baeda
https://github.com/llvm/llvm-project/commit/0f2f9e1c80cdaa3f6beb3516b6e5c1f9519baeda
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for performance-unnecessary-copy-initialization in DropUnitDims.cpp (NFC)
Commit: 6b7b0ab530d5707e31b14333cda679dd99e01298
https://github.com/llvm/llvm-project/commit/6b7b0ab530d5707e31b14333cda679dd99e01298
Author: Jacques Pienaar <jpienaar at google.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M mlir/include/mlir/Pass/Pass.h
M mlir/include/mlir/Pass/PassInstrumentation.h
M mlir/lib/Pass/Pass.cpp
M mlir/unittests/Pass/PassManagerTest.cpp
Log Message:
-----------
Enable pass instrumentation to signal failures. (#163126)
Enables adding instrumentation to pass manager that can track/flag
invariants. This would be useful for cases where one some tighter
requirements than the general dialects or for a phase of conversion that
elsewhere.
It would enable making verify also just a regular instrumentation I
believe, but also a non-goal as that is a first class concept and
baseline for the ops and passes.
Would have enabled some of the requirements of
https://discourse.llvm.org/t/pre-verification-logic-before-running-conversion-pass-in-mlir/88318/10
.
Commit: a9a05dfa5d5f57ab9b32fb4dd122e847902d42f7
https://github.com/llvm/llvm-project/commit/a9a05dfa5d5f57ab9b32fb4dd122e847902d42f7
Author: Sirui Mu <msrlancern at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/Dialect/IR/CIRMemorySlot.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/test/CIR/CodeGen/atomic-scoped.c
M clang/test/CIR/CodeGen/atomic.c
Log Message:
-----------
[CIR] Scoped atomic store (#171627)
This patch adds support for `__scoped_atomic_store` and
`__scoped_atomic_store_n`.
Commit: 4ea7488c277f137be0e3c585d1af7ef223430b06
https://github.com/llvm/llvm-project/commit/4ea7488c277f137be0e3c585d1af7ef223430b06
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M mlir/lib/Tools/mlir-lsp-server/MLIRServer.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for readability-identifier-naming in MLIRServer.cpp (NFC)
Commit: e463bf949fb5ca379e07395c4d4c69ddc7450dcd
https://github.com/llvm/llvm-project/commit/e463bf949fb5ca379e07395c4d4c69ddc7450dcd
Author: Paul Walker <paul.walker at arm.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64SchedA320.td
M llvm/lib/Target/AArch64/AArch64SchedA510.td
M llvm/lib/Target/AArch64/AArch64SchedNeoverseN2.td
M llvm/lib/Target/AArch64/AArch64SchedNeoverseN3.td
M llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td
M llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
M llvm/lib/Target/AArch64/AArch64SchedNeoverseV3.td
M llvm/lib/Target/AArch64/AArch64SchedNeoverseV3AE.td
M llvm/lib/Target/AArch64/SVEInstrFormats.td
M llvm/unittests/Target/AArch64/AArch64SVESchedPseudoTest.cpp
Log Message:
-----------
[LLVM][AArch64] Remove hasNoSchedulingInfo from SVE pseudo instructions. (#171487)
These should always have the same schediling information as their real
instruction counterparts. Removing this property means we'll catch
missing entries when building the compiler.
Also extends AArch64SVESchedPseudoTest coverage to include all existing CPU that support SVE.
Commit: 39fcd2cb81136a25fe7274044979957eb0619c4e
https://github.com/llvm/llvm-project/commit/39fcd2cb81136a25fe7274044979957eb0619c4e
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Transforms/Attributor/nofpclass-fmul.ll
M llvm/test/Transforms/Attributor/nofpclass-nan-fmul.ll
Log Message:
-----------
ValueTracking: Teach computeKnownFPClass that multiply can avoid denormals (#171730)
Multiply by large constant can be used to scale denormal inputs into
a normal range. This pattern appears frequently in math function library
implementations to make use of hardware instructions that do not support
denormals. We already handle this case for ldexp, but now canonicalize
ldexp by a constant to an fmul.
The test cases are mostly the existing nofpclass test for ldexp,
run through the new instcombine to replace ldexp with fmul.
Commit: a5cd19f53f51c8be1c8d1994a664497a0ed38d12
https://github.com/llvm/llvm-project/commit/a5cd19f53f51c8be1c8d1994a664497a0ed38d12
Author: Leandro Lupori <leandro.lupori at linaro.org>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M flang/test/Driver/gcc-triple.f90
Log Message:
-----------
[flang] Fix gcc-triple.f90 test on Darwin (#171690)
On Darwin an explicit Linux target must be set to make
`Selected GCC installation:` appear in the output.
Commit: 693a9873154705539a71245cc8c600282e2292b0
https://github.com/llvm/llvm-project/commit/693a9873154705539a71245cc8c600282e2292b0
Author: Leandro Lupori <leandro.lupori at linaro.org>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M flang/test/Driver/lto-bc.f90
Log Message:
-----------
[flang] Make lto-bc.f90 unsupported on Darwin (#171693)
It fails with the following error:
```
RUN: at line 23
/Users/leandro.lupori/home/git/flang/build/bin/flang -flto /Users/leandro.lupori/home/git/flang/llvm-project/flang/test/Driver/lto-bc.f90 -c -o - | llvm-dis -o - | /Users/leandro.lupori/home/git/flang/build/bin/FileCheck /Users/leandro.lupori/home/git/flang/llvm-project/flang/test/Driver/lto-bc.f90 --check-prefix=FULL
.---command stderr------------
| /Users/leandro.lupori/home/git/flang/llvm-project/flang/test/Driver/lto-bc.f90:27:9: error: FULL: expected string not found in input
| ! FULL: !{{.*}} = !{i32 1, !"ThinLTO", i32 0}
| ^
| ...
| Input was:
| <<<<<<
| ...
| 24: !llvm.ident = !{!0}
| check:27'0 ~~~~~~~~~~~~~~~~~~~~
| 25: !llvm.module.flags = !{!1, !2}
| check:27'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| 26:
| check:27'0 ~
| 27: !0 = !{!"flang version 22.0.0 (git at github.com:llvm/llvm-project.git dde1990b01fa13087b0eab77579f528329555968)"}
| check:27'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| 28: !1 = !{i32 2, !"Debug Info Version", i32 3}
| check:27'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| 29: !2 = !{i32 8, !"PIC Level", i32 2}
| check:27'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| check:27'1 ? possible intended match
| >>>>>>
`-----------------------------
```
Commit: 296781524902c4eb06efc5bb054cac58b973d839
https://github.com/llvm/llvm-project/commit/296781524902c4eb06efc5bb054cac58b973d839
Author: Luke Lau <luke at igalia.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp
M llvm/unittests/Transforms/Vectorize/VPlanVerifierTest.cpp
Log Message:
-----------
[VPlan] Don't emit VPBlendRecipes with only one incoming value. NFC (#171804)
We can just directly use the incoming value. These single value blends
would get optimized later on in simplifyBlends, but by doing it early it
removes the notion of an "immediately normalized" blend, and simplifies
an upcoming patch.
Commit: d33d80fae606104bb82673d8a17657fe99afef70
https://github.com/llvm/llvm-project/commit/d33d80fae606104bb82673d8a17657fe99afef70
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
M llvm/test/CodeGen/X86/stack-protector-msvc-oz.ll
M llvm/test/CodeGen/X86/stack-protector-msvc.ll
Log Message:
-----------
[FastISel] Don't force SDAG fallback for libcalls (#171782)
The fast instruction selector should should not force an SDAG fallback
to potentially make use of optimized libcall implementations.
Looking at
https://github.com/llvm/llvm-project/commit/3e6fa462f3c617ca8202162da2a3990c97b9ec36,
part of the motivation was to avoid libcalls in unoptimized builds for
targets that don't have them, but I believe this should be handled by
Clang directly emitting intrinsics instead of libcalls (which it already
does). FastISel should not second guess this.
Followup to https://github.com/llvm/llvm-project/pull/171288.
Commit: f4062100a0c762b7cc656df6c91202e8a1829329
https://github.com/llvm/llvm-project/commit/f4062100a0c762b7cc656df6c91202e8a1829329
Author: Sander de Smalen <sander.desmalen at arm.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/lib/Target/AArch64/AArch64FrameLowering.h
M llvm/lib/Target/AArch64/AArch64PrologueEpilogue.cpp
M llvm/test/CodeGen/AArch64/arm64ec-reservedregs.ll
M llvm/test/CodeGen/AArch64/framelayout-sve-win.mir
M llvm/test/CodeGen/AArch64/llvm.frexp.ll
M llvm/test/CodeGen/AArch64/preserve_mostcc.ll
M llvm/test/CodeGen/AArch64/preserve_nonecc_varargs_win64.ll
M llvm/test/CodeGen/AArch64/sme-lazy-save-windows.ll
M llvm/test/CodeGen/AArch64/swift-async-win.ll
M llvm/test/CodeGen/AArch64/win64-no-uwtable.ll
Log Message:
-----------
[AArch64] Use Windows-style prologue/epilogue regardless of CFI. (#156467)
To reduce the number of combinations to support, always use the same
prologue/epilogue lowering on windows regardless of whether unwind info
is required.
This also fixes an issue where a function with SVE callee-saves and
`nounwind` led to a compilation failure, because the SVE lowering makes
assumptions that only hold when using the Windows style
prologue/epilogue.
---------
Co-authored-by: Benjamin Maxwell <benjamin.maxwell at arm.com>
Commit: 7c328d8a0a6200a8a3b79fecedecf203a1cef339
https://github.com/llvm/llvm-project/commit/7c328d8a0a6200a8a3b79fecedecf203a1cef339
Author: Stephen Thomas <104134586+stepthomas at users.noreply.github.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
M llvm/test/CodeGen/AMDGPU/hazards-gfx1250.mir
Log Message:
-----------
[AMDGPU][GCNHazardRecognizer] Remove instances of hardcoded S_WAITCNT_DEPCTR operand values (#171811)
Two S_WAITCNT_DEPCTR instructions are constructed with hardcoded operand
values. Replace these with appropriate calls to
AMDGPU::DepCtr::encodeFieldVmVsrc().
NFC, except that the original code was setting reserved operand bits
that should-be-zero, and this is now corrected.
Commit: a3aaa1a391c08011a0501c79052658583aa729be
https://github.com/llvm/llvm-project/commit/a3aaa1a391c08011a0501c79052658583aa729be
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/include/llvm/CodeGen/RuntimeLibcallUtil.h
M llvm/include/llvm/IR/RuntimeLibcalls.td
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/IR/RuntimeLibcalls.cpp
M llvm/test/Transforms/Util/DeclareRuntimeLibcalls/armpl.ll
M llvm/test/Transforms/Util/DeclareRuntimeLibcalls/sleef.ll
Log Message:
-----------
DAG: Use RuntimeLibcalls to legalize vector frem calls (#170719)
This continues the replacement of TargetLibraryInfo uses in codegen
with RuntimeLibcallsInfo started in
821d2825a4f782da3da3c03b8a002802bff4b95c.
The series there handled all of the multiple result calls. This
extends for the other handled case, which happened to be frem.
For some reason the Libcall for these are prefixed with "REM_", for
the instruction "frem", which maps to the libcall "fmod".
Commit: 54b62d7a29198dec3669bf261ed446f9fe159ad9
https://github.com/llvm/llvm-project/commit/54b62d7a29198dec3669bf261ed446f9fe159ad9
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M libcxx/test/libcxx/clang_tidy.gen.py
M libcxx/test/libcxx/clang_tidy.sh.py
Log Message:
-----------
[libc++][NFC] Wrap line endings for clang-tidy tests (#171688)
Otherwise, the lines are extremely long and basically impossible to
read.
Commit: dec52b2c4791e74058c05d0a85405725989480c6
https://github.com/llvm/llvm-project/commit/dec52b2c4791e74058c05d0a85405725989480c6
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M libcxx/src/CMakeLists.txt
Log Message:
-----------
[libc++] Fix incorrect install component for the libc++ linker script (#171663)
This patch fixes the name of the install component for the libc++ linker
script. Every other target mentions the cxx component, and that one
mentions libcxx. I believe that was a typo in 4bd3d16c2d62.
Commit: 87345d2ad48f6be87c98e748423a3b9de74dbef9
https://github.com/llvm/llvm-project/commit/87345d2ad48f6be87c98e748423a3b9de74dbef9
Author: Erick Ochoa Lopez <erick.ochoalopez at amd.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M mlir/include/mlir/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.h
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
Log Message:
-----------
[mlir][amdgpu] Add type conversion to populate method (NFC) (#171708)
* Renames populateAMDGPUMemorySpaceAttributeConversions to
populateAMDGPUTypeAndAttributeConversions.
* Adds TDMBaseType conversion to
populateAMDGPUTypeAndAttributeConversions.
Commit: 60b5d06f7cb0a4de6417f6e6d05ed780e45d844d
https://github.com/llvm/llvm-project/commit/60b5d06f7cb0a4de6417f6e6d05ed780e45d844d
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M lldb/tools/lldb-dap/tool/lldb-dap.cpp
Log Message:
-----------
[lldb][lldb-dap] Remove unused variable
Fixes warning:
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\tools\lldb-dap\tool\lldb-dap.cpp(446,27): warning: unused variable 'dap_sessions_condition' [-Wunused-variable]
Variable is unused since #163653 / 5ab3375b2cf461ab02704d129a1f4d5ba1a1e275.
Commit: c28992a7a4018bc634464805de68b0abfd5c2ea6
https://github.com/llvm/llvm-project/commit/c28992a7a4018bc634464805de68b0abfd5c2ea6
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaTemplate.cpp
A clang/test/SemaCXX/dllexport-explicit-instantiation.cpp
M clang/test/SemaCXX/dllexport.cpp
Log Message:
-----------
[Clang] Allow simpler visibility annotations when targeting win32 and mingw (#133699)
MinGW and Win32 disagree on where the `__declspec(dllexport)` should be
placed on extern template instantiations. However, there doesn't
fundamentally seem to be a problem with putting the annotation in both
places. This patch adds a new diagnostic group and `-Wattribute-ignored`
warnings about where the attribute is placed if the attribute is
different on the declaration and definition. There is another new
warning group `-Wdllexport-explicit-instantiation` that also diagnoses
places where the attribute is technically ignored, even though the
correct place is also annotated. This makes it possible to significantly
simplify libc++'s visibility annotations (see #133704).
Commit: 90c340a642222b1ce0fa2617994457b091e5ca4b
https://github.com/llvm/llvm-project/commit/90c340a642222b1ce0fa2617994457b091e5ca4b
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M lldb/unittests/Platform/Android/AdbClientTest.cpp
Log Message:
-----------
[lldb[test] Fix compiler warning in AdbClientTest.cpp
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\unittests\Platform\Android\AdbClientTest.cpp(100,17): warning: unused function 'FindUnusedPort' [-Wunused-function]
Function is used by a test that is disabled on Windows.
Commit: ce86d9df1a701821803fe1eef3b73263e8ce6084
https://github.com/llvm/llvm-project/commit/ce86d9df1a701821803fe1eef3b73263e8ce6084
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang/lib/Sema/SemaConcept.cpp
M clang/unittests/Support/TimeProfilerTest.cpp
Log Message:
-----------
[Clang] Add TimeTraceScope to Sema::CheckConstraintSatisfaction (#170264)
Evaluating concepts can take quite a bit of time and it's not
necessarily obvious what's part of that and what not. This scope makes
it clear which parts are concept evaluation and where they are invoked.
Commit: b2dae2ba6ecaa2d424649fbd9dd6c4d3934b4f2b
https://github.com/llvm/llvm-project/commit/b2dae2ba6ecaa2d424649fbd9dd6c4d3934b4f2b
Author: David Spickett <david.spickett at linaro.org>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M lldb/unittests/Host/JSONTransportTest.cpp
Log Message:
-----------
[lldb][test] Skip all of JSONTransportTest.cpp file on Windows
We were cutting out the tests but leaving the utility functions,
leading to warnings like:
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\unittests\Host\JSONTransportTest.cpp(65,6): warning: unused function 'operator==' [-Wunused-function]
C:\Users\tcwg\llvm-worker\lldb-aarch64-windows\llvm-project\lldb\unittests\Host\JSONTransportTest.cpp(72,6): warning: unused function 'PrintTo' [-Wunused-function]
I've moved the ifndef to the start of the file to fix those.
Commit: dd63dff83aedd1b39b75ae7ae7c7b0f1fdd544a0
https://github.com/llvm/llvm-project/commit/dd63dff83aedd1b39b75ae7ae7c7b0f1fdd544a0
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M flang/examples/FeatureList/FeatureList.cpp
M flang/include/flang/Parser/dump-parse-tree.h
M flang/include/flang/Parser/parse-tree.h
M flang/include/flang/Semantics/openmp-modifiers.h
M flang/lib/Parser/openmp-parsers.cpp
M flang/lib/Parser/unparse.cpp
M flang/lib/Semantics/openmp-modifiers.cpp
M flang/test/Parser/OpenMP/interop-construct.f90
Log Message:
-----------
[flang][OpenMP] Parse OpenMP 6.0 syntax of INIT clause (#171702)
This includes `FR(...)` for foreign runtime identifiers and `ATTR(...)`
for extensions. Do not store string runtime ids as character literals in
the AST. Use parser::Expr instead, since lowering would require
evaluate::Expr for these ids, and we get evaluate::Expr from
parser::Expr automatically.
Use OpenMP 6.0 naming for AST nodes (since it's the "current" one).
Commit: a9fadb3ed4fba28d031a4bc72de8f3fc15c08072
https://github.com/llvm/llvm-project/commit/a9fadb3ed4fba28d031a4bc72de8f3fc15c08072
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M libcxx/include/CMakeLists.txt
M libcxx/modules/CMakeLists.txt
M libcxx/src/CMakeLists.txt
M libcxxabi/include/CMakeLists.txt
M libcxxabi/src/CMakeLists.txt
M libunwind/include/CMakeLists.txt
M libunwind/src/CMakeLists.txt
Log Message:
-----------
[runtimes] Modernize installation targets (#171677)
This patch moves away from using cmake_install scripts to install the
various targets when building runtimes, since those have been deprecated
by CMake. Instead, we use `cmake --install` which is the prefered
method.
This patch also localizes how we set dependencies on the various
installation targets, allowing the removal of a few global variables
that were used as lists.
Finally, it makes the way we set up installation targets for libc++,
libc++abi and libunwind consistent again.
Commit: e0387b78c451222828a85147d053b54db3527243
https://github.com/llvm/llvm-project/commit/e0387b78c451222828a85147d053b54db3527243
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M .github/workflows/libcxx-build-and-test.yaml
Log Message:
-----------
[libc++][Github] Move back to main runner set (#171771)
This moves us back to the main runner set so that the next runner set
can be used for upgrading again when we want to do that. This also
captures the Github Runner version upgrade.
Commit: f582fc649178931694d6e360ec79e8c1fe8a0d0b
https://github.com/llvm/llvm-project/commit/f582fc649178931694d6e360ec79e8c1fe8a0d0b
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M libcxx/test/CMakeLists.txt
M libcxxabi/test/CMakeLists.txt
Log Message:
-----------
[libc++] Simplify how we install test-suite dependencies (#171504)
Based on comments in #171474, it was brought to my attention that we can
modernize and simplify how we perform the test suite installation in
libc++ and libc++abi.
Commit: cdce445c9c7a77e3e0991ebea7cd1e56e37f647e
https://github.com/llvm/llvm-project/commit/cdce445c9c7a77e3e0991ebea7cd1e56e37f647e
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/single_elt_vector_memory_operation.ll
Log Message:
-----------
[X86] isLoadBitCastBeneficial - its only beneficial to bitcast between vector types if the new type is legal (#171813)
Prevents us from attempting to store illegal types like <2 x i128> that will force scalarization/splitting
Noticed while trying to avoid some split stores mentioned in #171616
Commit: 85fafd5db0fc0d1e38b3277b67f45ae6a5b74824
https://github.com/llvm/llvm-project/commit/85fafd5db0fc0d1e38b3277b67f45ae6a5b74824
Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
M llvm/lib/CodeGen/HardwareLoops.cpp
M llvm/lib/Target/ARM/MVETailPredication.cpp
M llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
M llvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp
M llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
M llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp
M llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
M llvm/lib/Transforms/Scalar/LoopFlatten.cpp
M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
M llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp
M llvm/lib/Transforms/Scalar/LoopPredication.cpp
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
M llvm/lib/Transforms/Scalar/LoopTermFold.cpp
M llvm/lib/Transforms/Scalar/NaryReassociate.cpp
M llvm/lib/Transforms/Utils/LoopConstrainer.cpp
M llvm/lib/Transforms/Utils/LoopPeel.cpp
M llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
M llvm/lib/Transforms/Utils/LoopVersioning.cpp
M llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/unittests/Transforms/Utils/ScalarEvolutionExpanderTest.cpp
M polly/lib/Support/ScopHelper.cpp
Log Message:
-----------
[SCEVExp] Get DL from SE, strip constructor arg (NFC) (#171823)
Commit: 7f248a62fb57ba01d01d5cd6a11dd7dafa3131fb
https://github.com/llvm/llvm-project/commit/7f248a62fb57ba01d01d5cd6a11dd7dafa3131fb
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86ISelLowering.h
M llvm/test/CodeGen/X86/ptest.ll
Log Message:
-----------
[X86] mayFoldIntoVector - relax load alignment requirements (#171830)
If we're trying to move big integers to vector types, relax the SSE alignment requirements - unlike regular uses of mayFoldLoad, we're not testing to confirm every load will fold into a vector op, just that it can move to the FPU.
Fixes #144861
Commit: 16c0893f04c04faa8ac36495363344840f7c5db1
https://github.com/llvm/llvm-project/commit/16c0893f04c04faa8ac36495363344840f7c5db1
Author: Brox Chen <guochen2 at amd.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/test/CodeGen/AMDGPU/dagcombine-fmul-sel.ll
M llvm/test/CodeGen/AMDGPU/extract-subvector-16bit.ll
M llvm/test/CodeGen/AMDGPU/fcanonicalize.f16.ll
M llvm/test/CodeGen/AMDGPU/fcopysign.f16.ll
M llvm/test/CodeGen/AMDGPU/fdiv.f16.ll
M llvm/test/CodeGen/AMDGPU/fmaximum3.ll
M llvm/test/CodeGen/AMDGPU/fminimum3.ll
M llvm/test/CodeGen/AMDGPU/fmul-to-ldexp.ll
M llvm/test/CodeGen/AMDGPU/fold-int-pow2-with-fmul-or-fdiv.ll
M llvm/test/CodeGen/AMDGPU/fpow.ll
M llvm/test/CodeGen/AMDGPU/fptrunc.f16.ll
M llvm/test/CodeGen/AMDGPU/fract-match.ll
M llvm/test/CodeGen/AMDGPU/half.ll
M llvm/test/CodeGen/AMDGPU/llvm.ceil.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.cos.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.floor.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.frexp.ll
M llvm/test/CodeGen/AMDGPU/llvm.ldexp.ll
M llvm/test/CodeGen/AMDGPU/llvm.log.ll
M llvm/test/CodeGen/AMDGPU/llvm.log10.ll
M llvm/test/CodeGen/AMDGPU/llvm.log2.ll
M llvm/test/CodeGen/AMDGPU/llvm.rint.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.round.ll
M llvm/test/CodeGen/AMDGPU/llvm.sin.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.sqrt.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.trunc.f16.ll
M llvm/test/CodeGen/AMDGPU/mad-mix-hi.ll
M llvm/test/CodeGen/AMDGPU/mad-mix-lo.ll
M llvm/test/CodeGen/AMDGPU/repeated-divisor.ll
M llvm/test/CodeGen/AMDGPU/roundeven.ll
M llvm/test/CodeGen/AMDGPU/select-fabs-fneg-extract.v2f16.ll
M llvm/test/CodeGen/AMDGPU/sext-in-reg-vector-shuffle.ll
M llvm/test/CodeGen/AMDGPU/sint_to_fp.i64.ll
M llvm/test/CodeGen/AMDGPU/sitofp.f16.ll
M llvm/test/CodeGen/AMDGPU/true16-imm-folded-to-0-regression.ll
M llvm/test/CodeGen/AMDGPU/uint_to_fp.i64.ll
M llvm/test/CodeGen/AMDGPU/uitofp.f16.ll
M llvm/test/CodeGen/AMDGPU/v_pack.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-fmax.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-fmin.ll
Log Message:
-----------
[AMDGPU][True16] remove pack32 pattern from true16 mode (#171756)
Remove pack32 so that isel use reg_sequence in true16 mode for
build_vector. This generates better code
Commit: 8512c074c8452055bd81788138c6ac300a13bacc
https://github.com/llvm/llvm-project/commit/8512c074c8452055bd81788138c6ac300a13bacc
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
Log Message:
-----------
[mlir][vector] Remove hooks deprecated pre Release/22 branch (#171829)
As mentioned on Discourse,
* https://discourse.llvm.org/t/psa-vector-standardise-operand-naming
I am removing the deprecated Vector hooks near the creation of the
release/22 branch. These hooks were introduced in #158258 (~September
'25, ~3 months ago), so I assume folks have enough time to transition
away.
Commit: 8a4cc440f200154d6514df6db55789991aae5a4f
https://github.com/llvm/llvm-project/commit/8a4cc440f200154d6514df6db55789991aae5a4f
Author: David Green <david.green at arm.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/ShrinkWrap.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.h
M llvm/lib/Target/AArch64/AArch64RedundantCondBranchPass.cpp
M llvm/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp
M llvm/test/CodeGen/AArch64/arm64-shrink-wrapping.ll
M llvm/test/CodeGen/AArch64/block-placement-optimize-branches.ll
M llvm/test/CodeGen/AArch64/lr-reserved-for-ra-live-in.ll
M llvm/test/CodeGen/AArch64/pr164181.ll
M llvm/test/CodeGen/AArch64/pr166870.ll
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll.generated.expected
M llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/aarch64_generated_funcs.ll.nogenerated.expected
Log Message:
-----------
[AArch64] Run optimizeTerminators earlier too. (#170907)
Running optimizeTerminators prior to other optimizations like branch
layout can lead to more folding and better codegen, but is not on its
own able to capture all cases. There is benefit to running it in both
places. This adds the existing code from #161508 into the
AArch64RedundantCopyElimination pass, which sounds like a sensible
enough place for it.
This is a recommit with an extra fix for shrink-wrapping domtree use.
Commit: 9f8e0f66067d7cc8b4cffc0d9bddf701576b72be
https://github.com/llvm/llvm-project/commit/9f8e0f66067d7cc8b4cffc0d9bddf701576b72be
Author: Luke Hutton <luke.hutton at arm.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M mlir/lib/Dialect/Tosa/Transforms/TosaNarrowI64ToI32.cpp
M mlir/test/Dialect/Tosa/tosa-narrow-i64-to-i32-aggressive.mlir
M mlir/test/Dialect/Tosa/tosa-narrow-i64-to-i32.mlir
Log Message:
-----------
[mlir][tosa] Add clamp op support to `TosaNarrowI64ToI32` pass (#169308)
This commit allows the narrowing of `tosa.clamp` when the min/max
attributes are within the int32 range.
Commit: 41ceaf968f0b9ceb256f2621312fd6e215fe04f9
https://github.com/llvm/llvm-project/commit/41ceaf968f0b9ceb256f2621312fd6e215fe04f9
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M flang/include/flang/Parser/openmp-utils.h
M flang/lib/Parser/openmp-utils.cpp
Log Message:
-----------
[flang][OpenMP] Implement loop construct iterator range (#170734)
Since we're trying to preserve compiler directives in loop constructs,
not every element of the associated parser::Block needs to be a loop or
an OpenMP loop construct. Implement a helper class `LoopRange` to make
it easy to iterate over elements of parser::Block that are loops or loop
constructs.
Commit: fd5f53aa9b21060063484fc6c346316a34a6464c
https://github.com/llvm/llvm-project/commit/fd5f53aa9b21060063484fc6c346316a34a6464c
Author: Luke Lau <luke at igalia.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/test/Transforms/LoopVectorize/X86/replicate-uniform-call.ll
Log Message:
-----------
[VPlan] Remove legacy costing inside VPBlendRecipe::computeCost (#171846)
A VPBlendRecipe always emits selects, even when the VF is scalar.
However the legacy cost model always costs all scalar non-header phis as
a phi, and the VPlan cost model has to account for this.
This can cause the cost to be a little off, for example not including
the cost of the select in @smax_call_uniform leading to unprofitable
vectorization.
This removes this from the VPlan cost model and handles checks for the
case in planContainsAdditionalSimplifications instead.
I considered trying to make the legacy cost model more accurate but I'm
not sure if it's possible. We need information as to whether or not the
scalar VF we are costing is the original loop in which case it's
actually a phi, or if it's a VPBlendRecipe that emits a select,
potentially from a VF=1, UF>=1 VPlan.
Commit: 916d2068b3a40a84057544e27d64fd2de379d539
https://github.com/llvm/llvm-project/commit/916d2068b3a40a84057544e27d64fd2de379d539
Author: Fateme Hosseini <quic_fhossein at quicinc.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
M llvm/lib/Target/Hexagon/HexagonPatternsHVX.td
M llvm/test/CodeGen/Hexagon/bfloat_vec.ll
Log Message:
-----------
[Hexagon] Fix HWBF16 PatLeaf type (#170560)
Correct the definition of `HWBF16` to reference `VecPBF16` rather than
`VecBF16`, aligning it with the existing pattern-leaf conventions for
pointer vector types.
Co-authored-by: Muntasir Mallick <quic_mallick at quicinc.com>
Commit: a981d26bd5b52c312c3a0a3695633294bc3c63f5
https://github.com/llvm/llvm-project/commit/a981d26bd5b52c312c3a0a3695633294bc3c63f5
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Instrumentation/KCFI.cpp
Log Message:
-----------
[KCFI] Use getSigned() for negative value
Commit: bc19a0ad49654cfb4c46ac4e506a9ee6bf8915bd
https://github.com/llvm/llvm-project/commit/bc19a0ad49654cfb4c46ac4e506a9ee6bf8915bd
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
Log Message:
-----------
[InstCombine] Use getSigned() for negative numbers
Commit: 8a9d9e48535f937ea6aa24060c2242c3a57660ac
https://github.com/llvm/llvm-project/commit/8a9d9e48535f937ea6aa24060c2242c3a57660ac
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
Log Message:
-----------
[LV] Use getSigned() for stride
The stride may be negative.
Commit: a6ac5d48203763de9ce30816e6148318b49a3cb8
https://github.com/llvm/llvm-project/commit/a6ac5d48203763de9ce30816e6148318b49a3cb8
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang-tools-extra/clang-doc/assets/class-template.mustache
M clang-tools-extra/clang-doc/assets/namespace-template.mustache
M clang-tools-extra/test/clang-doc/mustache-separate-namespace.cpp
Log Message:
-----------
[clang-doc] Align indentation in templates (#171667)
Indentation was inconsistent between the namespace and class templates.
This patch assumes that `<body>` is not indented.
Commit: 0096bda38a67a484f6ecbc8bec9be8829a840f86
https://github.com/llvm/llvm-project/commit/0096bda38a67a484f6ecbc8bec9be8829a840f86
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M flang/include/flang/Parser/dump-parse-tree.h
M flang/include/flang/Parser/parse-tree.h
M flang/lib/Parser/openmp-parsers.cpp
M flang/lib/Parser/unparse.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/test/Parser/OpenMP/error-unparse.f90
M flang/test/Parser/OpenMP/interop-construct.f90
Log Message:
-----------
[flang][OpenMP] Rename few types to spec names, NFC (#171845)
Change Severity to SevLevel and TargetSync to Targetsync.
Commit: 4e9e7c5816bc130babd85e96916e515b4d02cf38
https://github.com/llvm/llvm-project/commit/4e9e7c5816bc130babd85e96916e515b4d02cf38
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang-tools-extra/clang-doc/HTMLGenerator.cpp
M clang-tools-extra/clang-doc/assets/class-template.mustache
A clang-tools-extra/clang-doc/assets/head-template.mustache
M clang-tools-extra/clang-doc/assets/namespace-template.mustache
M clang-tools-extra/clang-doc/support/Utils.cpp
M clang-tools-extra/clang-doc/tool/CMakeLists.txt
Log Message:
-----------
[clang-doc] Create a partial for HTML <head> sections (#171668)
The <head> sections of the existing partials are already identical, so
creating a partial will help reduce lines in the templates. Now
changes to <head> sections can easily propogate and can easily be added
to future HTML pages.
Commit: b0f1f77cfec297bd541baaf2d6490cdb91a381bc
https://github.com/llvm/llvm-project/commit/b0f1f77cfec297bd541baaf2d6490cdb91a381bc
Author: Arun Thangamani <arun.thangamani at intel.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/X86Vector/TransformOps/X86VectorTransformOps.td
M mlir/include/mlir/Dialect/X86Vector/Transforms.h
M mlir/lib/Dialect/X86Vector/TransformOps/X86VectorTransformOps.cpp
M mlir/lib/Dialect/X86Vector/Transforms/CMakeLists.txt
A mlir/lib/Dialect/X86Vector/Transforms/SinkVectorProducerOps.cpp
A mlir/test/Dialect/X86Vector/sink-vector-producer-ops.mlir
Log Message:
-----------
[mlir][x86vector] Sink Vector.transfer_reads and vector.load before the consumer (#169333)
Adds a pattern that sinks vector producer ops (`vector.load` and
`vector.transfer_read`) forward in a block to their earliest legal use,
reducing live ranges and improving scheduling opportunities.
**The lowering pattern**: `batch_reduce.matmul` (input) ->
register-tiling(M, N) -> Vectorization (to `vector.contract`) ->
`unroll` vector.contract (`unit` dims) -> `hoisting` transformation
(move `C` loads/store outside batch/k loop) -> **sink vector producers**
-> apply `licm`, `canonicalization`, and `bufferize` ->
`vector.contract` to `fma` -> **sink vector producers**.
Commit: 1e57119cbb607256d99691426ed469f0f7f41383
https://github.com/llvm/llvm-project/commit/1e57119cbb607256d99691426ed469f0f7f41383
Author: Haocong Lu <haoconglu at qq.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
A clang/test/CIR/CodeGen/ms-barriers-intrinsics.c
Log Message:
-----------
[CIR][X86] Implement lowering for `readwritebarrier` builtins (#171094)
- Support CIR codegen for follow X86 builtin: `_ReadWriteBarrier`
`_ReadBarrier` `_WriteBarrier` `__faststorefence`
- CIR dialect operations may have no results, no values will be returned
after `emitTargetBuiltinExpr` even if it executes successfully. Using
`std::optional<mlir::Value>` as return type to reslove this problem.
- Part of [#167765](https://github.com/llvm/llvm-project/issues/167765)
Commit: c37c24a981fed30328fa9aecb708de4603345268
https://github.com/llvm/llvm-project/commit/c37c24a981fed30328fa9aecb708de4603345268
Author: Manuel Carrasco <Manuel.Carrasco at amd.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/test/Driver/spirv-amd-toolchain.c
Log Message:
-----------
[clang][Driver] SPIRVAMDToolChain must not require device libs. (#171815)
Prior to these changes, the SPIRVAMDToolChain was looking for device libs and failing. This is fixed by not looking for device libs (for SPIR-V). The device libs are never linked for SPIR-V.
Commit: 7fdf800a91a37dc915fec2cca2d8539ec5070d8a
https://github.com/llvm/llvm-project/commit/7fdf800a91a37dc915fec2cca2d8539ec5070d8a
Author: nerix <nerixdev at outlook.de>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M lldb/source/Plugins/Language/CPlusPlus/MsvcStlVariant.cpp
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/TestDataFormatterStdVariant.py
Log Message:
-----------
[LLDB] Run MSVC variant test with PDB (#171858)
Split off from #171489. This only adds the lookup of the active type for
a `std::variant` based on the head type (since PDB doesn't have template
info).
Commit: e94bf71928725b3c8213867f09c1f4fe82148d61
https://github.com/llvm/llvm-project/commit/e94bf71928725b3c8213867f09c1f4fe82148d61
Author: Jasmine Tang <jjasmine at igalia.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenStmt.cpp
Log Message:
-----------
[CIR] Add newly implemented defer stmt class to nyi (#171773)
The following warning turns into an error on the ci/cd
```
/Users/jjasmine/Developer/igalia/llvm-project/clang/lib/CIR/CodeGen/CIRGenStmt.cpp:117:11: warning: enumeration value 'DeferStmtClass' not handled in switch [-Wswitch]
117 | switch (s->getStmtClass()) {
| ^~~~~~~~~~~~~~~~~
1 warning generated.
```
Commit: 00b3a18550a2e23b40bc6d2b3364d327cd913aa0
https://github.com/llvm/llvm-project/commit/00b3a18550a2e23b40bc6d2b3364d327cd913aa0
Author: Eric Feng <55723758+efric at users.noreply.github.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
M mlir/test/Dialect/LLVMIR/rocdl.mlir
M mlir/test/Target/LLVMIR/rocdl.mlir
Log Message:
-----------
[mlir][rocdl] add gfx950 smfmac instructions to rocdl dialect (#171737)
Signed-off-by: Eric Feng <Eric.Feng at amd.com>
Commit: 3d1f04425a8fe09d05b407b933414c497ab5c81b
https://github.com/llvm/llvm-project/commit/3d1f04425a8fe09d05b407b933414c497ab5c81b
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang-tools-extra/clang-doc/HTMLGenerator.cpp
M clang-tools-extra/clang-doc/assets/class-template.mustache
M clang-tools-extra/clang-doc/assets/namespace-template.mustache
A clang-tools-extra/clang-doc/assets/navbar-template.mustache
M clang-tools-extra/clang-doc/support/Utils.cpp
M clang-tools-extra/clang-doc/tool/CMakeLists.txt
Log Message:
-----------
[clang-doc] Create a partial for the navbar (#171669)
Move navbar section to its own template to ensure consistency across
templates
Commit: dfed044c67b8e01b552b0336adea77ae0da42d1f
https://github.com/llvm/llvm-project/commit/dfed044c67b8e01b552b0336adea77ae0da42d1f
Author: Andre Kuhlenschmidt <andre.kuhlenschmidt at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M flang/lib/Semantics/check-data.cpp
M flang/lib/Semantics/data-to-inits.cpp
M flang/lib/Semantics/data-to-inits.h
A flang/test/Semantics/equivalence02.f90
A flang/test/Semantics/equivalence03.f90
Log Message:
-----------
[flang][semantics] fix crash involving equivalences (#168909)
This PR fixes
[#166463](https://github.com/llvm/llvm-project/issues/166463) by only
running ProcessScopes at the end of the semantic analysis. ProcessScopes
does an analysis of the entire symbol table to determine which
equivalence statements have conflicting initializations, but it requires
that all symbols in the equivalence statement have valid sizes. Running
before computing the size and offset made this an invalid assumption.
Commit: fc78d55398e4e8e2fabd74f0ec42f77b73f5f158
https://github.com/llvm/llvm-project/commit/fc78d55398e4e8e2fabd74f0ec42f77b73f5f158
Author: Ebin Jose <ebin371 at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Parse/ParsePragma.cpp
A clang/test/Parser/pragma-loop-vectorize.cpp
Log Message:
-----------
[CLANG] Resolves crash on invalid loop vectorize_width (#169473)
Diagnose malformed '#pragma clang loop vectorize_width' lists. Avoids
crash in HandlePragmaLoopHint, emit clear diagnostic and added
regression test.
Fixes #166325
Commit: c814ac1928b264a5bdeb98ec9035412fa37fb243
https://github.com/llvm/llvm-project/commit/c814ac1928b264a5bdeb98ec9035412fa37fb243
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M lldb/include/lldb/Host/StreamFile.h
M lldb/source/Core/IOHandler.cpp
M lldb/source/Host/common/Editline.cpp
Log Message:
-----------
[lldb] Correct use_editline check in IOHandlerEditline (#171733)
Correct the use_editline check in IOHandlerEditline to prevent a crash
when we have an output and/or error file, but no stream. This fixes a
regression introduced by 58279d1 that results in a crash when calling
el_init with a NULL stream.
The original code was checking the stream: GetOutputFILE and
GetErrorFILE.
```
use_editline = GetInputFILE() && GetOutputFILE() && GetErrorFILE() &&
m_input_sp && m_input_sp->GetIsRealTerminal();
```
The new code is checking the file: `m_output_sp` and `m_error_sp`.
```
use_editline = m_input_sp && m_output_sp && m_error_sp &&
m_input_sp->GetIsRealTerminal();
```
The correct check is:
```
use_editline =
m_input_sp && m_input_sp->GetIsRealTerminal() &&
m_output_sp && m_output_sp->GetUnlockedFile().GetStream() &&
m_error_sp && m_error_sp->GetUnlockedFile().GetStream();
```
We don't need to update the check for the input, because we're handling
the missing stream there correctly in the call to the constructor:
```
m_editline_up = std::make_unique<Editline>(
editline_name, m_input_sp ? m_input_sp->GetStream() : nullptr,
m_output_sp, m_error_sp, m_color);
```
We can't do the same for the output and error because we need to pass
the file, not the stream (to do proper locking).
As I was debugging this I added some more assertions. They're generally
useful so I'm keeping them.
Fixes #170891
Commit: 1b7f272906dee31d505ed74e0514d2c04c1b5f97
https://github.com/llvm/llvm-project/commit/1b7f272906dee31d505ed74e0514d2c04c1b5f97
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M lldb/source/Core/Module.cpp
Log Message:
-----------
[lldb][Module] Only log SDK search error once per debugger session (#171820)
Currently if we are debugging an app that was compiled against an SDK
that we don't know about on the host, then every time we evaluate an
expression we get following spam on the console:
```
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
error: Error while searching for Xcode SDK: Unrecognized SDK type: <some SDK>
```
It is not a fatal error but the way we spam it pretty much ruins the
debugging experience.
This patch makes it so we only log this error once per debugger session.
Not sure how to best test it since we'd need to build a program with a
particular SDK and then make it unrecognized by LLDB. Confirmed manually
that the error only gets reported once after this patch.
Commit: 98aa84075d3d2eeea4296d1e1a69c23db70edab2
https://github.com/llvm/llvm-project/commit/98aa84075d3d2eeea4296d1e1a69c23db70edab2
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
Log Message:
-----------
[lldb][Formatters] Simplify std::list libc++ formatter matching regex (#147709)
The history on this is a bit confusing. The libc++ regexes were adjusted
in https://reviews.llvm.org/D57466, and so did the order in which we
load the formatters. Then https://reviews.llvm.org/D66398 changed the
`std::list` regex, to make sure the libc++ formatters don't match the
`cxx11` libstdc++ [Dual ABI
namespace](https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html).
But we changed the order in which we load the formatters again in
https://github.com/llvm/llvm-project/pull/140727. The intention there
was to load libstdc++ first, because it may have inline namespaces that
would match relaxed the libc++ regexes. So that should technically make
this complicated regex workaround obsolete.
I didn't quite follow the entire thread in D66398 because some of the
links are dead. So it's possible something does rely on this. I'd like
to remove it and see. I *think* this should be resolved now by virtue of
how we load the formatters, but if it does break someone, there ought to
be a better solution (as Pavel hinted at in D66398).
Commit: 2797688887217adefeb57fa589b803aceaea051d
https://github.com/llvm/llvm-project/commit/2797688887217adefeb57fa589b803aceaea051d
Author: Michael Jones <michaelrj at google.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M libc/docs/CMakeLists.txt
M libc/docs/porting.rst
M libc/utils/docgen/docgen.py
Log Message:
-----------
[libc][docs] Add a sunset policy to porting docs (#168936)
As discussed in the monthly meeting, update the porting docs to clarify
what's needed for a target and add a policy for sunsetting targets.
Commit: 8471f36e28a4e837eefe3120564f667f0444a368
https://github.com/llvm/llvm-project/commit/8471f36e28a4e837eefe3120564f667f0444a368
Author: Prajwal Nadig <pnadig at apple.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M .github/CODEOWNERS
Log Message:
-----------
[ExtractAPI] Update CODEOWNERS (#171866)
Daniel Grumberg is no longer a maintainer for Clang ExtractAPI. I have
updated the code owners list accordingly and added myself in his stead.
Commit: a451ff04d20021f6a15d22aef585903c434baa9e
https://github.com/llvm/llvm-project/commit/a451ff04d20021f6a15d22aef585903c434baa9e
Author: Ben Langmuir <blangmuir at apple.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/include/llvm/CAS/OnDiskGraphDB.h
M llvm/lib/CAS/ActionCaches.cpp
M llvm/lib/CAS/OnDiskGraphDB.cpp
M llvm/test/tools/llvm-cas/validation.test
Log Message:
-----------
[llvm][cas] Improve UnifiedOnDiskActionCache validation to check cas refs (#171732)
Check that action cache references point to valid CAS objects by
ensuring they are contained within the corresponding CAS and also that
the offsets match. This prevents accidentally referencing "dead" index
records that were not properly flushed to disk, which can lead to the
action cache pointing to the wrong data or to garbage data.
rdar://126642956
Commit: 6813f8f037124c53c54d5fe86abe50d71c81d42a
https://github.com/llvm/llvm-project/commit/6813f8f037124c53c54d5fe86abe50d71c81d42a
Author: Alexis Engelke <engelke at in.tum.de>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/docs/ReleaseNotes.md
M llvm/include/llvm-c/Core.h
M llvm/include/llvm/IR/Instructions.h
M llvm/include/llvm/IR/User.h
M llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
M llvm/lib/CodeGen/TypePromotion.cpp
M llvm/lib/IR/Core.cpp
M llvm/lib/IR/Instruction.cpp
M llvm/lib/IR/Instructions.cpp
M llvm/lib/IR/User.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
M llvm/lib/Transforms/Utils/FunctionComparator.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
A llvm/test/Transforms/MergeFunc/switch.ll
A llvm/test/Transforms/SimplifyCFG/switch-dedup.ll
M llvm/unittests/IR/InstructionsTest.cpp
M llvm/unittests/IR/VerifierTest.cpp
Log Message:
-----------
[IR] Don't store switch case values as operands
SwitchInst case values must be ConstantInt, which have no use list.
Therefore it is not necessary to store these as Use, instead store them
more efficiently as a simple array of pointers after the uses, similar
to how PHINode stores basic blocks.
After this change, the successors of all terminators are stored
consecutively in the operand list. This is preparatory work for
improving the performance of successor access.
Add new C API functions so that switch case values remain accessible
from bindings for other languages.
While this could also be achieved by merely changing the order of
operands (i.e., first all successors, then all constants), doing so
would increase the asymptotic runtime of addCase from O(1) to O(n)
(i.e., adding n cases would be O(n^2)), because it would need to shift
all constants by one slot. Having null/invalid operands is also a bad
idea and would cause much more breakage.
Pull Request: https://github.com/llvm/llvm-project/pull/170984
Commit: 438573716dda1cad29fcaa13e2569a8e1555c632
https://github.com/llvm/llvm-project/commit/438573716dda1cad29fcaa13e2569a8e1555c632
Author: Alexandre Ganea <aganea at havenstudios.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Support/rpmalloc/CACHE.md
M llvm/lib/Support/rpmalloc/README.md
M llvm/lib/Support/rpmalloc/malloc.c
M llvm/lib/Support/rpmalloc/rpmalloc.c
Log Message:
-----------
[Support] Convert CRLF->LF in rpmalloc. NFC.
Commit: 3142e3ab15bb0485e1ac731cca3fb086b108eb06
https://github.com/llvm/llvm-project/commit/3142e3ab15bb0485e1ac731cca3fb086b108eb06
Author: Alexander Johnston <14348472+Alexander-Johnston at users.noreply.github.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang/include/clang/Basic/BuiltinsSPIRVVK.td
M clang/lib/CodeGen/TargetBuiltins/SPIR.cpp
M clang/lib/Headers/hlsl/hlsl_intrinsic_helpers.h
M clang/lib/Headers/hlsl/hlsl_intrinsics.h
M clang/lib/Sema/SemaSPIRV.cpp
A clang/test/CodeGenHLSL/builtins/ddx.hlsl
A clang/test/CodeGenHLSL/builtins/ddy.hlsl
A clang/test/CodeGenSPIRV/Builtins/ddx.c
A clang/test/CodeGenSPIRV/Builtins/ddy.c
A clang/test/SemaSPIRV/BuiltIns/ddx-errors.c
A clang/test/SemaSPIRV/BuiltIns/ddy-errors.c
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/ddx.ll
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/ddy.ll
A llvm/test/CodeGen/SPIRV/opencl/ddx-error.ll
A llvm/test/CodeGen/SPIRV/opencl/ddy-error.ll
Log Message:
-----------
[HLSL] Implement ddx and ddy HLSL intrinsics (#168887)
Implements the ddx and ddy HLSL intrinsics. The DXIL intrinsics call the
ddx_coarse and ddy_builtins as they lower to the coarse variants.
The SPIRV intrinsics lower to their own opcodes OpDPdx and OpDPdy. Tests
are added to ensure the SPIRV builtins are not available outside of
shaders stage.
Closes https://github.com/llvm/llvm-project/issues/99096
Closes https://github.com/llvm/llvm-project/issues/99099
Commit: e4c83b7b119c86070845b17c5070147ba84230de
https://github.com/llvm/llvm-project/commit/e4c83b7b119c86070845b17c5070147ba84230de
Author: Jason Molenda <jmolenda at apple.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M lldb/include/lldb/Expression/ObjectFileJIT.h
M lldb/include/lldb/Symbol/ObjectContainer.h
M lldb/include/lldb/Symbol/ObjectFile.h
M lldb/include/lldb/Utility/DataExtractor.h
M lldb/include/lldb/lldb-private-interfaces.h
M lldb/source/Core/Module.cpp
M lldb/source/Expression/ObjectFileJIT.cpp
M lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp
M lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h
M lldb/source/Plugins/ObjectContainer/Mach-O-Fileset/ObjectContainerMachOFileset.cpp
M lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.cpp
M lldb/source/Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.cpp
M lldb/source/Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.h
M lldb/source/Plugins/ObjectFile/COFF/ObjectFileCOFF.cpp
M lldb/source/Plugins/ObjectFile/COFF/ObjectFileCOFF.h
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
M lldb/source/Plugins/ObjectFile/JSON/ObjectFileJSON.cpp
M lldb/source/Plugins/ObjectFile/JSON/ObjectFileJSON.h
M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.h
M lldb/source/Plugins/ObjectFile/Minidump/ObjectFileMinidump.cpp
M lldb/source/Plugins/ObjectFile/Minidump/ObjectFileMinidump.h
M lldb/source/Plugins/ObjectFile/PDB/ObjectFilePDB.cpp
M lldb/source/Plugins/ObjectFile/PDB/ObjectFilePDB.h
M lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
M lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h
M lldb/source/Plugins/ObjectFile/XCOFF/ObjectFileXCOFF.cpp
M lldb/source/Plugins/ObjectFile/XCOFF/ObjectFileXCOFF.h
M lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp
M lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.h
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
M lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
M lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp
M lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp
M lldb/source/Plugins/SymbolVendor/PECOFF/SymbolVendorPECOFF.cpp
M lldb/source/Plugins/SymbolVendor/wasm/SymbolVendorWasm.cpp
M lldb/source/Symbol/ObjectContainer.cpp
M lldb/source/Symbol/ObjectFile.cpp
M lldb/source/Symbol/SymbolVendor.cpp
M lldb/source/Utility/DataExtractor.cpp
Log Message:
-----------
[lldb][NFC] Change ObjectFile argument type (#171574)
The ObjectFile plugin interface accepts an optional DataBufferSP
argument. If the caller has the contents of the binary, it can provide
this in that DataBufferSP. The ObjectFile subclasses in their
CreateInstance methods will fill in the DataBufferSP with the actual
binary contents if it is not set.
ObjectFile base class creates an ivar DataExtractor from the
DataBufferSP passed in.
My next patch will be a caller that creates a VirtualDataExtractor with
the binary data, and needs to pass that in to the ObjectFile plugin,
instead of the bag-of-bytes DataBufferSP. It builds on the previous
patch changing ObjectFile's ivar from DataExtractor to DataExtractorSP
so I could pass in a subclass in the shared ptr. And it will be using
the VirtualDataExtractor that Jonas added in
https://github.com/llvm/llvm-project/pull/168802
No behavior is changed by the patch; we're simply moving the creation of
the DataExtractor to the caller, instead of a DataBuffer that is
immediately used to set up the ObjectFile DataExtractor. The patch is a
bit complicated because all of the ObjectFile subclasses have to
initialize their DataExtractor to pass in to the base class.
I ran the testsuite on macOS and on AArch64 Ubutnu. (btw David, I ran it
under qemu on my M4 mac with SME-no-SVE again, Ubuntu 25.10, checked
lshw(1) cpu capabilities, and qemu doesn't seem to be virtualizing the
SME, that explains why the testsuite passes)
rdar://148939795
---------
Co-authored-by: Jonas Devlieghere <jonas at devlieghere.com>
Commit: 4c21e460ed39925bf5bc2e24ed90de004241b8e3
https://github.com/llvm/llvm-project/commit/4c21e460ed39925bf5bc2e24ed90de004241b8e3
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenClass.cpp
M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRCXXABI.h
M clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerItaniumCXXABI.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/test/CIR/CodeGen/pointer-to-data-member.cpp
M clang/test/CIR/IR/invalid-data-member.cir
Log Message:
-----------
[CIR] Add support for runtime data member pointer access (#171510)
This adds support for a CIR operation to represent runtime data member
access.
Commit: 5eb2ec2179b2b95be16c7f855fe8460b4a98b5b1
https://github.com/llvm/llvm-project/commit/5eb2ec2179b2b95be16c7f855fe8460b4a98b5b1
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/fold-select-fmul-if-zero.ll
M llvm/test/Transforms/InstCombine/ldexp.ll
Log Message:
-----------
InstCombine: Fold ldexp with constant exponent to fmul (#171731)
If we can represent this with an fmul, prefer it as a canonical
form. More optimizations will understand fmul, and allows contract to
fma.
Commit: 0afd6eec3d2c36d0ac7b76a24a60851c72d77b38
https://github.com/llvm/llvm-project/commit/0afd6eec3d2c36d0ac7b76a24a60851c72d77b38
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang-tools-extra/clang-doc/JSONGenerator.cpp
M clang-tools-extra/clang-doc/assets/class-template.mustache
M clang-tools-extra/test/clang-doc/basic-project.mustache.test
M clang-tools-extra/test/clang-doc/json/class.cpp
M clang-tools-extra/unittests/clang-doc/JSONGeneratorTest.cpp
Log Message:
-----------
[clang-doc] Serialize "IsStatic" for fields (#171698)
Commit: c22d82a1d43465912edeb0f67929245f40a8a822
https://github.com/llvm/llvm-project/commit/c22d82a1d43465912edeb0f67929245f40a8a822
Author: Ivan Butygin <ivan.butygin at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M mlir/include/mlir/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.h
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
M mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp
M mlir/lib/Dialect/GPU/TransformOps/CMakeLists.txt
M mlir/lib/Dialect/GPU/TransformOps/GPUTransformOps.cpp
Log Message:
-----------
[mlir][amdgpu] Move GPU memory spaces conversion to single place (#171876)
Commit: 3a6c8c4e2ce708fd18b1c8bf49de8e08ee5715f1
https://github.com/llvm/llvm-project/commit/3a6c8c4e2ce708fd18b1c8bf49de8e08ee5715f1
Author: Fabrice de Gans <Steelskin at users.noreply.github.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/include/llvm/CodeGen/LibcallLoweringInfo.h
M llvm/include/llvm/SandboxIR/Constant.h
M llvm/include/llvm/Support/Hash.h
M llvm/include/llvm/Transforms/Utils/DebugSSAUpdater.h
Log Message:
-----------
llvm: Add missing `LLVM_ABI` annotations (#171629)
This patch updates various LLVM headers to properly add the `LLVM_ABI`
and `LLVM_ABI_FOR_TEST` annotations to build LLVM as a DLL on Windows.
This effort is tracked in #109483.
---------
Co-authored-by: Nikita Popov <github at npopov.com>
Commit: ca6eb2f5f8bb26b9cb210b1cea3420dbaabf0fb9
https://github.com/llvm/llvm-project/commit/ca6eb2f5f8bb26b9cb210b1cea3420dbaabf0fb9
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang-tools-extra/clang-doc/JSONGenerator.cpp
A clang-tools-extra/test/clang-doc/json/inheritance.cpp
M clang-tools-extra/unittests/clang-doc/JSONGeneratorTest.cpp
Log Message:
-----------
[clang-doc] Add JSON bools for parents, vparents and test (#171699)
Parents and virtual parents didn't have "Has" bools in JSON output. That
made it difficult to only create output conditionally.
Also add an explicit test for inheritance and parents, vparents, and
bases which actually weren't tested in JSON
Commit: 75cd29b6d674f75d68d78181e60f1ae2aa3d7ba9
https://github.com/llvm/llvm-project/commit/75cd29b6d674f75d68d78181e60f1ae2aa3d7ba9
Author: Teresa Johnson <tejohnson at google.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Instrumentation/MemProfUse.cpp
M llvm/test/Transforms/PGOProfile/memprof-dump-matched-alloc-site.ll
Log Message:
-----------
[MemProf] Add option to emit full call context for matched allocations (#170516)
Add the -memprof-print-matched-alloc-stack option to enable emitting the
full allocation call context (of stack ids) for each matched allocation
reported by -memprof-print-match-info. Noop when the latter is not
enabled.
Commit: 5e3549ab7a5fbdbd4ba4fec27997e0772684b01e
https://github.com/llvm/llvm-project/commit/5e3549ab7a5fbdbd4ba4fec27997e0772684b01e
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang-tools-extra/clang-doc/JSONGenerator.cpp
M clang-tools-extra/test/clang-doc/json/class.cpp
Log Message:
-----------
[clang-doc] Serialize private members in JSON (#171700)
Commit: f6c04cd58c3878c51bf4935f18fb7bb9c6a8c83c
https://github.com/llvm/llvm-project/commit/f6c04cd58c3878c51bf4935f18fb7bb9c6a8c83c
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang-tools-extra/clang-doc/JSONGenerator.cpp
M clang-tools-extra/clang-doc/assets/namespace-template.mustache
M clang-tools-extra/test/clang-doc/json/concept.cpp
M clang-tools-extra/test/clang-doc/json/namespace.cpp
M clang-tools-extra/test/clang-doc/mustache-separate-namespace.cpp
M clang-tools-extra/test/clang-doc/namespace.cpp
M clang-tools-extra/unittests/clang-doc/JSONGeneratorTest.cpp
Log Message:
-----------
[clang-doc] Serialize the global namespace name in JSON (#171701)
Previously, the global namespace's "Name" field was left empty. It could
be identified this way, but it could also be identified by its USR.
Actually populating the "Name" field allows for nicer output in the
future.
Commit: 8d59cca1ab9cf4e39e43bf695e415de9ccd41115
https://github.com/llvm/llvm-project/commit/8d59cca1ab9cf4e39e43bf695e415de9ccd41115
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M lldb/source/Plugins/Platform/CMakeLists.txt
A lldb/source/Plugins/Platform/WebAssembly/CMakeLists.txt
A lldb/source/Plugins/Platform/WebAssembly/PlatformWasm.cpp
A lldb/source/Plugins/Platform/WebAssembly/PlatformWasm.h
A lldb/source/Plugins/Platform/WebAssembly/PlatformWasmProperties.td
M llvm/docs/ReleaseNotes.md
Log Message:
-----------
[lldb] Add WebAssembly platform (#171507)
This PR adds a platform for WebAssembly. Heavily inspired by Pavel's
QemuUser, the platform lets you configure a WebAssembly runtime to run a
Wasm binary.
For example, the following configuration can be used to launch binaries
under the WebAssembly Micro Runtime (WARM):
```
settings set -- platform.plugin.wasm.runtime-args --heap-size=1048576
settings set -- platform.plugin.wasm.port-arg -g=127.0.0.1:
settings set -- platform.plugin.wasm.runtime-path /path/to/iwasm-2.4.0
```
With the settings above, you can now launch a binary directly under
WAMR:
```
❯ lldb simple.wasm
(lldb) target create "/Users/jonas/wasm-micro-runtime/product-mini/platforms/darwin/build/simple.wasm"
Current executable set to '/Users/jonas/wasm-micro-runtime/product-mini/platforms/darwin/build/simple.wasm' (wasm32).
(lldb) b main
Breakpoint 1: 2 locations.
(lldb) r
Process 1 launched: '/Users/jonas/wasm-micro-runtime/product-mini/platforms/darwin/build/simple.wasm' (wasm32)
2 locations added to breakpoint 1
[22:28:05:124 - 16FE27000]: control thread of debug object 0x1005e9020 start
[22:28:05:124 - 16FE27000]: Debug server listening on 127.0.0.1:49170
the module name is /Users/jonas/wasm-micro-runtime/product-mini/platforms/darwin/build/simple.wasm
Process 1 stopped
* thread #1, name = 'nobody', stop reason = breakpoint 1.3
frame #0: 0x40000000000001d3 simple.wasm`main at simple.c:8:7
5 }
6
7 int main() {
-> 8 int i = 1;
9 int j = 2;
10 return add(i, j);
11 }
(lldb)
```
Commit: 9a727af1c80c44262fe1694a9791dfae0f3bf242
https://github.com/llvm/llvm-project/commit/9a727af1c80c44262fe1694a9791dfae0f3bf242
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Port c22d82a1d43465912edeb0f67929245f40a8a822 (#171885)
Commit: 854ef8df06b9a4b4b473d9b00a5f6f1fa73df210
https://github.com/llvm/llvm-project/commit/854ef8df06b9a4b4b473d9b00a5f6f1fa73df210
Author: vangthao95 <vang.thao at amd.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
A llvm/test/CodeGen/AMDGPU/GlobalISel/fsub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-fsub.mir
M llvm/test/CodeGen/AMDGPU/fsub-as-fneg-src-modifier.ll
Log Message:
-----------
[AMDGPU][GlobalISel] Add RegBankLegalize support for G_FSUB (#171244)
Commit: 2f9b8b74280343fb1bc1918059c808811b4f1e90
https://github.com/llvm/llvm-project/commit/2f9b8b74280343fb1bc1918059c808811b4f1e90
Author: Erick Ochoa Lopez <erick.ochoalopez at amd.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPU.td
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
M mlir/test/Conversion/AMDGPUToROCDL/gfx1250.mlir
M mlir/test/Dialect/AMDGPU/amdgpu-make-dma-descriptor-fold.mlir
M mlir/test/Dialect/AMDGPU/ops.mlir
Log Message:
-----------
[mlir][amdgpu] Continue lowering make_tdm_descriptor. (#171498)
* changes workgroup mask's type from i16 to vector<16xi1>
* changes pad_amount and pad_interval from Index to I32
* adds lit tests for padEnable, iteration and dynamic cases
* adds TODO for a future instrumentation pass to validate inputs
* adds descriptor groups 2 and 3
Commit: 757c5b3bc70c6f0b55afa310f3fab07a4985e8b8
https://github.com/llvm/llvm-project/commit/757c5b3bc70c6f0b55afa310f3fab07a4985e8b8
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/fold-select-fmul-if-zero.ll
M llvm/test/Transforms/InstCombine/ldexp.ll
Log Message:
-----------
Revert "InstCombine: Fold ldexp with constant exponent to fmul" (#171895)
Reverts llvm/llvm-project#171731
Fails on a libc test
Commit: 71ee84acc4f7c93b9292af90ef5d79dd05687410
https://github.com/llvm/llvm-project/commit/71ee84acc4f7c93b9292af90ef5d79dd05687410
Author: Nishant Patel <nishant.b.patel at intel.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
M mlir/lib/Dialect/Vector/Transforms/VectorUnroll.cpp
M mlir/test/Dialect/Vector/vector-unroll-options.mlir
M mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
Log Message:
-----------
[MLIR][Vector] Add unroll pattern for vector.constant_mask (#171518)
This PR adds unrolling for vector.constant_mask op based on the
targetShape. Each unrolled vector computes its local mask size in each
dimension (d) as:
min(max(originalMaskSize[d] - offset[d], 0), unrolledMaskSize[d]).
Commit: 98a8072a6599028aa9619e2a94ca7af5bd388c08
https://github.com/llvm/llvm-project/commit/98a8072a6599028aa9619e2a94ca7af5bd388c08
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
Log Message:
-----------
[FunctionLoweringInfo] Remove unnecesary check for isVectorTy when isIntegerTy is true. NFC (#171880)
isIntegerTy is only true for scalars.
Commit: 3e414b940a70167af570567ddd3ecb1f2f240593
https://github.com/llvm/llvm-project/commit/3e414b940a70167af570567ddd3ecb1f2f240593
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
Log Message:
-----------
[FunctionLoweringInfo] Use KnownBits::intersectWith. NFC (#171893)
Commit: dd6c14742b67d4fd0436fd3bfa24634fbc798741
https://github.com/llvm/llvm-project/commit/dd6c14742b67d4fd0436fd3bfa24634fbc798741
Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M libc/hdr/stdio_overlay.h
Log Message:
-----------
[libc][darwin] avoid importing macros conflicting with function names in overlay mode (#171691)
MacOS SDK defines certain functions as macros in its stdio header. This
leads to problems in overlay mode.
This patch add undefs to macros that may conflict with function names in
overlay header. We don't expect to import them via overlay macro headers
anyway.
```bash
FAILED: [code=1] libc/src/__support/File/CMakeFiles/libc.src.__support.File.file.dir/file.cpp.o
sccache /usr/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_22_0_0_git -D_DEBUG -I/Users/runner/work/llvm-project/llvm-project/libc -isystem /Users/runner/work/llvm-project/llvm-project/build/libc/include -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -g -std=gnu++17 -arch arm64 -I /Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk/usr/include -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_COPT_STRING_LENGTH_IMPL=element -DLIBC_COPT_FIND_FIRST_CHARACTER_IMPL=element -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -DLIBC_THREAD_MODE=LIBC_THREAD_MODE_PLATFORM -DLIBC_COPT_RAW_MUTEX_DEFAULT_SPIN_COUNT=100 -fpie -ffixed-point -fno-builtin -fno-exceptions -fno-lax-vector-conversions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -Wall -Wextra -Werror -Wconversion -Wno-sign-conversion -Wdeprecated -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wstrict-prototypes -Wthread-safety -Wglobal-constructors -MD -MT libc/src/__support/File/CMakeFiles/libc.src.__support.File.file.dir/file.cpp.o -MF libc/src/__support/File/CMakeFiles/libc.src.__support.File.file.dir/file.cpp.o.d -o libc/src/__support/File/CMakeFiles/libc.src.__support.File.file.dir/file.cpp.o -c /Users/runner/work/llvm-project/llvm-project/libc/src/__support/File/file.cpp
In file included from /Users/runner/work/llvm-project/llvm-project/libc/src/__support/File/file.cpp:9:
/Users/runner/work/llvm-project/llvm-project/libc/src/__support/File/file.h:260:8: error: expected member name or ';' after declaration specifiers
260 | void clearerr_unlocked() { err = false; }
| ~~~~ ^
/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:495:30: note: expanded from macro 'clearerr_unlocked'
495 | #define clearerr_unlocked(p) __sclearerr(p)
| ^
/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:383:26: note: expanded from macro '__sclearerr'
383 | #define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF)))
| ^
In file included from /Users/runner/work/llvm-project/llvm-project/libc/src/__support/File/file.cpp:9:
/Users/runner/work/llvm-project/llvm-project/libc/src/__support/File/file.h:260:8: error: expected ')'
/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:495:30: note: expanded from macro 'clearerr_unlocked'
495 | #define clearerr_unlocked(p) __sclearerr(p)
| ^
/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:383:26: note: expanded from macro '__sclearerr'
383 | #define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF)))
| ^
/Users/runner/work/llvm-project/llvm-project/libc/src/__support/File/file.h:260:8: note: to match this '('
/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:495:30: note: expanded from macro 'clearerr_unlocked'
495 | #define clearerr_unlocked(p) __sclearerr(p)
| ^
/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:383:25: note: expanded from macro '__sclearerr'
383 | #define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF)))
| ^
In file included from /Users/runner/work/llvm-project/llvm-project/libc/src/__support/File/file.cpp:9:
/Users/runner/work/llvm-project/llvm-project/libc/src/__support/File/file.h:260:8: error: unknown type name '_flags'
260 | void clearerr_unlocked() { err = false; }
| ^
/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:495:30: note: expanded from macro 'clearerr_unlocked'
495 | #define clearerr_unlocked(p) __sclearerr(p)
| ^
/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:383:37: note: expanded from macro '__sclearerr'
383 | #define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF)))
| ^
In file included from /Users/runner/work/llvm-project/llvm-project/libc/src/__support/File/file.cpp:9:
/Users/runner/work/llvm-project/llvm-project/libc/src/__support/File/file.h:260:8: error: a type specifier is required for all declarations
/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:495:30: note: expanded from macro 'clearerr_unlocked'
495 | #define clearerr_unlocked(p) __sclearerr(p)
| ^
/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:383:34: note: expanded from macro '__sclearerr'
383 | #define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF)))
| ^
In file included from /Users/runner/work/llvm-project/llvm-project/libc/src/__support/File/file.cpp:9:
/Users/runner/work/llvm-project/llvm-project/libc/src/__support/File/file.h:260:8: error: expected ')'
/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:495:30: note: expanded from macro 'clearerr_unlocked'
495 | #define clearerr_unlocked(p) __sclearerr(p)
| ^
/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:383:44: note: expanded from macro '__sclearerr'
383 | #define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF)))
| ^
/Users/runner/work/llvm-project/llvm-project/libc/src/__support/File/file.h:260:8: note: to match this '('
/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:495:30: note: expanded from macro 'clearerr_unlocked'
495 | #define clearerr_unlocked(p) __sclearerr(p)
| ^
/Applications/Xcode_16.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/_stdio.h:383:31: note: expanded from macro '__sclearerr'
383 | #define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF)))
| ^
/Users/runner/work/llvm-project/llvm-project/libc/src/__support/File/file.cpp:426:23: error: out-of-line definition of 'mode_flags' does not match any declaration in '__llvm_libc_22_0_0_git::File'
426 | File::ModeFlags File::mode_flags(const char *mode) {
| ^~~~~~~~~~
6 errors generated.
```
Commit: 4e05d702f02aea708e8431061ad886c5cc9f4f40
https://github.com/llvm/llvm-project/commit/4e05d702f02aea708e8431061ad886c5cc9f4f40
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/early_exit_costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/induction-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/low_trip_memcheck_cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/scalable-avoid-scalarization.ll
Log Message:
-----------
[LV] Always include middle block cost in isOutsideLoopWorkProfitable. (#171102)
Always include the cost of the middle block in
isOutsideLoopWorkProfitable. This addresses the TODO from
https://github.com/llvm/llvm-project/pull/168949 and removes the
temporary restriction.
isOutsideLoopWorkProfitable already scales the cost outside loops
according the expected trip counts.
In practice this increases the minimum iteration threshold in a few
cases. On a large IR corpus based on C/C++ workloads, ~50 out of 179450
vector loops have their thresholds increased slightly.
PR: https://github.com/llvm/llvm-project/pull/171102
Commit: 65deac0872c2a180023c98894e1d5274a2e0c756
https://github.com/llvm/llvm-project/commit/65deac0872c2a180023c98894e1d5274a2e0c756
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
Log Message:
-----------
[VPlan] Remove vector type checking in inferScalartType (NFC).
inferScalarTypeForRecipe always infers a scalar type, so BaseTy must be
a scalar type. Remove unneeded cast.
Commit: a50a7ea2e2909cf02fa6b855c3049b4a93b50d2e
https://github.com/llvm/llvm-project/commit/a50a7ea2e2909cf02fa6b855c3049b4a93b50d2e
Author: Sterling-Augustine <saugustine at google.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/include/unistd.yaml
M libc/src/unistd/CMakeLists.txt
A libc/src/unistd/getpagesize.h
M libc/src/unistd/linux/CMakeLists.txt
A libc/src/unistd/linux/getpagesize.cpp
M libc/test/src/unistd/CMakeLists.txt
A libc/test/src/unistd/getpagesize_test.cpp
M libc/utils/docgen/unistd.yaml
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/test/src/unistd/BUILD.bazel
Log Message:
-----------
[libc] Add support for getpagesize. (#171713)
As in the description.
Commit: 6344e3aa8106dfdfb30cac36c8ca02bc4c52ce24
https://github.com/llvm/llvm-project/commit/6344e3aa8106dfdfb30cac36c8ca02bc4c52ce24
Author: jimingham <jingham at apple.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M lldb/include/lldb/Expression/ExpressionVariable.h
M lldb/packages/Python/lldbsuite/test/lldbtest.py
M lldb/source/Expression/ExpressionVariable.cpp
M lldb/source/Expression/LLVMUserExpression.cpp
M lldb/source/Expression/Materializer.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.cpp
M lldb/source/Target/ABI.cpp
A lldb/test/API/functionalities/expr-result-var/Makefile
A lldb/test/API/functionalities/expr-result-var/TestCPPExprResult.py
A lldb/test/API/functionalities/expr-result-var/two-bases.cpp
Log Message:
-----------
Make result variables obey their dynamic values in subsequent expressions (#168611)
When you run an expression and the result has a dynamic type that is
different from the expression's static result type, we print the result
variable using the dynamic type, but at present when you use the result
variable in an expression later on, we only give you access to the
static type. For instance:
```
(lldb) expr MakeADerivedReportABase()
(Derived *) $0 = 0x00000001007e93e0
(lldb) expr $0->method_from_derived()
^
error: no member named 'method_from_derived' in 'Base'
(lldb)
```
The static return type of that function is `Base *`, but we printed that
the result was a `Derived *` and then only used the `Base *` part of it
in subsequent expressions. That's not very helpful, and forces you to
guess and then cast the result types to their dynamic type in order to
be able to access the full type you were returned, which is
inconvenient.
This patch makes lldb retain the dynamic type of the result variable
(and ditto for persistent result variables).
It also adds more testing of expression result variables with various
types of dynamic values, to ensure we can access both the ivars and
methods of the type we print the result as.
Commit: bb12c435735ea0879cc68ae3031676a711d1de30
https://github.com/llvm/llvm-project/commit/bb12c435735ea0879cc68ae3031676a711d1de30
Author: Fateme Hosseini <quic_fhossein at quicinc.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/Hexagon/HexagonPatterns.td
M llvm/lib/Target/Hexagon/HexagonPatternsHVX.td
M llvm/test/CodeGen/Hexagon/autohvx/arith.ll
Log Message:
-----------
[Hexagon] Add HVX patterns for vector arithmetic (#170704)
This patch Introduces instruction selection patterns to generate the
vsub, vadd, vmpy, vmin, and vmax HVX vector instructions. These patterns
match on standard IR-level vector operations and lower them to the
corresponding Hexagon HVX intrinsics.
Patch By: Fateme Hosseini
Co-authored-by: Jyotsna Verma <jverma at qti.qualcomm.com>
Commit: 02ab4bdecaad9772bd0280b54dbef160aa467773
https://github.com/llvm/llvm-project/commit/02ab4bdecaad9772bd0280b54dbef160aa467773
Author: Daniel Thornburgh <mysterymath at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/M68k/M68kInstrData.td
M llvm/lib/Target/M68k/M68kInstrInfo.cpp
M llvm/lib/Target/M68k/M68kRegisterInfo.td
M llvm/test/CodeGen/M68k/Control/non-cmov-switch.ll
Log Message:
-----------
[M68k] Emit MOV16ds for moves from CCR on 68000 (#171703)
This also marks CCR as a subregister of SR, which allows the value of SR
to be tracked with respect to CCR. Finally, removes the 68010
requirement from moves from SR; this is a user mode instruction on
68000.
Fixes #85686
Commit: 429dbce8d750981186e6b0494c47d9e0991d117f
https://github.com/llvm/llvm-project/commit/429dbce8d750981186e6b0494c47d9e0991d117f
Author: YongKang Zhu <yongzhu at fb.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
M bolt/test/AArch64/epilogue-determination.s
Log Message:
-----------
[BOLT][AArch64] Tweak heuristics for epilogue recognition (#169584)
If a basic block contains a load into LR from stack and has no
instruction saving LR onto stack, we just assume the basic block
is an epilogue.
This is not meant to accurately recognize epilogue in all possible
cases, but to have BOLT be conservative on treating basic block as
epilogue and then turning indirect branch with unknown control flow
to tail call.
Commit: 20cc9fe95d53747f96bc8d56b8a5ca611fd7f157
https://github.com/llvm/llvm-project/commit/20cc9fe95d53747f96bc8d56b8a5ca611fd7f157
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
Log Message:
-----------
[RISCV] Remove now unused ixlenimm Operand. NFC (#171896)
Going forward I think we should add Operands with specific OperandType
so we no longer need a generic immediate Operand.
Commit: 43bfec29cbecc1ff2e5aa6f8908c4d63e9c896c5
https://github.com/llvm/llvm-project/commit/43bfec29cbecc1ff2e5aa6f8908c4d63e9c896c5
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M flang/lib/Optimizer/Builder/CUDAIntrinsicCall.cpp
M flang/test/Lower/CUDA/cuda-device-proc.cuf
Log Message:
-----------
[flang][cuda] Fix condition in barrier_try_wait lowering (#171916)
The condition should have been while 0 then try to wait and not the
opposite.
Commit: 2f14fb3ddea94f1dd55ccc393fca644bcd6bc331
https://github.com/llvm/llvm-project/commit/2f14fb3ddea94f1dd55ccc393fca644bcd6bc331
Author: jimingham <jingham at apple.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M lldb/test/API/functionalities/expr-result-var/TestCPPExprResult.py
Log Message:
-----------
The C++ dynamic typing tests are failing on Windows, skip for now. (#171922)
This is a follow-on to:
https://github.com/llvm/llvm-project/pull/168611
which added a bunch of tests for detecting dynamic types of C++ result
variables. I don't actually know how well dynamic type detection works
on Windows if at all. It would require Windows support, since the
Linux/Darwin version is specific to the Itanium ABI.
Commit: c1b60b96ec85f8d11e84da2c52f0aed35703ed43
https://github.com/llvm/llvm-project/commit/c1b60b96ec85f8d11e84da2c52f0aed35703ed43
Author: Tom Stellard <tstellar at redhat.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M .github/workflows/upload-release-artifact/action.yml
Log Message:
-----------
workflows/upload-release-artifact: Upload a separate attestation for each artifact (#171525)
This will simplify the process of verifying the assets, because the
attestation file for $file will be $file.jsonl. Otherwise, it's not
clear which attestation file goes with which asset.
Commit: efd472c88d7bed50615eab6db844a766d8f1964f
https://github.com/llvm/llvm-project/commit/efd472c88d7bed50615eab6db844a766d8f1964f
Author: Christopher Ferris <cferris1000 at users.noreply.github.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M compiler-rt/lib/scudo/standalone/common.h
M compiler-rt/lib/scudo/standalone/fuchsia.cpp
M compiler-rt/lib/scudo/standalone/linux.cpp
M compiler-rt/lib/scudo/standalone/secondary.h
M compiler-rt/lib/scudo/standalone/tests/common_test.cpp
M compiler-rt/lib/scudo/standalone/trusty.cpp
Log Message:
-----------
[scudo] Show the resident pages from the secondary cache. (#170568)
Move the test utility to get the resident pages into linux.cpp.
Add some specific tests for this function.
Add displaying of resident pages from in the secondary cache when
calling getStats.
Commit: 5e63167965224e523ed69770754330c8cb22e90f
https://github.com/llvm/llvm-project/commit/5e63167965224e523ed69770754330c8cb22e90f
Author: Alexey Samsonov <vonosmas at gmail.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M libc/src/__support/RPC/rpc_server.h
M libc/src/stdio/baremetal/printf.cpp
M libc/src/stdio/baremetal/vprintf.cpp
M libc/src/stdio/printf_core/vasprintf_internal.h
M libc/src/stdio/printf_core/vfprintf_internal.h
M libc/src/stdio/printf_core/writer.h
M libc/src/stdio/snprintf.cpp
M libc/src/stdio/sprintf.cpp
M libc/src/stdio/vsnprintf.cpp
M libc/src/stdio/vsprintf.cpp
M libc/src/stdlib/strfromd.cpp
M libc/src/stdlib/strfromf.cpp
M libc/src/stdlib/strfroml.cpp
M libc/src/time/strftime.cpp
M libc/src/time/strftime_l.cpp
M libc/test/src/stdio/printf_core/converter_test.cpp
M libc/test/src/stdio/printf_core/writer_test.cpp
Log Message:
-----------
[libc] Refactor static polymorphism in WriteBuffer (NFC). (#169089)
There are three flavors of WriteBuffer currently, all of which could be
passed into `printf_core::Writer` class. It's a tricky class, since it
chooses a flavor-specific logic either based on runtime dispatch (to
save code size and prevent generating three versions of the entirety of
printf_core), or based on template arguments (to avoid dealing with
function pointers in codegen for `FILL_BUFF_AND_DROP_OVERFLOW` path).
Refactor this somewhat convoluted logic to have three concrete
subclasses inheriting from the templated base class, and use static
polymorphism with `reinterpret_cast` to implement dispatching above. Now
we can actually have flavor-specific fields, constructors, and methods
(e.g. `flush_to_stream` is now a method of `FlushingBuffer`), and the
code on the user side is cleaner: the complexity of enabling/disabling
runtime-dispatch and using proper template arguments is now localized in
`writer.h`.
This code will need to be further templatized to support buffers of type
`wchar_t` to implement `swprintf()` and friends. This change would make
it (ever so slightly) easier.
Commit: f36792b2a391a1f8c5c83ad0770304ed25e249ce
https://github.com/llvm/llvm-project/commit/f36792b2a391a1f8c5c83ad0770304ed25e249ce
Author: Sadaf Ebrahimi <sadafebrahimi at google.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M compiler-rt/lib/scudo/standalone/primary64.h
M compiler-rt/lib/scudo/standalone/release.h
M compiler-rt/lib/scudo/standalone/tests/checksum_test.cpp
M compiler-rt/lib/scudo/standalone/tests/wrappers_cpp_test.cpp
M compiler-rt/lib/scudo/standalone/trusty.h
Log Message:
-----------
[scudo] Fix typo in multiple files (#171925)
Commit: 8e999e3d7857ce131d03bab4fd5c42b0e8edd980
https://github.com/llvm/llvm-project/commit/8e999e3d7857ce131d03bab4fd5c42b0e8edd980
Author: Jan Svoboda <jan_svoboda at apple.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang/lib/Basic/FileManager.cpp
M clang/lib/CodeGen/BackendUtil.cpp
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/Job.cpp
M clang/lib/Serialization/GlobalModuleIndex.cpp
M clang/lib/Serialization/ModuleCache.cpp
M clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
M clang/tools/driver/cc1_main.cpp
M clang/tools/driver/cc1as_main.cpp
M llvm/CMakeLists.txt
M llvm/include/llvm/CodeGen/AsmPrinter.h
M llvm/include/llvm/Config/llvm-config.h.cmake
A llvm/include/llvm/Support/IOSandbox.h
M llvm/include/llvm/Support/VirtualFileSystem.h
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
M llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
M llvm/lib/Support/LockFileManager.cpp
M llvm/lib/Support/MemoryBuffer.cpp
M llvm/lib/Support/Path.cpp
M llvm/lib/Support/Signals.cpp
M llvm/lib/Support/Unix/Path.inc
M llvm/lib/Support/Unix/Signals.inc
M llvm/lib/Support/VirtualFileSystem.cpp
M llvm/lib/Support/VirtualOutputBackends.cpp
M llvm/lib/Support/Windows/Path.inc
M llvm/lib/Support/Windows/Signals.inc
M llvm/lib/Support/raw_ostream.cpp
M llvm/lib/Target/BPF/BTFDebug.cpp
Log Message:
-----------
[llvm][clang] Sandbox filesystem reads (#165350)
This PR introduces a new mechanism for enforcing a sandbox around
filesystem reads coming from the compiler. A fatal error is raised
whenever the `llvm::sys::fs`, `llvm::MemoryBuffer::getFile*()` APIs get
used directly instead of going through the "blessed" virtual interface
of `llvm::vfs::FileSystem`.
Commit: 86cc934b4a897bdda17faf3707168b5f5727f6fa
https://github.com/llvm/llvm-project/commit/86cc934b4a897bdda17faf3707168b5f5727f6fa
Author: Hongzheng Chen <hc676 at cornell.edu>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M mlir/include/mlir-c/IR.h
M mlir/lib/Bindings/Python/IRCore.cpp
M mlir/lib/CAPI/IR/IR.cpp
M mlir/test/python/ir/operation.py
Log Message:
-----------
[python] Expose replaceUsesOfWith C API (#171892)
This PR exposes the `replaceUsesOfWith` C API to Python
Commit: ee22217d1f37edfb4ef8a922345382926adf4096
https://github.com/llvm/llvm-project/commit/ee22217d1f37edfb4ef8a922345382926adf4096
Author: Florian Mayer <fmayer at google.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh
Log Message:
-----------
[Sanitizer] show configure.log for libz build (#171932)
This is for debugging the failures on the aarch64 buildbot
Commit: e2818009243cda860bd538622621dd729536793b
https://github.com/llvm/llvm-project/commit/e2818009243cda860bd538622621dd729536793b
Author: Andrew Haberlandt <ndrewh at users.noreply.github.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
M compiler-rt/cmake/builtin-config-ix.cmake
M compiler-rt/lib/builtins/CMakeLists.txt
M compiler-rt/test/CMakeLists.txt
M compiler-rt/test/builtins/CMakeLists.txt
M llvm/runtimes/CMakeLists.txt
Log Message:
-----------
Revert: check-builtins target for LLVM_ENABLE_RUNTIMES (#171940)
Revert #171741 and #166837.
@petrhosek reported issues with some builders using this feature
Commit: d8d87b594eb67c1f96cf59d645b660f8fd831bee
https://github.com/llvm/llvm-project/commit/d8d87b594eb67c1f96cf59d645b660f8fd831bee
Author: Andy Kaylor <akaylor at nvidia.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/test/CIR/CodeGen/pointer-to-data-member.cpp
Log Message:
-----------
[CIR] Add support for global member pointer values (#171888)
This adds the handling necessary to support global variables that are
data member pointers in CIR.
Commit: b2f36149d820ab8d2c74de328ced4821408eca7f
https://github.com/llvm/llvm-project/commit/b2f36149d820ab8d2c74de328ced4821408eca7f
Author: Henrich Lauko <xlauko at mail.muni.cz>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/MissingFeatures.h
M clang/lib/CIR/CodeGen/CIRGenException.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/test/CIR/IR/func.cir
M clang/test/CIR/Lowering/eh-inflight.cir
Log Message:
-----------
[CIR] Implement function personality attribute and its lowering (#171001)
Commit: e760d0619fe573113fe5a08cc101aafe9ed3a56e
https://github.com/llvm/llvm-project/commit/e760d0619fe573113fe5a08cc101aafe9ed3a56e
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
M llvm/test/CodeGen/AMDGPU/promote-alloca-negative-index.ll
M llvm/test/CodeGen/AMDGPU/promote-alloca-scoring.ll
Log Message:
-----------
AMDGPU/PromoteAlloca: Refactor into analysis / commit phases (#170512)
This change is motivated by the overall goal of finding alternative ways
to promote allocas to VGPRs. The current solution is effectively limited
to allocas whose size matches a register class, and we can't keep adding
more register classes. We have some downstream work in this direction,
and I'm currently looking at cleaning that up to bring it upstream.
This refactor paves the way to adding a third way of promoting allocas,
on top of the existing alloca-to-vector and alloca-to-LDS. Much of the
analysis can be shared between the different promotion techniques.
Additionally, the idea behind splitting the pass into an analysis
phase and a commit phase is that it ought to allow us to more easily
make
better "big picture" decision about which allocas to promote how in the
future.
Commit: a1b35864925cde4db0d6393640abaa0f89a65309
https://github.com/llvm/llvm-project/commit/a1b35864925cde4db0d6393640abaa0f89a65309
Author: Aashcharya Gorakh <162886620+Aashcharya1 at users.noreply.github.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M flang/docs/OptionComparison.md
Log Message:
-----------
[flang][docs] Remove stale inline links to Intel and IBM compiler option
Remove all inline links to Intel and IBM compiler options from the
comparison tables, as these links have become stale (Intel links
redirect to generic pages, IBM links redirect to PDF-only pages).
Option names are preserved for readability. The Data sources section
still contains links to the main documentation pages.
Details:
- Removed 43 Intel compiler option links
- Removed 35 IBM compiler option links
- Removed 2 stale links in notes section
- Updated documentation text accordingly
Fixes #171464
---------
Co-authored-by: Tarun Prabhu <tarun at lanl.gov>
Commit: e13998f1162f399df30e6c54cefd63e24be704a3
https://github.com/llvm/llvm-project/commit/e13998f1162f399df30e6c54cefd63e24be704a3
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/llvm-config.h
M utils/bazel/llvm_configs/llvm-config.h.cmake
Log Message:
-----------
[bazel] Port 8e999e3d7857ce131d03bab4fd5c42b0e8edd980 (#171946)
Added a new preprocessor macro to llvm-config.h which needs to be
reflected on the bazel side.
Commit: 2b1fa68ad0f7ec270f1c876402eeb822e7e44cc7
https://github.com/llvm/llvm-project/commit/2b1fa68ad0f7ec270f1c876402eeb822e7e44cc7
Author: Farzon Lotfi <farzonlotfi at microsoft.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Options/Options.td
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/HLSL.cpp
A clang/test/Driver/hlsl_matrix_pack_order.hlsl
Log Message:
-----------
[HLSL] Add the DXC matrix orientation flags (#171550)
fixes #58676
- Make /Zpr and /Zpc turn on the -fmatrix-memory-layout= row-major and
column-major flags
- Add the new DXC driver flags to Options.td
- Error in the HLSL toolchain when both flags are specified
- Add the new error diagnostic to DiagnosticDriverKinds.td
- propogate the flag via the Clang toolchain
Commit: b0d340557841e0c3f72d19be89aebef2a8ce02e5
https://github.com/llvm/llvm-project/commit/b0d340557841e0c3f72d19be89aebef2a8ce02e5
Author: Peter Collingbourne <pcc at google.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Scalar/SROA.cpp
A llvm/test/Transforms/SROA/protected-field-pointer.ll
Log Message:
-----------
SROA: Recognize llvm.protected.field.ptr intrinsics.
When an alloc slice's users include llvm.protected.field.ptr intrinsics
and their discriminators are consistent, drop the intrinsics in order
to avoid unnecessary pointer sign and auth operations.
Reviewers: nikic
Reviewed By: nikic
Pull Request: https://github.com/llvm/llvm-project/pull/151650
Commit: 96b6594c901d0d92eec12c9e06388d7011049f69
https://github.com/llvm/llvm-project/commit/96b6594c901d0d92eec12c9e06388d7011049f69
Author: Younan Zhang <zyn7109 at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/test/SemaCXX/anonymous-struct.cpp
M clang/test/SemaObjCXX/arc-0x.mm
Log Message:
-----------
[Clang] Remove the early-check for anonymous struct in ShouldDeleteSpecialMember (#171799)
That check doesn't seem very useful. For non-dependent context records,
ShouldDeleteSpecialMember is called when checking implicitly defined
member functions, before the anonymous flag which the check relies on is
set. (One could notice that in ParseCXXClassMemberDeclaration,
ParseDeclarationSpecifiers ends up calling
ShouldDeleteSpecialMember, while the flag is only set later in
ParsedFreeStandingDeclSpec.)
For dependent contexts, this check actually breaks correctness: since we
don't create those special members until the template is instantiated,
their deletion checks are skipped because of the anonymity.
There's only one regression in ObjC test about notes; we are more
explanative now.
Fixes https://github.com/llvm/llvm-project/issues/167217
Commit: 8378ec44ff96a46edb752d47ebe72813ab15acc5
https://github.com/llvm/llvm-project/commit/8378ec44ff96a46edb752d47ebe72813ab15acc5
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M libcxx/include/set
M libcxx/test/libcxx/diagnostics/set.nodiscard.verify.cpp
Log Message:
-----------
[libc++][set] Applied `[[nodiscard]]` (#169982)
`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.
- https://libcxx.llvm.org/CodingGuidelines.htm
- https://wg21.link/set
Commit: 9d5403c8924b6b58c1f25bbb3830f64aecb152ec
https://github.com/llvm/llvm-project/commit/9d5403c8924b6b58c1f25bbb3830f64aecb152ec
Author: Jim Lin <jim at andestech.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVSchedSpacemitX60.td
Log Message:
-----------
[RISCV] Fix incorrect chapter number in comments in RISCVSchedSpacemitX60.td. (#171765)
Commit: 8deb4221e2bbb2f22df01e6bd16a28d2da7b4860
https://github.com/llvm/llvm-project/commit/8deb4221e2bbb2f22df01e6bd16a28d2da7b4860
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXAndes.td
Log Message:
-----------
[RISCV] Use VMV0 instead of VMaskOp in masked vector pseudoinstructions. NFC (#171924)
VMaskOp primarily exists for parsing/printing in the MC layer where the
mask is optional. The vector pseudos are split into mask and unmasked
versions. The mask is always rquired for the mask version.
Commit: cea98135650a4a41a23b46868e54067271103116
https://github.com/llvm/llvm-project/commit/cea98135650a4a41a23b46868e54067271103116
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfoV.td
Log Message:
-----------
[RISCV] Add an OperandType to VMaskOp. NFC (#171926)
Use that instead of register class to detect the mask operand in
lowerRISCVVMachineInstrToMCInst.
There are other instructions like vmerge and vadc that have a VMV0
operand that isn't optional and do not reach this code. Having a
dedicated marker for the optional mask is more precise.
Commit: ecaf673850beb241957352bd61e95ed34256635f
https://github.com/llvm/llvm-project/commit/ecaf673850beb241957352bd61e95ed34256635f
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M libcxx/include/__format/format_args.h
M libcxx/include/__format/format_context.h
M libcxx/include/__format/format_parse_context.h
M libcxx/test/libcxx/diagnostics/format.nodiscard.verify.cpp
Log Message:
-----------
[libc++][format] Applied `[[nodiscard]]` to more classes (#170808)
`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.
- https://libcxx.llvm.org/CodingGuidelines.html
Some classes in `<format>` were already annotated. This patch completes
the remaining.
Commit: 1335a05ab8bc8339ce24be3a9da89d8c3f4e0571
https://github.com/llvm/llvm-project/commit/1335a05ab8bc8339ce24be3a9da89d8c3f4e0571
Author: Hongzheng Chen <hc676 at cornell.edu>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M mlir/python/mlir/dialects/affine.py
M mlir/test/python/dialects/affine.py
Log Message:
-----------
[MLIR][Python] Fix AffineIfOp insertion point (#171957)
This bug was introduced by #108323, where the loc and ip were not
properly set. It may lead to errors when the operations are not linearly
asserted to the IR.
Commit: c7ca7047a75892f89cb98516ebd274752f73f593
https://github.com/llvm/llvm-project/commit/c7ca7047a75892f89cb98516ebd274752f73f593
Author: Yusuke MINATO <minato.yusuke at fujitsu.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M flang/docs/index.md
Log Message:
-----------
[flang][docs] Reorganize the table of contents (#171240)
This patch creates a section for user guidance.
Commit: cdfdb06c9155080ec97d6e4f4dd90b6e7cefb0ca
https://github.com/llvm/llvm-project/commit/cdfdb06c9155080ec97d6e4f4dd90b6e7cefb0ca
Author: Michael Pratt <michael at prattmic.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M compiler-rt/lib/tsan/go/test.c
M compiler-rt/lib/tsan/rtl/tsan_trace.h
Log Message:
-----------
[TSan] Zero-initialize Trace.local_head
Trace.local_head is currently uninitialized when Trace is created. It is
first initialized when the first event is added to the trace, via the
first call to TraceSwitchPartImpl.
However, ThreadContext::OnFinished uses local_head, assuming that it is
initialized. If it has not been initialized, we have undefined behavior,
likely crashing if the contents are garbage. The allocator (Alloc)
reuses previously allocations, so the contents of the uninitialized
memory are arbitrary.
In a C/C++ TSAN binary it is likely very difficult for a thread to start
and exit without a single event inbetween. For Go programs, code running
in the Go runtime itself is not TSan-instrumented, so goroutines that
exclusively run runtime code (such as GC workers) can quite reasonably
have no TSan events.
The addition of such a goroutine to the Go test.c is sufficient to
trigger this case, though for reliable failure (segfault) I've found it
necessary to poison the ThreadContext allocation like so:
```
diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp b/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp index feee566f44..352db9aa7c 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
+++ b/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
@@ -392,7 +392,9 @@
report_mtx(MutexTypeReport),
nreported(),
thread_registry([](Tid tid) -> ThreadContextBase* {
- return new (Alloc(sizeof(ThreadContext))) ThreadContext(tid);
+ void* ptr = Alloc(sizeof(ThreadContext));
+ internal_memset(ptr, 0xde, sizeof(ThreadContext));
+ return new (ptr) ThreadContext(tid);
}),
racy_mtx(MutexTypeRacy),
racy_stacks(),
```
The fix is trivial: local_head should be zero-initialized.
Commit: c3e7a1ab8f60c797e320687a92a7a59af62dc242
https://github.com/llvm/llvm-project/commit/c3e7a1ab8f60c797e320687a92a7a59af62dc242
Author: Himadhith <79003240+Himadhith at users.noreply.github.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
A llvm/test/CodeGen/PowerPC/optimize-vector-not-equal.ll
Log Message:
-----------
[NFC][PowerPC] Optimize vector compares for not equal to non zero vectors (#171635)
Lockdown instructions for vector compares `not equal to non-zero (Ex:
vec[i]!=7)`. Current implementation can be made better by removing the
negation and using the identity ``` 0XFFFF + 1 = 0 and 0 + 1 = 0 ```
Co-authored-by: himadhith <himadhith.v at ibm.com>
Commit: 63ea393f969b9fe8be3f80b38eb2b47063aa6d40
https://github.com/llvm/llvm-project/commit/63ea393f969b9fe8be3f80b38eb2b47063aa6d40
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M libcxx/include/optional
A libcxx/test/libcxx/utilities/optional/nodiscard.verify.cpp
M libcxx/test/std/utilities/optional/optional.monadic/and_then.pass.cpp
M libcxx/test/std/utilities/optional/optional.monadic/or_else.pass.cpp
M libcxx/test/std/utilities/optional/optional.monadic/transform.pass.cpp
Log Message:
-----------
[libc++][optional] Applied `[[nodiscard]]` (#170045)
`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.
- https://libcxx.llvm.org/CodingGuidelines.html
- https://wg21.link/optional
---------
Co-authored-by: William Tran-Viet <wtranviet at proton.me>
Commit: 618b874d8495ca92be1e3e38175fc1f9bd4c47b2
https://github.com/llvm/llvm-project/commit/618b874d8495ca92be1e3e38175fc1f9bd4c47b2
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoXSf.td
Log Message:
-----------
[RISCV] Add OperandType to tsimm5 used by Xsfvcp. (#171964)
Commit: f0bec9ec468fbfd6cb39f63df9b9496450ba1cbf
https://github.com/llvm/llvm-project/commit/f0bec9ec468fbfd6cb39f63df9b9496450ba1cbf
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/lib/Target/RISCV/RISCVInstrInfoXCV.td
Log Message:
-----------
[RISCV] Use OPERAND_MEMORY as the OperandType for CVrr. NFC (#171967)
Commit: 727581773944e58739e1796169dfc5ecf8f7e640
https://github.com/llvm/llvm-project/commit/727581773944e58739e1796169dfc5ecf8f7e640
Author: Alexander Richardson <alexrichardson at google.com>
Date: 2025-12-11 (Thu, 11 Dec 2025)
Changed paths:
M llvm/test/TableGen/RegClassByHwMode.td
M llvm/utils/TableGen/AsmMatcherEmitter.cpp
M llvm/utils/TableGen/InstrInfoEmitter.cpp
Log Message:
-----------
[TableGen] Improve generated comments for RegClassByHwMode tables
Adding a comment for which RegClassByHwMode the entry refers to is
helpful when staring at this generated table.
Pull Request: https://github.com/llvm/llvm-project/pull/171716
Commit: c05a3ac915ae3225c805c110531a85dfe86b4bee
https://github.com/llvm/llvm-project/commit/c05a3ac915ae3225c805c110531a85dfe86b4bee
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M libcxx/include/__filesystem/copy_options.h
M libcxx/include/__filesystem/directory_entry.h
M libcxx/include/__filesystem/directory_iterator.h
M libcxx/include/__filesystem/directory_options.h
M libcxx/include/__filesystem/file_status.h
M libcxx/include/__filesystem/filesystem_error.h
M libcxx/include/__filesystem/operations.h
M libcxx/include/__filesystem/path.h
M libcxx/include/__filesystem/path_iterator.h
M libcxx/include/__filesystem/perm_options.h
M libcxx/include/__filesystem/perms.h
M libcxx/include/__filesystem/recursive_directory_iterator.h
M libcxx/include/__filesystem/u8path.h
M libcxx/test/libcxx/diagnostics/filesystem.nodiscard.verify.cpp
M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.status/status.pass.cpp
Log Message:
-----------
[libc++][filesystem] Applied `[[nodiscard]]` (#171085)
`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.
- https://libcxx.llvm.org/CodingGuidelines.html
Commit: 3383004a958d51890443ec48e87f0f8e5a76d139
https://github.com/llvm/llvm-project/commit/3383004a958d51890443ec48e87f0f8e5a76d139
Author: mitchell <mitchell.xu2 at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang-tools-extra/clang-tidy/ClangTidyOptions.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp
Log Message:
-----------
[clang-tidy] Support comments in WarningsAsErrors (#171816)
Closes #171792
---------
Co-authored-by: Victor Chernyakin <chernyakin.victor.j at outlook.com>
Commit: 43a4442fac490db452abb9a6ad0ede3c447bd385
https://github.com/llvm/llvm-project/commit/43a4442fac490db452abb9a6ad0ede3c447bd385
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/ExpandFp.cpp
M llvm/test/Transforms/ExpandLargeFpConvert/X86/expand-large-fp-convert-si129tofp.ll
M llvm/test/Transforms/ExpandLargeFpConvert/X86/expand-large-fp-convert-ui129tofp.ll
Log Message:
-----------
[ExpandFp] Fix incorrect ConstantInt construction (#171861)
Explicitly cast the value to (int) before negating, so it gets properly
sign extended. Otherwise we end up with a large unsigned value instead
of a negative value for large bit widths.
This was found while working on
https://github.com/llvm/llvm-project/pull/171456.
Commit: 294fb60e5b25cf73aea677e2a360188337be26a6
https://github.com/llvm/llvm-project/commit/294fb60e5b25cf73aea677e2a360188337be26a6
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/include/llvm/SandboxIR/Constant.h
M llvm/include/llvm/SandboxIR/Type.h
M llvm/lib/SandboxIR/Constant.cpp
M llvm/lib/SandboxIR/Type.cpp
M llvm/unittests/SandboxIR/SandboxIRTest.cpp
Log Message:
-----------
[SandboxIR] Fix ConstantInt::get() for vector types (#171852)
As the comment on the method indicates, this method is supposed to
produce a splat for vector types. However, currently it has a
ConstantInt return type that is incompatible with that. There is a
separate overload on IntegerType -- only that one should return
ConstantInt.
This also requires adjusting Type::getIntNTy() to return IntegerType
(matching the normal Type API), so it uses the right overload.
Commit: d0d8359c014070becbcfe0c19426f6cbc65e94a0
https://github.com/llvm/llvm-project/commit/d0d8359c014070becbcfe0c19426f6cbc65e94a0
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Analysis/InstructionSimplify.cpp
Log Message:
-----------
[InstSimplify] Remove redundant icmp+ptrtoint fold (#171807)
There is a generic fold for recursively calling simplifyICmpInst with
the ptrtoint cast stripped:
https://github.com/llvm/llvm-project/blob/9b6b52b534ba592d7d6b5863e3d9a240119a74d9/llvm/lib/Analysis/InstructionSimplify.cpp#L3850-L3867
As such, we shouldn't have to explicitly do this for the
computePointerICmp() fold.
This is not strictly NFC because the recursion limit applies to the
generic fold, though I wouldn't expect this to matter in practice.
Commit: 4fc5b6d8c4d8a27e8b6c32a112d865de4935d401
https://github.com/llvm/llvm-project/commit/4fc5b6d8c4d8a27e8b6c32a112d865de4935d401
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M libcxx/docs/ReleaseNotes/22.rst
M libcxx/include/__algorithm/for_each.h
M libcxx/include/__algorithm/ranges_for_each.h
M libcxx/include/__algorithm/specialized_algorithms.h
M libcxx/include/__tree
M libcxx/include/map
M libcxx/include/set
M libcxx/test/benchmarks/algorithms/nonmodifying/for_each.bench.cpp
A libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/for_each.associative.pass.cpp
M libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/for_each.pass.cpp
A libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/ranges.for_each.associative.pass copy.cpp
Log Message:
-----------
[libc++] Optimize {std,ranges}::for_each for iterating over __trees (#164405)
This patch optimizes how `for_each` iterates over trees by using
recursion and storing pointers to the next nodes on the stack. This
avoids pointer chasing through the `__parent_` pointer, reducing cache
misses. It also makes use of the compiler being able tail-call optimize
the recursive function, removing back-tracking the iterators have to do.
```
Benchmark old new Difference % Difference
-------------------------------------------------- -------------- -------------- ------------ --------------
rng::for_each(map<int>)/32 35.19 26.67 -8.52 -24.21%
rng::for_each(map<int>)/50 64.13 40.68 -23.45 -36.57%
rng::for_each(map<int>)/8 5.06 6.49 1.43 28.21%
rng::for_each(map<int>)/8192 22893.89 9266.68 -13627.21 -59.52%
rng::for_each(map<int>::iterator)/32 35.51 26.88 -8.63 -24.31%
rng::for_each(map<int>::iterator)/50 64.39 41.24 -23.15 -35.95%
rng::for_each(map<int>::iterator)/8 5.12 5.93 0.81 15.80%
rng::for_each(map<int>::iterator)/8192 21283.14 9736.83 -11546.31 -54.25%
rng::for_each(multimap<int>)/32 35.22 26.61 -8.61 -24.45%
rng::for_each(multimap<int>)/50 64.10 40.07 -24.03 -37.49%
rng::for_each(multimap<int>)/8 5.08 6.69 1.61 31.70%
rng::for_each(multimap<int>)/8192 23130.44 9026.16 -14104.28 -60.98%
rng::for_each(multimap<int>::iterator)/32 35.40 25.08 -10.32 -29.15%
rng::for_each(multimap<int>::iterator)/50 64.19 38.15 -26.04 -40.56%
rng::for_each(multimap<int>::iterator)/8 5.04 5.25 0.22 4.31%
rng::for_each(multimap<int>::iterator)/8192 22875.97 9392.08 -13483.89 -58.94%
rng::for_each(multiset<int>)/32 35.82 27.11 -8.72 -24.33%
rng::for_each(multiset<int>)/50 62.92 41.59 -21.32 -33.89%
rng::for_each(multiset<int>)/8 4.79 6.79 2.00 41.70%
rng::for_each(multiset<int>)/8192 22642.68 9280.95 -13361.73 -59.01%
rng::for_each(multiset<int>::iterator)/32 35.76 26.71 -9.04 -25.28%
rng::for_each(multiset<int>::iterator)/50 63.44 39.00 -24.44 -38.53%
rng::for_each(multiset<int>::iterator)/8 4.90 5.21 0.30 6.18%
rng::for_each(multiset<int>::iterator)/8192 19930.45 9867.60 -10062.85 -50.49%
rng::for_each(set<int>)/32 35.90 27.30 -8.60 -23.96%
rng::for_each(set<int>)/50 63.15 40.75 -22.40 -35.47%
rng::for_each(set<int>)/8 4.77 6.83 2.06 43.23%
rng::for_each(set<int>)/8192 20262.77 9381.57 -10881.20 -53.70%
rng::for_each(set<int>::iterator)/32 36.02 26.42 -9.60 -26.64%
rng::for_each(set<int>::iterator)/50 63.29 37.97 -25.32 -40.01%
rng::for_each(set<int>::iterator)/8 4.72 5.22 0.50 10.50%
rng::for_each(set<int>::iterator)/8192 20041.91 9831.91 -10210.00 -50.94%
```
Commit: a34a92d9e253473733b955620e80704f0be26f86
https://github.com/llvm/llvm-project/commit/a34a92d9e253473733b955620e80704f0be26f86
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M libcxx/docs/ReleaseNotes/22.rst
M libcxx/include/__cxx03/bitset
M libcxx/include/bitset
A libcxx/test/libcxx/utilities/template.bitset/index_const.pass.cpp
M libcxx/test/std/utilities/template.bitset/bitset.members/index_const.pass.cpp
Log Message:
-----------
[libc++] Always return bool from bitset::operator[](size_t) const (#169894)
This takes an ABI break unconditionally, since it's small enough that
nobody should be affected. This both simplifies `bitset` a bit and makes
us more conforming.
Commit: 64dfc26237d9acd4ab4a01daa85f613f61c67498
https://github.com/llvm/llvm-project/commit/64dfc26237d9acd4ab4a01daa85f613f61c67498
Author: yingopq <115543042+yingopq at users.noreply.github.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Target/Mips/MipsISelLowering.cpp
M llvm/lib/Target/Mips/MipsISelLowering.h
M llvm/test/CodeGen/Mips/named-register-n32.ll
M llvm/test/CodeGen/Mips/named-register-n64.ll
M llvm/test/CodeGen/Mips/named-register-o32.ll
Log Message:
-----------
[Mips] Support "$sp" named register (#171793)
Because previous pr:
https://github.com/llvm/llvm-project/pull/136821 has test failures on
builder llvm-clang-x86_64-expensive-checks-ubuntu when enable
`-verify-machineinstrs`. So revert that pr.
This new pr change:
1. add `-verify-machineinstrs` in RUN command.
2. wirte register before reading to avoid error `Bad machine code: Using
an undefined physical register`.
Fix #47656.
Commit: 5bc7b9d462f0bb0e731f55eaae24d382bd812a15
https://github.com/llvm/llvm-project/commit/5bc7b9d462f0bb0e731f55eaae24d382bd812a15
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/DebugInfo/DWARF/DWARFDie.cpp
M llvm/test/DebugInfo/Generic/import-inlined-declaration.ll
M llvm/test/DebugInfo/Generic/namespace.ll
M llvm/test/DebugInfo/Generic/split-dwarf-local-import3.ll
M llvm/test/DebugInfo/X86/dimodule-external-fortran.ll
M llvm/test/DebugInfo/X86/dwarfdump-DIImportedEntity_elements.ll
M llvm/test/tools/dsymutil/X86/modules-empty.m
A llvm/test/tools/llvm-dwarfdump/AArch64/DW_AT_import.yaml
Log Message:
-----------
[llvm][dwarfdump] Print the name (if available) of entities referenced by DW_AT_import (#171859)
Instead of this:
```
0x00018cff: DW_TAG_imported_declaration
DW_AT_decl_line (12)
DW_AT_import (0x0000000000018cfb)
```
print:
```
0x00018cff: DW_TAG_imported_declaration
DW_AT_decl_line (12)
DW_AT_import (0x0000000000018cfb "platform")
```
Where `0x0000000000018cfb` in this example could be a `DW_TAG_module`
with `DW_AT_name ("platform")`
Commit: 3e2a8e2effd19cc6271dd64578868696625bbe79
https://github.com/llvm/llvm-project/commit/3e2a8e2effd19cc6271dd64578868696625bbe79
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M libcxx/include/set
A libcxx/test/libcxx/diagnostics/multiset.nodiscard.verify.cpp
Log Message:
-----------
[libc++][multiset] Applied `[[nodiscard]]` (#171654)
`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.
- https://libcxx.llvm.org/CodingGuidelines.htm
- https://wg21.link/multiset
Commit: b492b3523c4c695d33876ff4a12aff5084c3f4bd
https://github.com/llvm/llvm-project/commit/b492b3523c4c695d33876ff4a12aff5084c3f4bd
Author: Sjoerd Meijer <smeijer at nvidia.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
A llvm/test/Transforms/LoopInterchange/large-nested-4d.ll
A llvm/test/Transforms/LoopInterchange/large-nested-6d.ll
Log Message:
-----------
[LoopInterchange] Motivating example for interchange. NFC. (#171631)
This is precommitting a full reproducer of one of our motivating
examples. Looking at a full reproducer is helpful for further discussion
on DependenceAnalysis and Delinearization issues and the runtime
predicates discussion. I appreciate that this is a larger than usual
test case, but that is by design, because I think it is useful to look
at the whole thing with all of its complexities.
I have given useful names to all the relevant loop variables, and the
relevant blocks in these loops and their functions, but have
intentionally not done that for others as there are quite a few more.
Commit: 025d0c0d1daa2e0335e5d31016eb04e68c3ac961
https://github.com/llvm/llvm-project/commit/025d0c0d1daa2e0335e5d31016eb04e68c3ac961
Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
A llvm/test/CodeGen/AMDGPU/insert-waitcnts-merge.ll
M llvm/test/CodeGen/AMDGPU/lds-dma-waits.ll
Log Message:
-----------
(reland) [AMDGPU][SIInsertWaitCnts] Use RegUnits-based tracking (#162077) (#171779)
Fixed a crash in Blender due to some weird control flow.
The issue was with the "merge" function which was only looking at the
keys of the "Other" VMem/SGPR maps. It needs to look at the keys of both
maps and merge them.
Original commit message below
----
The pass was already "reinventing" the concept just to deal with 16 bit
registers. Clean up the entire tracking logic to only use register
units.
There are no test changes because functionality didn't change, except:
- We can now track more LDS DMA IDs if we need it (up to `1 << 16`)
- The debug prints also changed a bit because we now talk in terms of
register units.
This also changes the tracking to use a DenseMap instead of a massive
fixed size table. This trades a bit of access speed for a smaller memory
footprint. Allocating and memsetting a huge table to zero caused a
non-negligible performance impact (I've observed up to 50% of the time
in the pass spent in the `memcpy` built-in on a big test file).
I also think we don't access these often enough to really justify using
a vector. We do a few accesses per instruction, but not much more. In a
huge 120MB LL file, I can barely see the trace of the DenseMap accesses.
Commit: fbde1dcfb3bcb9d0c7beb98aee274b3c1ba1383a
https://github.com/llvm/llvm-project/commit/fbde1dcfb3bcb9d0c7beb98aee274b3c1ba1383a
Author: jeanPerier <jperier at nvidia.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M flang/include/flang/Lower/DirectivesCommon.h
M flang/lib/Lower/OpenACC.cpp
M flang/test/Lower/OpenACC/acc-bounds.f90
M flang/test/Lower/OpenACC/acc-enter-data.f90
Log Message:
-----------
[flang][OpenACC] do not load pointer and allocatables component in data clauses (#171445)
`gatherDataOperandAddrAndBounds` did not handle pointers and allocatable
pointer components (`obj%p`) in the same way as pointer and allocatable
whole objects (`p`).
The difference is that whole object are kept as a descriptor address
(`fir.ref<fir.box>`) in the acc data operation while components were
dereferenced (`fir.box<>`).
I do not think this was intentional, and is mainly a side effect of the
`genExprAddr` for components that generate a dereference for
pointer/allocatables.
In the work that I am doing on remapping components, this is an issue
because the data operation must return a fir.ref<fir.box> so that I can
remap any appearance to the component to it (which could be in a pointer
association statement for instance, requiring access to a descriptor
address as opposed to a value).
Commit: 19e1011df51e3f88a02f5522073aa788e479a68b
https://github.com/llvm/llvm-project/commit/19e1011df51e3f88a02f5522073aa788e479a68b
Author: Sam Tebbs <samuel.tebbs at arm.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/include/llvm/CodeGen/ISDOpcodes.h
M llvm/include/llvm/Target/TargetSelectionDAG.td
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/SVEInstrFormats.td
M llvm/test/CodeGen/AArch64/alias_mask.ll
M llvm/test/CodeGen/AArch64/alias_mask_nosve.ll
M llvm/test/CodeGen/AArch64/alias_mask_scalable.ll
M llvm/test/CodeGen/AArch64/alias_mask_scalable_nosve2.ll
R llvm/test/CodeGen/AArch64/loop-dependence-mask-ccmp.ll
Log Message:
-----------
[SelectionDAG] Fix unsafe cases for loop.dependence.{war/raw}.mask (#168565)
Both `LOOP_DEPENDENCE_WAR_MASK` and `LOOP_DEPENDENCE_RAW_MASK` are
currently hard to split correctly, and there are a number of incorrect
cases.
The difficulty comes from how the intrinsics are defined. For example,
take `LOOP_DEPENDENCE_WAR_MASK`.
It is defined as the OR of:
* `(ptrB - ptrA) <= 0`
* `elementSize * lane < (ptrB - ptrA)`
Now, if we want to split a loop dependence mask for the high half of the
mask we want to compute:
* `(ptrB - ptrA) <= 0`
* `elementSize * (lane + LoVT.getElementCount()) < (ptrB - ptrA)`
However, with the current opcode definitions, we can only modify ptrA or
ptrB, which may change the result of the first case, which should be
invariant to the lane.
This patch resolves these cases by adding a "lane offset" to the ISD
opcodes. The lane offset is always a constant. For scalable masks, it is
implicitly multiplied by vscale.
This makes splitting trivial as we increment the lane offset by
`LoVT.getElementCount()` now.
Note: In the AArch64 backend, we only support zero lane offsets (as
other cases are tricky to lower to whilewr/rw).
---------
Co-authored-by: Benjamin Maxwell <benjamin.maxwell at arm.com>
Commit: a318c501107102b0dc737b574478bb8b7c9bfd50
https://github.com/llvm/llvm-project/commit/a318c501107102b0dc737b574478bb8b7c9bfd50
Author: ShivaChen <32083954+ShivaChen at users.noreply.github.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
Log Message:
-----------
[mlir][tosa] Remove NegateOp to SubOp and 48-bit promotion in TosaToLinalg (#170622)
The patch motivated by Tosa Conformance test negate_32x45x49_i16_full failure.
TosaToLinalg pass has an optimization to transfer Tosa Negate to Sub if the zero points are zeros. However, when the input value is minimum negative number, the transformation will cause the underflow. By removing the transformation, if zp = 0 it would do the promotion to avoid the underflow.
Promotion types could be from int32 to int48. TOSA negate specification does not mention support for int48. Should we consider removing the promotion to int48 to stay aligned with the TOSA spec?
Commit: d714a6c21062c6b85beeed1ce09c8761c4f58b71
https://github.com/llvm/llvm-project/commit/d714a6c21062c6b85beeed1ce09c8761c4f58b71
Author: Mariya Podchishchaeva <mariya.podchishchaeva at intel.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/ASTContext.h
M clang/include/clang/AST/ASTMutationListener.h
M clang/include/clang/AST/DeclCXX.h
M clang/include/clang/AST/VTableBuilder.h
M clang/include/clang/Basic/ABI.h
M clang/include/clang/Basic/TargetInfo.h
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Serialization/ASTWriter.h
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/DeclCXX.cpp
M clang/lib/AST/Expr.cpp
M clang/lib/AST/ItaniumMangle.cpp
M clang/lib/AST/MicrosoftMangle.cpp
M clang/lib/AST/VTableBuilder.cpp
M clang/lib/Basic/TargetInfo.cpp
M clang/lib/CIR/CodeGen/CIRGenExprCXX.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
M clang/lib/CIR/CodeGen/CIRGenVTables.cpp
M clang/lib/CodeGen/CGCXX.cpp
M clang/lib/CodeGen/CGCXXABI.cpp
M clang/lib/CodeGen/CGCXXABI.h
M clang/lib/CodeGen/CGClass.cpp
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/lib/CodeGen/CGExprCXX.cpp
M clang/lib/CodeGen/CGVTables.cpp
M clang/lib/CodeGen/CodeGenModule.h
M clang/lib/CodeGen/ItaniumCXXABI.cpp
M clang/lib/CodeGen/MicrosoftCXXABI.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExprCXX.cpp
M clang/lib/Serialization/ASTCommon.h
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/Serialization/ASTWriterDecl.cpp
M clang/test/CodeGenCXX/dllexport.cpp
M clang/test/CodeGenCXX/microsoft-abi-extern-template.cpp
M clang/test/CodeGenCXX/microsoft-abi-structors.cpp
M clang/test/CodeGenCXX/microsoft-abi-thunks.cpp
M clang/test/CodeGenCXX/microsoft-abi-vftables.cpp
M clang/test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp
M clang/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance-vdtors.cpp
M clang/test/CodeGenCXX/microsoft-abi-vtables-return-thunks.cpp
M clang/test/CodeGenCXX/microsoft-abi-vtables-single-inheritance.cpp
M clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance-vtordisps.cpp
M clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp
M clang/test/CodeGenCXX/microsoft-no-rtti-data.cpp
A clang/test/CodeGenCXX/microsoft-vector-deleting-dtors.cpp
A clang/test/CodeGenCXX/microsoft-vector-deleting-dtors2.cpp
M clang/test/CodeGenCXX/vtable-consteval.cpp
M clang/test/DebugInfo/CXX/ms-dtor-thunks.cpp
M clang/test/DebugInfo/CXX/windows-dtor.cpp
A clang/test/Modules/Inputs/msvc-vector-deleting-dtors/module.modulemap
A clang/test/Modules/Inputs/msvc-vector-deleting-dtors/msvc-vector-deleting-dtors.h
A clang/test/Modules/msvc-vector-deleting-destructors.cpp
M clang/test/Modules/vtable-windows.cppm
A clang/test/PCH/Inputs/msvc-vector-deleting-dtors.h
A clang/test/PCH/msvc-vector-deleting-destructors.cpp
M clang/test/Profile/cxx-abc-deleting-dtor.cpp
A clang/test/SemaCXX/gh134265.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
Log Message:
-----------
Reland [MS][clang] Add support for vector deleting destructors (#170337)
This reverts commit
https://github.com/llvm/llvm-project/commit/54a4da9df6906b63878ad6d0ea6da3ed7d2d8432.
MSVC supports an extension allowing to delete an array of objects via
pointer whose static type doesn't match its dynamic type. This is done
via generation of special destructors - vector deleting destructors.
MSVC's virtual tables always contain a pointer to the vector deleting
destructor for classes with virtual destructors, so not having this
extension implemented causes clang to generate code that is not
compatible with the code generated by MSVC, because clang always puts a
pointer to a scalar deleting destructor to the vtable. As a bonus the
deletion of an array of polymorphic object will work just like it does
with MSVC - no memory leaks and correct destructors are called.
This patch will cause clang to emit code that is compatible with code
produced by MSVC but not compatible with code produced with clang of
older versions, so the new behavior can be disabled via passing
-fclang-abi-compat=21 (or lower).
Fixes https://github.com/llvm/llvm-project/issues/19772
Commit: 51bd0edb566e3b8efa99c39745b4e512bba010a7
https://github.com/llvm/llvm-project/commit/51bd0edb566e3b8efa99c39745b4e512bba010a7
Author: Hristo Hristov <hghristov.rmm at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M libcxx/include/valarray
A libcxx/test/libcxx/numerics/numarray/nodiscard.verify.cpp
Log Message:
-----------
[libc++][valarray] Applied `[[nodiscard]]` (#170996)
`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.
- https://libcxx.llvm.org/CodingGuidelines.html
Commit: 71c3acb18b9e9d11badd5a11945cb1afc2fb540f
https://github.com/llvm/llvm-project/commit/71c3acb18b9e9d11badd5a11945cb1afc2fb540f
Author: Sam Tebbs <samuel.tebbs at arm.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
A llvm/test/Analysis/CostModel/AArch64/loop_dependence_mask.ll
Log Message:
-----------
[Analysis][AArch64] Add cost model for loop.dependence.{war/raw}.mask (#167551)
This PR adds the cost model for the loop dependence mask intrinsics,
both for cases where they must be expanded and when they can be lowered
for AArch64.
---------
Co-authored-by: Benjamin Maxwell <benjamin.maxwell at arm.com>
Commit: f0d7d833f53b5b22ada5ba8db325f6c0f7bd7b87
https://github.com/llvm/llvm-project/commit/f0d7d833f53b5b22ada5ba8db325f6c0f7bd7b87
Author: Sergei Druzhkov <serzhdruzhok at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py
M lldb/tools/lldb-dap/Handler/DisassembleRequestHandler.cpp
M lldb/tools/lldb-dap/JSONUtils.cpp
M lldb/tools/lldb-dap/JSONUtils.h
M lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp
Log Message:
-----------
[lldb-dap] Allow empty memory reference in disassemble arguments (#162517)
This patch implements a workaround for a VSCode bug that causes it to
send disassemble requests with empty memory reference. You can find more
detailed description
[here](https://github.com/microsoft/vscode/pull/270361). I propose to
allow empty memory reference and return invalid instructions when this
occurs.
Error log example:
```
1759923554.517830610 (stdio) --> {"command":"disassemble","arguments":{"memoryReference":"","offset":0,"instructionOffset":-50,"instructionCount":50,"resolveSymbols":true},"type":"request","seq":3}
1759923554.518007517 (stdio) queued (command=disassemble seq=3)
1759923554.518254757 (stdio) <-- {"body":{"error":{"format":"invalid arguments for request 'disassemble': malformed memory reference at arguments.memoryReference\n{\n \"instructionCount\": 50,\n \"instructionOffset\": -50,\n \"memoryReference\": /* error: malformed memory reference */ \"\",\n \"offset\": 0,\n \"resolveSymbols\": true\n}","id":3,"showUser":true}},"command":"disassemble","request_seq":3,"seq":0,"success":false,"type":"response"}
```
I am not sure that we should add workaround here when bug on VSCode
side, but I think this bug affects our users. WDYT?
Commit: 2aa345054fa2975bd9d2e1ca03195e40c95058d7
https://github.com/llvm/llvm-project/commit/2aa345054fa2975bd9d2e1ca03195e40c95058d7
Author: jeanPerier <jperier at nvidia.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M flang/include/flang/Lower/AbstractConverter.h
M flang/include/flang/Lower/Support/Utils.h
M flang/include/flang/Lower/SymbolMap.h
M flang/lib/Lower/ConvertExprToHLFIR.cpp
M flang/lib/Lower/OpenACC.cpp
M flang/lib/Lower/Support/Utils.cpp
M flang/lib/Lower/SymbolMap.cpp
M flang/test/Lower/OpenACC/acc-host-data.f90
A flang/test/Lower/OpenACC/acc-use-device-remapping.f90
M flang/test/Lower/OpenACC/acc-use-device.f90
M flang/test/Transforms/OpenACC/acc-implicit-data-derived-type-member.F90
Log Message:
-----------
[flang][OpenACC] remap component references in structured constructs (#171501)
OpenACC data clauses of structured constructs may contain component
references (`obj%comp`, or `obj%array(i:j:k)`, ...).
This changes allows using the ACC dialect data operation result for such
clauses every time the component is referred to inside the scope of the
construct.
The bulk of the change is to add the ability to map
`evaluate::Component` to mlir values in the symbol map used in lowering.
This is done by adding the `ComponentMap` helper class to the lowering
symbol map, and using it to override `evaluate::Component` reference
lowering in expression lowering (ConvertExprToHLFIR.cpp).
Some changes are made in Lower/Support/Utils.h in order to set-up/expose
the hashing/equality helpers needed to use `evaluate::Component` in
llvm::DenseMap.
In OpenACC.cpp, `genPrivatizationRecipes` and `genDataOperandOperations`
are merged to unify the processing of Designator in data clauses.
New code is added to unwrap the rightmost `evaluate::Component`, if any,
and remap it.
Note that when the right most part is an array reference on a component
(`obj%array(i:j:k)`), the whole component `obj%array(` is remapped, and
the array reference is dealt with a bound operand like for whole object
array.
After this patch, all designators in data clauses on structured
constructs will be remapped, except for array reference in private/first
private/reduction (the result type of the related operation needs to be
changed and the recipe adapted to "offset back"), component reference in
reduction (this patch is adding a TODO for it), and device_ptr
(previously bypassed remapping because of issues with descriptors,
should be OK to lift it in a further patch).
Note that this patch assumes that it is illegal to have code with
intermediate variable indexing in the component reference (e.g.
`array(i)%comp`) where the value of the index would be changed inside
the region (e.g., `i` is assigned a new value), or where the component
would be used with different indices meant to have the same value as the
one used in the clause (e.g. `array(i)%comp` where `j` is meant to be
the same as `i`). I will try to add a warning in semantics for such
questionable/risky usages.
Commit: 917e458b964418b17d969e3fa914846df4578004
https://github.com/llvm/llvm-project/commit/917e458b964418b17d969e3fa914846df4578004
Author: lonely eagle <2020382038 at qq.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M mlir/lib/Conversion/LinalgToStandard/LinalgToStandard.cpp
Log Message:
-----------
[mlir] Cleanup the addLegalOp of convert-linalg-to-std pass (NFC) (#171979)
Commit: 1d7bfb752f7f35180c8a84d067b1715610bf0c39
https://github.com/llvm/llvm-project/commit/1d7bfb752f7f35180c8a84d067b1715610bf0c39
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/SafeStack.cpp
Log Message:
-----------
[SafeStack] Use getSigned() for negative value
Commit: 89c37fee25b033c89458088978d6298983a87683
https://github.com/llvm/llvm-project/commit/89c37fee25b033c89458088978d6298983a87683
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
Log Message:
-----------
[WPD] Use getSigned() for offset
This offset is a signed int64_t which can take negative values.
Commit: 123d4d9b85e090a7e75e256a80a146ffcc8ac5c3
https://github.com/llvm/llvm-project/commit/123d4d9b85e090a7e75e256a80a146ffcc8ac5c3
Author: Nikita Popov <npopov at redhat.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
Log Message:
-----------
[AMGGPUInstCombine] Use getSigned() for frexp exponent
It may be negative.
Commit: 04ce013d7c87c361b14878b0038d41d37290151f
https://github.com/llvm/llvm-project/commit/04ce013d7c87c361b14878b0038d41d37290151f
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/docs/CommandGuide/lit.rst
M llvm/utils/lit/lit/TestTimes.py
M llvm/utils/lit/lit/cl_arguments.py
M llvm/utils/lit/lit/main.py
A llvm/utils/lit/tests/Inputs/filter-failed/fail.txt
A llvm/utils/lit/tests/Inputs/filter-failed/lit.cfg
A llvm/utils/lit/tests/Inputs/filter-failed/pass.txt
A llvm/utils/lit/tests/Inputs/filter-failed/unresolved.txt
A llvm/utils/lit/tests/Inputs/filter-failed/xfail.txt
A llvm/utils/lit/tests/Inputs/filter-failed/xpass.txt
A llvm/utils/lit/tests/filter-failed-delete.py
A llvm/utils/lit/tests/filter-failed-rerun.py
A llvm/utils/lit/tests/filter-failed.py
Log Message:
-----------
Reapply "[llvm][lit] Add option to run only the failed tests" (#171588)
This reverts commit 3847648e84d2ff5194f605a8a9a5c0a5e5174939.
Relands https://github.com/llvm/llvm-project/pull/158043 which got
auto-merged on a revision which wasn't approved.
The only addition to the approved version was that we adjust how we set
the time for failed tests. We used to just assign it the negative value
of the elapsed time. But if the test failed with `0` seconds (which some
of the new tests do), we would mark it `-0`. But the check for whether
something failed checks for `time < 0`. That messed with the new
`--filter-failed` option of this PR. This was only an issue on Windows
CI, but presumably can happen on any platform. Happy to do this in a
separate PR.
---- Original PR
This patch adds a new --filter-failed option to llvm-lit, which when
set, will only run the tests that have previously failed.
Commit: 9c5744cbc8fb971778c5595bef45d3eb911863c9
https://github.com/llvm/llvm-project/commit/9c5744cbc8fb971778c5595bef45d3eb911863c9
Author: jeanPerier <jperier at nvidia.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M flang/include/flang/Lower/ConvertVariable.h
Log Message:
-----------
[flang] add missing headers in ConvertVariable.h after #171501 (#171983)
Missing headers were caught by windows build bots:
-
https://lab.llvm.org/buildbot/#/builders/222/builds/817/steps/6/logs/stdio
-
https://lab.llvm.org/buildbot/#/builders/207/builds/10970/steps/5/logs/stdio
In #171501, I removed IterationSpace.h include from Utils.h, and
IterationSpace.h was itself including SymbolMap.h and FIRBuilder.h that
are required here.
Commit: b123b7059f5a392441e47b4cfe51293e47718d50
https://github.com/llvm/llvm-project/commit/b123b7059f5a392441e47b4cfe51293e47718d50
Author: Wenju He <wenju.he at intel.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/lib/Headers/opencl-c.h
Log Message:
-----------
[NFC] Fix build error: multi-line comment in opencl-c.h (#171953)
Fix build error after enabling cl_ext_float_atomics in downstream target:
opencl-c.h:13798:80: error: multi-line // comment [-Werror,-Wcomment]
13798 | #endif // defined(__opencl_c_ext_fp16_global_atomic_min_max) && \
Patch By: Jinsong Ji <jinsong.ji at intel.com>
Commit: 0deee8ca98ac5f789008ad054f63a578c6de05bb
https://github.com/llvm/llvm-project/commit/0deee8ca98ac5f789008ad054f63a578c6de05bb
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/docs/Modules.rst
Log Message:
-----------
Fix a typo in the Modules.rst doc.
Commit: e4733424bc9f8dd6df2f2f3e35e6c4477b8755d7
https://github.com/llvm/llvm-project/commit/e4733424bc9f8dd6df2f2f3e35e6c4477b8755d7
Author: Kunwar Grover <groverkss at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
M mlir/test/Dialect/Vector/canonicalize.mlir
Log Message:
-----------
[mlir][Vector] Improve vector.transferx store-to-load-forwarding (#171840)
This patch changes the transfer_write -> transfer_read load store
forwarding canonicalization pattern to work based on permutation maps
and less on adhoc logic. The old logic couldn't canonicalize a simple
unit dim broadcast through transfer_write/transfer_read which is added
as a test in this patch.
This patch also details what would be needed to support cases which are
not yet implemented better.
Commit: c18d9eabd4d558601dba8cc4e3b89e8d32259fcf
https://github.com/llvm/llvm-project/commit/c18d9eabd4d558601dba8cc4e3b89e8d32259fcf
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/test/CodeGen/AArch64/aarch64-bf16-dotprod-intrinsics.ll
Log Message:
-----------
[AArch64] Generalize bfdotq_lane patterns to work for f32/i32 duplanes (#171146)
This also removes an overly specific pattern that is redundant with this
change.
Fixes #170883
Commit: 80ec43d455a5e47ba005112cd2b2c447bb40c42c
https://github.com/llvm/llvm-project/commit/80ec43d455a5e47ba005112cd2b2c447bb40c42c
Author: Jasmine Tang <jjasmine at igalia.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
A clang/test/CIR/CodeGen/X86/avx512-reduceIntrin.c
A clang/test/CIR/CodeGen/X86/avx512-reduceMinMaxIntrin.c
M clang/test/CIR/CodeGenBuiltins/X86/avx512fp16-builtins.c
A clang/test/CIR/CodeGenBuiltins/X86/avx512vlfp16-builtins.c
Log Message:
-----------
[CIR] Implement builtin reduce fadd/fmul/fmax/fmin (#171633)
New files are created to match the structure over at OGs
Commit: ad62c049b6796d555737512f255214fe99e51abc
https://github.com/llvm/llvm-project/commit/ad62c049b6796d555737512f255214fe99e51abc
Author: jeanPerier <jperier at nvidia.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M flang/include/flang/Lower/AbstractConverter.h
Log Message:
-----------
[flang] add includes to AbstractConverter.h after #171501 (#171987)
Utils.h included StatementContext.h and FIRBuilder.h indirectly in AbstractConverter.h.
Makes these includes direct.
Commit: 54744bc0a608729cd09ca9c2d03474aa2be727b8
https://github.com/llvm/llvm-project/commit/54744bc0a608729cd09ca9c2d03474aa2be727b8
Author: Paul Walker <paul.walker at arm.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/include/clang/Basic/arm_sve.td
M clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_hsub.c
M clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_hsubr.c
M llvm/include/llvm/IR/IntrinsicsAArch64.td
M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
M llvm/lib/Target/AArch64/AArch64SchedA320.td
M llvm/lib/Target/AArch64/AArch64SchedA510.td
M llvm/lib/Target/AArch64/AArch64SchedNeoverseN2.td
M llvm/lib/Target/AArch64/AArch64SchedNeoverseN3.td
M llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
M llvm/lib/Target/AArch64/AArch64SchedNeoverseV3.td
M llvm/lib/Target/AArch64/AArch64SchedNeoverseV3AE.td
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/test/CodeGen/AArch64/sve2-intrinsics-uniform-dsp-undef.ll
M llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-comb-no-active-lanes.ll
M llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-simplify-to-u-form.ll
Log Message:
-----------
[LLVM][AArch64] Add "u" variants of sve.[s,u]hsub intrinsics (#170894)
Commit: f9a3076180bfa1ebffd518971eefd30939a5ced6
https://github.com/llvm/llvm-project/commit/f9a3076180bfa1ebffd518971eefd30939a5ced6
Author: Victor Chernyakin <chernyakin.victor.j at outlook.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang-tools-extra/clang-tidy/readability/RedundantTypenameCheck.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-typename.cpp
Log Message:
-----------
[clang-tidy] Fix some false negatives in `readability-redundant-typename` (#171947)
#169166 reported some false positives in this check. They stemmed from
the fact that it assumed `TypedefTypeLoc`s and `TagTypeLoc`s couldn't be
dependent. Turns out, this incorrect assumption leads to some false
*negatives* as well: https://godbolt.org/z/K6EvfrE6a. This PR fixes
those.
Commit: 975bda005ea42a0aa9920169d2709ae50b0fd527
https://github.com/llvm/llvm-project/commit/975bda005ea42a0aa9920169d2709ae50b0fd527
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/test/Transforms/InstCombine/ldexp.ll
Log Message:
-----------
InstCombine: Add more ldexp by constant tests (#171976)
Commit: 6e47d4ef45f13d323687535da3411b642a5d4ab1
https://github.com/llvm/llvm-project/commit/6e47d4ef45f13d323687535da3411b642a5d4ab1
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/test/Transforms/InstCombine/fold-select-fmul-if-zero.ll
M llvm/test/Transforms/InstCombine/ldexp.ll
Log Message:
-----------
Reapply "InstCombine: Fold ldexp with constant exponent to fmul" (#171895) (#171977)
Commit: 81a75b1af98ce3fc73907951d6a24e69626ddd10
https://github.com/llvm/llvm-project/commit/81a75b1af98ce3fc73907951d6a24e69626ddd10
Author: Mikołaj Piróg <mikolaj.maciej.pirog at intel.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/test/CodeGen/X86/amx_tf32.c
M clang/test/CodeGen/X86/amx_tf32_api.c
M clang/test/CodeGen/X86/amx_tf32_errors.c
M clang/test/CodeGen/X86/amx_tf32_inline_asm.c
M llvm/include/llvm/IR/IntrinsicsX86.td
M llvm/lib/Target/X86/X86LowerAMXType.cpp
Log Message:
-----------
[X86] Remove rest of AMX-TRANSPOSE (#171906)
This is a followup to https://github.com/llvm/llvm-project/pull/165556
I've missed some parts of amx-transpose during initial removal
Commit: 04b197599e73f55624d3514480a7f829343e5b61
https://github.com/llvm/llvm-project/commit/04b197599e73f55624d3514480a7f829343e5b61
Author: Ryutaro Okada <140468571+sakupan102 at users.noreply.github.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
M mlir/test/Dialect/Vector/canonicalize.mlir
Log Message:
-----------
[MLIR] [Vector] Fix canonicalization for vector.scatter with tensor output (#168824)
Commit
https://github.com/llvm/llvm-project/commit/7e7ea9c5357efcdf9ba6bd7ea3669e607a9af400
added tensor support for scatter, but running the existing
canonicalization on tensors causes bugs, so we fix the canonicalization
with tensor output.
Closes https://github.com/llvm/llvm-project/issues/168695
---------
Signed-off-by: Ryutaro Okada <1015ryu88 at gmail.com>
Commit: df7b90b9dbf01e652e931f43f3717e567306c749
https://github.com/llvm/llvm-project/commit/df7b90b9dbf01e652e931f43f3717e567306c749
Author: Victor Chernyakin <chernyakin.victor.j at outlook.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp
Log Message:
-----------
[clang-tidy][NFC] Refactor `bugprone-branch-clone` (#171849)
Commit: 07eb9fa43f4f4503aac0d8ac79dadc3cae563230
https://github.com/llvm/llvm-project/commit/07eb9fa43f4f4503aac0d8ac79dadc3cae563230
Author: Kirill Vedernikov <kvedernikov at nvidia.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
A mlir/test/Dialect/LLVMIR/nvvm-mma-blockscale.mlir
A mlir/test/Dialect/LLVMIR/nvvm-mma-sparse-blockscale.mlir
M mlir/test/Target/LLVMIR/nvvm/tcgen05-mma-block-scale-shared.mlir
M mlir/test/Target/LLVMIR/nvvm/tcgen05-mma-block-scale-tensor.mlir
M mlir/test/Target/LLVMIR/nvvm/tcgen05-mma-invalid.mlir
M mlir/test/Target/LLVMIR/nvvm/tcgen05-mma-sp-block-scale-shared.mlir
M mlir/test/Target/LLVMIR/nvvm/tcgen05-mma-sp-block-scale-tensor.mlir
Log Message:
-----------
[MLIR][NVVM] Support for dense and sparse MMA with block scaling (#170566)
This change adds dense and sparse MMA with block scaling intrinsics to
MLIR -> NVVM IR -> NVPTX flow. NVVM and NVPTX implementation is based on
PTX ISA 9.0.
Commit: 87b3bf5b6615e36722e480e9d29ed926d90de4ed
https://github.com/llvm/llvm-project/commit/87b3bf5b6615e36722e480e9d29ed926d90de4ed
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
A llvm/test/Transforms/Attributor/AMDGPU/nofpclass-amdgcn-rsq.ll
Log Message:
-----------
ValueTracking: Add baseline test for fpclass handling of amdgcn.rsq (#171836)
Commit: e151434b0f059f844a4e4e73812083f5a34e6524
https://github.com/llvm/llvm-project/commit/e151434b0f059f844a4e4e73812083f5a34e6524
Author: Pankaj Dwivedi <pankajkumar.divedi at amd.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
Log Message:
-----------
[AMDGPU][InsertWaitCnts][NFC] Merge VMEM_ACCESS and VMEM_READ_ACCESS into a single event type (#171973)
Commit: 7d151cf170849d4f2481e1b09a4ec0a621303453
https://github.com/llvm/llvm-project/commit/7d151cf170849d4f2481e1b09a4ec0a621303453
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M lldb/source/API/SBFrame.cpp
Log Message:
-----------
[LLDB][NFC] Remove redundant target/process checks in SBFrame (#153258)
This is a follow up to https://github.com/llvm/llvm-project/pull/152020,
continuing the removal of now-redundant `if(process && target)` checks.
Since this causes a diff in every line of the affected functions, this
commit also uses the opportunity to create some helper functions and
reduce nesting of the affected methods by rewriting all pre-condition
checks as early returns, while remaining strictly NFC.
This has exposed some odd behaviors:
1. `SBFrame::GetVariables` has a variable `num_produced` which is
clearly meant to be incremented on every iteration of the loop but it is
only incremented once, after the loop. So its value is always 0 or
1. The variable now lives in `FetchVariablesUnlessInterrupted`.
2. `SBFrame::GetVariables` has an interruption mechanism for local
variables, but not for "recognized arguments". It's unclear if this is
by design or not, but it is now evident that there is a discrepancy
there.
3. In `SBFrame::EvaluateExpression` we only log some error paths, but
not all of them.
To stick to the strictly NFC nature of this patch, it does not address
any of these issues.
Commit: 66601d87345eeb26c50b3f8203acafee9a9cf7cd
https://github.com/llvm/llvm-project/commit/66601d87345eeb26c50b3f8203acafee9a9cf7cd
Author: Nico Weber <thakis at chromium.org>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
A llvm/utils/gn/secondary/clang/lib/Analysis/Scalable/BUILD.gn
A llvm/utils/gn/secondary/clang/unittests/Analysis/Scalable/BUILD.gn
M llvm/utils/gn/secondary/clang/unittests/BUILD.gn
Log Message:
-----------
[gn] port 4c6aa8fd8abe7e4f0 (clang/Analysis/Scalable)
Commit: 234c41413fba1655bb441dfe11a0c9d2414466de
https://github.com/llvm/llvm-project/commit/234c41413fba1655bb441dfe11a0c9d2414466de
Author: Nico Weber <thakis at chromium.org>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn
Log Message:
-----------
[gn] "port" 8e999e3d7857 (LLVM_ENABLE_IO_SANDBOX)
Commit: eb98089a26b8265be2cc3f78b488b98bc9e19db9
https://github.com/llvm/llvm-project/commit/eb98089a26b8265be2cc3f78b488b98bc9e19db9
Author: Jacek Caban <jacek at codeweavers.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/ObjCopy/ConfigManager.cpp
A llvm/test/tools/llvm-objcopy/COFF/strip-preserve-mtime.test
Log Message:
-----------
[llvm-objcopy] Allow -p on COFF targets (#171237)
Binutils allows `-p`, which prevents it from modifying the timestamp.
`llvm-objcopy` already preserves the timestamp in the COFF header, so
the only missing piece is allowing the option in the config manager.
Commit: 1dbff713127ad97c118a9ce64b12d014d3252b01
https://github.com/llvm/llvm-project/commit/1dbff713127ad97c118a9ce64b12d014d3252b01
Author: Erich Keane <ekeane at nvidia.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenDeclOpenACC.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
M clang/test/CIR/CodeGenOpenACC/routine-bind.c
M clang/test/CIR/CodeGenOpenACC/routine-bind.cpp
Log Message:
-----------
[OpenACC][CIR] 'bind' lowering with identifier (#171749)
The bind clause specifies the name of the function to call on the
device, and takes either a string or identifier(per the standard):
"If the name is specified as an identifier, it is callled as if the name
were specified in the language being compiled. If the name is specified
as a string, the string is used for the procedure name unmodified".
The latter (as a string) is already implemented, this patch implements
the former. Unfortunately, no existing implementation of this in C++
seems to exist. Other languages, the 'name' of a function is sufficient
to identify it (in this case 'bind' can refer to undeclared functions),
so it is possible to figure out what the name should be. In C++ with
overloading (without a discriminator, ala-fortran), a name only names an
infinite overload set.
SO, in order to implement this, I've decided that the 'called as'
(bound) function must have the same signature as the one marked by the
'routine'. This is trivially sensible in non-member functions, however
requires a bit more thought for member(and thus lambda-call-operators)
functions. In this case, we 'promote' the type of the function to a
'free' function by turning the implicit 'this' to an explicit 'this'.
I believe this is the most sensible and reasonable way to implement
this, and really the only way to make something usable.
Commit: ffac200e715cad2901b69b8aa5490bbf40d7edf9
https://github.com/llvm/llvm-project/commit/ffac200e715cad2901b69b8aa5490bbf40d7edf9
Author: Nico Weber <thakis at chromium.org>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/utils/gn/secondary/clang-tools-extra/clang-doc/tool/BUILD.gn
Log Message:
-----------
[gn] port 4e9e7c5816bc1
Commit: 099985fded94ce7d0413ed03da21cd827084f5e5
https://github.com/llvm/llvm-project/commit/099985fded94ce7d0413ed03da21cd827084f5e5
Author: Nico Weber <thakis at chromium.org>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/utils/gn/secondary/clang-tools-extra/clang-doc/tool/BUILD.gn
Log Message:
-----------
[gn] port 3d1f04425a8fe
Commit: 1451f3d9b008c76d66c215e5fb4ec3dde0f0d6ca
https://github.com/llvm/llvm-project/commit/1451f3d9b008c76d66c215e5fb4ec3dde0f0d6ca
Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M flang/include/flang/Lower/OpenMP/Clauses.h
M flang/include/flang/Semantics/openmp-utils.h
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.h
M flang/lib/Lower/OpenMP/Clauses.cpp
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Semantics/openmp-utils.cpp
M llvm/include/llvm/Frontend/OpenMP/ClauseT.h
Log Message:
-----------
[flang][OpenMP] Use StylizedInstance in converted clauses (#171907)
Invent `StylizedInstance` class to store special variables together with
the instantiated expression in omp::clause::Initializer. This will
eliminate the need for visiting the original AST nodes in lowering to
MLIR.
Commit: 5ebb9285321157fe89496746d59b46fbc2480232
https://github.com/llvm/llvm-project/commit/5ebb9285321157fe89496746d59b46fbc2480232
Author: Erick Ochoa Lopez <erick.ochoalopez at amd.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPU.td
M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
M mlir/lib/Dialect/AMDGPU/IR/AMDGPUDialect.cpp
M mlir/test/Conversion/AMDGPUToROCDL/gfx1250.mlir
M mlir/test/Dialect/AMDGPU/invalid.mlir
Log Message:
-----------
[mlir][amdgpu] Adds make_dma_gather_base (#171857)
* Adds `tdm_gather_base` type.
* Adds `make_dma_gather_base` op.
* Adds `make_dma_gather_base` lowering to ROCDL.
Commit: 42defcd39c4819c896ca09988fbdd6d4996ff46a
https://github.com/llvm/llvm-project/commit/42defcd39c4819c896ca09988fbdd6d4996ff46a
Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/utils/gn/secondary/llvm/lib/Target/Hexagon/BUILD.gn
Log Message:
-----------
[gn build] Port 48d942c7158a
Commit: 6f44be6f3e9fb6d373125b17b65bd6e09144b382
https://github.com/llvm/llvm-project/commit/6f44be6f3e9fb6d373125b17b65bd6e09144b382
Author: nerix <nerixdev at outlook.de>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp
M lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.h
M lldb/test/Shell/SymbolFile/NativePDB/Inputs/ast-types.lldbinit
M lldb/test/Shell/SymbolFile/NativePDB/ast-types.cpp
Log Message:
-----------
[LLDB][NativePDB] Use original struct name when searching for constants (#166845)
We used to search for constants using the name we parsed. For C++, this
would mean using the demangled struct name (from the unique name). This
name is not always equal to the one used for the struct's name by the
compiler. For example:
```
0x105E | LF_STRUCTURE [size = 120, hash = 0xF38F] ``anonymous namespace'::Anonymous<A::B::C<void> >::D`
unique name: `.?AUD@?$Anonymous at U?$C at X@B at A@@@?A0x8C295248@@`
```
We would use the unique name and get to `(anonymous
namespace)::Anonymous<struct A::B::C<void>>::D`. Then, when finding the
constant in the field list, we'd search for `(anonymous
namespace)::Anonymous<struct A::B::C<void>>::D::StaticMember`. This
wouldn't yield any results, because the constant will use the demangled
name as given by the compiler.
With this PR, we use the struct's name as given in the PDB and append
the member name.
Commit: 7d21334127fc5200effa77370e9e20f941418378
https://github.com/llvm/llvm-project/commit/7d21334127fc5200effa77370e9e20f941418378
Author: Tarun Prabhu <tarun at lanl.gov>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M flang/test/Semantics/modfile73.f90
M flang/test/Semantics/num_images02.f90
M flang/test/Semantics/resolve102.f90
M flang/test/Semantics/resolve104.f90
M flang/test/Semantics/resolve33.f90
M flang/test/Semantics/resolve58.f90
M flang/test/Semantics/resolve70.f90
M flang/test/Semantics/resolve71.f90
M flang/test/Semantics/resolve72.f90
M flang/test/Semantics/resolve74.f90
M flang/test/Semantics/resolve75.f90
M flang/test/Semantics/resolve78.f90
M flang/test/Semantics/resolve79.f90
M flang/test/Semantics/resolve82.f90
M flang/test/Semantics/resolve83.f90
M flang/test/Semantics/resolve84.f90
M flang/test/Semantics/resolve86.f90
M flang/test/Semantics/resolve87.f90
M flang/test/Semantics/resolve88.f90
M flang/test/Semantics/resolve89.f90
M flang/test/Semantics/resolve90.f90
M flang/test/Semantics/resolve94.f90
M flang/test/Semantics/separate-mp01.f90
M flang/test/Semantics/spec-expr.f90
M flang/test/Semantics/this_image02.f90
Log Message:
-----------
[flang][NFC] Strip trailing whitespace from tests (12 of 14)
Only some fortran sourcefiles in flang/test/Semantics have been
modified. The remaining files will be cleaned up in subsequent commits.
Commit: 3a04e01f347e24a9d4bda2163c33a356e697ee37
https://github.com/llvm/llvm-project/commit/3a04e01f347e24a9d4bda2163c33a356e697ee37
Author: Muhammad Bassiouni <60100307+bassiounix at users.noreply.github.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
A libc/src/__support/wctype/lower_to_upper.inc
A libc/src/__support/wctype/upper_to_lower.inc
A libc/utils/wctype_utils/README.rst
A libc/utils/wctype_utils/conversion/__init__.py
A libc/utils/wctype_utils/conversion/gen_conversion_data.py
A libc/utils/wctype_utils/conversion/hex_writer.py
A libc/utils/wctype_utils/gen.py
Log Message:
-----------
[libc][wctype][codegen] Add generation script for conversion data (#170868)
Closes #170871
Commit: 568ce76c6e8134ab9b631e357c134091d2fd4aa8
https://github.com/llvm/llvm-project/commit/568ce76c6e8134ab9b631e357c134091d2fd4aa8
Author: Asher Mancinelli <ashermancinelli at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/Transforms/Passes.td
A mlir/include/mlir/Dialect/LLVMIR/Transforms/UseDefaultVisibilityPass.h
M mlir/lib/Dialect/LLVMIR/Transforms/CMakeLists.txt
A mlir/lib/Dialect/LLVMIR/Transforms/UseDefaultVisibilityPass.cpp
A mlir/test/Dialect/LLVMIR/use-default-visibility.mlir
Log Message:
-----------
[MLIR][LLVM] Add pass to update ops with default visibility (#171727)
To support the `-fvisibility=...` option in Flang, we need a pass to
rewrite all the global definitions in the LLVM dialect that have the
default visibility to have the specified visibility. This change adds
such a pass.
Note that I did not add an option for `visiblity=default`; I believe
this makes sense for compiler drivers since users may want to tack an
option on at the end of a compile line to override earlier options, but
I don't think it makes sense for this pass to accept
`visibility=default`--it would just be an early exit IIUC.
Commit: 95e6d23f24ecec1a0d63dab5bb497e368ec4257b
https://github.com/llvm/llvm-project/commit/95e6d23f24ecec1a0d63dab5bb497e368ec4257b
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll
Log Message:
-----------
[X86] combineHorizOpWithShuffle - ensure we handle undef elements from widened shuffle (#172014)
Since #170838 we no longer canonicalise away whole-lane shuffles of
horizontal ops, so we need to better handle cases where widened shuffle
masks might still contain undefs.
Fixes #172010
Commit: 7345233fb60198ec170791f418d5f1d5fc1a0e53
https://github.com/llvm/llvm-project/commit/7345233fb60198ec170791f418d5f1d5fc1a0e53
Author: Charles Zablit <c_zablit at apple.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M lldb/include/lldb/Host/Terminal.h
M lldb/include/lldb/Host/common/DiagnosticsRendering.h
M lldb/source/Host/common/DiagnosticsRendering.cpp
M lldb/source/Host/common/Terminal.cpp
M lldb/test/Shell/Commands/command-dwim-print.test
M lldb/test/Shell/Commands/command-expr-diagnostics.test
M lldb/test/Shell/Commands/command-options.test
M lldb/unittests/Host/common/DiagnosticsRenderingTest.cpp
Log Message:
-----------
[lldb] improve the heuristics for checking if a terminal supports Unicode (#171832)
This patch improves the way lldb checks if the terminal it's opened in
(if any) supports Unicode or not.
On POSIX systems, we check if `LANG` contains `UTF-8`.
On Windows, we always return `true` since we use the `WriteToConsoleW`
api.
This is a relanding of https://github.com/llvm/llvm-project/pull/168603.
The tests failed because the bots support Unicode but the tests expect
ASCII. To avoid different outputs depending on the environment the tests
are running in, this patch always force ASCII in the tests.
Commit: 7a43921af824ff39a4b9114dc9624f4ff008376d
https://github.com/llvm/llvm-project/commit/7a43921af824ff39a4b9114dc9624f4ff008376d
Author: Matthew Devereau <matthew.devereau at arm.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
A llvm/test/CodeGen/AArch64/sve-fixed-length-fptrunc.ll
Log Message:
-----------
[AArch64][SVE] Fix -msve-vector-bits=256 fixed width vector crash (#171776)
This adds tests for and fixes an issue where v8bf16 ISD::FP_ROUND v8f32
cannot be lowered when -msve-vector-bits=256.
Commit: 3ae5f2782e3cea9f0b19b86cf0b928e6e0adedf0
https://github.com/llvm/llvm-project/commit/3ae5f2782e3cea9f0b19b86cf0b928e6e0adedf0
Author: Ravil Dorozhinskii <ravil.aviva.com at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
M mlir/test/Dialect/LLVMIR/rocdl.mlir
M mlir/test/Target/LLVMIR/rocdl.mlir
Log Message:
-----------
[ROCDL] Added LDS barrier ops to ROCDL (gfx1250) (#171810)
Added `ds.atomic.barrier.arrive.rtn.b64` and
`ds.atomic.async.barrier.arrive.b64` to ROCDL. These are parts of the
LDS memory barrier concept in GFX1250. Also added alias analysis to
`global/flat` data prefetch ops. Extended rocdl tests.
Commit: ec1bf9c56250803b434220d24d5035c121de72fa
https://github.com/llvm/llvm-project/commit/ec1bf9c56250803b434220d24d5035c121de72fa
Author: David Stone <davidfromonline at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/include/clang/AST/VTableBuilder.h
M clang/lib/AST/VTableBuilder.cpp
Log Message:
-----------
Use `llvm::SmallVector` instead of `OwningArrayRef` in `VTableLayout`. (#168768)
This simplifies the code by removing the manual optimization for size ==
1, and also gives us an optimization for other small sizes.
Accept a `llvm::SmallVector` by value for the constructor and move it
into the destination, rather than accepting `ArrayRef` that we copy
from. This also lets us not have to construct a reference to the
elements of a `std::initializer_list`, which requires reading the
implementation of the constructor to know whether it's safe.
Also explicitly document that the constructor requires the input indexes
to have a size of at least 1.
Commit: 55c0e2e20f5b0d736bdd508d0a4c705c1bf3e796
https://github.com/llvm/llvm-project/commit/55c0e2e20f5b0d736bdd508d0a4c705c1bf3e796
Author: Juan Manuel Martinez Caamaño <jmartinezcaamao at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-extract-vector-elt.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-insert-vector-elt.mir
Log Message:
-----------
[AMDGPU] Add missing cases for V_INDIRECT_REG_{READ/WRITE}_GPR_IDX and V/S_INDIRECT_REG_WRITE_MOVREL (#171835)
A buildbot failure in https://github.com/llvm/llvm-project/pull/170323
when expensive checks were used highlighted that some of these patterns
were missing.
This patch adds `V_INDIRECT_REG_{READ/WRITE}_GPR_IDX` and
`V/S_INDIRECT_REG_WRITE_MOVREL` for `V6` and `V7` vector sizes.
Commit: 44c0469e5f5e7ff214690140a1142d4f05d782ce
https://github.com/llvm/llvm-project/commit/44c0469e5f5e7ff214690140a1142d4f05d782ce
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Transforms/Attributor/AMDGPU/nofpclass-amdgcn-rsq.ll
Log Message:
-----------
ValueTracking: Handle amdgcn.rsq intrinsic in computeKnownFPClass (#171837)
We have other target intrinsics already in ValueTracking functions,
and no access to TTI.
Commit: 66f2b6625e14c2b424304d2d4f0867eccb3f352b
https://github.com/llvm/llvm-project/commit/66f2b6625e14c2b424304d2d4f0867eccb3f352b
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
Log Message:
-----------
[lldb][nfc] Change ProcessGDBRemote::ParseMultiMemReadPacket signature (#172020)
Instead of returning an `Expected<vector<...>>` it now returns an Error,
and receives a vector argument to fill in. This will be useful to
support a change were ParseMultiMemReadPacket will be called multiple
times in a loop with the same vector; without this change, we would have
to concatenate vectors and copy memory around.
Commit: d7cbc7f9e465344dd326eaf6e5a6cfa90285ce8e
https://github.com/llvm/llvm-project/commit/d7cbc7f9e465344dd326eaf6e5a6cfa90285ce8e
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp
M lldb/source/Plugins/InstrumentationRuntime/UBSan/InstrumentationRuntimeUBSan.cpp
M lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp
Log Message:
-----------
[lldb][InstrumentationRuntime] Run sanitizer utility expressions as C (#172019)
The utility expressions in the `InstrumentationRuntime` plugins are just
plain C code, but we run them as `ObjC++`. That meant we were doing
redundant work (like looking up decls in the Objective-C runtime). The
sanitizer tests sporadically time out while looking up function symbols
in the Objective-C runtime. This patch switches the expression language
to `C`.
Didn't find a great way of testing this other than looking at the
expression log.
rdar://165656320
Commit: 0570cab7c13f43145353b65f752a7df178a77f57
https://github.com/llvm/llvm-project/commit/0570cab7c13f43145353b65f752a7df178a77f57
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M mlir/lib/Dialect/Utils/IndexingUtils.cpp
Log Message:
-----------
[MLIR] Apply clang-tidy fixes for misc-use-internal-linkage in IndexingUtils.cpp (NFC)
Commit: ff3dcd06a94ad1412d7e89b5c254adc2f1e8c3e4
https://github.com/llvm/llvm-project/commit/ff3dcd06a94ad1412d7e89b5c254adc2f1e8c3e4
Author: Mircea Trofin <mtrofin at google.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Transforms/IPO/GlobalOpt.cpp
M llvm/test/Transforms/GlobalOpt/disable-globals-aa.ll
M llvm/utils/profcheck-xfail.txt
Log Message:
-----------
[GlobalOpt][profcheck] Mark as `unknown` the branch weights of global shrunk to boolean (#171530)
Commit: 4dbd16bb62ca18b0c588e2f387ac5cc94a782efb
https://github.com/llvm/llvm-project/commit/4dbd16bb62ca18b0c588e2f387ac5cc94a782efb
Author: Syadus Sefat <42645939+mssefat at users.noreply.github.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
A llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-load-byte-short.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.load.ll
Log Message:
-----------
[AMDGPU][GlobalISel] Add register bank legalization for buffer_load byte and short (#167798)
This patch adds register bank legalization support for buffer load byte
and short operations in the AMDGPU GlobalISel pipeline.
Commit: dbd0122cf5669e6affa9c7bca1a06b47210e2c38
https://github.com/llvm/llvm-project/commit/dbd0122cf5669e6affa9c7bca1a06b47210e2c38
Author: Amr Hesham <amr96 at programmer.net>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
A clang/test/CIR/CodeGen/choose-expr.cpp
Log Message:
-----------
[CIR] Add support the ChooseExpr for scalar (#171882)
Add support the ChooseExpr for scalar expr
Commit: b880428bf0fca4eef7460c440df19412863001c2
https://github.com/llvm/llvm-project/commit/b880428bf0fca4eef7460c440df19412863001c2
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/test/CodeGen/X86/any_extend_vector_inreg_of_broadcast_from_memory.ll
M llvm/test/CodeGen/X86/zero_extend_vector_inreg_of_broadcast_from_memory.ll
Log Message:
-----------
[X86] Cleanup check prefixes for any/zero_extend_vector_inreg_of_broadcast_from_memory.ll tests (#172043)
Remove all unused prefixes plus update_llc_test_checks.py will warn about prefix clashes, so we don't need fallback prefixes any more
Commit: 4ffd373e3853ebc00fb339611e215deab682a54c
https://github.com/llvm/llvm-project/commit/4ffd373e3853ebc00fb339611e215deab682a54c
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M libcxx/src/CMakeLists.txt
M libcxx/test/CMakeLists.txt
M libcxxabi/test/CMakeLists.txt
M libunwind/test/CMakeLists.txt
Log Message:
-----------
[runtimes] Remove dependencies on cxx_experimental for test-suite installs (#171678)
This patch removes explicit dependencies on cxx_experimental for
installations that are local to the test suite. Such dependencies
are not required anymore from the test-suite installation targets
since the proper dependency is now encoded between cxx and
cxx_experimental.
Commit: 2af693bbec82860215284c70d290f89dcc7cafb6
https://github.com/llvm/llvm-project/commit/2af693bbec82860215284c70d290f89dcc7cafb6
Author: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/bf16.ll
Log Message:
-----------
AMDGPU: Fix selection failure on bf16 inverse sqrt (#172044)
On !hasBF16TransInsts targets, an illegal rsq would form
and fail to select.
Commit: 9dc6f18a3e4f25d769ae17d875e25e3e5f2c70ec
https://github.com/llvm/llvm-project/commit/9dc6f18a3e4f25d769ae17d875e25e3e5f2c70ec
Author: Durgadoss R <durgadossr at nvidia.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
M mlir/test/Target/LLVMIR/nvvm/mbar_arrive.mlir
Log Message:
-----------
[MLIR][NVVM] Fix results-check for mbarrier Op (#171657)
This patch fixes the lowering of the newly
added mbarrier.arrive Op w.r.t return value.
(Follow-up of PR #170545)
Signed-off-by: Durgadoss R <durgadossr at nvidia.com>
Commit: 44aec0e768d986aa026e352188baccb0cd529a50
https://github.com/llvm/llvm-project/commit/44aec0e768d986aa026e352188baccb0cd529a50
Author: Amr Hesham <amr96 at programmer.net>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
M clang/test/CIR/CodeGen/cxx-traits.cpp
Log Message:
-----------
[CIR] Add support for TypeTraitExpr with bool result (#171687)
Add support for the TypeTraitExpr with a boolean result
Commit: 1760effa337471d9944e26694bdcb7a60139a124
https://github.com/llvm/llvm-project/commit/1760effa337471d9944e26694bdcb7a60139a124
Author: Dan Klishch <30951924+DanShaders at users.noreply.github.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/ASTContext.h
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/AttrDocs.td
M clang/include/clang/Basic/DiagnosticASTKinds.td
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Basic/LangOptions.h
M clang/include/clang/Options/Options.td
M clang/lib/AST/Decl.cpp
M clang/lib/AST/RecordLayoutBuilder.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
A clang/test/CodeGen/gcc_struct-msvc-todo-1.c
A clang/test/CodeGen/gcc_struct-msvc-todo-2.c
A clang/test/CodeGen/gcc_struct.c
M clang/test/CodeGen/mingw-long-double.c
M clang/test/CodeGen/mms-bitfields.c
M clang/test/Driver/ms-bitfields.c
M clang/test/Layout/itanium-union-bitfield.cpp
M clang/test/Misc/pragma-attribute-supported-attributes-list.test
A clang/test/Sema/gcc_ms_struct.c
M clang/test/Sema/mms-bitfields.c
M clang/test/SemaCXX/ms_struct-bitfield-padding.cpp
M clang/test/SemaCXX/ms_struct.cpp
M clang/test/SemaCXX/ms_wide_bitfield.cpp
M clang/utils/TableGen/ClangDiagnosticsEmitter.cpp
Log Message:
-----------
[clang] Implement gcc_struct attribute on Itanium targets (#71148)
This commit implements gcc_struct attribute with the behavior similar to
one in GCC. Current behavior is as follows:
When ItaniumRecordLayoutBuilder is used, [[gcc_struct]] will locally
cancel the effect of -mms-bitfields on a record. If -mms-bitfields is
not supplied and is not a default behavior on a target, [[gcc_struct]]
will be a no-op. This should provide enough compatibility with GCC.
If C++ ABI is "Microsoft", [[gcc_struct]] will currently always produce
a diagnostic, since support for it is not yet implemented in
MicrosoftRecordLayoutBuilder. Note, however, that all the infrastructure
is ready for the future implementation.
In particular, check for default value of -mms-bitfields is moved from a
driver to ASTContext, since it now non-trivially depends on other
supplied flags. This also, unfortunately, makes it impossible to use
usual argument parsing for `-m{no-,}ms-bitfields`.
The patch doesn't introduce any backwards-incompatible changes, except
for situations when cc1 is called directly with `-mms-bitfields` option.
Work towards #24757
---------
Co-authored-by: Martin Storsjö <martin at martin.st>
Commit: c14c2561704c0c40983cda25ed952584c802d4bb
https://github.com/llvm/llvm-project/commit/c14c2561704c0c40983cda25ed952584c802d4bb
Author: jeanPerier <jperier at nvidia.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M flang/lib/Optimizer/Transforms/AddAliasTags.cpp
A flang/test/Transforms/tbaa-target-inlined-results.fir
Log Message:
-----------
[flang][TBAA] fix unsafe optional deref after #170908 (#172033)
PR #170908 introduced an unconditional dereference of the local target
variable name, but in rare cases (I am not sure this can be reproduced
without `-mllvm -inline-all` currently), such variable may not have a
uniq name on the alloca. For instance, this can happen after a call to a
function with TARGET character result is inlined. The alloca is a temp
on the caller side, that gets the TARGET attribute in the inlined scope
via the result name.
Commit: 8515ddaa2bf62b30b5b952265b3708ea4987c505
https://github.com/llvm/llvm-project/commit/8515ddaa2bf62b30b5b952265b3708ea4987c505
Author: Charles Zablit <c_zablit at apple.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M lldb/test/Shell/Commands/command-expr-diagnostics.test
Log Message:
-----------
[lldb] fix failing diagnostics test when Unicode is supported (#172038)
This patch fixes a test failure introduced by
https://github.com/llvm/llvm-project/pull/171832 due to a check which
was not properly updated.
Commit: 4ca2caeab6b69db284dc845f3cfded8e6c2c7a1c
https://github.com/llvm/llvm-project/commit/4ca2caeab6b69db284dc845f3cfded8e6c2c7a1c
Author: Alexander Johnston <14348472+Alexander-Johnston at users.noreply.github.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/include/clang/Basic/Builtins.td
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/CodeGen/CGHLSLRuntime.h
M clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h
M clang/lib/Sema/SemaHLSL.cpp
A clang/test/CodeGenHLSL/builtins/ddx-fine-builtin.hlsl
A clang/test/CodeGenHLSL/builtins/ddx-fine.hlsl
A clang/test/CodeGenHLSL/builtins/ddy-fine-builtin.hlsl
A clang/test/CodeGenHLSL/builtins/ddy-fine.hlsl
A clang/test/SemaHLSL/BuiltIns/ddx-fine-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/ddy-fine-errors.hlsl
M llvm/include/llvm/IR/IntrinsicsDirectX.td
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/lib/Target/DirectX/DXIL.td
M llvm/lib/Target/DirectX/DirectXTargetTransformInfo.cpp
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
A llvm/test/CodeGen/DirectX/ddx_fine-errors.ll
A llvm/test/CodeGen/DirectX/ddx_fine.ll
A llvm/test/CodeGen/DirectX/ddy_fine-errors.ll
A llvm/test/CodeGen/DirectX/ddy_fine.ll
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/ddx_fine.ll
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/ddy_fine.ll
A llvm/test/CodeGen/SPIRV/opencl/ddx_fine-error.ll
A llvm/test/CodeGen/SPIRV/opencl/ddy_fine-error.ll
Log Message:
-----------
[HLSL] Implement ddx/ddy_fine intrinsics (#168874)
Implements the HLSL ddx_fine and ddy_fine intrinsics.
For the SPIRV backend the intrinsics are ensured to be unavailable in
opencl (as they require fragment execution stage).
Closes https://github.com/llvm/llvm-project/issues/99098
Closes https://github.com/llvm/llvm-project/issues/99101
Commit: b8816a4e833ede66dc365a55a4913406ce4f2ce4
https://github.com/llvm/llvm-project/commit/b8816a4e833ede66dc365a55a4913406ce4f2ce4
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
R llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-load-byte-short.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.load.ll
Log Message:
-----------
Revert "[AMDGPU][GlobalISel] Add register bank legalization for buffer_load byte and short (#167798)"
This reverts commit 4dbd16bb62ca18b0c588e2f387ac5cc94a782efb.
This was causing buildbot failures, including on premerge when running
check-llvm.
https://lab.llvm.org/buildbot/#/builders/185/builds/30323
Commit: 26ff16663777fc995e8c6b46fa2433610dab4f64
https://github.com/llvm/llvm-project/commit/26ff16663777fc995e8c6b46fa2433610dab4f64
Author: Michael Buch <michaelbuch12 at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
A lldb/test/Shell/Expr/TestExprLanguageNote_NoDebug.cpp
Log Message:
-----------
[lldb][ClangExpressionParser] Emit more accurate language note for Objective-C++ fallback (#172047)
We fall back to `Objective-C++` when running C++ expressions in frames
that don't have debug-info. But we were missing a fallback note for this
situation. We would now print following note on expression error:
```
note: Possibly stopped inside system library, so speculatively enabled Objective-C. Ran expression as 'Objective C++'.
```
Commit: 366f3ac144a3d6c8d53ddf79f1391870f9a3663c
https://github.com/llvm/llvm-project/commit/366f3ac144a3d6c8d53ddf79f1391870f9a3663c
Author: Amr Hesham <amr96 at programmer.net>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
A clang/test/CIR/CodeGen/concept-specialization.cpp
Log Message:
-----------
[CIR] Add support for the ConceptSpecializationExpr (#171824)
Add support for the ConceptSpecializationExpr
Commit: 5cdb757cc380f9cb655eca992a70234257ccd98d
https://github.com/llvm/llvm-project/commit/5cdb757cc380f9cb655eca992a70234257ccd98d
Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/include/llvm/Analysis/Delinearization.h
M llvm/lib/Analysis/Delinearization.cpp
M llvm/lib/Analysis/DependenceAnalysis.cpp
Log Message:
-----------
[Delinearization] Remove `isKnownNonNegative` (#171817)
Delinearization has its own `isKnownNonNegative` function, which wraps
`ScalarEvolution::isKnownNonNegative` and adds additional logic. The
additional logic is that, for a pointer addrec `{a,+,b}`, if the pointer
has `inbounds` and both `a` and `b` are known to be non-negative, then
the addrec is also known non-negative (i.e., it doesn't wrap). This
reasoning is incorrect. If the GEP and/or load/store using the pointer
are not unconditionally executed in the loop, then the addrec can still
wrap. Even though no actual example has been found where this causes a
miscompilation (probably because the subsequent checks fail so the
validation also fails), simply replacing it with
`ScalarEvolution::isKnownNonNegative` is safer, especially it doesn't
cause any regressions in the existing tests.
Resolve #169811
Commit: ef21740781f8ddda04c51f93e8c9d4b31c797b97
https://github.com/llvm/llvm-project/commit/ef21740781f8ddda04c51f93e8c9d4b31c797b97
Author: Craig Topper <craig.topper at sifive.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Utils/LoopPeel.cpp
M llvm/test/Transforms/LoopUnroll/peel-to-turn-invariant-accesses-dereferenceable.ll
Log Message:
-----------
[LoopPeel] Check for onlyAccessesInaccessibleMemory instead of llvm.assume in peelToTurnInvariantLoadsDereferenceable. (#171910)
onlyAccessesInaccessibleMemory can't alias with a load. This allows us
to ignore more intrinsics than llvm.assume.
Follow up from #171547
Commit: 858fa0e1edd8c6f512717de66bd20d647c68b9c8
https://github.com/llvm/llvm-project/commit/858fa0e1edd8c6f512717de66bd20d647c68b9c8
Author: Amr Hesham <amr96 at programmer.net>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/test/CIR/CodeGen/mms-bitfields.c
Log Message:
-----------
[CIR][NFC] Fix the mms-bitfields test file (#172060)
Fix the args in the mms-bitfields test file to be aligned with the same
test in classical codegen (clang/test/CodeGen/mms-bitfields.c). After
#71148 is merged
Commit: a0e7476be565a58b3dc698c5cd4d6aed82f3eb49
https://github.com/llvm/llvm-project/commit/a0e7476be565a58b3dc698c5cd4d6aed82f3eb49
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Port 568ce76c6e8134ab9b631e357c134091d2fd4aa8 (#172059)
Commit: 68535970ab9f328625162e2340e6589e9b2820d2
https://github.com/llvm/llvm-project/commit/68535970ab9f328625162e2340e6589e9b2820d2
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Analysis/DependenceAnalysis.cpp
Log Message:
-----------
[Delinearization] Fix unused variable from 5cdb757
Was only unused in an expression enabled at debug time.
Commit: 112a6126ef1ca616c953bf0d53ae5ce99da79ce6
https://github.com/llvm/llvm-project/commit/112a6126ef1ca616c953bf0d53ae5ce99da79ce6
Author: Seraphimt <svet58585 at mail.ru>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/MachineFunction.cpp
M llvm/lib/CodeGen/MachineInstr.cpp
M llvm/lib/DebugInfo/LogicalView/Readers/LVDWARFReader.cpp
M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
M llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
Log Message:
-----------
Fixes non-functional changes found static analyzer (#171197)
As per @arsenm 's instructions, I've separated the non-functional
changes from https://github.com/llvm/llvm-project/pull/169958.
Afterwards I'll tackle the functional ones one by one. I hope I did
everything right this time.
Full descriptions in the article:
https://pvs-studio.com/en/blog/posts/cpp/1318/
3. Array overrun is possible.
The PVS-Studio warning: V557 Array overrun is possible. The value of
'regIdx' index could reach 31. VEAsmParser.cpp 696
10. Excessive check.
The PVS-Studio warning: V547 Expression 'IsLeaf' is always false.
PPCInstrInfo.cpp 419
11. Doubling the same check.
The PVS-Studio warning: V581 The conditional expressions of the 'if'
statements situated alongside each other are identical. Check lines:
5820, 5823. PPCInstrInfo.cpp 5823
15. Excessive check.
The PVS-Studio warning: V547 Expression 'i != e' is always true.
MachineFunction.cpp 1444
17. Excessive assignment.
The PVS-Studio warning: V1048 The 'FirstOp' variable was assigned the
same value. MachineInstr.cpp 1995
18. Excessive check.
The PVS-Studio warning: V547 Expression 'AllSame' is always true.
SimplifyCFG.cpp 1914
19. Excessive check.
The PVS-Studio warning: V547 Expression 'AbbrevDecl' is always true.
LVDWARFReader.cpp 398
Commit: ed42c81bd69c9fa1a389d1fb619f47871c548162
https://github.com/llvm/llvm-project/commit/ed42c81bd69c9fa1a389d1fb619f47871c548162
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang-tools-extra/test/clang-doc/templates.cpp
Log Message:
-----------
[clang-doc] Add JSON output to existing template tests (#171936)
clang-doc has some useful, preexisting tests for templates, so we'll
reuse them to cover more cases.
Commit: 53972216d1087552945e9a44f11b6a2a9d38a59c
https://github.com/llvm/llvm-project/commit/53972216d1087552945e9a44f11b6a2a9d38a59c
Author: Med Ismail Bennani <ismail at bennani.ma>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M lldb/examples/python/templates/scripted_process.py
M lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py
M lldb/test/API/functionalities/scripted_frame_provider/circular_dependency/TestFrameProviderCircularDependency.py
Log Message:
-----------
[lldb] Add arm32/thumb register layout to Scripted{Frame,Thread} (#172005)
Commit: 76c3eed67321dc21a3bac493771da70b726ee883
https://github.com/llvm/llvm-project/commit/76c3eed67321dc21a3bac493771da70b726ee883
Author: ayank227 <ayank at nvidia.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
M llvm/test/CodeGen/AArch64/vector-llrint.ll
M llvm/test/CodeGen/AArch64/vector-lrint.ll
Log Message:
-----------
[AArch64][GlobalISel] Fix vector lrint/llrint fallbacks (#170814)
Add .lower() to vector lrint/llrint to enable lowering instead of
falling back to SelectionDAG.
Commit: e0e5b6e1f72ed1935f111fa013e2bbecda96df50
https://github.com/llvm/llvm-project/commit/e0e5b6e1f72ed1935f111fa013e2bbecda96df50
Author: KRM7 <Krisztian.Rugasi at hightec-rt.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-inline-asm.ll
Log Message:
-----------
[GISel][Inlineasm] Support inlineasm i/s constraint for symbols (#170094)
Commit: 8f264586d7521b0e305ca7bb78825aa3382ffef7
https://github.com/llvm/llvm-project/commit/8f264586d7521b0e305ca7bb78825aa3382ffef7
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang-tools-extra/clang-doc/JSONGenerator.cpp
M clang-tools-extra/clang-doc/assets/class-template.mustache
M clang-tools-extra/test/clang-doc/json/class-requires.cpp
M clang-tools-extra/test/clang-doc/json/class-specialization.cpp
M clang-tools-extra/test/clang-doc/json/class-template.cpp
M clang-tools-extra/test/clang-doc/json/class.cpp
M clang-tools-extra/test/clang-doc/json/concept.cpp
M clang-tools-extra/test/clang-doc/json/function-requires.cpp
M clang-tools-extra/test/clang-doc/json/method-template.cpp
M clang-tools-extra/test/clang-doc/templates.cpp
M clang-tools-extra/unittests/clang-doc/JSONGeneratorTest.cpp
Log Message:
-----------
[clang-doc] Add class template to HTML (#171937)
Emit class template declaration info so that it appears above a record's name in the Mustache template.
Commit: 8d5ade8feb0ef440781fb1258fc869fc21ca35b9
https://github.com/llvm/llvm-project/commit/8d5ade8feb0ef440781fb1258fc869fc21ca35b9
Author: Maksim Levental <maksim.levental at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M mlir/lib/ExecutionEngine/CMakeLists.txt
M mlir/test/Integration/Dialect/Arith/CPU/test-apfloat-emulation-vector.mlir
M mlir/test/Integration/Dialect/Arith/CPU/test-apfloat-emulation.mlir
M mlir/test/lit.cfg.py
Log Message:
-----------
[mlir] enable APFloatWrappers on MacOS (#172070)
Commit: a94920cdd56cfd70287cfba6f3ce2aed99079868
https://github.com/llvm/llvm-project/commit/a94920cdd56cfd70287cfba6f3ce2aed99079868
Author: Alex MacLean <amaclean at nvidia.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
M llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.h
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
M llvm/lib/Target/NVPTX/NVPTXISelLowering.h
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
M llvm/lib/Target/NVPTX/NVPTXSubtarget.h
M llvm/test/CodeGen/NVPTX/jump-table.ll
M llvm/test/CodeGen/NVPTX/switch.ll
Log Message:
-----------
[NVPTX] Fixup and refactor brx.idx support (#171933)
Guard "brx.idx" generation to appropriate PTX ISA and SM version.
In addition, do some minor refactoring moving the expansion into ISel as
doing this during operation legalization is more complex and offers no
benefits.
fixes https://github.com/llvm/llvm-project/issues/171709
Commit: d107b3c82a7abd1a6a0e2900e8cd01e2a7c46748
https://github.com/llvm/llvm-project/commit/d107b3c82a7abd1a6a0e2900e8cd01e2a7c46748
Author: Zhewen Yu <zhewenyu at amd.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPU.td
M mlir/lib/Dialect/AMDGPU/IR/AMDGPUDialect.cpp
A mlir/test/Dialect/AMDGPU/resolve-shaped-type-result-dims.mlir
Log Message:
-----------
[MLIR][AMDGPU] Implement reifyDimOfResult for FatRawBufferCastOp (#171839)
Since `FatRawBufferCastOp` preserves the shape of its source operand,
the result dimensions can be reified by querying the source's
dimensions.
---------
Signed-off-by: Yu-Zhewen <zhewenyu at amd.com>
Commit: 5f6a5e02cd51708f460e6c4d2b18a2745b220b58
https://github.com/llvm/llvm-project/commit/5f6a5e02cd51708f460e6c4d2b18a2745b220b58
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/WebKit/ForwardDeclChecker.cpp
M clang/test/Analysis/Checkers/WebKit/forward-decl-checker.mm
Log Message:
-----------
[alpha.webkit.ForwardDeclChecker] Add a missing nullptr check (#171740)
Commit: c9ad896dd73382e7a453b6cd34413767a1341034
https://github.com/llvm/llvm-project/commit/c9ad896dd73382e7a453b6cd34413767a1341034
Author: Erick Velez <erickvelez7 at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang-tools-extra/clang-doc/JSONGenerator.cpp
M clang-tools-extra/clang-doc/assets/function-template.mustache
M clang-tools-extra/clang-doc/assets/namespace-template.mustache
M clang-tools-extra/test/clang-doc/json/namespace.cpp
M clang-tools-extra/test/clang-doc/namespace.cpp
M clang-tools-extra/test/clang-doc/templates.cpp
M clang-tools-extra/unittests/clang-doc/JSONGeneratorTest.cpp
Log Message:
-----------
[clang-doc] Add functions to namespace template (#171938)
Emit namespace-level (global) functions in HTML.
Commit: d901485655b978874f22bf50d9d6fc01331fffcb
https://github.com/llvm/llvm-project/commit/d901485655b978874f22bf50d9d6fc01331fffcb
Author: ArielCPU <ariel.mataev at mobileye.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Target/Mips/Mips.td
M llvm/lib/Target/Mips/Mips32r6InstrInfo.td
M llvm/lib/Target/Mips/Mips64r6InstrInfo.td
M llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
M llvm/lib/Target/Mips/MipsSubtarget.cpp
M llvm/lib/Target/Mips/MipsSubtarget.h
M llvm/test/CodeGen/Mips/branch-relaxation-with-hazard.ll
A llvm/test/CodeGen/Mips/compact-branch-combine-never.ll
A llvm/test/CodeGen/Mips/compact-branch-combine.ll
M llvm/test/CodeGen/Mips/compactbranches/unsafe-in-forbidden-slot.ll
M llvm/test/CodeGen/Mips/longbranch/compact-branches-long-branch.ll
Log Message:
-----------
[Mips] Add compact branch patterns for MipsR6 (#171131)
Added patterns for combining set and branch into one compact branch
The patterns are disabled if -mips-compact-branches=never
Commit: 0603d4af1d8fcd2ac4c08e39b128455ff728fee4
https://github.com/llvm/llvm-project/commit/0603d4af1d8fcd2ac4c08e39b128455ff728fee4
Author: Seraphimt <svet58585 at mail.ru>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
M llvm/unittests/CodeGen/GlobalISel/KnownFPClassTest.cpp
Log Message:
-----------
Fix misprint in computeKnownFPClass in GISelValueTracking.cpp (#171566)
Fix wrong value(from Instruction enum) in conditional and add test
check.
Related with https://github.com/llvm/llvm-project/issues/169959
Commit: 9bc38df587def5e88cfb18ec7f912c9a588c5d4b
https://github.com/llvm/llvm-project/commit/9bc38df587def5e88cfb18ec7f912c9a588c5d4b
Author: Alireza Torabian <alireza.torabian at huawei.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/include/llvm/Transforms/Utils/CodeMoverUtils.h
M llvm/lib/Transforms/Scalar/LoopFuse.cpp
M llvm/lib/Transforms/Utils/CodeMoverUtils.cpp
M llvm/test/Transforms/LoopFusion/cannot_fuse.ll
M llvm/test/Transforms/LoopFusion/diagnostics_missed.ll
M llvm/unittests/Transforms/Utils/CodeMoverUtilsTest.cpp
Log Message:
-----------
[LoopFusion] Simplifying the legality checks (#171889)
Considering that the current loop fusion only supports adjacent loops,
we are able to simplify the checks in this pass. By removing
`isControlFlowEquivalent` check, this patch fixes multiple issues
including #166560, #166535, #165031, #80301 and #168263.
Now only the sequential/adjacent candidates are collected in the same
list. This patch is the implementation of approach 2 discussed in post
#171207.
Commit: a6c211dfa9e38ff312b77b6988352aa5dd420f7a
https://github.com/llvm/llvm-project/commit/a6c211dfa9e38ff312b77b6988352aa5dd420f7a
Author: Aiden Grossman <aidengrossman at google.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Port d107b3c82a7abd1a6a0e2900e8cd01e2a7c46748 (#172077)
Commit: 1307b77de31f2a403b00750a3a9cca8bab96c638
https://github.com/llvm/llvm-project/commit/1307b77de31f2a403b00750a3a9cca8bab96c638
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.h
Log Message:
-----------
Delete unused code in WebKit checkers (#171768)
Commit: 0d53746eaa7e98b142b17a38d37bdb17dcd95eba
https://github.com/llvm/llvm-project/commit/0d53746eaa7e98b142b17a38d37bdb17dcd95eba
Author: Farzon Lotfi <farzonlotfi at microsoft.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/include/clang/Sema/Overload.h
M clang/include/clang/Sema/Sema.h
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaExprCXX.cpp
M clang/lib/Sema/SemaOverload.cpp
A clang/test/CodeGenHLSL/BasicFeatures/MatrixSplat.hlsl
M clang/test/SemaHLSL/MatrixElementOverloadResolution.hlsl
A clang/test/SemaHLSL/Types/BuiltinMatrix/MatrixSplatErrors.hlsl
Log Message:
-----------
[HLSL][Matrix] Add support for ICK_HLSL_Matrix_Splat to add splat cast of scalars (#170885)
fixes #168960
Adds `ICK_HLSL_Matrix_Splat` and hooks it up to
`PerformImplicitConversion` and `IsMatrixConversion`. Map these to
`CK_HLSLAggregateSplatCast`.
Commit: f195d5278f6876e0374ddf20f94d696329702f03
https://github.com/llvm/llvm-project/commit/f195d5278f6876e0374ddf20f94d696329702f03
Author: adams381 <adams at nvidia.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
A clang/test/CIR/CodeGen/wide-string.cpp
Log Message:
-----------
[CIR] Support wide string literals in CIR codegen (#171541)
This PR migrates support for wide string literals from the incubator to
upstream.
## Changes
- Implement wide string literal support in
`getConstantArrayFromStringLiteral`
- Handle wchar_t, char16_t, and char32_t string literals
- Collect code units and create constant arrays with IntAttr elements
- Use ZeroAttr for null-filled strings
## Testing
- Copied `wide-string.cpp` test file from incubator
- Expanded test to include wchar_t test cases (incubator only had
char16_t and char32_t)
- All tests pass
---------
Co-authored-by: Andy Kaylor <akaylor at nvidia.com>
Commit: f3c16454b4f78f286e9b95a65b3c6be92465b948
https://github.com/llvm/llvm-project/commit/f3c16454b4f78f286e9b95a65b3c6be92465b948
Author: Syadus Sefat <42645939+mssefat at users.noreply.github.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
A llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-load-byte-short.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.load.ll
Log Message:
-----------
[Reland][AMDGPU][GlobalISel] Add register bank legalization for buffer_load byte and short (#172065)
This patch adds register bank legalization support for buffer load byte
and short operations in the AMDGPU GlobalISel pipeline.
This is a re-land of #167798. I have fixed the failing test
/CodeGen/AMDGPU/GlobalISel/buffer-load-byte-short.ll
Commit: 0171e881b52b70745f8342db4496e53d649adafb
https://github.com/llvm/llvm-project/commit/0171e881b52b70745f8342db4496e53d649adafb
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/test/Transforms/LoopVectorize/vplan-printing.ll
Log Message:
-----------
[VPlan] Strip stray whitespace when printing VPWidenIntOrFpInduction.
printFlags takes care of inserting the needed spaces, remove unneeded
extra stray whitespace
Commit: 20c67c75ec3a08938808646f849a98fd6141ce74
https://github.com/llvm/llvm-project/commit/20c67c75ec3a08938808646f849a98fd6141ce74
Author: Louis Dionne <ldionne.2 at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M libcxx/utils/compare-benchmarks
Log Message:
-----------
[libc++] Produce summary reports in compare-benchmarks
This patch adds the ability to produce a summary report with a few KPIs
in the compare-benchmarks script. This is useful to regularly monitor
the progress of the library on these KPIs.
Example usage:
compare-benchmarks libstdcxx.lnt llvm-20.lnt llvm-21.lnt main.lnt \
--series-names "GNU,LLVM 20,LLVM 21,LLVM main" \
--format kpi \
--noise-threshold 0.1 \
--meta-candidate 'LLVM'
This would produce a short report showing the evolution of benchmarks
in the given LLVM releases as compared to a GNU baseline.
Commit: 333ee931df888c7e0c62249290b20c17cb33d10b
https://github.com/llvm/llvm-project/commit/333ee931df888c7e0c62249290b20c17cb33d10b
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Log Message:
-----------
[LV] Update stale comment after 4e05d702f02a. (NFC)
Address post-commit suggestion, update stale comment after 4e05d702f.
Commit: e6e3f94b5c61f509a92715d36ffff7b3af9e38cd
https://github.com/llvm/llvm-project/commit/e6e3f94b5c61f509a92715d36ffff7b3af9e38cd
Author: Florian Hahn <flo at fhahn.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
Log Message:
-----------
[VPlan] Re-add clarifying comment regarding part to extract. (NFC)
Re-add and emphasize comment regarding extracting from the last part, as
suggested post-commit in https://github.com/llvm/llvm-project/pull/171145.
Commit: 54ae1222ef1fd63d075407160ad87924daaf743f
https://github.com/llvm/llvm-project/commit/54ae1222ef1fd63d075407160ad87924daaf743f
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/test/Transforms/VectorCombine/AMDGPU/extract-insert-i8.ll
M llvm/test/Transforms/VectorCombine/AMDGPU/shuffles-of-length-changing-shuffles.ll
Log Message:
-----------
VectorCombine: Fold chains of shuffles fed by length-changing shuffles (#168819)
Such chains can arise from folding insert/extract chains.
Commit: 560fe76506ef800f72f393e65c9fe7154d263fea
https://github.com/llvm/llvm-project/commit/560fe76506ef800f72f393e65c9fe7154d263fea
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M llvm/docs/GitBisecting.rst
Log Message:
-----------
[docs] Point to `git bisect --first-parent` (#171728)
Introduced in Git 2.29 (Oct 2020).
Commit: 536163650e1407aedf676fdbf9e946fb16ba54c8
https://github.com/llvm/llvm-project/commit/536163650e1407aedf676fdbf9e946fb16ba54c8
Author: Maksim Levental <maksim.levental at gmail.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M mlir/include/mlir/Conversion/LLVMCommon/Pattern.h
M mlir/include/mlir/Conversion/LLVMCommon/VectorPattern.h
M mlir/lib/Conversion/LLVMCommon/Pattern.cpp
M mlir/lib/Conversion/LLVMCommon/VectorPattern.cpp
M mlir/lib/Conversion/MathToLLVM/MathToLLVM.cpp
M mlir/test/Conversion/MathToLLVM/math-to-llvm.mlir
Log Message:
-----------
[mlir][LLVM] refactor FailOnUnsupportedFP (#172054)
Enable `FailOnUnsupportedFP` for `ConvertToLLVMPattern` and set it to
`true` for all `math-to-llvm` patterns. This fixes various invalid
lowerings of `math` ops on `fp8`/`fp4` types.
Commit: 13b4eb9452d37106b1143723e658010a9b58d344
https://github.com/llvm/llvm-project/commit/13b4eb9452d37106b1143723e658010a9b58d344
Author: Med Ismail Bennani <ismail at bennani.ma>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M lldb/test/API/functionalities/scripted_frame_provider/circular_dependency/TestFrameProviderCircularDependency.py
Log Message:
-----------
[lldb/test] Enable debug info for TestFrameProviderCircularDependency.py
This is necessary to get the function name in the test, following
20a6c59d8311d92bd8553b22b82a3874e0016edb.
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
Commit: e23e5705e69aa7c6e4f35394b673977cca97308a
https://github.com/llvm/llvm-project/commit/e23e5705e69aa7c6e4f35394b673977cca97308a
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefLambdaCapturesChecker.cpp
M clang/test/Analysis/Checkers/WebKit/uncounted-lambda-captures.cpp
Log Message:
-----------
[webkit.UncountedLambdaCapturesChecker] Ignore a lambda which gets called immediately (#162977)
Recognize more ways in which a lambda can be declared and called
immediately.
Commit: 6f1e3c396812dfc4b6fe3b77f10edf3b00aa8496
https://github.com/llvm/llvm-project/commit/6f1e3c396812dfc4b6fe3b77f10edf3b00aa8496
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefLocalVarsChecker.cpp
M clang/test/Analysis/Checkers/WebKit/local-vars-checked-const-member.cpp
M clang/test/Analysis/Checkers/WebKit/local-vars-counted-const-member.cpp
M clang/test/Analysis/Checkers/WebKit/uncounted-local-vars.cpp
Log Message:
-----------
[alpha.webkit.UncountedLocalVarsChecker] Ignore a VarDecl in "if" with trivial "then" (#171764)
Don't emit a warning when a variable declaration appears within the "if"
condition and if its "then" statement is trivial.
Commit: 6a41acef89b417b71eaf99d041435af3bb87367f
https://github.com/llvm/llvm-project/commit/6a41acef89b417b71eaf99d041435af3bb87367f
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M flang/lib/Semantics/mod-file.cpp
A flang/test/Semantics/modfile75.f90
Log Message:
-----------
[flang] Initializers for proc pointers in module files (#170349)
Default initializers for procedure pointer components are missing from
module files; add them.
Fixes https://github.com/llvm/llvm-project/issues/170331.
Commit: cf4be781be86571d28b3c8081dbe6e184c2bdeb1
https://github.com/llvm/llvm-project/commit/cf4be781be86571d28b3c8081dbe6e184c2bdeb1
Author: Peter Klausler <pklausler at nvidia.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M flang-rt/include/flang-rt/runtime/buffer.h
M flang-rt/lib/runtime/pseudo-unit.cpp
M flang-rt/lib/runtime/unit.h
Log Message:
-----------
[flang][runtime] Debug PRINT *, "HI" on GPU (#172087)
Decrease memory allocation for buffers, allocate the pseudo-unit only
once on demand, and avoid using a "%*.s" format.
Commit: 47b4c6a7d7f51806ec71bc13ab1d971c7e7b9cfc
https://github.com/llvm/llvm-project/commit/47b4c6a7d7f51806ec71bc13ab1d971c7e7b9cfc
Author: Susan Tan (ス-ザン タン) <zujunt at nvidia.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
A mlir/test/Dialect/OpenACC/region-branchop-interface.mlir
Log Message:
-----------
[acc][test] add tests for RegionBranchOpInterface for acc regions (#172073)
use last modified analysis to test if RegionBranchOpInterface is correct
on acc regions
Commit: eb501b211aadba07665c9af54b347b162f5b3e84
https://github.com/llvm/llvm-project/commit/eb501b211aadba07665c9af54b347b162f5b3e84
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M lldb/source/Interpreter/CommandInterpreter.cpp
A lldb/test/Shell/Settings/Inputs/FailedCommand.in
A lldb/test/Shell/Settings/TestEchoFailedCommands.test
Log Message:
-----------
[lldb] Still echo the command if we print the error. (#171931)
When the command interpreter is asked to not echo commands but still
print errors, a user has no idea what command caused the error.
For example, when I add `bogus` in my `~/.lldbinit`:
```
$ lldb
error: 'bogus' is not a valid command.
```
Things are even more confusing when we have inline diagnostics, which
point to nothing. For example, when I add `settings set target.run-args
-foo` to my `~/.lldbinit`:
```
❯ lldb
˄˜˜˜
╰─ error: unknown or ambiguous option
```
We should still echo the command if the command fails, making it obvious
which command caused the failure and fixing the inline diagnostics.
Fixes #171514
Commit: ad2fca7513aa00cddb1c298e296d65193d38e1e4
https://github.com/llvm/llvm-project/commit/ad2fca7513aa00cddb1c298e296d65193d38e1e4
Author: Naveen Seth Hanig <naveen.hanig at outlook.com>
Date: 2025-12-13 (Sat, 13 Dec 2025)
Changed paths:
M clang/include/clang/DependencyScanning/DependencyScannerImpl.h
M clang/include/clang/DependencyScanning/DependencyScanningWorker.h
M clang/include/clang/Tooling/DependencyScanningTool.h
M clang/lib/DependencyScanning/DependencyScannerImpl.cpp
M clang/lib/DependencyScanning/DependencyScanningWorker.cpp
M clang/lib/Tooling/DependencyScanningTool.cpp
M clang/test/ClangScanDeps/modules-full-by-mod-name.c
M clang/test/ClangScanDeps/modules-full-by-mult-mod-names.c
M clang/tools/clang-scan-deps/ClangScanDeps.cpp
Log Message:
-----------
[clang][DependencyScanning] Move driver-command logic for by-name scanning into DependencyScanningTool (#171238)
This is the second patch in a series that removes the dependency of
clangDependencyScanning on clangDriver, splitting the work from
#169964 into smaller changes (see comment linked below).
This patch updates the by-name scanning interface in
DependencyScanningWorker to accept only -cc1 command lines directly
and moves the logic for handling driver-style command lines into
DependencyScanningTool in clangTooling.
Support for -cc1 command lines in by-name scanning is introduced in
this patch.
The next patch will update the remaining parts of
DependencyScanningWorker to operate only on -cc1 command lines,
allowing its dependency on clangDriver to be removed.
https://github.com/llvm/llvm-project/pull/169964#pullrequestreview-3545879529
Commit: b50f6f24fe634540ca1f258acd7eda7394a0b089
https://github.com/llvm/llvm-project/commit/b50f6f24fe634540ca1f258acd7eda7394a0b089
Author: Michael Jones <michaelrj at google.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M libc/src/__support/float_to_string.h
M libc/test/src/stdio/sprintf_test.cpp
Log Message:
-----------
[libc] Properly fix printf long double subnormals (#172103)
In a previous PR I fixed one case where subnormal long doubles would
cause an infinite loop in printf. It was an improper fix though. The
problem was that a shift on the fixed point representation would
sometimes go negative, since the effective exponent of a subnormal is
lower than the minimum allowed exponent value. This patch extends the
fixed point representation to have space for subnormals, and adds an
assert to check that lshifts are always positive. The previous fix of
sometimes shifting right instead of left caused a loss of precision
which also sometimes caused infinite loops in the %e code.
Commit: 7927597860b505fd130c32e914bf2a428d68f09e
https://github.com/llvm/llvm-project/commit/7927597860b505fd130c32e914bf2a428d68f09e
Author: Med Ismail Bennani <ismail at bennani.ma>
Date: 2025-12-13 (Sat, 13 Dec 2025)
Changed paths:
M lldb/test/API/functionalities/scripted_frame_provider/circular_dependency/TestFrameProviderCircularDependency.py
Log Message:
-----------
Revert "[lldb/test] Enable debug info for TestFrameProviderCircularDependency.py"
This reverts commit 13b4eb9452d37106b1143723e658010a9b58d344 since it
doesn't fix the test failure.
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
Commit: 9878bac3a83b29e2970f2ce1b985e1afa78896d0
https://github.com/llvm/llvm-project/commit/9878bac3a83b29e2970f2ce1b985e1afa78896d0
Author: Jonas Devlieghere <jonas at devlieghere.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M lldb/source/Interpreter/CommandInterpreter.cpp
R lldb/test/Shell/Settings/Inputs/FailedCommand.in
R lldb/test/Shell/Settings/TestEchoFailedCommands.test
Log Message:
-----------
Revert "[lldb] Still echo the command if we print the error." (#172110)
Reverts llvm/llvm-project#171931 because the test is failing on Windows.
Commit: a014906308f99832bfc2315b672f3e1dac039515
https://github.com/llvm/llvm-project/commit/a014906308f99832bfc2315b672f3e1dac039515
Author: Peter Collingbourne <pcc at google.com>
Date: 2025-12-12 (Fri, 12 Dec 2025)
Changed paths:
M .ci/generate_test_report_lib.py
M .ci/generate_test_report_lib_test.py
M .ci/premerge_advisor_explain.py
M .github/CODEOWNERS
M .github/workflows/bazel-checks.yml
M .github/workflows/build-ci-container-tooling.yml
M .github/workflows/build-ci-container-windows.yml
M .github/workflows/build-ci-container.yml
M .github/workflows/build-metrics-container.yml
M .github/workflows/check-ci.yml
M .github/workflows/ci-post-commit-analyzer.yml
M .github/workflows/commit-access-greeter.yml
M .github/workflows/commit-access-review.yml
M .github/workflows/docs.yml
M .github/workflows/email-check.yaml
M .github/workflows/gha-codeql.yml
M .github/workflows/hlsl-test-all.yaml
M .github/workflows/issue-release-workflow.yml
M .github/workflows/issue-subscriber.yml
M .github/workflows/issue-write.yml
M .github/workflows/libc-fullbuild-tests.yml
M .github/workflows/libc-overlay-tests.yml
M .github/workflows/libclang-abi-tests.yml
M .github/workflows/libclang-python-tests.yml
M .github/workflows/libcxx-build-and-test.yaml
M .github/workflows/libcxx-build-containers.yml
M .github/workflows/libcxx-check-generated-files.yml
M .github/workflows/libcxx-run-benchmarks.yml
M .github/workflows/llvm-abi-tests.yml
M .github/workflows/llvm-bugs.yml
M .github/workflows/merged-prs.yml
M .github/workflows/mlir-spirv-tests.yml
M .github/workflows/new-prs.yml
M .github/workflows/pr-code-format.yml
M .github/workflows/pr-code-lint.yml
M .github/workflows/pr-request-release-note.yml
M .github/workflows/pr-subscriber.yml
M .github/workflows/premerge.yaml
M .github/workflows/release-asset-audit.yml
M .github/workflows/release-binaries.yml
M .github/workflows/release-documentation.yml
M .github/workflows/release-doxygen.yml
M .github/workflows/release-lit.yml
M .github/workflows/release-sources.yml
M .github/workflows/release-tasks.yml
M .github/workflows/scorecard.yml
M .github/workflows/spirv-tests.yml
M .github/workflows/test-unprivileged-download-artifact.yml
M .github/workflows/upload-release-artifact/action.yml
M .github/workflows/version-check.yml
M bolt/README.md
M bolt/include/bolt/Core/BinaryContext.h
M bolt/include/bolt/Core/BinaryFunction.h
M bolt/include/bolt/Core/MCPlusBuilder.h
M bolt/lib/Core/BinaryContext.cpp
M bolt/lib/Core/BinaryFunction.cpp
M bolt/lib/Passes/BinaryPasses.cpp
M bolt/lib/Passes/Instrumentation.cpp
M bolt/lib/Passes/PAuthGadgetScanner.cpp
M bolt/lib/Passes/PointerAuthCFIAnalyzer.cpp
M bolt/lib/Passes/VeneerElimination.cpp
M bolt/lib/Rewrite/RewriteInstance.cpp
M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
M bolt/runtime/instr.cpp
M bolt/runtime/sys_aarch64.h
M bolt/test/AArch64/constant-island-alignment.s
M bolt/test/AArch64/epilogue-determination.s
M bolt/test/AArch64/pacret-cfi-incorrect.s
M bolt/test/AArch64/safe-icf.s
A bolt/test/AArch64/validate-branch-target.s
A bolt/test/AArch64/veneer-bolt.s
M bolt/test/X86/unclaimed-jt-entries.s
A bolt/test/X86/validate-branch-target.s
A bolt/test/dwarf5-missing-dwo.c
M bolt/test/runtime/AArch64/instrumentation-ind-call.c
A bolt/test/runtime/AArch64/pacret-synchronous-unwind.cpp
M bolt/test/runtime/X86/unclaimed-jt-entries.s
M bolt/unittests/Core/MCPlusBuilder.cpp
M clang-tools-extra/Maintainers.rst
M clang-tools-extra/clang-doc/BitcodeReader.cpp
M clang-tools-extra/clang-doc/BitcodeReader.h
M clang-tools-extra/clang-doc/BitcodeWriter.cpp
M clang-tools-extra/clang-doc/BitcodeWriter.h
M clang-tools-extra/clang-doc/CMakeLists.txt
M clang-tools-extra/clang-doc/Generators.cpp
M clang-tools-extra/clang-doc/Generators.h
M clang-tools-extra/clang-doc/HTMLGenerator.cpp
R clang-tools-extra/clang-doc/HTMLMustacheGenerator.cpp
M clang-tools-extra/clang-doc/JSONGenerator.cpp
M clang-tools-extra/clang-doc/Mapper.cpp
M clang-tools-extra/clang-doc/Representation.cpp
M clang-tools-extra/clang-doc/Representation.h
M clang-tools-extra/clang-doc/Serialize.cpp
M clang-tools-extra/clang-doc/Serialize.h
M clang-tools-extra/clang-doc/assets/class-template.mustache
M clang-tools-extra/clang-doc/assets/function-template.mustache
A clang-tools-extra/clang-doc/assets/head-template.mustache
M clang-tools-extra/clang-doc/assets/namespace-template.mustache
A clang-tools-extra/clang-doc/assets/navbar-template.mustache
M clang-tools-extra/clang-doc/support/Utils.cpp
M clang-tools-extra/clang-doc/support/Utils.h
M clang-tools-extra/clang-doc/tool/CMakeLists.txt
M clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
M clang-tools-extra/clang-tidy/.clang-tidy
M clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
M clang-tools-extra/clang-tidy/ClangTidyOptions.cpp
M clang-tools-extra/clang-tidy/NoLintDirectiveHandler.cpp
M clang-tools-extra/clang-tidy/altera/StructPackAlignCheck.cpp
M clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/ChainedComparisonCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/DanglingHandleCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/NonZeroEnumToBoolConversionCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/SuspiciousMissingCommaCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/UnsafeFunctionsCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp
M clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.h
M clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp
M clang-tools-extra/clang-tidy/fuchsia/MultipleInheritanceCheck.h
R clang-tools-extra/clang-tidy/google/AvoidCStyleCastsCheck.cpp
R clang-tools-extra/clang-tidy/google/AvoidCStyleCastsCheck.h
M clang-tools-extra/clang-tidy/google/CMakeLists.txt
M clang-tools-extra/clang-tidy/google/GoogleTidyModule.cpp
M clang-tools-extra/clang-tidy/llvm/UseNewMLIROpBuilderCheck.cpp
M clang-tools-extra/clang-tidy/misc/ConfusableIdentifierCheck.cpp
M clang-tools-extra/clang-tidy/misc/MisleadingBidirectionalCheck.cpp
M clang-tools-extra/clang-tidy/misc/MisleadingIdentifierCheck.cpp
A clang-tools-extra/clang-tidy/modernize/AvoidCStyleCastCheck.cpp
A clang-tools-extra/clang-tidy/modernize/AvoidCStyleCastCheck.h
M clang-tools-extra/clang-tidy/modernize/CMakeLists.txt
M clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp
M clang-tools-extra/clang-tidy/modernize/ModernizeTidyModule.cpp
M clang-tools-extra/clang-tidy/openmp/UseDefaultNoneCheck.cpp
M clang-tools-extra/clang-tidy/readability/FunctionCognitiveComplexityCheck.cpp
M clang-tools-extra/clang-tidy/readability/RedundantControlFlowCheck.cpp
M clang-tools-extra/clang-tidy/readability/RedundantControlFlowCheck.h
M clang-tools-extra/clang-tidy/readability/RedundantInlineSpecifierCheck.cpp
M clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp
M clang-tools-extra/clang-tidy/readability/RedundantTypenameCheck.cpp
M clang-tools-extra/clang-tidy/readability/UseStdMinMaxCheck.cpp
A clang-tools-extra/clang-tidy/tool/check_alphabetical_order.py
A clang-tools-extra/clang-tidy/tool/check_alphabetical_order_test.py
M clang-tools-extra/clang-tidy/utils/LexerUtils.cpp
M clang-tools-extra/clang-tidy/utils/TransformerClangTidyCheck.cpp
M clang-tools-extra/clang-tidy/utils/UseRangesCheck.cpp
M clang-tools-extra/clangd/SemanticSelection.cpp
M clang-tools-extra/clangd/SemanticSelection.h
M clang-tools-extra/clangd/unittests/SemanticSelectionTests.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/docs/clang-tidy/checks/bugprone/use-after-move.rst
M clang-tools-extra/docs/clang-tidy/checks/google/readability-casting.rst
M clang-tools-extra/docs/clang-tidy/checks/list.rst
A clang-tools-extra/docs/clang-tidy/checks/modernize/avoid-c-style-cast.rst
M clang-tools-extra/test/clang-doc/DR-131697.cpp
M clang-tools-extra/test/clang-doc/assets.cpp
M clang-tools-extra/test/clang-doc/basic-project.mustache.test
M clang-tools-extra/test/clang-doc/basic-project.test
M clang-tools-extra/test/clang-doc/comments-in-macros.cpp
M clang-tools-extra/test/clang-doc/conversion_function.cpp
M clang-tools-extra/test/clang-doc/enum.cpp
M clang-tools-extra/test/clang-doc/json/class-requires.cpp
M clang-tools-extra/test/clang-doc/json/class-specialization.cpp
M clang-tools-extra/test/clang-doc/json/class-template.cpp
M clang-tools-extra/test/clang-doc/json/class.cpp
M clang-tools-extra/test/clang-doc/json/concept.cpp
M clang-tools-extra/test/clang-doc/json/function-requires.cpp
A clang-tools-extra/test/clang-doc/json/inheritance.cpp
M clang-tools-extra/test/clang-doc/json/method-template.cpp
M clang-tools-extra/test/clang-doc/json/namespace.cpp
M clang-tools-extra/test/clang-doc/long-name.cpp
M clang-tools-extra/test/clang-doc/mustache-index.cpp
M clang-tools-extra/test/clang-doc/mustache-separate-namespace.cpp
M clang-tools-extra/test/clang-doc/namespace.cpp
M clang-tools-extra/test/clang-doc/templates.cpp
R clang-tools-extra/test/clang-doc/test-path-abs.cpp
A clang-tools-extra/test/clang-tidy/.clang-tidy
M clang-tools-extra/test/clang-tidy/checkers/bugprone/use-after-move.cpp
M clang-tools-extra/test/clang-tidy/checkers/fuchsia/multiple-inheritance.cpp
R clang-tools-extra/test/clang-tidy/checkers/google/readability-casting.c
R clang-tools-extra/test/clang-tidy/checkers/google/readability-casting.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/avoid-c-style-cast.c
A clang-tools-extra/test/clang-tidy/checkers/modernize/avoid-c-style-cast.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-control-flow.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/redundant-typename.cpp
M clang-tools-extra/test/clang-tidy/checkers/readability/use-std-min-max.cpp
M clang-tools-extra/test/clang-tidy/infrastructure/Inputs/param/parameters.txt
A clang-tools-extra/test/clang-tidy/infrastructure/alphabetical-order.test
M clang-tools-extra/test/clang-tidy/infrastructure/empty-database.cpp
M clang-tools-extra/test/clang-tidy/infrastructure/invalid-database.cpp
M clang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-LIFO.cpp
M clang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-begin-multiple-end-single.cpp
M clang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-begin-single-end-multiple.cpp
M clang-tools-extra/test/clang-tidy/infrastructure/nolintbeginend-mismatched-check-names.cpp
M clang-tools-extra/test/lit.cfg.py
M clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp
M clang-tools-extra/unittests/clang-doc/CMakeLists.txt
M clang-tools-extra/unittests/clang-doc/ClangDocTest.cpp
M clang-tools-extra/unittests/clang-doc/ClangDocTest.h
M clang-tools-extra/unittests/clang-doc/HTMLGeneratorTest.cpp
R clang-tools-extra/unittests/clang-doc/HTMLMustacheGeneratorTest.cpp
M clang-tools-extra/unittests/clang-doc/JSONGeneratorTest.cpp
M clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp
M clang-tools-extra/unittests/clang-doc/MergeTest.cpp
M clang-tools-extra/unittests/clang-doc/SerializeTest.cpp
M clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp
M clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp
A clang/docs/ClangIRCodeDuplication.rst
M clang/docs/HIPSupport.rst
M clang/docs/LanguageExtensions.rst
M clang/docs/MatrixTypes.rst
M clang/docs/Modules.rst
M clang/docs/ReleaseNotes.rst
M clang/docs/UsersManual.rst
M clang/docs/index.rst
M clang/include/clang/AST/ASTContext.h
M clang/include/clang/AST/ASTMutationListener.h
M clang/include/clang/AST/CanonicalType.h
M clang/include/clang/AST/DeclCXX.h
M clang/include/clang/AST/IgnoreExpr.h
M clang/include/clang/AST/PrettyPrinter.h
M clang/include/clang/AST/RecursiveASTVisitor.h
M clang/include/clang/AST/Stmt.h
M clang/include/clang/AST/VTableBuilder.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeSafety.h
M clang/include/clang/Analysis/Analyses/LifetimeSafety/Loans.h
M clang/include/clang/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.h
A clang/include/clang/Analysis/Scalable/ASTEntityMapping.h
A clang/include/clang/Analysis/Scalable/Model/BuildNamespace.h
A clang/include/clang/Analysis/Scalable/Model/EntityName.h
M clang/include/clang/Basic/ABI.h
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/AttrDocs.td
M clang/include/clang/Basic/Builtins.def
M clang/include/clang/Basic/Builtins.h
M clang/include/clang/Basic/Builtins.td
M clang/include/clang/Basic/BuiltinsAMDGPU.def
M clang/include/clang/Basic/BuiltinsBase.td
M clang/include/clang/Basic/BuiltinsHexagon.td
M clang/include/clang/Basic/BuiltinsNVPTX.td
M clang/include/clang/Basic/BuiltinsSPIRVVK.td
M clang/include/clang/Basic/BuiltinsX86.td
M clang/include/clang/Basic/CodeGenOptions.def
M clang/include/clang/Basic/Cuda.h
M clang/include/clang/Basic/DiagnosticASTKinds.td
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Basic/IdentifierTable.h
M clang/include/clang/Basic/LangOptions.def
M clang/include/clang/Basic/LangOptions.h
M clang/include/clang/Basic/OffloadArch.h
M clang/include/clang/Basic/OpenCLExtensions.def
M clang/include/clang/Basic/Sarif.h
M clang/include/clang/Basic/StmtNodes.td
M clang/include/clang/Basic/TargetBuiltins.h
M clang/include/clang/Basic/TargetInfo.h
M clang/include/clang/Basic/TokenKinds.def
M clang/include/clang/Basic/arm_sve.td
M clang/include/clang/Basic/arm_sve_sme_incl.td
M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.h
M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
M clang/include/clang/CIR/Dialect/IR/CIROps.td
M clang/include/clang/CIR/Dialect/IR/CIRTypeConstraints.td
M clang/include/clang/CIR/Dialect/IR/CIRTypes.td
M clang/include/clang/CIR/MissingFeatures.h
M clang/include/clang/DependencyScanning/DependencyScannerImpl.h
M clang/include/clang/DependencyScanning/DependencyScanningWorker.h
M clang/include/clang/Frontend/SARIFDiagnostic.h
M clang/include/clang/Options/Options.td
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/Overload.h
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Sema/SemaARM.h
M clang/include/clang/Sema/SemaRISCV.h
M clang/include/clang/Serialization/ASTBitCodes.h
M clang/include/clang/Serialization/ASTWriter.h
M clang/include/clang/Tooling/DependencyScanningTool.h
M clang/lib/AST/ASTContext.cpp
M clang/lib/AST/ByteCode/Compiler.cpp
M clang/lib/AST/ByteCode/Compiler.h
M clang/lib/AST/ByteCode/Disasm.cpp
M clang/lib/AST/ByteCode/InterpBuiltin.cpp
M clang/lib/AST/Decl.cpp
M clang/lib/AST/DeclCXX.cpp
M clang/lib/AST/Expr.cpp
M clang/lib/AST/ExprConstShared.h
M clang/lib/AST/ExprConstant.cpp
M clang/lib/AST/ItaniumMangle.cpp
M clang/lib/AST/MicrosoftMangle.cpp
M clang/lib/AST/RecordLayoutBuilder.cpp
M clang/lib/AST/Stmt.cpp
M clang/lib/AST/StmtPrinter.cpp
M clang/lib/AST/StmtProfile.cpp
M clang/lib/AST/VTableBuilder.cpp
M clang/lib/ASTMatchers/ASTMatchersInternal.cpp
M clang/lib/Analysis/CMakeLists.txt
M clang/lib/Analysis/FlowSensitive/Models/UncheckedStatusOrAccessModel.cpp
M clang/lib/Analysis/LifetimeSafety/Checker.cpp
M clang/lib/Analysis/LifetimeSafety/Facts.cpp
M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
M clang/lib/Analysis/LifetimeSafety/Loans.cpp
A clang/lib/Analysis/Scalable/ASTEntityMapping.cpp
A clang/lib/Analysis/Scalable/CMakeLists.txt
A clang/lib/Analysis/Scalable/Model/BuildNamespace.cpp
A clang/lib/Analysis/Scalable/Model/EntityName.cpp
M clang/lib/Analysis/ThreadSafety.cpp
M clang/lib/Basic/Builtins.cpp
M clang/lib/Basic/Cuda.cpp
M clang/lib/Basic/FileManager.cpp
M clang/lib/Basic/IdentifierTable.cpp
M clang/lib/Basic/OffloadArch.cpp
M clang/lib/Basic/Sarif.cpp
M clang/lib/Basic/TargetInfo.cpp
M clang/lib/Basic/Targets/AArch64.cpp
M clang/lib/Basic/Targets/AArch64.h
M clang/lib/Basic/Targets/AMDGPU.cpp
M clang/lib/Basic/Targets/AMDGPU.h
M clang/lib/Basic/Targets/ARC.h
M clang/lib/Basic/Targets/ARM.cpp
M clang/lib/Basic/Targets/AVR.h
M clang/lib/Basic/Targets/BPF.h
M clang/lib/Basic/Targets/CSKY.h
M clang/lib/Basic/Targets/DirectX.h
M clang/lib/Basic/Targets/Hexagon.h
M clang/lib/Basic/Targets/Lanai.h
M clang/lib/Basic/Targets/LoongArch.h
M clang/lib/Basic/Targets/M68k.cpp
M clang/lib/Basic/Targets/MSP430.h
M clang/lib/Basic/Targets/Mips.h
M clang/lib/Basic/Targets/NVPTX.cpp
M clang/lib/Basic/Targets/OSTargets.h
M clang/lib/Basic/Targets/PPC.h
M clang/lib/Basic/Targets/RISCV.h
M clang/lib/Basic/Targets/SPIR.h
M clang/lib/Basic/Targets/Sparc.h
M clang/lib/Basic/Targets/SystemZ.h
M clang/lib/Basic/Targets/VE.h
M clang/lib/Basic/Targets/WebAssembly.h
M clang/lib/Basic/Targets/X86.h
M clang/lib/Basic/Targets/XCore.h
M clang/lib/Basic/Targets/Xtensa.h
M clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
M clang/lib/CIR/CodeGen/CIRGenBuilder.h
M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
M clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
M clang/lib/CIR/CodeGen/CIRGenCXXABI.h
M clang/lib/CIR/CodeGen/CIRGenClass.cpp
M clang/lib/CIR/CodeGen/CIRGenCleanup.cpp
M clang/lib/CIR/CodeGen/CIRGenCleanup.h
M clang/lib/CIR/CodeGen/CIRGenDecl.cpp
M clang/lib/CIR/CodeGen/CIRGenDeclOpenACC.cpp
M clang/lib/CIR/CodeGen/CIRGenException.cpp
M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
M clang/lib/CIR/CodeGen/CIRGenExprCXX.cpp
M clang/lib/CIR/CodeGen/CIRGenExprComplex.cpp
M clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
M clang/lib/CIR/CodeGen/CIRGenFunction.h
M clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.cpp
M clang/lib/CIR/CodeGen/CIRGenModule.h
M clang/lib/CIR/CodeGen/CIRGenOpenACCClause.cpp
M clang/lib/CIR/CodeGen/CIRGenOpenACCHelpers.h
M clang/lib/CIR/CodeGen/CIRGenStmt.cpp
M clang/lib/CIR/CodeGen/CIRGenTypes.cpp
M clang/lib/CIR/CodeGen/CIRGenVTables.cpp
M clang/lib/CIR/CodeGen/EHScopeStack.h
M clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
M clang/lib/CIR/Dialect/IR/CIRMemorySlot.cpp
M clang/lib/CIR/Dialect/IR/CIRTypes.cpp
M clang/lib/CIR/Dialect/Transforms/CIRCanonicalize.cpp
M clang/lib/CIR/Dialect/Transforms/CMakeLists.txt
A clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRCXXABI.cpp
A clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRCXXABI.h
A clang/lib/CIR/Dialect/Transforms/TargetLowering/CMakeLists.txt
A clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerItaniumCXXABI.cpp
A clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerModule.cpp
A clang/lib/CIR/Dialect/Transforms/TargetLowering/LowerModule.h
M clang/lib/CIR/Lowering/DirectToLLVM/CMakeLists.txt
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.h
M clang/lib/CodeGen/BackendUtil.cpp
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGCXX.cpp
M clang/lib/CodeGen/CGCXXABI.cpp
M clang/lib/CodeGen/CGCXXABI.h
M clang/lib/CodeGen/CGClass.cpp
M clang/lib/CodeGen/CGDebugInfo.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGExprCXX.cpp
M clang/lib/CodeGen/CGHLSLBuiltins.cpp
M clang/lib/CodeGen/CGHLSLRuntime.h
M clang/lib/CodeGen/CGOpenMPRuntime.cpp
M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
M clang/lib/CodeGen/CGStmt.cpp
M clang/lib/CodeGen/CGVTables.cpp
M clang/lib/CodeGen/CodeGenFunction.h
M clang/lib/CodeGen/CodeGenModule.cpp
M clang/lib/CodeGen/CodeGenModule.h
M clang/lib/CodeGen/CodeGenTypes.cpp
M clang/lib/CodeGen/ItaniumCXXABI.cpp
M clang/lib/CodeGen/MicrosoftCXXABI.cpp
M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
M clang/lib/CodeGen/TargetBuiltins/SPIR.cpp
M clang/lib/CodeGen/Targets/AArch64.cpp
M clang/lib/CodeGen/Targets/SPIR.cpp
M clang/lib/DependencyScanning/DependencyScannerImpl.cpp
M clang/lib/DependencyScanning/DependencyScanningWorker.cpp
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/Job.cpp
M clang/lib/Driver/ToolChains/AMDGPU.cpp
M clang/lib/Driver/ToolChains/Arch/AArch64.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
M clang/lib/Driver/ToolChains/Flang.cpp
M clang/lib/Driver/ToolChains/HLSL.cpp
M clang/lib/ExtractAPI/DeclarationFragments.cpp
M clang/lib/Format/TokenAnnotator.cpp
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/Frontend/InitPreprocessor.cpp
M clang/lib/Frontend/SARIFDiagnostic.cpp
M clang/lib/Headers/__clang_cuda_complex_builtins.h
M clang/lib/Headers/__clang_hip_math.h
M clang/lib/Headers/avx10_2_512niintrin.h
M clang/lib/Headers/avx512vlvnniintrin.h
M clang/lib/Headers/avx512vnniintrin.h
M clang/lib/Headers/avxvnniint16intrin.h
M clang/lib/Headers/avxvnniintrin.h
M clang/lib/Headers/cpuid.h
M clang/lib/Headers/gfniintrin.h
M clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h
M clang/lib/Headers/hlsl/hlsl_intrinsic_helpers.h
M clang/lib/Headers/hlsl/hlsl_intrinsics.h
M clang/lib/Headers/opencl-c.h
A clang/lib/Headers/stddefer.h
M clang/lib/Interpreter/IncrementalAction.cpp
M clang/lib/Parse/ParsePragma.cpp
M clang/lib/Parse/ParseStmt.cpp
M clang/lib/Sema/AnalysisBasedWarnings.cpp
M clang/lib/Sema/JumpDiagnostics.cpp
M clang/lib/Sema/SemaARM.cpp
M clang/lib/Sema/SemaCUDA.cpp
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaConcept.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaExceptionSpec.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Sema/SemaExprCXX.cpp
M clang/lib/Sema/SemaHLSL.cpp
M clang/lib/Sema/SemaOverload.cpp
M clang/lib/Sema/SemaRISCV.cpp
M clang/lib/Sema/SemaSPIRV.cpp
M clang/lib/Sema/SemaStmt.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateDeductionGuide.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/Serialization/ASTCommon.h
M clang/lib/Serialization/ASTReaderDecl.cpp
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriter.cpp
M clang/lib/Serialization/ASTWriterDecl.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
M clang/lib/Serialization/GlobalModuleIndex.cpp
M clang/lib/Serialization/ModuleCache.cpp
M clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.h
M clang/lib/StaticAnalyzer/Checkers/WebKit/ForwardDeclChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.h
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefCallArgsChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefLambdaCapturesChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefLocalVarsChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefMemberChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/WebKit/RetainPtrCtorAdoptChecker.cpp
M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
M clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
M clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp
M clang/lib/Tooling/DependencyScanningTool.cpp
M clang/lib/Tooling/Tooling.cpp
M clang/lib/Tooling/Transformer/SourceCode.cpp
M clang/test/AST/ByteCode/cxx20.cpp
M clang/test/AST/ByteCode/new-delete.cpp
M clang/test/AST/ByteCode/placement-new.cpp
A clang/test/AST/ast-dump-defer-ts.c
A clang/test/AST/ast-print-defer-ts.c
M clang/test/AST/attr-target-version.c
M clang/test/Analysis/Checkers/WebKit/call-args-checked.cpp
M clang/test/Analysis/Checkers/WebKit/forward-decl-checker.mm
M clang/test/Analysis/Checkers/WebKit/local-vars-checked-const-member.cpp
M clang/test/Analysis/Checkers/WebKit/local-vars-counted-const-member.cpp
M clang/test/Analysis/Checkers/WebKit/mock-types.h
M clang/test/Analysis/Checkers/WebKit/objc-mock-types.h
M clang/test/Analysis/Checkers/WebKit/retain-ptr-ctor-adopt-use.mm
M clang/test/Analysis/Checkers/WebKit/uncounted-lambda-captures.cpp
M clang/test/Analysis/Checkers/WebKit/uncounted-local-vars.cpp
M clang/test/Analysis/Checkers/WebKit/uncounted-obj-arg.cpp
M clang/test/Analysis/Checkers/WebKit/unretained-call-args.mm
A clang/test/Analysis/Checkers/WebKit/unretained-lambda-captures-weak-arc.mm
A clang/test/Analysis/Checkers/WebKit/unretained-lambda-captures-weak.mm
A clang/test/Analysis/Checkers/WebKit/unretained-local-vars-weak-arc.mm
A clang/test/Analysis/Checkers/WebKit/unretained-local-vars-weak.mm
A clang/test/Analysis/Checkers/WebKit/unretained-members-weak-arc.mm
A clang/test/Analysis/Checkers/WebKit/unretained-members-weak.mm
A clang/test/Analysis/use-after-move-invalidation.cpp
A clang/test/CIR/CodeGen/X86/avx512-reduceIntrin.c
A clang/test/CIR/CodeGen/X86/avx512-reduceMinMaxIntrin.c
A clang/test/CIR/CodeGen/X86/cir-sqrt-builtins.c
A clang/test/CIR/CodeGen/atomic-scoped.c
A clang/test/CIR/CodeGen/atomic-thread-fence.c
M clang/test/CIR/CodeGen/atomic.c
A clang/test/CIR/CodeGen/choose-expr.cpp
A clang/test/CIR/CodeGen/concept-specialization.cpp
A clang/test/CIR/CodeGen/cxx-traits.cpp
A clang/test/CIR/CodeGen/kr-func-promote.c
M clang/test/CIR/CodeGen/label-values.c
M clang/test/CIR/CodeGen/mms-bitfields.c
A clang/test/CIR/CodeGen/ms-barriers-intrinsics.c
A clang/test/CIR/CodeGen/noexcept.cpp
M clang/test/CIR/CodeGen/nrvo.cpp
A clang/test/CIR/CodeGen/pointer-to-data-member.cpp
A clang/test/CIR/CodeGen/source-loc.cpp
M clang/test/CIR/CodeGen/stmt-expr.cpp
M clang/test/CIR/CodeGen/switch.cpp
M clang/test/CIR/CodeGen/switch_flat_op.cpp
A clang/test/CIR/CodeGen/tls.c
M clang/test/CIR/CodeGen/try-catch-tmp.cpp
A clang/test/CIR/CodeGen/wide-string.cpp
M clang/test/CIR/CodeGenBuiltins/X86/avx512f-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/avx512fp16-builtins.c
M clang/test/CIR/CodeGenBuiltins/X86/avx512vl-builtins.c
A clang/test/CIR/CodeGenBuiltins/X86/avx512vlfp16-builtins.c
A clang/test/CIR/CodeGenBuiltins/X86/avx512vlvbmi2-builtins.c
A clang/test/CIR/CodeGenBuiltins/X86/xsave-builtins.c
A clang/test/CIR/CodeGenOpenACC/routine-bind.c
A clang/test/CIR/CodeGenOpenACC/routine-bind.cpp
A clang/test/CIR/CodeGenOpenACC/routine-device_type.cpp
A clang/test/CIR/IR/catch-param.cir
M clang/test/CIR/IR/func.cir
A clang/test/CIR/IR/indirect-br.cir
A clang/test/CIR/IR/invalid-data-member.cir
A clang/test/CIR/IR/invalid-tls.cir
A clang/test/CIR/IR/select.cir
M clang/test/CIR/IR/switch.cir
M clang/test/CIR/IR/try-catch.cir
M clang/test/CIR/Lowering/eh-inflight.cir
M clang/test/CIR/Transforms/switch-fold.cir
M clang/test/ClangScanDeps/modules-full-by-mod-name.c
M clang/test/ClangScanDeps/modules-full-by-mult-mod-names.c
M clang/test/CodeGen/2007-05-07-PaddingElements.c
M clang/test/CodeGen/AArch64/fix-cortex-a53-835769.c
M clang/test/CodeGen/AArch64/fmv-duplicate-mangled-name.c
A clang/test/CodeGen/AArch64/fmv-explicit-priority.c
A clang/test/CodeGen/AArch64/sme2-intrinsics/acle_sme2_bfmul.c
A clang/test/CodeGen/AArch64/sme2-intrinsics/acle_sme2_bfscale.c
A clang/test/CodeGen/AArch64/sme2p2-intrinsics/acle_sme2p2_fmul.c
A clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_fmmla-f32f16.c
M clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_matmul_fp32.c
M clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_matmul_fp64.c
A clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_fmmla-f16mf8.c
A clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_fmmla-f32mf8.c
M clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_hsub.c
M clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_hsubr.c
M clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_qrshl.c
M clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_qshl.c
M clang/test/CodeGen/AArch64/sve2-intrinsics/acle_sve2_rshl.c
M clang/test/CodeGen/X86/amx_tf32.c
M clang/test/CodeGen/X86/amx_tf32_api.c
M clang/test/CodeGen/X86/amx_tf32_errors.c
M clang/test/CodeGen/X86/amx_tf32_inline_asm.c
M clang/test/CodeGen/X86/avx10_2_512ni-builtins.c
M clang/test/CodeGen/X86/avx10_2ni-builtins.c
M clang/test/CodeGen/X86/avx512vlvnni-builtins.c
M clang/test/CodeGen/X86/avx512vnni-builtins.c
M clang/test/CodeGen/X86/avxvnni-builtins.c
M clang/test/CodeGen/X86/avxvnniint16-builtins.c
M clang/test/CodeGen/X86/gfni-builtins.c
M clang/test/CodeGen/attr-counted-by-for-pointers.c
M clang/test/CodeGen/attr-counted-by.c
M clang/test/CodeGen/builtin-counted-by-ref.c
M clang/test/CodeGen/builtins.c
M clang/test/CodeGen/cfi-salt.c
A clang/test/CodeGen/defer-ts-musttail.c
A clang/test/CodeGen/defer-ts-nested-cleanups.c
A clang/test/CodeGen/defer-ts-seh.c
A clang/test/CodeGen/defer-ts.c
A clang/test/CodeGen/gcc_struct-msvc-todo-1.c
A clang/test/CodeGen/gcc_struct-msvc-todo-2.c
A clang/test/CodeGen/gcc_struct.c
A clang/test/CodeGen/half-float16-vector-compatibility.cl
M clang/test/CodeGen/kcfi.c
M clang/test/CodeGen/mingw-long-double.c
M clang/test/CodeGen/mms-bitfields.c
M clang/test/CodeGenCUDA/amdgpu-kernel-arg-pointer-type.cu
M clang/test/CodeGenCUDA/kernel-args.cu
M clang/test/CodeGenCXX/dllexport.cpp
M clang/test/CodeGenCXX/dllimport.cpp
M clang/test/CodeGenCXX/microsoft-abi-extern-template.cpp
M clang/test/CodeGenCXX/microsoft-abi-structors.cpp
M clang/test/CodeGenCXX/microsoft-abi-thunks.cpp
M clang/test/CodeGenCXX/microsoft-abi-vftables.cpp
M clang/test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp
M clang/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance-vdtors.cpp
M clang/test/CodeGenCXX/microsoft-abi-vtables-return-thunks.cpp
M clang/test/CodeGenCXX/microsoft-abi-vtables-single-inheritance.cpp
M clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance-vtordisps.cpp
M clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp
M clang/test/CodeGenCXX/microsoft-no-rtti-data.cpp
A clang/test/CodeGenCXX/microsoft-vector-deleting-dtors.cpp
A clang/test/CodeGenCXX/microsoft-vector-deleting-dtors2.cpp
M clang/test/CodeGenCXX/mingw-template-dllexport.cpp
A clang/test/CodeGenCXX/speculative-devirt-metadata.cpp
M clang/test/CodeGenCXX/vtable-consteval.cpp
A clang/test/CodeGenHIP/amdgcnspirv-uses-amdgpu-abi.cpp
A clang/test/CodeGenHLSL/BasicFeatures/MatrixSplat.hlsl
A clang/test/CodeGenHLSL/builtins/ddx-fine-builtin.hlsl
A clang/test/CodeGenHLSL/builtins/ddx-fine.hlsl
A clang/test/CodeGenHLSL/builtins/ddx.hlsl
A clang/test/CodeGenHLSL/builtins/ddy-fine-builtin.hlsl
A clang/test/CodeGenHLSL/builtins/ddy-fine.hlsl
A clang/test/CodeGenHLSL/builtins/ddy.hlsl
M clang/test/CodeGenOpenCL/amdgpu-cluster-dims.cl
M clang/test/CodeGenOpenCL/amdgpu-features.cl
M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx1250.cl
A clang/test/CodeGenSPIRV/Builtins/ddx.c
A clang/test/CodeGenSPIRV/Builtins/ddy.c
M clang/test/DebugInfo/CXX/ms-dtor-thunks.cpp
M clang/test/DebugInfo/CXX/windows-dtor.cpp
M clang/test/DebugInfo/Generic/bounds-checking-debuginfo.c
M clang/test/Driver/aarch64-fix-cortex-a53-835769.c
M clang/test/Driver/clang_f_opts.c
A clang/test/Driver/fmatrix-memory-layout.c
A clang/test/Driver/fsanitize-annotate-debug-info.c
A clang/test/Driver/fsanitize-baremetal.c
A clang/test/Driver/fsanitize-cfi.c
A clang/test/Driver/fsanitize-leak.c
A clang/test/Driver/fsanitize-memtag.c
A clang/test/Driver/fsanitize-merge.c
A clang/test/Driver/fsanitize-minimal-runtime.c
A clang/test/Driver/fsanitize-numerical.c
A clang/test/Driver/fsanitize-realtime.c
A clang/test/Driver/fsanitize-recover.c
A clang/test/Driver/fsanitize-safe-stack.c
A clang/test/Driver/fsanitize-scudo.c
A clang/test/Driver/fsanitize-skip-hot-cutoff.c
A clang/test/Driver/fsanitize-trap.c
A clang/test/Driver/fsanitize-undefined.c
M clang/test/Driver/fsanitize.c
A clang/test/Driver/hlsl_matrix_pack_order.hlsl
M clang/test/Driver/ms-bitfields.c
A clang/test/Driver/print-enabled-extensions/aarch64-apple-m5.c
M clang/test/Driver/print-supported-cpus-aarch64.c
M clang/test/Driver/print-supported-extensions-riscv.c
M clang/test/Driver/spirv-amd-toolchain.c
M clang/test/ExtractAPI/typedef.c
M clang/test/Headers/__clang_hip_math.hip
M clang/test/Headers/amdgcn-openmp-device-math-complex.c
M clang/test/Headers/amdgcn-openmp-device-math-complex.cpp
M clang/test/Headers/nvptx_device_math_complex.c
M clang/test/Headers/nvptx_device_math_complex.cpp
M clang/test/Interpreter/pretty-print.c
M clang/test/Layout/itanium-union-bitfield.cpp
A clang/test/Lexer/defer-keyword.cpp
M clang/test/Misc/amdgcn.languageOptsOpenCL.cl
M clang/test/Misc/pragma-attribute-supported-attributes-list.test
M clang/test/Misc/target-invalid-cpu-note/aarch64.c
M clang/test/Misc/target-invalid-cpu-note/nvptx.c
A clang/test/Modules/Inputs/msvc-vector-deleting-dtors/module.modulemap
A clang/test/Modules/Inputs/msvc-vector-deleting-dtors/msvc-vector-deleting-dtors.h
A clang/test/Modules/msvc-vector-deleting-destructors.cpp
M clang/test/Modules/vtable-windows.cppm
M clang/test/OpenMP/amdgcn_target_device_vla.cpp
M clang/test/OpenMP/amdgpu_target_with_aligned_attribute.c
M clang/test/OpenMP/declare_target_codegen_globalization.cpp
M clang/test/OpenMP/irbuilder_for_unsigned_static_chunked.c
M clang/test/OpenMP/metadirective_device_arch_codegen.cpp
M clang/test/OpenMP/metadirective_device_isa_codegen_amdgcn.cpp
M clang/test/OpenMP/nvptx_SPMD_codegen.cpp
M clang/test/OpenMP/nvptx_allocate_codegen.cpp
M clang/test/OpenMP/nvptx_data_sharing.cpp
M clang/test/OpenMP/nvptx_distribute_parallel_generic_mode_codegen.cpp
M clang/test/OpenMP/nvptx_lambda_capturing.cpp
M clang/test/OpenMP/nvptx_multi_target_parallel_codegen.cpp
M clang/test/OpenMP/nvptx_nested_parallel_codegen.cpp
M clang/test/OpenMP/nvptx_parallel_codegen.cpp
M clang/test/OpenMP/nvptx_parallel_for_codegen.cpp
M clang/test/OpenMP/nvptx_target_codegen.cpp
M clang/test/OpenMP/nvptx_target_parallel_codegen.cpp
M clang/test/OpenMP/nvptx_target_parallel_num_threads_codegen.cpp
M clang/test/OpenMP/nvptx_target_parallel_proc_bind_codegen.cpp
M clang/test/OpenMP/nvptx_target_parallel_reduction_codegen.cpp
M clang/test/OpenMP/nvptx_target_parallel_reduction_codegen_tbaa_PR46146.cpp
M clang/test/OpenMP/nvptx_target_teams_codegen.cpp
M clang/test/OpenMP/nvptx_target_teams_distribute_codegen.cpp
M clang/test/OpenMP/nvptx_target_teams_distribute_parallel_for_codegen.cpp
M clang/test/OpenMP/nvptx_target_teams_distribute_parallel_for_generic_mode_codegen.cpp
M clang/test/OpenMP/nvptx_target_teams_distribute_parallel_for_simd_codegen.cpp
M clang/test/OpenMP/nvptx_target_teams_generic_loop_codegen.cpp
M clang/test/OpenMP/nvptx_teams_reduction_codegen.cpp
M clang/test/OpenMP/reduction_implicit_map.cpp
M clang/test/OpenMP/target_defaultmap_codegen_01.cpp
A clang/test/OpenMP/target_firstprivate_pointer_codegen.cpp
M clang/test/OpenMP/target_map_codegen_26.cpp
M clang/test/OpenMP/target_parallel_debug_codegen.cpp
M clang/test/OpenMP/target_parallel_for_debug_codegen.cpp
M clang/test/OpenMP/target_parallel_generic_loop_codegen-3.cpp
M clang/test/OpenMP/target_parallel_generic_loop_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen.cpp
M clang/test/OpenMP/target_teams_generic_loop_codegen_as_parallel_for.cpp
A clang/test/PCH/Inputs/msvc-vector-deleting-dtors.h
A clang/test/PCH/msvc-vector-deleting-destructors.cpp
A clang/test/Parser/defer-ts.c
A clang/test/Parser/defer-ts.cpp
A clang/test/Parser/pragma-loop-vectorize.cpp
A clang/test/Preprocessor/defer-ts.c
M clang/test/Profile/cxx-abc-deleting-dtor.cpp
M clang/test/Sema/AArch64/sve-vector-conditional-op.cpp
M clang/test/Sema/attr-target-clones-aarch64.c
M clang/test/Sema/attr-target-version.c
M clang/test/Sema/builtin-counted-by-ref.c
A clang/test/Sema/defer-ts-seh.c
A clang/test/Sema/defer-ts-sjlj.c
A clang/test/Sema/defer-ts.c
A clang/test/Sema/format-attr-missing-gnu.c
A clang/test/Sema/format-attr-missing.c
A clang/test/Sema/format-attr-missing.cpp
A clang/test/Sema/format-attr-missing.m
A clang/test/Sema/format-strings-nonnull.c
A clang/test/Sema/format-strings-nonnull.cpp
M clang/test/Sema/format-strings-scanf.c
M clang/test/Sema/format-strings.c
A clang/test/Sema/gcc_ms_struct.c
A clang/test/Sema/matrix-col-major-builtin-disable.c
M clang/test/Sema/mms-bitfields.c
M clang/test/Sema/warn-fortify-scanf.c
A clang/test/Sema/warn-lifetime-safety-suggestions.cpp
A clang/test/SemaCUDA/deduction-guide-attrs.cu
A clang/test/SemaCUDA/deduction-guide-overload.cu
A clang/test/SemaCUDA/deduction-guide.cu
M clang/test/SemaCXX/anonymous-struct.cpp
A clang/test/SemaCXX/dllexport-explicit-instantiation.cpp
M clang/test/SemaCXX/dllexport.cpp
M clang/test/SemaCXX/format-strings-0x.cpp
M clang/test/SemaCXX/format-strings.cpp
A clang/test/SemaCXX/gh134265.cpp
M clang/test/SemaCXX/ms_struct-bitfield-padding.cpp
M clang/test/SemaCXX/ms_struct.cpp
M clang/test/SemaCXX/ms_wide_bitfield.cpp
M clang/test/SemaCXX/type-traits.cpp
M clang/test/SemaCXX/warn-thread-safety-analysis.cpp
A clang/test/SemaHLSL/BuiltIns/ddx-fine-errors.hlsl
A clang/test/SemaHLSL/BuiltIns/ddy-fine-errors.hlsl
M clang/test/SemaHLSL/MatrixElementOverloadResolution.hlsl
A clang/test/SemaHLSL/Types/BuiltinMatrix/MatrixSplatErrors.hlsl
M clang/test/SemaObjC/format-strings-objc.m
M clang/test/SemaObjCXX/arc-0x.mm
M clang/test/SemaOpenCL/extension-version.cl
A clang/test/SemaOpenCL/half-float16-vector-compatibility.cl
A clang/test/SemaOpenCL/intel-unsupported-extensions.cl
A clang/test/SemaSPIRV/BuiltIns/ddx-errors.c
A clang/test/SemaSPIRV/BuiltIns/ddy-errors.c
M clang/tools/clang-scan-deps/ClangScanDeps.cpp
M clang/tools/driver/cc1_main.cpp
M clang/tools/driver/cc1as_main.cpp
M clang/tools/libclang/CXCursor.cpp
M clang/unittests/Analysis/CMakeLists.txt
M clang/unittests/Analysis/FlowSensitive/MockHeaders.cpp
M clang/unittests/Analysis/FlowSensitive/UncheckedStatusOrAccessModelTestFixture.cpp
M clang/unittests/Analysis/LifetimeSafetyTest.cpp
A clang/unittests/Analysis/Scalable/ASTEntityMappingTest.cpp
A clang/unittests/Analysis/Scalable/BuildNamespaceTest.cpp
A clang/unittests/Analysis/Scalable/CMakeLists.txt
A clang/unittests/Analysis/Scalable/EntityNameTest.cpp
M clang/unittests/Basic/SarifTest.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
M clang/unittests/Frontend/CompilerInvocationTest.cpp
M clang/unittests/Support/TimeProfilerTest.cpp
M clang/unittests/Tooling/SourceCodeTest.cpp
M clang/unittests/Tooling/ToolingTest.cpp
M clang/utils/ClangVisualizers/clang.natvis
M clang/utils/TableGen/CIRLoweringEmitter.cpp
M clang/utils/TableGen/ClangDiagnosticsEmitter.cpp
M compiler-rt/CMakeLists.txt
M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
M compiler-rt/cmake/config-ix.cmake
M compiler-rt/include/sanitizer/asan_interface.h
M compiler-rt/lib/asan/asan_allocator.h
M compiler-rt/lib/asan/asan_fake_stack.cpp
M compiler-rt/lib/asan/asan_interceptors.h
M compiler-rt/lib/asan/asan_interface.inc
M compiler-rt/lib/asan/asan_thread.cpp
M compiler-rt/lib/asan/asan_thread.h
M compiler-rt/lib/asan_abi/asan_abi.cpp
M compiler-rt/lib/asan_abi/asan_abi.h
M compiler-rt/lib/asan_abi/asan_abi_shim.cpp
M compiler-rt/lib/builtins/cpu_model/aarch64.c
M compiler-rt/lib/builtins/cpu_model/aarch64/fmv/android.inc
M compiler-rt/lib/builtins/cpu_model/aarch64/fmv/elf_aux_info.inc
M compiler-rt/lib/builtins/cpu_model/aarch64/fmv/getauxval.inc
M compiler-rt/lib/builtins/cpu_model/aarch64/hwcap.inc
M compiler-rt/lib/hwasan/hwasan_allocator.h
M compiler-rt/lib/orc/CMakeLists.txt
A compiler-rt/lib/orc/elfnix_tls.systemz.S
M compiler-rt/lib/profile/CMakeLists.txt
M compiler-rt/lib/profile/InstrProfiling.c
M compiler-rt/lib/profile/InstrProfiling.h
M compiler-rt/lib/profile/InstrProfilingMerge.c
M compiler-rt/lib/profile/InstrProfilingMergeFile.c
M compiler-rt/lib/profile/InstrProfilingPlatformLinux.c
M compiler-rt/lib/profile/InstrProfilingPlatformOther.c
M compiler-rt/lib/profile/InstrProfilingPort.h
M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
M compiler-rt/lib/sanitizer_common/sanitizer_posix.h
M compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_internal.h
M compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cpp
M compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp
M compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh
M compiler-rt/lib/scudo/standalone/common.h
M compiler-rt/lib/scudo/standalone/fuchsia.cpp
M compiler-rt/lib/scudo/standalone/linux.cpp
M compiler-rt/lib/scudo/standalone/primary64.h
M compiler-rt/lib/scudo/standalone/release.h
M compiler-rt/lib/scudo/standalone/secondary.h
M compiler-rt/lib/scudo/standalone/tests/checksum_test.cpp
M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
M compiler-rt/lib/scudo/standalone/tests/common_test.cpp
M compiler-rt/lib/scudo/standalone/tests/wrappers_cpp_test.cpp
M compiler-rt/lib/scudo/standalone/trusty.cpp
M compiler-rt/lib/scudo/standalone/trusty.h
M compiler-rt/lib/scudo/standalone/tsd_exclusive.h
M compiler-rt/lib/scudo/standalone/tsd_shared.h
M compiler-rt/lib/tsan/go/test.c
M compiler-rt/lib/tsan/rtl/tsan_trace.h
M compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp
M compiler-rt/test/asan/TestCases/Posix/deep_call_stack.cpp
M compiler-rt/test/asan/TestCases/scariness_score_test.cpp
A compiler-rt/test/asan/TestCases/suppress_fake_stack.cpp
A compiler-rt/test/asan/TestCases/suppress_fake_stack_force_disabled.cpp
M compiler-rt/test/builtins/Unit/ppc/fixtfti_test.c
M compiler-rt/test/builtins/Unit/ppc/fixunstfti_test.c
M compiler-rt/test/fuzzer/reduce_inputs.test
M compiler-rt/test/lit.common.cfg.py
A compiler-rt/test/orc/TestCases/Linux/systemz/ehframe-default.cpp
A compiler-rt/test/orc/TestCases/Linux/systemz/ehframe-libunwind.cpp
A compiler-rt/test/orc/TestCases/Linux/systemz/lit.local.cfg.py
A compiler-rt/test/orc/TestCases/Linux/systemz/lljit-ehframe.cpp
A compiler-rt/test/orc/TestCases/Linux/systemz/lljit-initialize-deinitialize.ll
A compiler-rt/test/orc/TestCases/Linux/systemz/priority-static-initializer.S
A compiler-rt/test/orc/TestCases/Linux/systemz/trivial-atexit.S
A compiler-rt/test/orc/TestCases/Linux/systemz/trivial-cxa-atexit.S
A compiler-rt/test/orc/TestCases/Linux/systemz/trivial-static-initializer.S
A compiler-rt/test/orc/TestCases/Linux/systemz/trivial-tls.S
M compiler-rt/test/profile/Linux/instrprof-debug-info-correlate-debuginfod.c
M compiler-rt/test/sanitizer_common/CMakeLists.txt
M compiler-rt/test/sanitizer_common/TestCases/Darwin/print-stack-trace-in-code-loaded-after-fork.cpp
M compiler-rt/test/sanitizer_common/TestCases/Darwin/symbolizer-function-offset-atos.cpp
M compiler-rt/test/sanitizer_common/TestCases/Linux/soft_rss_limit_mb_test.cpp
M compiler-rt/test/sanitizer_common/TestCases/Posix/popen.cpp
M compiler-rt/test/sanitizer_common/TestCases/Posix/posix_spawn.c
M compiler-rt/test/sanitizer_common/TestCases/sanitizer_coverage_trace_pc_guard.cpp
M compiler-rt/test/sanitizer_common/lit.site.cfg.py.in
M compiler-rt/test/xray/TestCases/Posix/basic-filtering.cpp
M compiler-rt/test/xray/TestCases/Posix/fdr-mode.cpp
M cross-project-tests/debuginfo-tests/dexter/dex/debugger/DAP.py
M flang-rt/include/flang-rt/runtime/buffer.h
M flang-rt/lib/cuda/allocatable.cpp
M flang-rt/lib/cuda/pointer.cpp
M flang-rt/lib/runtime/CMakeLists.txt
M flang-rt/lib/runtime/assign.cpp
M flang-rt/lib/runtime/exceptions.cpp
M flang-rt/lib/runtime/pseudo-unit.cpp
M flang-rt/lib/runtime/unit.h
M flang/docs/Aliasing.md
M flang/docs/GettingStarted.md
M flang/docs/OptionComparison.md
M flang/docs/Unsigned.md
M flang/docs/index.md
M flang/examples/FeatureList/FeatureList.cpp
M flang/include/flang/Lower/AbstractConverter.h
M flang/include/flang/Lower/CUDA.h
M flang/include/flang/Lower/ConvertVariable.h
M flang/include/flang/Lower/DirectivesCommon.h
M flang/include/flang/Lower/OpenMP/Clauses.h
M flang/include/flang/Lower/Support/Utils.h
M flang/include/flang/Lower/SymbolMap.h
M flang/include/flang/Optimizer/Analysis/AliasAnalysis.h
M flang/include/flang/Optimizer/Analysis/TBAAForest.h
M flang/include/flang/Optimizer/Builder/FIRBuilder.h
M flang/include/flang/Optimizer/Dialect/CUF/CUFOps.td
M flang/include/flang/Optimizer/Dialect/FIRAttr.td
M flang/include/flang/Optimizer/Dialect/FortranVariableInterface.td
M flang/include/flang/Parser/dump-parse-tree.h
M flang/include/flang/Parser/openmp-utils.h
M flang/include/flang/Parser/parse-tree.h
M flang/include/flang/Runtime/CUDA/allocatable.h
M flang/include/flang/Runtime/CUDA/pointer.h
M flang/include/flang/Runtime/exceptions.h
M flang/include/flang/Semantics/openmp-modifiers.h
M flang/include/flang/Semantics/openmp-utils.h
M flang/lib/Frontend/FrontendActions.cpp
M flang/lib/Lower/Allocatable.cpp
M flang/lib/Lower/CUDA.cpp
M flang/lib/Lower/ConvertExprToHLFIR.cpp
M flang/lib/Lower/ConvertVariable.cpp
M flang/lib/Lower/OpenACC.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
M flang/lib/Lower/OpenMP/ClauseProcessor.h
M flang/lib/Lower/OpenMP/Clauses.cpp
M flang/lib/Lower/OpenMP/OpenMP.cpp
M flang/lib/Lower/Support/Utils.cpp
M flang/lib/Lower/SymbolMap.cpp
M flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
M flang/lib/Optimizer/Analysis/TBAAForest.cpp
M flang/lib/Optimizer/Builder/CUDAIntrinsicCall.cpp
M flang/lib/Optimizer/Builder/FIRBuilder.cpp
M flang/lib/Optimizer/HLFIR/Transforms/SimplifyHLFIRIntrinsics.cpp
M flang/lib/Optimizer/Transforms/AddAliasTags.cpp
M flang/lib/Optimizer/Transforms/CUDA/CUFAllocationConversion.cpp
M flang/lib/Optimizer/Transforms/FIRToSCF.cpp
M flang/lib/Parser/openmp-parsers.cpp
M flang/lib/Parser/openmp-utils.cpp
M flang/lib/Parser/unparse.cpp
M flang/lib/Semantics/canonicalize-do.cpp
M flang/lib/Semantics/check-data.cpp
M flang/lib/Semantics/check-omp-loop.cpp
M flang/lib/Semantics/check-omp-structure.cpp
M flang/lib/Semantics/check-omp-structure.h
M flang/lib/Semantics/data-to-inits.cpp
M flang/lib/Semantics/data-to-inits.h
M flang/lib/Semantics/mod-file.cpp
M flang/lib/Semantics/openmp-modifiers.cpp
M flang/lib/Semantics/openmp-utils.cpp
M flang/lib/Semantics/resolve-directives.cpp
M flang/lib/Semantics/rewrite-parse-tree.cpp
A flang/test/Analysis/AliasAnalysis/alias-analysis-cray-pointers.fir
M flang/test/Driver/flang-f-opts.f90
M flang/test/Driver/gcc-triple.f90
M flang/test/Driver/lto-bc.f90
M flang/test/Driver/tco-test-gen.fir
M flang/test/Fir/CUDA/cuda-allocate.fir
M flang/test/Fir/FirToSCF/iter-while.fir
M flang/test/Fir/tbaa-codegen2.fir
A flang/test/HLFIR/simplify-hlfir-intrinsics-product.fir
R flang/test/Lower/CUDA/TODO/cuda-allocate-source-device.cuf
M flang/test/Lower/CUDA/cuda-allocatable.cuf
M flang/test/Lower/CUDA/cuda-device-proc.cuf
M flang/test/Lower/HLFIR/cray-pointers.f90
M flang/test/Lower/Intrinsics/free.f90
M flang/test/Lower/Intrinsics/malloc.f90
M flang/test/Lower/OpenACC/acc-bounds.f90
M flang/test/Lower/OpenACC/acc-enter-data.f90
M flang/test/Lower/OpenACC/acc-host-data.f90
A flang/test/Lower/OpenACC/acc-use-device-remapping.f90
M flang/test/Lower/OpenACC/acc-use-device.f90
R flang/test/Lower/OpenMP/Todo/omp-do-simd-linear.f90
A flang/test/Lower/OpenMP/Todo/threadset.f90
M flang/test/Lower/OpenMP/cray-pointers01.f90
A flang/test/Lower/OpenMP/simd-linear.f90
A flang/test/Lower/OpenMP/wsloop-linear.f90
A flang/test/Lower/memory-intrinsics-expansion.F90
M flang/test/Parser/OpenMP/atomic-label-do.f90
M flang/test/Parser/OpenMP/cross-label-do.f90
A flang/test/Parser/OpenMP/dims-modifier.f90
M flang/test/Parser/OpenMP/error-unparse.f90
M flang/test/Parser/OpenMP/interop-construct.f90
A flang/test/Parser/OpenMP/threadset-clause.f90
M flang/test/Semantics/OpenACC/acc-atomic-validity.f90
M flang/test/Semantics/OpenACC/acc-default-none-function.f90
M flang/test/Semantics/OpenACC/acc-error.f90
M flang/test/Semantics/OpenACC/acc-parallel.f90
M flang/test/Semantics/OpenACC/acc-reduction-validity.f90
A flang/test/Semantics/OpenMP/dims-modifier.f90
M flang/test/Semantics/OpenMP/loop-association.f90
A flang/test/Semantics/OpenMP/threadset-clause.f90
M flang/test/Semantics/allocate14.f90
M flang/test/Semantics/bindings01.f90
M flang/test/Semantics/collectives05.f90
M flang/test/Semantics/data03.f90
M flang/test/Semantics/doconcurrent01.f90
M flang/test/Semantics/doconcurrent05.f90
M flang/test/Semantics/doconcurrent06.f90
M flang/test/Semantics/doconcurrent08.f90
M flang/test/Semantics/dosemantics05.f90
M flang/test/Semantics/dosemantics08.f90
M flang/test/Semantics/dosemantics09.f90
M flang/test/Semantics/dosemantics11.f90
M flang/test/Semantics/dosemantics12.f90
A flang/test/Semantics/equivalence02.f90
A flang/test/Semantics/equivalence03.f90
M flang/test/Semantics/etime.f90
M flang/test/Semantics/getcwd.f90
M flang/test/Semantics/getdefinition05.f90
M flang/test/Semantics/io11.f90
M flang/test/Semantics/kinds02.f90
M flang/test/Semantics/modfile73.f90
A flang/test/Semantics/modfile75.f90
M flang/test/Semantics/num_images02.f90
M flang/test/Semantics/resolve102.f90
M flang/test/Semantics/resolve104.f90
M flang/test/Semantics/resolve33.f90
M flang/test/Semantics/resolve58.f90
M flang/test/Semantics/resolve70.f90
M flang/test/Semantics/resolve71.f90
M flang/test/Semantics/resolve72.f90
M flang/test/Semantics/resolve74.f90
M flang/test/Semantics/resolve75.f90
M flang/test/Semantics/resolve78.f90
M flang/test/Semantics/resolve79.f90
M flang/test/Semantics/resolve82.f90
M flang/test/Semantics/resolve83.f90
M flang/test/Semantics/resolve84.f90
M flang/test/Semantics/resolve86.f90
M flang/test/Semantics/resolve87.f90
M flang/test/Semantics/resolve88.f90
M flang/test/Semantics/resolve89.f90
M flang/test/Semantics/resolve90.f90
M flang/test/Semantics/resolve94.f90
M flang/test/Semantics/separate-mp01.f90
M flang/test/Semantics/spec-expr.f90
M flang/test/Semantics/this_image02.f90
M flang/test/Transforms/OpenACC/acc-implicit-data-derived-type-member.F90
A flang/test/Transforms/tbaa-cray-pointer.fir
M flang/test/Transforms/tbaa-for-common-vars.fir
M flang/test/Transforms/tbaa-for-global-equiv-vars.fir
M flang/test/Transforms/tbaa-for-local-vars.fir
A flang/test/Transforms/tbaa-target-inlined-results.fir
M flang/test/Transforms/tbaa-with-dummy-scope.fir
M flang/test/Transforms/tbaa-with-dummy-scope2.fir
M flang/test/Transforms/tbaa2.fir
M flang/test/Transforms/tbaa3.fir
M flang/test/Transforms/tbaa4.fir
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
M libc/config/config.json
M libc/config/linux/aarch64/entrypoints.txt
M libc/config/linux/arm/config.json
M libc/config/linux/config.json
M libc/config/linux/riscv/config.json
M libc/config/linux/riscv/entrypoints.txt
M libc/config/linux/x86_64/entrypoints.txt
M libc/docs/CMakeLists.txt
M libc/docs/configure.rst
M libc/docs/porting.rst
M libc/hdr/errno_macros.h
M libc/hdr/stdio_overlay.h
M libc/include/errno.h.def
M libc/include/llvm-libc-macros/fenv-macros.h
M libc/include/unistd.yaml
M libc/src/__support/CPP/bit.h
M libc/src/__support/FPUtil/CMakeLists.txt
M libc/src/__support/FPUtil/FEnvImpl.h
M libc/src/__support/FPUtil/x86_64/FEnvImpl.h
A libc/src/__support/FPUtil/x86_64/fenv_mxcsr_utils.h
A libc/src/__support/FPUtil/x86_64/fenv_x86_common.h
A libc/src/__support/FPUtil/x86_64/fenv_x87_only.h
A libc/src/__support/FPUtil/x86_64/fenv_x87_utils.h
M libc/src/__support/RPC/rpc_server.h
M libc/src/__support/float_to_string.h
M libc/src/__support/macros/properties/compiler.h
M libc/src/__support/threads/linux/CMakeLists.txt
M libc/src/__support/threads/linux/futex_utils.h
M libc/src/__support/threads/linux/raw_mutex.h
M libc/src/__support/threads/linux/rwlock.h
M libc/src/__support/time/CMakeLists.txt
A libc/src/__support/time/abs_timeout.h
M libc/src/__support/time/linux/CMakeLists.txt
R libc/src/__support/time/linux/abs_timeout.h
R libc/src/__support/time/linux/monotonicity.h
A libc/src/__support/time/monotonicity.h
A libc/src/__support/wctype/lower_to_upper.inc
A libc/src/__support/wctype/upper_to_lower.inc
M libc/src/pthread/pthread_rwlock_clockwrlock.cpp
M libc/src/pthread/pthread_rwlock_timedrdlock.cpp
M libc/src/pthread/pthread_rwlock_timedwrlock.cpp
M libc/src/stdio/baremetal/printf.cpp
M libc/src/stdio/baremetal/vprintf.cpp
M libc/src/stdio/printf_core/vasprintf_internal.h
M libc/src/stdio/printf_core/vfprintf_internal.h
M libc/src/stdio/printf_core/writer.h
M libc/src/stdio/snprintf.cpp
M libc/src/stdio/sprintf.cpp
M libc/src/stdio/vsnprintf.cpp
M libc/src/stdio/vsprintf.cpp
M libc/src/stdlib/strfromd.cpp
M libc/src/stdlib/strfromf.cpp
M libc/src/stdlib/strfroml.cpp
M libc/src/string/memory_utils/aarch64/inline_strlen.h
M libc/src/string/memory_utils/generic/inline_strlen.h
M libc/src/string/memory_utils/x86_64/inline_strlen.h
A libc/src/string/string_length.h
M libc/src/string/string_utils.h
M libc/src/time/strftime.cpp
M libc/src/time/strftime_l.cpp
M libc/src/unistd/CMakeLists.txt
A libc/src/unistd/getpagesize.h
M libc/src/unistd/linux/CMakeLists.txt
A libc/src/unistd/linux/getpagesize.cpp
M libc/test/UnitTest/FEnvSafeTest.cpp
M libc/test/src/__support/time/linux/CMakeLists.txt
M libc/test/src/__support/time/linux/timeout_test.cpp
M libc/test/src/fenv/enabled_exceptions_test.cpp
M libc/test/src/fenv/feholdexcept_test.cpp
M libc/test/src/fenv/getenv_and_setenv_test.cpp
M libc/test/src/math/FModTest.h
M libc/test/src/math/smoke/FModTest.h
M libc/test/src/stdio/printf_core/converter_test.cpp
M libc/test/src/stdio/printf_core/writer_test.cpp
M libc/test/src/stdio/sprintf_test.cpp
M libc/test/src/unistd/CMakeLists.txt
A libc/test/src/unistd/getpagesize_test.cpp
M libc/utils/docgen/docgen.py
M libc/utils/docgen/unistd.yaml
A libc/utils/wctype_utils/README.rst
A libc/utils/wctype_utils/conversion/__init__.py
A libc/utils/wctype_utils/conversion/gen_conversion_data.py
A libc/utils/wctype_utils/conversion/hex_writer.py
A libc/utils/wctype_utils/gen.py
M libclc/CMakeLists.txt
M libclc/clc/include/clc/atomic/atomic_decl.inc
M libclc/clc/include/clc/float/definitions.h
M libclc/clc/include/clc/integer/definitions.h
M libclc/clc/lib/generic/atomic/clc_atomic_compare_exchange.inc
M libclc/clc/lib/generic/atomic/clc_atomic_def.inc
M libclc/cmake/modules/AddLibclc.cmake
R libclc/opencl/include/clc/opencl/as_type.h
R libclc/opencl/include/clc/opencl/async/async_work_group_copy.h
R libclc/opencl/include/clc/opencl/async/async_work_group_copy.inc
R libclc/opencl/include/clc/opencl/async/async_work_group_strided_copy.h
R libclc/opencl/include/clc/opencl/async/async_work_group_strided_copy.inc
R libclc/opencl/include/clc/opencl/async/prefetch.h
R libclc/opencl/include/clc/opencl/async/prefetch.inc
R libclc/opencl/include/clc/opencl/async/wait_group_events.h
R libclc/opencl/include/clc/opencl/atomic/atom_add.h
R libclc/opencl/include/clc/opencl/atomic/atom_and.h
R libclc/opencl/include/clc/opencl/atomic/atom_cmpxchg.h
R libclc/opencl/include/clc/opencl/atomic/atom_dec.h
R libclc/opencl/include/clc/opencl/atomic/atom_decl_int32.inc
R libclc/opencl/include/clc/opencl/atomic/atom_decl_int64.inc
R libclc/opencl/include/clc/opencl/atomic/atom_inc.h
R libclc/opencl/include/clc/opencl/atomic/atom_max.h
R libclc/opencl/include/clc/opencl/atomic/atom_min.h
R libclc/opencl/include/clc/opencl/atomic/atom_or.h
R libclc/opencl/include/clc/opencl/atomic/atom_sub.h
R libclc/opencl/include/clc/opencl/atomic/atom_xchg.h
R libclc/opencl/include/clc/opencl/atomic/atom_xor.h
R libclc/opencl/include/clc/opencl/atomic/atomic_add.h
R libclc/opencl/include/clc/opencl/atomic/atomic_and.h
R libclc/opencl/include/clc/opencl/atomic/atomic_cmpxchg.h
R libclc/opencl/include/clc/opencl/atomic/atomic_compare_exchange_strong.h
R libclc/opencl/include/clc/opencl/atomic/atomic_compare_exchange_weak.h
R libclc/opencl/include/clc/opencl/atomic/atomic_dec.h
R libclc/opencl/include/clc/opencl/atomic/atomic_decl.inc
R libclc/opencl/include/clc/opencl/atomic/atomic_decl_legacy.inc
R libclc/opencl/include/clc/opencl/atomic/atomic_exchange.h
R libclc/opencl/include/clc/opencl/atomic/atomic_fetch_add.h
R libclc/opencl/include/clc/opencl/atomic/atomic_fetch_and.h
R libclc/opencl/include/clc/opencl/atomic/atomic_fetch_max.h
R libclc/opencl/include/clc/opencl/atomic/atomic_fetch_min.h
R libclc/opencl/include/clc/opencl/atomic/atomic_fetch_or.h
R libclc/opencl/include/clc/opencl/atomic/atomic_fetch_sub.h
R libclc/opencl/include/clc/opencl/atomic/atomic_fetch_xor.h
R libclc/opencl/include/clc/opencl/atomic/atomic_flag_clear.h
R libclc/opencl/include/clc/opencl/atomic/atomic_flag_test_and_set.h
R libclc/opencl/include/clc/opencl/atomic/atomic_inc.h
R libclc/opencl/include/clc/opencl/atomic/atomic_init.h
R libclc/opencl/include/clc/opencl/atomic/atomic_init.inc
R libclc/opencl/include/clc/opencl/atomic/atomic_load.h
R libclc/opencl/include/clc/opencl/atomic/atomic_max.h
R libclc/opencl/include/clc/opencl/atomic/atomic_min.h
R libclc/opencl/include/clc/opencl/atomic/atomic_or.h
R libclc/opencl/include/clc/opencl/atomic/atomic_store.h
R libclc/opencl/include/clc/opencl/atomic/atomic_sub.h
R libclc/opencl/include/clc/opencl/atomic/atomic_xchg.h
R libclc/opencl/include/clc/opencl/atomic/atomic_xor.h
R libclc/opencl/include/clc/opencl/common/degrees.h
R libclc/opencl/include/clc/opencl/common/mix.h
R libclc/opencl/include/clc/opencl/common/mix.inc
R libclc/opencl/include/clc/opencl/common/radians.h
R libclc/opencl/include/clc/opencl/common/sign.h
R libclc/opencl/include/clc/opencl/common/smoothstep.h
R libclc/opencl/include/clc/opencl/common/smoothstep.inc
R libclc/opencl/include/clc/opencl/common/step.h
R libclc/opencl/include/clc/opencl/common/step.inc
R libclc/opencl/include/clc/opencl/explicit_fence/explicit_memory_fence.h
R libclc/opencl/include/clc/opencl/geometric/cross.h
R libclc/opencl/include/clc/opencl/geometric/distance.h
R libclc/opencl/include/clc/opencl/geometric/dot.h
R libclc/opencl/include/clc/opencl/geometric/fast_distance.h
R libclc/opencl/include/clc/opencl/geometric/fast_length.h
R libclc/opencl/include/clc/opencl/geometric/fast_normalize.h
R libclc/opencl/include/clc/opencl/geometric/length.h
R libclc/opencl/include/clc/opencl/geometric/normalize.h
R libclc/opencl/include/clc/opencl/image/image.h
R libclc/opencl/include/clc/opencl/image/image_defines.h
R libclc/opencl/include/clc/opencl/integer/abs.h
R libclc/opencl/include/clc/opencl/integer/abs.inc
R libclc/opencl/include/clc/opencl/integer/abs_diff.h
R libclc/opencl/include/clc/opencl/integer/abs_diff.inc
R libclc/opencl/include/clc/opencl/integer/add_sat.h
R libclc/opencl/include/clc/opencl/integer/bit_reverse.h
R libclc/opencl/include/clc/opencl/integer/bitfield_extract_signed.h
R libclc/opencl/include/clc/opencl/integer/bitfield_extract_unsigned.h
R libclc/opencl/include/clc/opencl/integer/bitfield_insert.h
R libclc/opencl/include/clc/opencl/integer/clz.h
R libclc/opencl/include/clc/opencl/integer/ctz.h
R libclc/opencl/include/clc/opencl/integer/hadd.h
R libclc/opencl/include/clc/opencl/integer/mad24.h
R libclc/opencl/include/clc/opencl/integer/mad_hi.h
R libclc/opencl/include/clc/opencl/integer/mad_sat.h
R libclc/opencl/include/clc/opencl/integer/mul24.h
R libclc/opencl/include/clc/opencl/integer/mul_hi.h
R libclc/opencl/include/clc/opencl/integer/popcount.h
R libclc/opencl/include/clc/opencl/integer/rhadd.h
R libclc/opencl/include/clc/opencl/integer/rotate.h
R libclc/opencl/include/clc/opencl/integer/sub_sat.h
R libclc/opencl/include/clc/opencl/integer/upsample.h
R libclc/opencl/include/clc/opencl/math/acos.h
R libclc/opencl/include/clc/opencl/math/acosh.h
R libclc/opencl/include/clc/opencl/math/acospi.h
R libclc/opencl/include/clc/opencl/math/asin.h
R libclc/opencl/include/clc/opencl/math/asinh.h
R libclc/opencl/include/clc/opencl/math/asinpi.h
R libclc/opencl/include/clc/opencl/math/atan.h
R libclc/opencl/include/clc/opencl/math/atan2.h
R libclc/opencl/include/clc/opencl/math/atan2pi.h
R libclc/opencl/include/clc/opencl/math/atanh.h
R libclc/opencl/include/clc/opencl/math/atanpi.h
R libclc/opencl/include/clc/opencl/math/cbrt.h
R libclc/opencl/include/clc/opencl/math/ceil.h
R libclc/opencl/include/clc/opencl/math/copysign.h
R libclc/opencl/include/clc/opencl/math/cos.h
R libclc/opencl/include/clc/opencl/math/cosh.h
R libclc/opencl/include/clc/opencl/math/cospi.h
R libclc/opencl/include/clc/opencl/math/erf.h
R libclc/opencl/include/clc/opencl/math/erfc.h
R libclc/opencl/include/clc/opencl/math/exp.h
R libclc/opencl/include/clc/opencl/math/exp10.h
R libclc/opencl/include/clc/opencl/math/exp2.h
R libclc/opencl/include/clc/opencl/math/expm1.h
R libclc/opencl/include/clc/opencl/math/fabs.h
R libclc/opencl/include/clc/opencl/math/fdim.h
R libclc/opencl/include/clc/opencl/math/floor.h
R libclc/opencl/include/clc/opencl/math/fma.h
R libclc/opencl/include/clc/opencl/math/fmax.h
R libclc/opencl/include/clc/opencl/math/fmin.h
R libclc/opencl/include/clc/opencl/math/fmod.h
R libclc/opencl/include/clc/opencl/math/fract.h
R libclc/opencl/include/clc/opencl/math/frexp.h
R libclc/opencl/include/clc/opencl/math/half_cos.h
R libclc/opencl/include/clc/opencl/math/half_divide.h
R libclc/opencl/include/clc/opencl/math/half_exp.h
R libclc/opencl/include/clc/opencl/math/half_exp10.h
R libclc/opencl/include/clc/opencl/math/half_exp2.h
R libclc/opencl/include/clc/opencl/math/half_log.h
R libclc/opencl/include/clc/opencl/math/half_log10.h
R libclc/opencl/include/clc/opencl/math/half_log2.h
R libclc/opencl/include/clc/opencl/math/half_powr.h
R libclc/opencl/include/clc/opencl/math/half_recip.h
R libclc/opencl/include/clc/opencl/math/half_rsqrt.h
R libclc/opencl/include/clc/opencl/math/half_sin.h
R libclc/opencl/include/clc/opencl/math/half_sqrt.h
R libclc/opencl/include/clc/opencl/math/half_tan.h
R libclc/opencl/include/clc/opencl/math/hypot.h
R libclc/opencl/include/clc/opencl/math/ilogb.h
R libclc/opencl/include/clc/opencl/math/ldexp.h
R libclc/opencl/include/clc/opencl/math/ldexp.inc
R libclc/opencl/include/clc/opencl/math/lgamma.h
R libclc/opencl/include/clc/opencl/math/lgamma_r.h
R libclc/opencl/include/clc/opencl/math/log.h
R libclc/opencl/include/clc/opencl/math/log10.h
R libclc/opencl/include/clc/opencl/math/log1p.h
R libclc/opencl/include/clc/opencl/math/log2.h
R libclc/opencl/include/clc/opencl/math/logb.h
R libclc/opencl/include/clc/opencl/math/mad.h
R libclc/opencl/include/clc/opencl/math/maxmag.h
R libclc/opencl/include/clc/opencl/math/minmag.h
R libclc/opencl/include/clc/opencl/math/modf.h
R libclc/opencl/include/clc/opencl/math/nan.h
R libclc/opencl/include/clc/opencl/math/nan.inc
R libclc/opencl/include/clc/opencl/math/native_cos.h
R libclc/opencl/include/clc/opencl/math/native_divide.h
R libclc/opencl/include/clc/opencl/math/native_exp.h
R libclc/opencl/include/clc/opencl/math/native_exp10.h
R libclc/opencl/include/clc/opencl/math/native_exp2.h
R libclc/opencl/include/clc/opencl/math/native_log.h
R libclc/opencl/include/clc/opencl/math/native_log10.h
R libclc/opencl/include/clc/opencl/math/native_log2.h
R libclc/opencl/include/clc/opencl/math/native_powr.h
R libclc/opencl/include/clc/opencl/math/native_recip.h
R libclc/opencl/include/clc/opencl/math/native_rsqrt.h
R libclc/opencl/include/clc/opencl/math/native_sin.h
R libclc/opencl/include/clc/opencl/math/native_sqrt.h
R libclc/opencl/include/clc/opencl/math/native_tan.h
R libclc/opencl/include/clc/opencl/math/nextafter.h
R libclc/opencl/include/clc/opencl/math/pow.h
R libclc/opencl/include/clc/opencl/math/pown.h
R libclc/opencl/include/clc/opencl/math/powr.h
R libclc/opencl/include/clc/opencl/math/remainder.h
R libclc/opencl/include/clc/opencl/math/remquo.h
R libclc/opencl/include/clc/opencl/math/rint.h
R libclc/opencl/include/clc/opencl/math/rootn.h
R libclc/opencl/include/clc/opencl/math/round.h
R libclc/opencl/include/clc/opencl/math/rsqrt.h
R libclc/opencl/include/clc/opencl/math/sin.h
R libclc/opencl/include/clc/opencl/math/sincos.h
R libclc/opencl/include/clc/opencl/math/sinh.h
R libclc/opencl/include/clc/opencl/math/sinpi.h
R libclc/opencl/include/clc/opencl/math/sqrt.h
R libclc/opencl/include/clc/opencl/math/tan.h
R libclc/opencl/include/clc/opencl/math/tanh.h
R libclc/opencl/include/clc/opencl/math/tanpi.h
R libclc/opencl/include/clc/opencl/math/tgamma.h
R libclc/opencl/include/clc/opencl/math/trunc.h
R libclc/opencl/include/clc/opencl/misc/shuffle.h
R libclc/opencl/include/clc/opencl/misc/shuffle2.h
R libclc/opencl/include/clc/opencl/relational/all.h
R libclc/opencl/include/clc/opencl/relational/any.h
R libclc/opencl/include/clc/opencl/relational/bitselect.h
R libclc/opencl/include/clc/opencl/relational/bitselect.inc
R libclc/opencl/include/clc/opencl/relational/isequal.h
R libclc/opencl/include/clc/opencl/relational/isfinite.h
R libclc/opencl/include/clc/opencl/relational/isgreater.h
R libclc/opencl/include/clc/opencl/relational/isgreaterequal.h
R libclc/opencl/include/clc/opencl/relational/isinf.h
R libclc/opencl/include/clc/opencl/relational/isless.h
R libclc/opencl/include/clc/opencl/relational/islessequal.h
R libclc/opencl/include/clc/opencl/relational/islessgreater.h
R libclc/opencl/include/clc/opencl/relational/isnan.h
R libclc/opencl/include/clc/opencl/relational/isnormal.h
R libclc/opencl/include/clc/opencl/relational/isnotequal.h
R libclc/opencl/include/clc/opencl/relational/isordered.h
R libclc/opencl/include/clc/opencl/relational/isunordered.h
R libclc/opencl/include/clc/opencl/relational/select.h
R libclc/opencl/include/clc/opencl/relational/signbit.h
R libclc/opencl/include/clc/opencl/shared/clamp.h
R libclc/opencl/include/clc/opencl/shared/clamp.inc
R libclc/opencl/include/clc/opencl/shared/max.h
R libclc/opencl/include/clc/opencl/shared/max.inc
R libclc/opencl/include/clc/opencl/shared/min.h
R libclc/opencl/include/clc/opencl/shared/min.inc
R libclc/opencl/include/clc/opencl/shared/vload.h
R libclc/opencl/include/clc/opencl/shared/vstore.h
R libclc/opencl/include/clc/opencl/synchronization/barrier.h
R libclc/opencl/include/clc/opencl/synchronization/cl_mem_fence_flags.h
M libclc/opencl/include/clc/opencl/synchronization/utils.h
R libclc/opencl/include/clc/opencl/types.h
M libclc/opencl/include/clc/opencl/utils.h
R libclc/opencl/include/clc/opencl/workitem/get_global_id.h
R libclc/opencl/include/clc/opencl/workitem/get_global_offset.h
R libclc/opencl/include/clc/opencl/workitem/get_global_size.h
R libclc/opencl/include/clc/opencl/workitem/get_group_id.h
R libclc/opencl/include/clc/opencl/workitem/get_local_id.h
R libclc/opencl/include/clc/opencl/workitem/get_local_linear_id.h
R libclc/opencl/include/clc/opencl/workitem/get_local_size.h
R libclc/opencl/include/clc/opencl/workitem/get_max_sub_group_size.h
R libclc/opencl/include/clc/opencl/workitem/get_num_groups.h
R libclc/opencl/include/clc/opencl/workitem/get_num_sub_groups.h
R libclc/opencl/include/clc/opencl/workitem/get_sub_group_id.h
R libclc/opencl/include/clc/opencl/workitem/get_sub_group_local_id.h
R libclc/opencl/include/clc/opencl/workitem/get_sub_group_size.h
R libclc/opencl/include/clc/opencl/workitem/get_work_dim.h
M libclc/opencl/lib/amdgcn-amdhsa/workitem/get_global_size.cl
M libclc/opencl/lib/amdgcn-amdhsa/workitem/get_local_size.cl
M libclc/opencl/lib/amdgcn-amdhsa/workitem/get_num_groups.cl
M libclc/opencl/lib/amdgcn/mem_fence/fence.cl
M libclc/opencl/lib/amdgcn/synchronization/barrier.cl
M libclc/opencl/lib/amdgcn/workitem/get_global_offset.cl
M libclc/opencl/lib/amdgcn/workitem/get_global_size.cl
M libclc/opencl/lib/amdgcn/workitem/get_group_id.cl
M libclc/opencl/lib/amdgcn/workitem/get_local_id.cl
M libclc/opencl/lib/amdgcn/workitem/get_local_size.cl
M libclc/opencl/lib/amdgcn/workitem/get_num_groups.cl
M libclc/opencl/lib/amdgcn/workitem/get_work_dim.cl
M libclc/opencl/lib/clspv/math/fma.cl
M libclc/opencl/lib/clspv/shared/vstore_half.cl
M libclc/opencl/lib/generic/async/async_work_group_copy.cl
M libclc/opencl/lib/generic/async/async_work_group_strided_copy.cl
M libclc/opencl/lib/generic/async/prefetch.cl
M libclc/opencl/lib/generic/async/wait_group_events.cl
M libclc/opencl/lib/generic/atomic/atom_add.cl
M libclc/opencl/lib/generic/atomic/atom_and.cl
M libclc/opencl/lib/generic/atomic/atom_cmpxchg.cl
M libclc/opencl/lib/generic/atomic/atom_dec.cl
M libclc/opencl/lib/generic/atomic/atom_inc.cl
M libclc/opencl/lib/generic/atomic/atom_max.cl
M libclc/opencl/lib/generic/atomic/atom_min.cl
M libclc/opencl/lib/generic/atomic/atom_or.cl
M libclc/opencl/lib/generic/atomic/atom_sub.cl
M libclc/opencl/lib/generic/atomic/atom_xchg.cl
M libclc/opencl/lib/generic/atomic/atom_xor.cl
M libclc/opencl/lib/generic/atomic/atomic_add.cl
M libclc/opencl/lib/generic/atomic/atomic_and.cl
M libclc/opencl/lib/generic/atomic/atomic_cmpxchg.cl
M libclc/opencl/lib/generic/atomic/atomic_compare_exchange_strong.cl
M libclc/opencl/lib/generic/atomic/atomic_compare_exchange_weak.cl
M libclc/opencl/lib/generic/atomic/atomic_dec.cl
M libclc/opencl/lib/generic/atomic/atomic_def.inc
M libclc/opencl/lib/generic/atomic/atomic_exchange.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_add.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_and.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_max.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_min.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_or.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_sub.cl
M libclc/opencl/lib/generic/atomic/atomic_fetch_xor.cl
M libclc/opencl/lib/generic/atomic/atomic_flag_clear.cl
M libclc/opencl/lib/generic/atomic/atomic_flag_test_and_set.cl
M libclc/opencl/lib/generic/atomic/atomic_inc.cl
M libclc/opencl/lib/generic/atomic/atomic_inc_dec.inc
M libclc/opencl/lib/generic/atomic/atomic_init.cl
M libclc/opencl/lib/generic/atomic/atomic_load.cl
M libclc/opencl/lib/generic/atomic/atomic_max.cl
M libclc/opencl/lib/generic/atomic/atomic_min.cl
M libclc/opencl/lib/generic/atomic/atomic_or.cl
M libclc/opencl/lib/generic/atomic/atomic_store.cl
M libclc/opencl/lib/generic/atomic/atomic_sub.cl
M libclc/opencl/lib/generic/atomic/atomic_xchg.cl
M libclc/opencl/lib/generic/atomic/atomic_xor.cl
M libclc/opencl/lib/generic/common/degrees.cl
M libclc/opencl/lib/generic/common/mix.cl
M libclc/opencl/lib/generic/common/radians.cl
M libclc/opencl/lib/generic/common/sign.cl
M libclc/opencl/lib/generic/common/smoothstep.cl
M libclc/opencl/lib/generic/common/step.cl
M libclc/opencl/lib/generic/geometric/cross.cl
M libclc/opencl/lib/generic/geometric/distance.cl
M libclc/opencl/lib/generic/geometric/dot.cl
M libclc/opencl/lib/generic/geometric/fast_distance.cl
M libclc/opencl/lib/generic/geometric/fast_length.cl
M libclc/opencl/lib/generic/geometric/fast_normalize.cl
M libclc/opencl/lib/generic/geometric/length.cl
M libclc/opencl/lib/generic/geometric/normalize.cl
M libclc/opencl/lib/generic/integer/abs.cl
M libclc/opencl/lib/generic/integer/abs_diff.cl
M libclc/opencl/lib/generic/integer/add_sat.cl
M libclc/opencl/lib/generic/integer/bit_reverse.cl
M libclc/opencl/lib/generic/integer/bitfield_extract_signed.cl
M libclc/opencl/lib/generic/integer/bitfield_extract_unsigned.cl
M libclc/opencl/lib/generic/integer/bitfield_insert.cl
M libclc/opencl/lib/generic/integer/clz.cl
M libclc/opencl/lib/generic/integer/ctz.cl
M libclc/opencl/lib/generic/integer/hadd.cl
M libclc/opencl/lib/generic/integer/mad24.cl
M libclc/opencl/lib/generic/integer/mad_hi.cl
M libclc/opencl/lib/generic/integer/mad_sat.cl
M libclc/opencl/lib/generic/integer/mul24.cl
M libclc/opencl/lib/generic/integer/mul_hi.cl
M libclc/opencl/lib/generic/integer/popcount.cl
M libclc/opencl/lib/generic/integer/rhadd.cl
M libclc/opencl/lib/generic/integer/rotate.cl
M libclc/opencl/lib/generic/integer/sub_sat.cl
M libclc/opencl/lib/generic/integer/upsample.cl
M libclc/opencl/lib/generic/math/acos.cl
M libclc/opencl/lib/generic/math/acosh.cl
M libclc/opencl/lib/generic/math/acospi.cl
M libclc/opencl/lib/generic/math/asin.cl
M libclc/opencl/lib/generic/math/asinh.cl
M libclc/opencl/lib/generic/math/asinpi.cl
M libclc/opencl/lib/generic/math/atan.cl
M libclc/opencl/lib/generic/math/atan2.cl
M libclc/opencl/lib/generic/math/atan2pi.cl
M libclc/opencl/lib/generic/math/atanh.cl
M libclc/opencl/lib/generic/math/atanpi.cl
M libclc/opencl/lib/generic/math/cbrt.cl
M libclc/opencl/lib/generic/math/ceil.cl
M libclc/opencl/lib/generic/math/copysign.cl
M libclc/opencl/lib/generic/math/cos.cl
M libclc/opencl/lib/generic/math/cosh.cl
M libclc/opencl/lib/generic/math/cospi.cl
M libclc/opencl/lib/generic/math/erf.cl
M libclc/opencl/lib/generic/math/erfc.cl
M libclc/opencl/lib/generic/math/exp.cl
M libclc/opencl/lib/generic/math/exp10.cl
M libclc/opencl/lib/generic/math/exp2.cl
M libclc/opencl/lib/generic/math/expm1.cl
M libclc/opencl/lib/generic/math/fabs.cl
M libclc/opencl/lib/generic/math/fdim.cl
M libclc/opencl/lib/generic/math/floor.cl
M libclc/opencl/lib/generic/math/fma.cl
M libclc/opencl/lib/generic/math/fmax.cl
M libclc/opencl/lib/generic/math/fmin.cl
M libclc/opencl/lib/generic/math/fmod.cl
M libclc/opencl/lib/generic/math/fract.cl
M libclc/opencl/lib/generic/math/frexp.cl
M libclc/opencl/lib/generic/math/half_cos.cl
M libclc/opencl/lib/generic/math/half_divide.cl
M libclc/opencl/lib/generic/math/half_exp.cl
M libclc/opencl/lib/generic/math/half_exp10.cl
M libclc/opencl/lib/generic/math/half_exp2.cl
M libclc/opencl/lib/generic/math/half_log.cl
M libclc/opencl/lib/generic/math/half_log10.cl
M libclc/opencl/lib/generic/math/half_log2.cl
M libclc/opencl/lib/generic/math/half_powr.cl
M libclc/opencl/lib/generic/math/half_recip.cl
M libclc/opencl/lib/generic/math/half_rsqrt.cl
M libclc/opencl/lib/generic/math/half_sin.cl
M libclc/opencl/lib/generic/math/half_sqrt.cl
M libclc/opencl/lib/generic/math/half_tan.cl
M libclc/opencl/lib/generic/math/hypot.cl
M libclc/opencl/lib/generic/math/ilogb.cl
M libclc/opencl/lib/generic/math/ldexp.cl
M libclc/opencl/lib/generic/math/lgamma.cl
M libclc/opencl/lib/generic/math/lgamma_r.cl
M libclc/opencl/lib/generic/math/log.cl
M libclc/opencl/lib/generic/math/log10.cl
M libclc/opencl/lib/generic/math/log1p.cl
M libclc/opencl/lib/generic/math/log2.cl
M libclc/opencl/lib/generic/math/logb.cl
M libclc/opencl/lib/generic/math/mad.cl
M libclc/opencl/lib/generic/math/maxmag.cl
M libclc/opencl/lib/generic/math/minmag.cl
M libclc/opencl/lib/generic/math/modf.cl
M libclc/opencl/lib/generic/math/native_cos.cl
M libclc/opencl/lib/generic/math/native_divide.cl
M libclc/opencl/lib/generic/math/native_exp.cl
M libclc/opencl/lib/generic/math/native_exp10.cl
M libclc/opencl/lib/generic/math/native_exp2.cl
M libclc/opencl/lib/generic/math/native_log.cl
M libclc/opencl/lib/generic/math/native_log10.cl
M libclc/opencl/lib/generic/math/native_log2.cl
M libclc/opencl/lib/generic/math/native_powr.cl
M libclc/opencl/lib/generic/math/native_recip.cl
M libclc/opencl/lib/generic/math/native_rsqrt.cl
M libclc/opencl/lib/generic/math/native_sin.cl
M libclc/opencl/lib/generic/math/native_sqrt.cl
M libclc/opencl/lib/generic/math/native_tan.cl
M libclc/opencl/lib/generic/math/nextafter.cl
M libclc/opencl/lib/generic/math/pow.cl
M libclc/opencl/lib/generic/math/pown.cl
M libclc/opencl/lib/generic/math/powr.cl
M libclc/opencl/lib/generic/math/remainder.cl
M libclc/opencl/lib/generic/math/remquo.cl
M libclc/opencl/lib/generic/math/rint.cl
M libclc/opencl/lib/generic/math/rootn.cl
M libclc/opencl/lib/generic/math/round.cl
M libclc/opencl/lib/generic/math/rsqrt.cl
M libclc/opencl/lib/generic/math/sin.cl
M libclc/opencl/lib/generic/math/sincos.cl
M libclc/opencl/lib/generic/math/sinh.cl
M libclc/opencl/lib/generic/math/sinpi.cl
M libclc/opencl/lib/generic/math/sqrt.cl
M libclc/opencl/lib/generic/math/tan.cl
M libclc/opencl/lib/generic/math/tanh.cl
M libclc/opencl/lib/generic/math/tanpi.cl
M libclc/opencl/lib/generic/math/tgamma.cl
M libclc/opencl/lib/generic/math/trunc.cl
M libclc/opencl/lib/generic/misc/shuffle.cl
M libclc/opencl/lib/generic/misc/shuffle2.cl
M libclc/opencl/lib/generic/relational/all.cl
M libclc/opencl/lib/generic/relational/any.cl
M libclc/opencl/lib/generic/relational/bitselect.cl
M libclc/opencl/lib/generic/relational/isequal.cl
M libclc/opencl/lib/generic/relational/isfinite.cl
M libclc/opencl/lib/generic/relational/isgreater.cl
M libclc/opencl/lib/generic/relational/isgreaterequal.cl
M libclc/opencl/lib/generic/relational/isinf.cl
M libclc/opencl/lib/generic/relational/isless.cl
M libclc/opencl/lib/generic/relational/islessequal.cl
M libclc/opencl/lib/generic/relational/islessgreater.cl
M libclc/opencl/lib/generic/relational/isnan.cl
M libclc/opencl/lib/generic/relational/isnormal.cl
M libclc/opencl/lib/generic/relational/isnotequal.cl
M libclc/opencl/lib/generic/relational/isordered.cl
M libclc/opencl/lib/generic/relational/isunordered.cl
M libclc/opencl/lib/generic/relational/select.cl
M libclc/opencl/lib/generic/relational/signbit.cl
M libclc/opencl/lib/generic/shared/clamp.cl
M libclc/opencl/lib/generic/shared/max.cl
M libclc/opencl/lib/generic/shared/min.cl
M libclc/opencl/lib/generic/shared/vload.cl
M libclc/opencl/lib/generic/shared/vstore.cl
M libclc/opencl/lib/generic/workitem/get_global_id.cl
M libclc/opencl/lib/generic/workitem/get_global_size.cl
M libclc/opencl/lib/ptx-nvidiacl/mem_fence/fence.cl
M libclc/opencl/lib/ptx-nvidiacl/synchronization/barrier.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_global_id.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_group_id.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_local_id.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_local_linear_id.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_local_size.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_max_sub_group_size.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_num_groups.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_num_sub_groups.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_sub_group_id.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_sub_group_local_id.cl
M libclc/opencl/lib/ptx-nvidiacl/workitem/get_sub_group_size.cl
M libclc/opencl/lib/r600/image/get_image_channel_data_type.cl
M libclc/opencl/lib/r600/image/get_image_channel_order.cl
M libclc/opencl/lib/r600/image/get_image_depth.cl
M libclc/opencl/lib/r600/image/get_image_dim.cl
M libclc/opencl/lib/r600/image/get_image_height.cl
M libclc/opencl/lib/r600/image/get_image_width.cl
M libclc/opencl/lib/r600/image/read_imagef.cl
M libclc/opencl/lib/r600/image/read_imagei.cl
M libclc/opencl/lib/r600/image/read_imageui.cl
M libclc/opencl/lib/r600/image/write_imagef.cl
M libclc/opencl/lib/r600/image/write_imagei.cl
M libclc/opencl/lib/r600/image/write_imageui.cl
M libclc/opencl/lib/r600/synchronization/barrier.cl
M libclc/opencl/lib/r600/workitem/get_global_offset.cl
M libclc/opencl/lib/r600/workitem/get_global_size.cl
M libclc/opencl/lib/r600/workitem/get_group_id.cl
M libclc/opencl/lib/r600/workitem/get_local_id.cl
M libclc/opencl/lib/r600/workitem/get_local_size.cl
M libclc/opencl/lib/r600/workitem/get_num_groups.cl
M libclc/opencl/lib/r600/workitem/get_work_dim.cl
M libclc/opencl/lib/spirv/math/fma.cl
M libcxx/docs/ABIGuarantees.rst
M libcxx/docs/ReleaseNotes/22.rst
M libcxx/docs/VendorDocumentation.rst
M libcxx/include/CMakeLists.txt
M libcxx/include/__algorithm/copy_backward.h
M libcxx/include/__algorithm/find_end.h
M libcxx/include/__algorithm/for_each.h
M libcxx/include/__algorithm/for_each_segment.h
M libcxx/include/__algorithm/move_backward.h
M libcxx/include/__algorithm/ranges_for_each.h
M libcxx/include/__algorithm/specialized_algorithms.h
M libcxx/include/__atomic/atomic.h
M libcxx/include/__atomic/atomic_flag.h
M libcxx/include/__atomic/atomic_ref.h
M libcxx/include/__atomic/atomic_sync.h
M libcxx/include/__atomic/contention_t.h
M libcxx/include/__bit_reference
M libcxx/include/__configuration/abi.h
M libcxx/include/__configuration/availability.h
M libcxx/include/__cxx03/bitset
M libcxx/include/__exception/exception.h
M libcxx/include/__exception/nested_exception.h
M libcxx/include/__exception/operations.h
M libcxx/include/__filesystem/copy_options.h
M libcxx/include/__filesystem/directory_entry.h
M libcxx/include/__filesystem/directory_iterator.h
M libcxx/include/__filesystem/directory_options.h
M libcxx/include/__filesystem/file_status.h
M libcxx/include/__filesystem/filesystem_error.h
M libcxx/include/__filesystem/operations.h
M libcxx/include/__filesystem/path.h
M libcxx/include/__filesystem/path_iterator.h
M libcxx/include/__filesystem/perm_options.h
M libcxx/include/__filesystem/perms.h
M libcxx/include/__filesystem/recursive_directory_iterator.h
M libcxx/include/__filesystem/u8path.h
M libcxx/include/__format/format_args.h
M libcxx/include/__format/format_context.h
M libcxx/include/__format/format_parse_context.h
M libcxx/include/__functional/hash.h
M libcxx/include/__locale_dir/locale_base_api.h
A libcxx/include/__locale_dir/support/newlib.h
M libcxx/include/__memory/allocator.h
M libcxx/include/__memory/shared_ptr.h
M libcxx/include/__memory/unique_ptr.h
M libcxx/include/__split_buffer
M libcxx/include/__system_error/error_category.h
M libcxx/include/__system_error/error_code.h
M libcxx/include/__system_error/error_condition.h
M libcxx/include/__system_error/system_error.h
M libcxx/include/__tree
M libcxx/include/__utility/integer_sequence.h
M libcxx/include/__vector/vector.h
M libcxx/include/__vector/vector_bool.h
M libcxx/include/bitset
M libcxx/include/deque
M libcxx/include/map
M libcxx/include/module.modulemap.in
M libcxx/include/optional
M libcxx/include/set
M libcxx/include/stdexcept
M libcxx/include/valarray
M libcxx/lib/abi/CHANGELOG.TXT
M libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/i686-linux-android21.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/powerpc-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/powerpc64-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/x86_64-linux-android21.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/x86_64-unknown-freebsd.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.abilist
M libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.noexceptions.nonew.abilist
M libcxx/modules/CMakeLists.txt
M libcxx/src/CMakeLists.txt
M libcxx/src/atomic.cpp
M libcxx/src/include/refstring.h
M libcxx/test/CMakeLists.txt
M libcxx/test/benchmarks/algorithms/nonmodifying/for_each.bench.cpp
M libcxx/test/benchmarks/containers/sequence/vector_bool.bench.cpp
M libcxx/test/libcxx/atomics/atomics.syn/wait.issue_85107.pass.cpp
M libcxx/test/libcxx/clang_tidy.gen.py
M libcxx/test/libcxx/clang_tidy.sh.py
M libcxx/test/libcxx/diagnostics/filesystem.nodiscard.verify.cpp
M libcxx/test/libcxx/diagnostics/format.nodiscard.verify.cpp
M libcxx/test/libcxx/diagnostics/functional.nodiscard.verify.cpp
A libcxx/test/libcxx/diagnostics/multiset.nodiscard.verify.cpp
M libcxx/test/libcxx/diagnostics/set.nodiscard.verify.cpp
A libcxx/test/libcxx/diagnostics/syserr/nodiscard.verify.cpp
M libcxx/test/libcxx/language.support/nodiscard.verify.cpp
A libcxx/test/libcxx/memory/allocator_triviality.compile.pass.cpp
A libcxx/test/libcxx/memory/allocator_triviality.deprecated_abi.compile.pass.cpp
R libcxx/test/libcxx/memory/allocator_void.trivial.compile.pass.cpp
A libcxx/test/libcxx/numerics/numarray/nodiscard.verify.cpp
A libcxx/test/libcxx/utilities/intseq/nodiscard.verify.cpp
A libcxx/test/libcxx/utilities/optional/nodiscard.verify.cpp
M libcxx/test/libcxx/utilities/smartptr/nodiscard.verify.cpp
A libcxx/test/libcxx/utilities/template.bitset/index_const.pass.cpp
A libcxx/test/libcxx/utilities/template.bitset/nodiscard.verify.cpp
A libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/for_each.associative.pass.cpp
M libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/for_each.pass.cpp
A libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/ranges.for_each.associative.pass copy.cpp
A libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/lost_wakeup.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/copy_assign.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/deduct.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/deduct_pmr.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/initializer_list.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/iter_iter.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/move_assign.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/pmr.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/range.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/sorted_container.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/sorted_initializer_list.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.cons/sorted_iter_iter.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/erase_key.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.map/flat.map.observers/comp.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/copy_assign.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/deduct.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/deduct_pmr.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/initializer_list.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/iter_iter.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/move_assign.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/pmr.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/range.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/sorted_container.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/sorted_initializer_list.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.cons/sorted_iter_iter.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.modifiers/erase_key.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multimap/flat.multimap.observers/comp.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/move.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/move_assign.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_iter_iter.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.iterators/iterator.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/move.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/move_assign.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/sorted_iter_iter.pass.cpp
M libcxx/test/std/containers/container.adaptors/flat.set/flat.set.iterators/iterator.pass.cpp
M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.status/status.pass.cpp
M libcxx/test/std/utilities/optional/optional.monadic/and_then.pass.cpp
M libcxx/test/std/utilities/optional/optional.monadic/or_else.pass.cpp
M libcxx/test/std/utilities/optional/optional.monadic/transform.pass.cpp
M libcxx/test/std/utilities/optional/optional.specalg/make_optional_explicit.pass.cpp
M libcxx/test/std/utilities/optional/optional.specalg/make_optional_explicit_initializer_list.pass.cpp
M libcxx/test/std/utilities/template.bitset/bitset.members/index_const.pass.cpp
M libcxx/utils/ci/docker/docker-compose.yml
M libcxx/utils/compare-benchmarks
M libcxxabi/include/CMakeLists.txt
M libcxxabi/src/CMakeLists.txt
M libcxxabi/test/CMakeLists.txt
M libunwind/CMakeLists.txt
M libunwind/include/CMakeLists.txt
M libunwind/src/CMakeLists.txt
M libunwind/src/UnwindCursor.hpp
M libunwind/test/CMakeLists.txt
M lld/ELF/Relocations.cpp
M lld/ELF/Symbols.h
M lld/ELF/Target.h
M lld/MachO/ConcatOutputSection.cpp
M lld/MachO/Config.h
M lld/MachO/Driver.cpp
M lld/MachO/Options.td
M lld/docs/ELF/linker_script.rst
A lld/test/MachO/set-slop-scale.s
M lldb/docs/index.rst
M lldb/docs/resources/build.rst
M lldb/docs/resources/contributing.rst
M lldb/docs/resources/formatterbytecode.rst
M lldb/docs/resources/sbapi.rst
M lldb/docs/use/map.rst
M lldb/docs/use/troubleshooting.rst
M lldb/docs/use/tutorials/creating-custom-breakpoints.md
M lldb/docs/use/tutorials/custom-frame-recognizers.md
M lldb/docs/use/tutorials/implementing-standalone-scripts.md
M lldb/docs/use/tutorials/script-driven-debugging.md
M lldb/docs/use/tutorials/writing-custom-commands.md
M lldb/docs/use/variable.rst
M lldb/examples/python/templates/scripted_process.py
M lldb/include/lldb/API/SBError.h
M lldb/include/lldb/Core/Debugger.h
M lldb/include/lldb/Core/Module.h
M lldb/include/lldb/Expression/ExpressionVariable.h
M lldb/include/lldb/Expression/ObjectFileJIT.h
M lldb/include/lldb/Host/FileAction.h
M lldb/include/lldb/Host/StreamFile.h
M lldb/include/lldb/Host/Terminal.h
M lldb/include/lldb/Host/common/DiagnosticsRendering.h
M lldb/include/lldb/Interpreter/CommandOptionArgumentTable.h
M lldb/include/lldb/Interpreter/CommandReturnObject.h
M lldb/include/lldb/Interpreter/OptionValueFileColonLine.h
M lldb/include/lldb/Symbol/ObjectContainer.h
M lldb/include/lldb/Symbol/ObjectFile.h
M lldb/include/lldb/Symbol/SymbolFile.h
M lldb/include/lldb/Target/Language.h
M lldb/include/lldb/Target/StackID.h
M lldb/include/lldb/Utility/DataExtractor.h
M lldb/include/lldb/lldb-enumerations.h
M lldb/include/lldb/lldb-private-interfaces.h
M lldb/packages/Python/lldbsuite/test/decorators.py
M lldb/packages/Python/lldbsuite/test/lldbtest.py
M lldb/packages/Python/lldbsuite/test/lldbutil.py
M lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py
M lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py
M lldb/source/API/SBDebugger.cpp
M lldb/source/API/SBFrame.cpp
M lldb/source/Commands/CommandObjectBreakpoint.cpp
M lldb/source/Commands/CommandObjectMultiword.cpp
M lldb/source/Commands/CommandObjectTarget.cpp
M lldb/source/Commands/CommandObjectVersion.cpp
M lldb/source/Commands/CommandObjectVersion.h
M lldb/source/Commands/Options.td
M lldb/source/Core/CoreProperties.td
M lldb/source/Core/Debugger.cpp
M lldb/source/Core/FormatEntity.cpp
M lldb/source/Core/IOHandler.cpp
M lldb/source/Core/Module.cpp
M lldb/source/Expression/ExpressionVariable.cpp
M lldb/source/Expression/LLVMUserExpression.cpp
M lldb/source/Expression/Materializer.cpp
M lldb/source/Expression/ObjectFileJIT.cpp
M lldb/source/Host/common/DiagnosticsRendering.cpp
M lldb/source/Host/common/Editline.cpp
M lldb/source/Host/common/FileAction.cpp
M lldb/source/Host/common/Terminal.cpp
M lldb/source/Host/macosx/objcxx/Host.mm
M lldb/source/Host/posix/ProcessLauncherPosixFork.cpp
M lldb/source/Host/windows/ProcessLauncherWindows.cpp
M lldb/source/Interpreter/CommandInterpreter.cpp
M lldb/source/Interpreter/CommandReturnObject.cpp
M lldb/source/Interpreter/Options.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.cpp
M lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp
M lldb/source/Plugins/InstrumentationRuntime/UBSan/InstrumentationRuntimeUBSan.cpp
M lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp
M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
M lldb/source/Plugins/Language/CPlusPlus/GenericList.cpp
M lldb/source/Plugins/Language/CPlusPlus/MsvcStlVariant.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp
M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h
M lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp
M lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h
M lldb/source/Plugins/ObjectContainer/Mach-O-Fileset/ObjectContainerMachOFileset.cpp
M lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.cpp
M lldb/source/Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.cpp
M lldb/source/Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.h
M lldb/source/Plugins/ObjectFile/COFF/ObjectFileCOFF.cpp
M lldb/source/Plugins/ObjectFile/COFF/ObjectFileCOFF.h
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
M lldb/source/Plugins/ObjectFile/JSON/ObjectFileJSON.cpp
M lldb/source/Plugins/ObjectFile/JSON/ObjectFileJSON.h
M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.h
M lldb/source/Plugins/ObjectFile/Minidump/ObjectFileMinidump.cpp
M lldb/source/Plugins/ObjectFile/Minidump/ObjectFileMinidump.h
M lldb/source/Plugins/ObjectFile/PDB/ObjectFilePDB.cpp
M lldb/source/Plugins/ObjectFile/PDB/ObjectFilePDB.h
M lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
M lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h
M lldb/source/Plugins/ObjectFile/XCOFF/ObjectFileXCOFF.cpp
M lldb/source/Plugins/ObjectFile/XCOFF/ObjectFileXCOFF.h
M lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp
M lldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.h
M lldb/source/Plugins/Platform/CMakeLists.txt
A lldb/source/Plugins/Platform/WebAssembly/CMakeLists.txt
A lldb/source/Plugins/Platform/WebAssembly/PlatformWasm.cpp
A lldb/source/Plugins/Platform/WebAssembly/PlatformWasm.h
A lldb/source/Plugins/Platform/WebAssembly/PlatformWasmProperties.td
M lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
M lldb/source/Plugins/Process/scripted/ScriptedFrame.cpp
M lldb/source/Plugins/Process/scripted/ScriptedFrame.h
M lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
M lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp
M lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.h
M lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp
M lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp
M lldb/source/Plugins/SymbolVendor/PECOFF/SymbolVendorPECOFF.cpp
M lldb/source/Plugins/SymbolVendor/wasm/SymbolVendorWasm.cpp
M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
M lldb/source/Symbol/ObjectContainer.cpp
M lldb/source/Symbol/ObjectFile.cpp
M lldb/source/Symbol/SymbolFile.cpp
M lldb/source/Symbol/SymbolVendor.cpp
M lldb/source/Target/ABI.cpp
M lldb/source/Target/Language.cpp
M lldb/source/Target/StackFrame.cpp
M lldb/source/Target/StackFrameList.cpp
M lldb/source/Target/Target.cpp
M lldb/source/Utility/DataExtractor.cpp
M lldb/test/API/functionalities/abbreviation/TestAbbreviations.py
M lldb/test/API/functionalities/ambigous_commands/TestAmbiguousCommands.py
M lldb/test/API/functionalities/breakpoint/breakpoint_by_line_and_column/TestBreakpointByLineAndColumn.py
M lldb/test/API/functionalities/breakpoint/breakpoint_command/TestRegexpBreakCommand.py
A lldb/test/API/functionalities/breakpoint/jit_loader_rtdyld_elf/Makefile
A lldb/test/API/functionalities/breakpoint/jit_loader_rtdyld_elf/TestJitBreakPoint.py
A lldb/test/API/functionalities/breakpoint/jit_loader_rtdyld_elf/jitbp.cpp
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/forward_list/TestDataFormatterGenericForwardList.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/list/TestDataFormatterGenericList.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/list/loop/TestDataFormatterGenericListLoop.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/optional/TestDataFormatterGenericOptional.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/shared_ptr/TestDataFormatterStdSharedPtr.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/unique_ptr/TestDataFormatterStdUniquePtr.py
M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/TestDataFormatterStdVariant.py
A lldb/test/API/functionalities/expr-result-var/Makefile
A lldb/test/API/functionalities/expr-result-var/TestCPPExprResult.py
A lldb/test/API/functionalities/expr-result-var/two-bases.cpp
M lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py
M lldb/test/API/functionalities/scripted_frame_provider/circular_dependency/TestFrameProviderCircularDependency.py
A lldb/test/API/functionalities/scripted_frame_provider/python_helper.py
M lldb/test/API/functionalities/scripted_frame_provider/test_frame_providers.py
M lldb/test/API/functionalities/scripted_process/dummy_scripted_process.py
M lldb/test/API/functionalities/wrong_commands/TestWrongCommands.py
A lldb/test/API/lang/cpp/inline-namespace-in-typename/Makefile
A lldb/test/API/lang/cpp/inline-namespace-in-typename/TestInlineNamespaceInTypename.py
A lldb/test/API/lang/cpp/inline-namespace-in-typename/main.cpp
A lldb/test/API/lang/cpp/template-alias/Makefile
A lldb/test/API/lang/cpp/template-alias/TestTemplateAlias.py
A lldb/test/API/lang/cpp/template-alias/main.cpp
M lldb/test/API/symbol_ondemand/breakpoint_source_regex/TestSourceTextRegexBreakpoint.py
M lldb/test/API/terminal/TestEditlineCompletions.py
M lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py
M lldb/test/API/tools/lldb-dap/module/TestDAP_module.py
M lldb/test/API/tools/lldb-dap/runInTerminal/TestDAP_runInTerminal.py
M lldb/test/Shell/Breakpoint/condition-lang.test
R lldb/test/Shell/Breakpoint/jit-loader_rtdyld_elf.test
M lldb/test/Shell/BuildScript/toolchain-msvc.test
M lldb/test/Shell/Commands/command-dwim-print.test
M lldb/test/Shell/Commands/command-expr-diagnostics.test
M lldb/test/Shell/Commands/command-options.test
A lldb/test/Shell/Commands/command-version.test
M lldb/test/Shell/Commands/command-wrong-subcommand-error-msg.test
A lldb/test/Shell/Expr/TestExprLanguageNote_NoDebug.cpp
M lldb/test/Shell/SymbolFile/NativePDB/Inputs/ast-types.lldbinit
M lldb/test/Shell/SymbolFile/NativePDB/ast-types.cpp
M lldb/test/Shell/Symtab/Inputs/simple.wasm.yaml
M lldb/test/Shell/Symtab/symtab-wasm.test
M lldb/tools/lldb-dap/DAP.cpp
M lldb/tools/lldb-dap/DAP.h
M lldb/tools/lldb-dap/DAPLog.cpp
M lldb/tools/lldb-dap/DAPLog.h
M lldb/tools/lldb-dap/DAPSessionManager.cpp
M lldb/tools/lldb-dap/EventHelper.cpp
M lldb/tools/lldb-dap/EventHelper.h
M lldb/tools/lldb-dap/Handler/DisassembleRequestHandler.cpp
M lldb/tools/lldb-dap/Handler/PauseRequestHandler.cpp
M lldb/tools/lldb-dap/Handler/RequestHandler.h
M lldb/tools/lldb-dap/JSONUtils.cpp
M lldb/tools/lldb-dap/JSONUtils.h
M lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp
M lldb/tools/lldb-dap/Protocol/ProtocolRequests.h
M lldb/tools/lldb-dap/Transport.cpp
M lldb/tools/lldb-dap/Transport.h
M lldb/tools/lldb-dap/tool/lldb-dap.cpp
M lldb/unittests/DAP/CMakeLists.txt
A lldb/unittests/DAP/DAPLogTest.cpp
M lldb/unittests/DAP/ProtocolRequestsTest.cpp
M lldb/unittests/DAP/TestBase.cpp
M lldb/unittests/DAP/TestBase.h
M lldb/unittests/Host/JSONTransportTest.cpp
M lldb/unittests/Host/common/DiagnosticsRenderingTest.cpp
M lldb/unittests/Interpreter/TestOptions.cpp
M lldb/unittests/Platform/Android/AdbClientTest.cpp
M llvm/CMakeLists.txt
A llvm/CMakePresets.json
M llvm/bindings/ocaml/llvm/llvm_ocaml.c
M llvm/docs/AMDGPUUsage.rst
M llvm/docs/CMake.rst
M llvm/docs/CommandGuide/lit.rst
M llvm/docs/GitBisecting.rst
M llvm/docs/LangRef.rst
M llvm/docs/ProgrammersManual.rst
M llvm/docs/RISCVUsage.rst
M llvm/docs/ReleaseNotes.md
M llvm/docs/SPIRVUsage.rst
M llvm/examples/OrcV2Examples/OrcV2CBindingsAddObjectFile/OrcV2CBindingsAddObjectFile.c
M llvm/examples/OrcV2Examples/OrcV2CBindingsBasicUsage/OrcV2CBindingsBasicUsage.c
M llvm/examples/OrcV2Examples/OrcV2CBindingsDumpObjects/OrcV2CBindingsDumpObjects.c
M llvm/examples/OrcV2Examples/OrcV2CBindingsIRTransforms/OrcV2CBindingsIRTransforms.c
M llvm/examples/OrcV2Examples/OrcV2CBindingsMCJITLikeMemoryManager/OrcV2CBindingsMCJITLikeMemoryManager.c
M llvm/examples/OrcV2Examples/OrcV2CBindingsRemovableCode/OrcV2CBindingsRemovableCode.c
M llvm/include/llvm-c/BitReader.h
M llvm/include/llvm-c/Core.h
M llvm/include/llvm-c/Target.h
M llvm/include/llvm/ADT/BitVector.h
M llvm/include/llvm/ADT/STLExtras.h
M llvm/include/llvm/ADT/SmallBitVector.h
M llvm/include/llvm/ADT/StringExtras.h
M llvm/include/llvm/Analysis/Delinearization.h
M llvm/include/llvm/Analysis/RuntimeLibcallInfo.h
M llvm/include/llvm/Analysis/ScalarEvolutionPatternMatch.h
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/CAS/ActionCache.h
M llvm/include/llvm/CAS/BuiltinUnifiedCASDatabases.h
M llvm/include/llvm/CAS/ObjectStore.h
M llvm/include/llvm/CAS/OnDiskGraphDB.h
M llvm/include/llvm/CodeGen/AsmPrinter.h
A llvm/include/llvm/CodeGen/BasicBlockMatchingAndInference.h
M llvm/include/llvm/CodeGen/BasicBlockSectionsProfileReader.h
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/include/llvm/CodeGen/ISDOpcodes.h
M llvm/include/llvm/CodeGen/LibcallLoweringInfo.h
M llvm/include/llvm/CodeGen/MachineBlockHashInfo.h
M llvm/include/llvm/CodeGen/MachineFrameInfo.h
M llvm/include/llvm/CodeGen/Passes.h
M llvm/include/llvm/CodeGen/RuntimeLibcallUtil.h
M llvm/include/llvm/CodeGen/SDPatternMatch.h
M llvm/include/llvm/CodeGen/SelectionDAG.h
M llvm/include/llvm/CodeGen/TargetFrameLowering.h
M llvm/include/llvm/CodeGen/TargetInstrInfo.h
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/include/llvm/Config/llvm-config.h.cmake
M llvm/include/llvm/ExecutionEngine/JITLink/systemz.h
M llvm/include/llvm/ExecutionEngine/Orc/CallSPSViaEPC.h
M llvm/include/llvm/ExecutionEngine/Orc/CallViaEPC.h
M llvm/include/llvm/Frontend/OpenMP/ClauseT.h
M llvm/include/llvm/Frontend/OpenMP/OMP.td
M llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
M llvm/include/llvm/IR/Constants.h
M llvm/include/llvm/IR/DataLayout.h
M llvm/include/llvm/IR/DebugLoc.h
M llvm/include/llvm/IR/Instructions.h
M llvm/include/llvm/IR/Intrinsics.td
M llvm/include/llvm/IR/IntrinsicsAArch64.td
M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
M llvm/include/llvm/IR/IntrinsicsDirectX.td
M llvm/include/llvm/IR/IntrinsicsHexagon.td
M llvm/include/llvm/IR/IntrinsicsHexagonDep.td
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/include/llvm/IR/IntrinsicsX86.td
M llvm/include/llvm/IR/LLVMContext.h
M llvm/include/llvm/IR/Module.h
M llvm/include/llvm/IR/RuntimeLibcalls.h
M llvm/include/llvm/IR/RuntimeLibcalls.td
M llvm/include/llvm/IR/User.h
M llvm/include/llvm/IR/VPIntrinsics.def
M llvm/include/llvm/InitializePasses.h
M llvm/include/llvm/MC/MCInstPrinter.h
M llvm/include/llvm/MC/MCInstrDesc.h
M llvm/include/llvm/Passes/CodeGenPassBuilder.h
M llvm/include/llvm/Passes/PassBuilder.h
M llvm/include/llvm/SandboxIR/Constant.h
M llvm/include/llvm/SandboxIR/Instruction.h
M llvm/include/llvm/SandboxIR/Type.h
M llvm/include/llvm/Support/Hash.h
A llvm/include/llvm/Support/IOSandbox.h
M llvm/include/llvm/Support/VirtualFileSystem.h
M llvm/include/llvm/Target/TargetSelectionDAG.td
M llvm/include/llvm/TargetParser/AArch64FeatPriorities.inc
M llvm/include/llvm/TargetParser/AArch64TargetParser.h
M llvm/include/llvm/TargetParser/RISCVTargetParser.h
M llvm/include/llvm/TargetParser/Triple.h
M llvm/include/llvm/Transforms/IPO/WholeProgramDevirt.h
M llvm/include/llvm/Transforms/Utils/CodeMoverUtils.h
M llvm/include/llvm/Transforms/Utils/DebugSSAUpdater.h
M llvm/include/llvm/Transforms/Utils/SSAUpdaterBulk.h
M llvm/include/llvm/Transforms/Utils/SampleProfileInference.h
M llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
M llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h
M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
M llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h
M llvm/lib/Analysis/AliasAnalysis.cpp
M llvm/lib/Analysis/CmpInstAnalysis.cpp
M llvm/lib/Analysis/ConstantFolding.cpp
M llvm/lib/Analysis/Delinearization.cpp
M llvm/lib/Analysis/DependenceAnalysis.cpp
M llvm/lib/Analysis/InstructionSimplify.cpp
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/lib/Analysis/MemoryBuiltins.cpp
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/Analysis/StackLifetime.cpp
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/Analysis/UniformityAnalysis.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/AsmParser/LLParser.cpp
M llvm/lib/Bitcode/Reader/BitReader.cpp
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
M llvm/lib/CAS/ActionCaches.cpp
M llvm/lib/CAS/OnDiskCommon.cpp
M llvm/lib/CAS/OnDiskCommon.h
M llvm/lib/CAS/OnDiskGraphDB.cpp
M llvm/lib/CAS/UnifiedOnDiskCache.cpp
M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
M llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
M llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
M llvm/lib/CodeGen/AtomicExpandPass.cpp
A llvm/lib/CodeGen/BasicBlockMatchingAndInference.cpp
M llvm/lib/CodeGen/BasicBlockSections.cpp
M llvm/lib/CodeGen/BasicBlockSectionsProfileReader.cpp
M llvm/lib/CodeGen/CFIInstrInserter.cpp
M llvm/lib/CodeGen/CMakeLists.txt
M llvm/lib/CodeGen/ExpandFp.cpp
M llvm/lib/CodeGen/ExpandMemCmp.cpp
M llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
M llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp
M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
M llvm/lib/CodeGen/HardwareLoops.cpp
M llvm/lib/CodeGen/MachineFunction.cpp
M llvm/lib/CodeGen/MachineInstr.cpp
M llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
M llvm/lib/CodeGen/PHIElimination.cpp
M llvm/lib/CodeGen/PrologEpilogInserter.cpp
M llvm/lib/CodeGen/RegisterClassInfo.cpp
M llvm/lib/CodeGen/RegisterScavenging.cpp
M llvm/lib/CodeGen/SafeStack.cpp
M llvm/lib/CodeGen/SelectOptimize.cpp
M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
M llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
M llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/lib/CodeGen/ShrinkWrap.cpp
M llvm/lib/CodeGen/SjLjEHPrepare.cpp
M llvm/lib/CodeGen/StackColoring.cpp
M llvm/lib/CodeGen/TargetLoweringBase.cpp
M llvm/lib/CodeGen/TargetPassConfig.cpp
M llvm/lib/CodeGen/TypePromotion.cpp
M llvm/lib/DebugInfo/DWARF/DWARFDie.cpp
M llvm/lib/DebugInfo/LogicalView/Readers/LVDWARFReader.cpp
M llvm/lib/ExecutionEngine/JITLink/ELF_systemz.cpp
M llvm/lib/ExecutionEngine/JITLink/systemz.cpp
M llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp
M llvm/lib/Frontend/Offloading/OffloadWrapper.cpp
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/IR/AsmWriter.cpp
M llvm/lib/IR/AutoUpgrade.cpp
M llvm/lib/IR/Constants.cpp
M llvm/lib/IR/Core.cpp
M llvm/lib/IR/DataLayout.cpp
M llvm/lib/IR/DebugLoc.cpp
M llvm/lib/IR/Instruction.cpp
M llvm/lib/IR/Instructions.cpp
M llvm/lib/IR/IntrinsicInst.cpp
M llvm/lib/IR/RuntimeLibcalls.cpp
M llvm/lib/IR/User.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/LTO/LTOBackend.cpp
M llvm/lib/LTO/ThinLTOCodeGenerator.cpp
M llvm/lib/LTO/UpdateCompilerUsed.cpp
M llvm/lib/MC/MCAsmStreamer.cpp
M llvm/lib/MC/MCInstPrinter.cpp
M llvm/lib/MC/MCWin64EH.cpp
M llvm/lib/ObjCopy/ConfigManager.cpp
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/SandboxIR/Constant.cpp
M llvm/lib/SandboxIR/Type.cpp
M llvm/lib/Support/CachePruning.cpp
M llvm/lib/Support/LockFileManager.cpp
M llvm/lib/Support/MemoryBuffer.cpp
M llvm/lib/Support/Path.cpp
M llvm/lib/Support/Signals.cpp
M llvm/lib/Support/Unix/Path.inc
M llvm/lib/Support/Unix/Signals.inc
M llvm/lib/Support/VirtualFileSystem.cpp
M llvm/lib/Support/VirtualOutputBackends.cpp
M llvm/lib/Support/Windows/Path.inc
M llvm/lib/Support/Windows/Signals.inc
M llvm/lib/Support/raw_ostream.cpp
M llvm/lib/Support/rpmalloc/CACHE.md
M llvm/lib/Support/rpmalloc/README.md
M llvm/lib/Support/rpmalloc/malloc.c
M llvm/lib/Support/rpmalloc/rpmalloc.c
M llvm/lib/Target/AArch64/AArch64.h
M llvm/lib/Target/AArch64/AArch64A53Fix835769.cpp
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/AArch64/AArch64FMV.td
M llvm/lib/Target/AArch64/AArch64Features.td
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
M llvm/lib/Target/AArch64/AArch64FrameLowering.h
M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.h
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.h
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/lib/Target/AArch64/AArch64LowerHomogeneousPrologEpilog.cpp
M llvm/lib/Target/AArch64/AArch64PerfectShuffle.h
M llvm/lib/Target/AArch64/AArch64Processors.td
M llvm/lib/Target/AArch64/AArch64PrologueEpilogue.cpp
A llvm/lib/Target/AArch64/AArch64RedundantCondBranchPass.cpp
M llvm/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp
M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
M llvm/lib/Target/AArch64/AArch64SchedA320.td
M llvm/lib/Target/AArch64/AArch64SchedA510.td
M llvm/lib/Target/AArch64/AArch64SchedNeoverseN2.td
M llvm/lib/Target/AArch64/AArch64SchedNeoverseN3.td
M llvm/lib/Target/AArch64/AArch64SchedNeoverseV1.td
M llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
M llvm/lib/Target/AArch64/AArch64SchedNeoverseV3.td
M llvm/lib/Target/AArch64/AArch64SchedNeoverseV3AE.td
M llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp
M llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.h
M llvm/lib/Target/AArch64/AArch64Subtarget.cpp
M llvm/lib/Target/AArch64/AArch64Subtarget.h
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
M llvm/lib/Target/AArch64/CMakeLists.txt
M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
M llvm/lib/Target/AArch64/SVEInstrFormats.td
M llvm/lib/Target/AMDGPU/AMDGPU.h
M llvm/lib/Target/AMDGPU/AMDGPU.td
M llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.h
M llvm/lib/Target/AMDGPU/AMDGPUAsanInstrumentation.cpp
M llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
M llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp
M llvm/lib/Target/AMDGPU/AMDGPUGISel.td
M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
M llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/AMDGPUInstructions.td
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h
M llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp
M llvm/lib/Target/AMDGPU/AMDGPUMemoryUtils.cpp
M llvm/lib/Target/AMDGPU/AMDGPUPassRegistry.def
M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td
M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
M llvm/lib/Target/AMDGPU/BUFInstructions.td
M llvm/lib/Target/AMDGPU/CMakeLists.txt
M llvm/lib/Target/AMDGPU/DSInstructions.td
M llvm/lib/Target/AMDGPU/EvergreenInstructions.td
M llvm/lib/Target/AMDGPU/FLATInstructions.td
M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
M llvm/lib/Target/AMDGPU/GCNSubtarget.h
R llvm/lib/Target/AMDGPU/InstCombineTables.td
M llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
M llvm/lib/Target/AMDGPU/SIFrameLowering.h
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
M llvm/lib/Target/AMDGPU/SIInstrInfo.td
M llvm/lib/Target/AMDGPU/SIInstructions.td
M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
M llvm/lib/Target/AMDGPU/SOPInstructions.td
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
M llvm/lib/Target/AMDGPU/VOP2Instructions.td
M llvm/lib/Target/AMDGPU/VOP3Instructions.td
M llvm/lib/Target/AMDGPU/VOP3PInstructions.td
M llvm/lib/Target/ARM/ARMAsmPrinter.cpp
M llvm/lib/Target/ARM/ARMAsmPrinter.h
M llvm/lib/Target/ARM/MVETailPredication.cpp
M llvm/lib/Target/ARM/ThumbRegisterInfo.cpp
M llvm/lib/Target/BPF/BTFDebug.cpp
M llvm/lib/Target/DirectX/DXIL.td
M llvm/lib/Target/DirectX/DirectXTargetTransformInfo.cpp
M llvm/lib/Target/Hexagon/CMakeLists.txt
M llvm/lib/Target/Hexagon/Hexagon.h
M llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp
M llvm/lib/Target/Hexagon/HexagonGenInsert.cpp
M llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp
R llvm/lib/Target/Hexagon/HexagonGenWideningVecFloatInstr.cpp
R llvm/lib/Target/Hexagon/HexagonGenWideningVecInstr.cpp
M llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
M llvm/lib/Target/Hexagon/HexagonISelLowering.h
M llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
M llvm/lib/Target/Hexagon/HexagonIntrinsics.td
M llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
M llvm/lib/Target/Hexagon/HexagonNewValueJump.cpp
R llvm/lib/Target/Hexagon/HexagonOptShuffleVector.cpp
M llvm/lib/Target/Hexagon/HexagonPatterns.td
M llvm/lib/Target/Hexagon/HexagonPatternsHVX.td
M llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
M llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp
M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp
M llvm/lib/Target/LoongArch/Disassembler/LoongArchDisassembler.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
M llvm/lib/Target/LoongArch/LoongArchISelLowering.h
M llvm/lib/Target/LoongArch/LoongArchInstrFormats.td
M llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
M llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
M llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
M llvm/lib/Target/M68k/M68kExpandPseudo.cpp
M llvm/lib/Target/M68k/M68kInstrData.td
M llvm/lib/Target/M68k/M68kInstrInfo.cpp
M llvm/lib/Target/M68k/M68kInstrInfo.h
M llvm/lib/Target/M68k/M68kRegisterInfo.td
M llvm/lib/Target/Mips/CMakeLists.txt
M llvm/lib/Target/Mips/Mips.td
M llvm/lib/Target/Mips/Mips32r6InstrInfo.td
M llvm/lib/Target/Mips/Mips64r6InstrInfo.td
M llvm/lib/Target/Mips/MipsDSPInstrInfo.td
M llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
M llvm/lib/Target/Mips/MipsISelLowering.cpp
M llvm/lib/Target/Mips/MipsISelLowering.h
M llvm/lib/Target/Mips/MipsInstrFPU.td
M llvm/lib/Target/Mips/MipsInstrInfo.td
M llvm/lib/Target/Mips/MipsMSAInstrInfo.td
M llvm/lib/Target/Mips/MipsRegisterInfo.td
M llvm/lib/Target/Mips/MipsSelectionDAGInfo.cpp
M llvm/lib/Target/Mips/MipsSelectionDAGInfo.h
M llvm/lib/Target/Mips/MipsSubtarget.cpp
M llvm/lib/Target/Mips/MipsSubtarget.h
M llvm/lib/Target/NVPTX/CMakeLists.txt
M llvm/lib/Target/NVPTX/NVPTX.h
M llvm/lib/Target/NVPTX/NVPTXCtorDtorLowering.cpp
A llvm/lib/Target/NVPTX/NVPTXIRPeephole.cpp
M llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
M llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.h
M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
M llvm/lib/Target/NVPTX/NVPTXISelLowering.h
M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
M llvm/lib/Target/NVPTX/NVPTXPassRegistry.def
M llvm/lib/Target/NVPTX/NVPTXSubtarget.h
M llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
M llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
M llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h
M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
M llvm/lib/Target/PowerPC/PPCInstrVSX.td
M llvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp
M llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
M llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp
M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
M llvm/lib/Target/RISCV/RISCVCodeGenPrepare.cpp
M llvm/lib/Target/RISCV/RISCVFeatures.td
M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
M llvm/lib/Target/RISCV/RISCVFrameLowering.h
M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/lib/Target/RISCV/RISCVISelLowering.h
M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
M llvm/lib/Target/RISCV/RISCVInstrInfo.td
M llvm/lib/Target/RISCV/RISCVInstrInfoA.td
M llvm/lib/Target/RISCV/RISCVInstrInfoF.td
M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
M llvm/lib/Target/RISCV/RISCVInstrInfoV.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXAndes.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXCV.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXRivos.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXSf.td
M llvm/lib/Target/RISCV/RISCVInstrInfoXSfmm.td
M llvm/lib/Target/RISCV/RISCVInstrInfoZb.td
M llvm/lib/Target/RISCV/RISCVInstrInfoZvfbf.td
M llvm/lib/Target/RISCV/RISCVLoadStoreOptimizer.cpp
M llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp
M llvm/lib/Target/RISCV/RISCVRegisterInfo.td
M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
M llvm/lib/Target/RISCV/RISCVSchedSpacemitX60.td
M llvm/lib/Target/RISCV/RISCVSchedTTAscalonD8.td
M llvm/lib/Target/RISCV/RISCVScheduleV.td
M llvm/lib/Target/RISCV/RISCVSubtarget.h
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVInstPrinter.cpp
M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
M llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
M llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
M llvm/lib/Target/SPIRV/SPIRVPreLegalizer.cpp
M llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.cpp
M llvm/lib/Target/SPIRV/SPIRVRegularizer.cpp
M llvm/lib/Target/SPIRV/SPIRVSymbolicOperands.td
M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
M llvm/lib/Target/SPIRV/SPIRVUtils.h
M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
M llvm/lib/Target/Target.cpp
M llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp
M llvm/lib/Target/X86/GISel/X86LegalizerInfo.cpp
M llvm/lib/Target/X86/X86CompressEVEX.cpp
M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/lib/Target/X86/X86ISelLowering.h
M llvm/lib/Target/X86/X86ISelLoweringCall.cpp
M llvm/lib/Target/X86/X86InstrCMovSetCC.td
M llvm/lib/Target/X86/X86IntrinsicsInfo.h
M llvm/lib/Target/X86/X86LowerAMXType.cpp
M llvm/lib/Target/X86/X86Subtarget.h
M llvm/lib/Target/XCore/XCoreTargetMachine.cpp
M llvm/lib/TargetParser/AArch64TargetParser.cpp
M llvm/lib/TargetParser/RISCVTargetParser.cpp
M llvm/lib/TargetParser/TargetDataLayout.cpp
M llvm/lib/TargetParser/TargetParser.cpp
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
M llvm/lib/Transforms/IPO/GlobalOpt.cpp
M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
M llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
M llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
M llvm/lib/Transforms/Instrumentation/KCFI.cpp
M llvm/lib/Transforms/Instrumentation/MemProfUse.cpp
M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
M llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
M llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
M llvm/lib/Transforms/Scalar/InferAlignment.cpp
M llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp
M llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
M llvm/lib/Transforms/Scalar/LoopFlatten.cpp
M llvm/lib/Transforms/Scalar/LoopFuse.cpp
M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
M llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp
M llvm/lib/Transforms/Scalar/LoopPredication.cpp
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
M llvm/lib/Transforms/Scalar/LoopTermFold.cpp
M llvm/lib/Transforms/Scalar/NaryReassociate.cpp
M llvm/lib/Transforms/Scalar/Scalarizer.cpp
M llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
M llvm/lib/Transforms/Utils/BuildLibCalls.cpp
M llvm/lib/Transforms/Utils/BypassSlowDivision.cpp
M llvm/lib/Transforms/Utils/CodeMoverUtils.cpp
M llvm/lib/Transforms/Utils/FunctionComparator.cpp
M llvm/lib/Transforms/Utils/LoopConstrainer.cpp
M llvm/lib/Transforms/Utils/LoopPeel.cpp
M llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
M llvm/lib/Transforms/Utils/LoopVersioning.cpp
M llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp
M llvm/lib/Transforms/Utils/SampleProfileInference.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
M llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
M llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
M llvm/lib/Transforms/Vectorize/VPlanValue.h
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/runtimes/CMakeLists.txt
A llvm/test/Analysis/CostModel/AArch64/loop_dependence_mask.ll
A llvm/test/Analysis/CostModel/RISCV/fshl_fshr.ll
M llvm/test/Analysis/CostModel/RISCV/vp-intrinsics.ll
M llvm/test/Analysis/UniformityAnalysis/AMDGPU/MIR/atomics-gmir.mir
M llvm/test/Analysis/UniformityAnalysis/AMDGPU/atomics.ll
M llvm/test/Assembler/ptrtoaddr-invalid-constexpr.ll
A llvm/test/Assembler/symbolic-addrspace-datalayout.ll
M llvm/test/Bitcode/amdgcn-atomic.ll
M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-inline-asm.ll
M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
M llvm/test/CodeGen/AArch64/O3-pipeline.ll
M llvm/test/CodeGen/AArch64/aarch64-bf16-dotprod-intrinsics.ll
M llvm/test/CodeGen/AArch64/alias_mask.ll
M llvm/test/CodeGen/AArch64/alias_mask_nosve.ll
M llvm/test/CodeGen/AArch64/alias_mask_scalable.ll
M llvm/test/CodeGen/AArch64/alias_mask_scalable_nosve2.ll
A llvm/test/CodeGen/AArch64/apply-terminal-rule.mir
A llvm/test/CodeGen/AArch64/arm64-cvt-simd-round-rint-strictfp.ll
A llvm/test/CodeGen/AArch64/arm64-cvt-simd-round-rint.ll
A llvm/test/CodeGen/AArch64/arm64-homogeneous-prolog-epilog-tail-call.mir
M llvm/test/CodeGen/AArch64/arm64-int-neon.ll
M llvm/test/CodeGen/AArch64/arm64-rev.ll
M llvm/test/CodeGen/AArch64/arm64-rounding.ll
M llvm/test/CodeGen/AArch64/arm64-shrink-wrapping.ll
M llvm/test/CodeGen/AArch64/arm64-trn.ll
M llvm/test/CodeGen/AArch64/arm64-vshift.ll
M llvm/test/CodeGen/AArch64/arm64ec-reservedregs.ll
M llvm/test/CodeGen/AArch64/atomic-ops.ll
M llvm/test/CodeGen/AArch64/bf16-v8-instructions.ll
M llvm/test/CodeGen/AArch64/block-placement-optimize-branches.ll
M llvm/test/CodeGen/AArch64/cbz_wzr.mir
M llvm/test/CodeGen/AArch64/combine-sdiv.ll
M llvm/test/CodeGen/AArch64/fixed-length-bf16-arith.ll
M llvm/test/CodeGen/AArch64/fixed-vector-deinterleave.ll
M llvm/test/CodeGen/AArch64/floatdp_1source.ll
M llvm/test/CodeGen/AArch64/framelayout-sve-win.mir
A llvm/test/CodeGen/AArch64/ignore-signed-zero.ll
M llvm/test/CodeGen/AArch64/llvm.frexp.ll
R llvm/test/CodeGen/AArch64/loop-dependence-mask-ccmp.ll
M llvm/test/CodeGen/AArch64/lr-reserved-for-ra-live-in.ll
M llvm/test/CodeGen/AArch64/neon-addlv.ll
M llvm/test/CodeGen/AArch64/pr164181.ll
M llvm/test/CodeGen/AArch64/pr166870.ll
M llvm/test/CodeGen/AArch64/preserve_mostcc.ll
M llvm/test/CodeGen/AArch64/preserve_nonecc_varargs_win64.ll
M llvm/test/CodeGen/AArch64/ptrauth-irelative.ll
M llvm/test/CodeGen/AArch64/reduce-shuffle.ll
M llvm/test/CodeGen/AArch64/rem-by-const.ll
M llvm/test/CodeGen/AArch64/round-conv.ll
M llvm/test/CodeGen/AArch64/round-fptosi-sat-scalar.ll
M llvm/test/CodeGen/AArch64/round-fptoui-sat-scalar.ll
M llvm/test/CodeGen/AArch64/selectopt-cast.ll
M llvm/test/CodeGen/AArch64/sme-lazy-save-windows.ll
A llvm/test/CodeGen/AArch64/sme2-intrinsics-bfmul.ll
A llvm/test/CodeGen/AArch64/sme2-intrinsics-bfscale.ll
A llvm/test/CodeGen/AArch64/sme2p2-intrinsics-fmul.ll
M llvm/test/CodeGen/AArch64/srem-lkk.ll
M llvm/test/CodeGen/AArch64/streaming-compatible-memory-ops.ll
A llvm/test/CodeGen/AArch64/sve-fixed-length-fptrunc.ll
A llvm/test/CodeGen/AArch64/sve-fmmla-f32f16.ll
A llvm/test/CodeGen/AArch64/sve-fmsub.ll
M llvm/test/CodeGen/AArch64/sve-int-mulh-pred.ll
M llvm/test/CodeGen/AArch64/sve-ld1-addressing-mode-reg-imm.ll
M llvm/test/CodeGen/AArch64/sve-st1-addressing-mode-reg-imm.ll
A llvm/test/CodeGen/AArch64/sve2-fmmla-f16mf8.ll
A llvm/test/CodeGen/AArch64/sve2-fmmla-f32mf8.ll
M llvm/test/CodeGen/AArch64/sve2-int-mulh.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-uniform-dsp-undef.ll
M llvm/test/CodeGen/AArch64/sve2-intrinsics-uniform-dsp.ll
M llvm/test/CodeGen/AArch64/swift-async-win.ll
M llvm/test/CodeGen/AArch64/tbi.ll
M llvm/test/CodeGen/AArch64/tbz-tbnz.ll
M llvm/test/CodeGen/AArch64/vector-llrint.ll
M llvm/test/CodeGen/AArch64/vector-lrint.ll
M llvm/test/CodeGen/AArch64/win64-no-uwtable.ll
M llvm/test/CodeGen/AArch64/wineh-pac.ll
A llvm/test/CodeGen/AMDGPU/GlobalISel/buffer-load-byte-short.ll
A llvm/test/CodeGen/AMDGPU/GlobalISel/fpext.ll
A llvm/test/CodeGen/AMDGPU/GlobalISel/fsub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-extract-vector-elt.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-insert-vector-elt.mir
R llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.global.atomic.csub.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.raw.ptr.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.struct.ptr.buffer.load.ll
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-fpext.mir
M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-fsub.mir
M llvm/test/CodeGen/AMDGPU/agpr-copy-no-free-registers.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-lower-exec-sync-and-module-lds.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-lower-exec-sync.ll
A llvm/test/CodeGen/AMDGPU/atomicrmw_usub_cond.ll
A llvm/test/CodeGen/AMDGPU/atomicrmw_usub_sat.ll
M llvm/test/CodeGen/AMDGPU/atomics_cond_sub.ll
A llvm/test/CodeGen/AMDGPU/attr-amdgpu-align.ll
M llvm/test/CodeGen/AMDGPU/bf16.ll
A llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-usub_cond.ll
A llvm/test/CodeGen/AMDGPU/buffer-fat-pointer-atomicrmw-usub_sat.ll
M llvm/test/CodeGen/AMDGPU/cgp-addressing-modes-gfx1030.ll
M llvm/test/CodeGen/AMDGPU/dagcombine-fmul-sel.ll
M llvm/test/CodeGen/AMDGPU/dagcombine-reassociate-bug.ll
M llvm/test/CodeGen/AMDGPU/extract-subvector-16bit.ll
M llvm/test/CodeGen/AMDGPU/fcanonicalize-elimination.ll
M llvm/test/CodeGen/AMDGPU/fcanonicalize.f16.ll
M llvm/test/CodeGen/AMDGPU/fcopysign.f16.ll
M llvm/test/CodeGen/AMDGPU/fdiv.f16.ll
A llvm/test/CodeGen/AMDGPU/flat-scratch-alloca-issue-155902.ll
M llvm/test/CodeGen/AMDGPU/floor.ll
M llvm/test/CodeGen/AMDGPU/fmaximum3.ll
M llvm/test/CodeGen/AMDGPU/fminimum3.ll
M llvm/test/CodeGen/AMDGPU/fmul-to-ldexp.ll
M llvm/test/CodeGen/AMDGPU/fold-int-pow2-with-fmul-or-fdiv.ll
M llvm/test/CodeGen/AMDGPU/fp_to_sint.ll
M llvm/test/CodeGen/AMDGPU/fp_to_uint.ll
M llvm/test/CodeGen/AMDGPU/fp_trunc_store_fp32_to_bf16.ll
M llvm/test/CodeGen/AMDGPU/fpow.ll
M llvm/test/CodeGen/AMDGPU/fptrunc.f16.ll
M llvm/test/CodeGen/AMDGPU/fract-match.ll
M llvm/test/CodeGen/AMDGPU/fsub-as-fneg-src-modifier.ll
M llvm/test/CodeGen/AMDGPU/global-saddr-atomics.gfx1030.ll
M llvm/test/CodeGen/AMDGPU/half.ll
M llvm/test/CodeGen/AMDGPU/hazards-gfx1250.mir
M llvm/test/CodeGen/AMDGPU/idot2.ll
M llvm/test/CodeGen/AMDGPU/idot4s.ll
M llvm/test/CodeGen/AMDGPU/idot8u.ll
M llvm/test/CodeGen/AMDGPU/inlineasm-mismatched-size-error.ll
A llvm/test/CodeGen/AMDGPU/insert-waitcnts-merge.ll
M llvm/test/CodeGen/AMDGPU/isel-amdgcn-cs-chain-intrinsic-w32.ll
M llvm/test/CodeGen/AMDGPU/lds-dma-waits.ll
M llvm/test/CodeGen/AMDGPU/llc-pipeline-npm.ll
R llvm/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.cond.sub.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fma.legacy.ll
M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.atomic.csub.ll
M llvm/test/CodeGen/AMDGPU/llvm.ceil.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.cos.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.exp10.ll
M llvm/test/CodeGen/AMDGPU/llvm.floor.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.frexp.ll
M llvm/test/CodeGen/AMDGPU/llvm.ldexp.ll
M llvm/test/CodeGen/AMDGPU/llvm.log.ll
M llvm/test/CodeGen/AMDGPU/llvm.log10.ll
M llvm/test/CodeGen/AMDGPU/llvm.log2.ll
M llvm/test/CodeGen/AMDGPU/llvm.rint.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.round.ll
M llvm/test/CodeGen/AMDGPU/llvm.sin.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.sqrt.f16.ll
M llvm/test/CodeGen/AMDGPU/llvm.trunc.f16.ll
M llvm/test/CodeGen/AMDGPU/mad-mix-hi.ll
M llvm/test/CodeGen/AMDGPU/mad-mix-lo.ll
M llvm/test/CodeGen/AMDGPU/packetizer.ll
M llvm/test/CodeGen/AMDGPU/permute.ll
A llvm/test/CodeGen/AMDGPU/phi-elim-mli-available.mir
M llvm/test/CodeGen/AMDGPU/private-memory-atomics.ll
A llvm/test/CodeGen/AMDGPU/promote-alloca-cfg.ll
M llvm/test/CodeGen/AMDGPU/promote-alloca-multidim.ll
M llvm/test/CodeGen/AMDGPU/promote-alloca-negative-index.ll
M llvm/test/CodeGen/AMDGPU/promote-alloca-scoring.ll
M llvm/test/CodeGen/AMDGPU/promote-alloca-vector-to-vector.ll
M llvm/test/CodeGen/AMDGPU/promote-constOffset-to-imm.ll
M llvm/test/CodeGen/AMDGPU/repeated-divisor.ll
M llvm/test/CodeGen/AMDGPU/rotl.ll
M llvm/test/CodeGen/AMDGPU/rotr.ll
M llvm/test/CodeGen/AMDGPU/roundeven.ll
A llvm/test/CodeGen/AMDGPU/s-wakeup-barrier.ll
M llvm/test/CodeGen/AMDGPU/select-fabs-fneg-extract.v2f16.ll
M llvm/test/CodeGen/AMDGPU/sext-in-reg-vector-shuffle.ll
M llvm/test/CodeGen/AMDGPU/shl.ll
M llvm/test/CodeGen/AMDGPU/shl_add_ptr_csub.ll
M llvm/test/CodeGen/AMDGPU/sint_to_fp.i64.ll
M llvm/test/CodeGen/AMDGPU/sitofp.f16.ll
M llvm/test/CodeGen/AMDGPU/splitkit-getsubrangeformask.ll
M llvm/test/CodeGen/AMDGPU/swdev380865.ll
M llvm/test/CodeGen/AMDGPU/true16-imm-folded-to-0-regression.ll
M llvm/test/CodeGen/AMDGPU/trunc-store-f64-to-f16.ll
M llvm/test/CodeGen/AMDGPU/trunc-store.ll
M llvm/test/CodeGen/AMDGPU/uint_to_fp.i64.ll
M llvm/test/CodeGen/AMDGPU/uitofp.f16.ll
M llvm/test/CodeGen/AMDGPU/v_pack.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-fmax.ll
M llvm/test/CodeGen/AMDGPU/vector-reduce-fmin.ll
M llvm/test/CodeGen/AMDGPU/waitcnt-vscnt.ll
M llvm/test/CodeGen/ARM/arm32-round-conv.ll
M llvm/test/CodeGen/ARM/arm32-rounding.ll
A llvm/test/CodeGen/ARM/cmse-entry-alias.ll
M llvm/test/CodeGen/ARM/floorf.ll
A llvm/test/CodeGen/DirectX/ddx_fine-errors.ll
A llvm/test/CodeGen/DirectX/ddx_fine.ll
A llvm/test/CodeGen/DirectX/ddy_fine-errors.ll
A llvm/test/CodeGen/DirectX/ddy_fine.ll
M llvm/test/CodeGen/Generic/reloc-none.ll
M llvm/test/CodeGen/Hexagon/autohvx/arith.ll
M llvm/test/CodeGen/Hexagon/autohvx/isel-vpackew.ll
M llvm/test/CodeGen/Hexagon/autohvx/widen-setcc.ll
M llvm/test/CodeGen/Hexagon/bfloat_vec.ll
R llvm/test/CodeGen/Hexagon/bug54537-vavg.ll
R llvm/test/CodeGen/Hexagon/extend-multiply-for-output-fpext.ll
R llvm/test/CodeGen/Hexagon/no_widening_of_bf16_vecmul.ll
R llvm/test/CodeGen/Hexagon/shortvec-vasrsat.ll
R llvm/test/CodeGen/Hexagon/shortvec-vavg.ll
R llvm/test/CodeGen/Hexagon/shortvec-vmpy.ll
R llvm/test/CodeGen/Hexagon/vadd-const.ll
R llvm/test/CodeGen/Hexagon/vasr-sat.ll
R llvm/test/CodeGen/Hexagon/vavg.ll
R llvm/test/CodeGen/Hexagon/vec-shuff-invalid-operand.ll
R llvm/test/CodeGen/Hexagon/vec-shuff-multi-uses.ll
R llvm/test/CodeGen/Hexagon/vec-shuff2.ll
R llvm/test/CodeGen/Hexagon/vmpa.ll
R llvm/test/CodeGen/Hexagon/vmpy-const.ll
R llvm/test/CodeGen/Hexagon/vmpy-qfp-const.ll
R llvm/test/CodeGen/Hexagon/vsub-const.ll
R llvm/test/CodeGen/Hexagon/widening-float-vec.ll
R llvm/test/CodeGen/Hexagon/widening-vec.ll
R llvm/test/CodeGen/Hexagon/widening-vec2.ll
M llvm/test/CodeGen/LoongArch/lasx/bitreverse.ll
M llvm/test/CodeGen/LoongArch/lasx/ir-instruction/avg.ll
A llvm/test/CodeGen/LoongArch/lasx/issue170976.ll
M llvm/test/CodeGen/LoongArch/lsx/bitreverse.ll
M llvm/test/CodeGen/LoongArch/lsx/ir-instruction/avg.ll
A llvm/test/CodeGen/LoongArch/lsx/issue170976.ll
M llvm/test/CodeGen/LoongArch/trap.ll
M llvm/test/CodeGen/M68k/Control/non-cmov-switch.ll
M llvm/test/CodeGen/Mips/branch-relaxation-with-hazard.ll
A llvm/test/CodeGen/Mips/compact-branch-combine-never.ll
A llvm/test/CodeGen/Mips/compact-branch-combine.ll
M llvm/test/CodeGen/Mips/compactbranches/unsafe-in-forbidden-slot.ll
M llvm/test/CodeGen/Mips/llvm-ir/fptosi.ll
M llvm/test/CodeGen/Mips/llvm-ir/load.ll
M llvm/test/CodeGen/Mips/llvm-ir/store.ll
M llvm/test/CodeGen/Mips/longbranch/compact-branches-long-branch.ll
M llvm/test/CodeGen/Mips/micromips-pseudo-mtlohi-expand.ll
M llvm/test/CodeGen/Mips/mips64-f128.ll
M llvm/test/CodeGen/Mips/named-register-n32.ll
M llvm/test/CodeGen/Mips/named-register-n64.ll
M llvm/test/CodeGen/Mips/named-register-o32.ll
M llvm/test/CodeGen/Mips/setcc-se.ll
M llvm/test/CodeGen/NVPTX/LoadStoreVectorizer.ll
M llvm/test/CodeGen/NVPTX/jump-table.ll
A llvm/test/CodeGen/NVPTX/masked-load-3xhalf.ll
A llvm/test/CodeGen/NVPTX/nvptx-fold-fma.ll
M llvm/test/CodeGen/NVPTX/param-vectorize-device.ll
M llvm/test/CodeGen/NVPTX/switch.ll
A llvm/test/CodeGen/NVPTX/used-bytes-mask.ll
M llvm/test/CodeGen/PowerPC/aix-cc-abi-mir.ll
M llvm/test/CodeGen/PowerPC/aix-cc-abi.ll
M llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable.ll
M llvm/test/CodeGen/PowerPC/aix-xcoff-data.ll
M llvm/test/CodeGen/PowerPC/aix32-cc-abi-vaarg-mir.ll
M llvm/test/CodeGen/PowerPC/aix32-cc-abi-vaarg.ll
M llvm/test/CodeGen/PowerPC/aix32-vector-vararg-callee.ll
M llvm/test/CodeGen/PowerPC/aix64-cc-abi-vaarg-mir.ll
M llvm/test/CodeGen/PowerPC/aix64-cc-abi-vaarg.ll
M llvm/test/CodeGen/PowerPC/aix64-vector-vararg-callee.ll
M llvm/test/CodeGen/PowerPC/aix64-vector-vararg-fixed-callee.ll
M llvm/test/CodeGen/PowerPC/ctr-minmaxnum.ll
M llvm/test/CodeGen/PowerPC/fminimum-fmaximum.ll
M llvm/test/CodeGen/PowerPC/fminnum.ll
A llvm/test/CodeGen/PowerPC/optimize-vector-not-equal.ll
M llvm/test/CodeGen/PowerPC/rounding-ops.ll
M llvm/test/CodeGen/PowerPC/scalar-min-max.ll
A llvm/test/CodeGen/PowerPC/splat-after-xxsldwi.ll
M llvm/test/CodeGen/PowerPC/vec_rounding.ll
A llvm/test/CodeGen/RISCV/GlobalISel/fp-fcanonicalize.ll
M llvm/test/CodeGen/RISCV/GlobalISel/instruction-select/rvv/select.mir
M llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir
M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-insert-subvector.mir
M llvm/test/CodeGen/RISCV/attributes.ll
M llvm/test/CodeGen/RISCV/branch-relaxation-rv32.ll
M llvm/test/CodeGen/RISCV/branch-relaxation-rv64.ll
M llvm/test/CodeGen/RISCV/double-zfa.ll
M llvm/test/CodeGen/RISCV/float-zfa.ll
M llvm/test/CodeGen/RISCV/mul.ll
M llvm/test/CodeGen/RISCV/rv32p.ll
M llvm/test/CodeGen/RISCV/rv64p.ll
M llvm/test/CodeGen/RISCV/rvp-ext-rv32.ll
M llvm/test/CodeGen/RISCV/rvp-ext-rv64.ll
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfadd-sdnode.ll
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmul-sdnode.ll
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfrsub-sdnode.ll
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfsub-sdnode.ll
R llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vp-splat.ll
M llvm/test/CodeGen/RISCV/rvv/pass-fast-math-flags-sdnode.ll
A llvm/test/CodeGen/RISCV/rvv/pr171141.ll
M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-to-vmv.mir
M llvm/test/CodeGen/RISCV/rvv/sifive-xsfmm-vset-insert.mir
M llvm/test/CodeGen/RISCV/rvv/sink-splat-operands.ll
M llvm/test/CodeGen/RISCV/rvv/strided-vpload-vpstore-output.ll
M llvm/test/CodeGen/RISCV/rvv/subregister-undef-early-clobber.mir
M llvm/test/CodeGen/RISCV/rvv/vfadd-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfmul-sdnode.ll
A llvm/test/CodeGen/RISCV/rvv/vfrsub-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vfsub-sdnode.ll
M llvm/test/CodeGen/RISCV/rvv/vleff-vlseg2ff-output.ll
M llvm/test/CodeGen/RISCV/rvv/vmerge-peephole.mir
M llvm/test/CodeGen/RISCV/rvv/vmv.v.v-peephole.mir
R llvm/test/CodeGen/RISCV/rvv/vp-splat-mask.ll
R llvm/test/CodeGen/RISCV/rvv/vp-splat.ll
M llvm/test/CodeGen/RISCV/rvv/vsetvli-insert-crossbb.mir
A llvm/test/CodeGen/RISCV/xqcilsm-lwmi-swmi.mir
M llvm/test/CodeGen/SPARC/optcompare.ll
A llvm/test/CodeGen/SPIRV/const-array-gep.ll
A llvm/test/CodeGen/SPIRV/extensions/SPV_ALTERA_arbitrary_precision_integers/i128-addsub.ll
A llvm/test/CodeGen/SPIRV/extensions/SPV_ALTERA_arbitrary_precision_integers/i128-arith.ll
A llvm/test/CodeGen/SPIRV/extensions/SPV_ALTERA_arbitrary_precision_integers/i128-switch-lower.ll
A llvm/test/CodeGen/SPIRV/extensions/SPV_NV_shader_atomic_fp16_vector/atomicrmw_faddfsub_vec_float16.ll
A llvm/test/CodeGen/SPIRV/extensions/SPV_NV_shader_atomic_fp16_vector/atomicrmw_fminfmax_vec_float16.ll
M llvm/test/CodeGen/SPIRV/extensions/enable-all-extensions-but-one.ll
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/ddx.ll
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/ddx_fine.ll
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/ddy.ll
A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/ddy_fine.ll
A llvm/test/CodeGen/SPIRV/opencl/ddx-error.ll
A llvm/test/CodeGen/SPIRV/opencl/ddx_fine-error.ll
A llvm/test/CodeGen/SPIRV/opencl/ddy-error.ll
A llvm/test/CodeGen/SPIRV/opencl/ddy_fine-error.ll
A llvm/test/CodeGen/SPIRV/pointers/fun-with-aggregate-arg-in-const-init.ll
A llvm/test/CodeGen/SPIRV/pointers/ptr-argument-byref-amdgcnspirv.ll
A llvm/test/CodeGen/SPIRV/transcoding/OpExtInst_vector_promotion.ll
A llvm/test/CodeGen/SPIRV/transcoding/OpExtInst_vector_promotion_bug.ll
R llvm/test/CodeGen/SPIRV/transcoding/OpMin.ll
A llvm/test/CodeGen/SystemZ/condfolding.ll
M llvm/test/CodeGen/SystemZ/vec-max-05.ll
M llvm/test/CodeGen/SystemZ/vec-min-05.ll
M llvm/test/CodeGen/Thumb/umulo-128-legalisation-lowering.ll
M llvm/test/CodeGen/Thumb2/mve-vmulh.ll
M llvm/test/CodeGen/X86/any_extend_vector_inreg_of_broadcast_from_memory.ll
M llvm/test/CodeGen/X86/apx/compress-evex.mir
M llvm/test/CodeGen/X86/apx/setzucc.ll
M llvm/test/CodeGen/X86/atomic-fp.ll
M llvm/test/CodeGen/X86/avgfloors-scalar.ll
M llvm/test/CodeGen/X86/avgflooru-scalar.ll
M llvm/test/CodeGen/X86/avx10.2-intrinsic-upgrade.ll
M llvm/test/CodeGen/X86/avx10_2_512ni-intrinsics.ll
M llvm/test/CodeGen/X86/avx10_2ni-intrinsics.ll
M llvm/test/CodeGen/X86/avx10_2satcvtds-intrinsics.ll
M llvm/test/CodeGen/X86/avx512vl_vnni-intrinsics.ll
M llvm/test/CodeGen/X86/avx512vnni-intrinsics-upgrade.ll
M llvm/test/CodeGen/X86/avx512vnni-intrinsics.ll
M llvm/test/CodeGen/X86/avx_vnni-intrinsics-upgrade.ll
M llvm/test/CodeGen/X86/avx_vnni-intrinsics.ll
A llvm/test/CodeGen/X86/avxvnniint16-intrinsics-upgrade.ll
M llvm/test/CodeGen/X86/avxvnniint16-intrinsics.ll
A llvm/test/CodeGen/X86/basic-block-sections-clusters-bb-hash.ll
M llvm/test/CodeGen/X86/bitcnt-big-integer.ll
M llvm/test/CodeGen/X86/compress-undef-float-passthrough.ll
M llvm/test/CodeGen/X86/elementwise-store-of-scalar-splat.ll
M llvm/test/CodeGen/X86/fmaxnum.ll
M llvm/test/CodeGen/X86/fminnum.ll
M llvm/test/CodeGen/X86/isel-icmp.ll
M llvm/test/CodeGen/X86/merge-consecutive-loads-128.ll
A llvm/test/CodeGen/X86/pr166058.ll
M llvm/test/CodeGen/X86/pr166744.ll
A llvm/test/CodeGen/X86/pr167793.ll
M llvm/test/CodeGen/X86/pr31143.ll
M llvm/test/CodeGen/X86/ptest.ll
M llvm/test/CodeGen/X86/rounding-ops.ll
M llvm/test/CodeGen/X86/setcc-wide-types.ll
M llvm/test/CodeGen/X86/shift-i512.ll
M llvm/test/CodeGen/X86/single_elt_vector_memory_operation.ll
M llvm/test/CodeGen/X86/stack-folding-int-avxvnni.ll
M llvm/test/CodeGen/X86/stack-folding-int-avxvnniint16.ll
M llvm/test/CodeGen/X86/stack-protector-msvc-oz.ll
M llvm/test/CodeGen/X86/stack-protector-msvc.ll
M llvm/test/CodeGen/X86/subvectorwise-store-of-vector-splat.ll
M llvm/test/CodeGen/X86/vector-compare-results.ll
M llvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll
M llvm/test/CodeGen/X86/vector-shuffle-combining-avx512f.ll
M llvm/test/CodeGen/X86/zero_extend_vector_inreg_of_broadcast_from_memory.ll
M llvm/test/DebugInfo/Generic/import-inlined-declaration.ll
M llvm/test/DebugInfo/Generic/namespace.ll
M llvm/test/DebugInfo/Generic/split-dwarf-local-import3.ll
M llvm/test/DebugInfo/X86/dimodule-external-fortran.ll
M llvm/test/DebugInfo/X86/dwarfdump-DIImportedEntity_elements.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx10_2_512ni-intrinsics.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx10_2ni-intrinsics.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx512vl_vnni-intrinsics-upgrade.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx512vl_vnni-intrinsics.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx512vnni-intrinsics-upgrade.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx512vnni-intrinsics.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avx_vnni-intrinsics.ll
M llvm/test/Instrumentation/MemorySanitizer/X86/avxvnniint16-intrinsics.ll
A llvm/test/LTO/AArch64/frem-scalable-veclib.ll
A llvm/test/LTO/AArch64/veclib-armpl-lto.ll
A llvm/test/LTO/AArch64/veclib-armpl-lto2.ll
M llvm/test/MC/AArch64/armv8.3a-complex_missing.s
M llvm/test/MC/AArch64/directive-arch_extension.s
M llvm/test/MC/AArch64/seh-large-func.s
M llvm/test/MC/AArch64/seh-optimize.s
M llvm/test/MC/AArch64/seh-packed-unwind.s
M llvm/test/MC/AMDGPU/buffer-op-swz-operand.s
M llvm/test/MC/AMDGPU/gfx1250_asm_sop1.s
M llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_sop1.txt
M llvm/test/MC/Disassembler/ARM/sub-sp-imm-thumb2.txt
M llvm/test/MC/Lanai/conditional_inst.s
M llvm/test/MC/Lanai/memory.s
M llvm/test/MC/LoongArch/Basic/Integer/misc.s
M llvm/test/MC/RISCV/attribute-arch.s
M llvm/test/MC/RISCV/rv32i-invalid.s
M llvm/test/MC/RISCV/rv32p-invalid.s
M llvm/test/MC/RISCV/rv32p-valid.s
M llvm/test/MC/RISCV/rv64p-valid.s
A llvm/test/MachineVerifier/AMDGPU/hazard-gfx1250-flat-src-hi.mir
A llvm/test/TableGen/Common/RegClassByHwModeCommon.td
M llvm/test/TableGen/RegClassByHwMode.td
A llvm/test/TableGen/RegClassByHwModeAlias.td
A llvm/test/TableGen/RegClassByHwModeErrors.td
M llvm/test/TableGen/target-specialized-pseudos.td
M llvm/test/TableGen/x86-instr-mapping.inc
M llvm/test/ThinLTO/X86/pr35472.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i16-system.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i16.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i32-agent.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i32-system.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i64-agent.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i64-system.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i8-system.ll
M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i8.ll
A llvm/test/Transforms/Attributor/AMDGPU/nofpclass-amdgcn-rsq.ll
M llvm/test/Transforms/Attributor/AMDGPU/tag-invariant-loads.ll
A llvm/test/Transforms/Attributor/nofpclass-fmul.ll
M llvm/test/Transforms/Attributor/nofpclass-nan-fmul.ll
R llvm/test/Transforms/DeadStoreElimination/atomic-todo.ll
M llvm/test/Transforms/DeadStoreElimination/atomic.ll
M llvm/test/Transforms/ExpandLargeFpConvert/X86/expand-large-fp-convert-si129tofp.ll
M llvm/test/Transforms/ExpandLargeFpConvert/X86/expand-large-fp-convert-ui129tofp.ll
M llvm/test/Transforms/ExpandMemCmp/AArch64/memcmp.ll
M llvm/test/Transforms/ExpandMemCmp/X86/memcmp-x32.ll
M llvm/test/Transforms/ExpandMemCmp/X86/memcmp.ll
M llvm/test/Transforms/GlobalOpt/disable-globals-aa.ll
M llvm/test/Transforms/GlobalOpt/global-opt-addrspace.ll
M llvm/test/Transforms/GlobalOpt/resolve-fmv-ifunc.ll
M llvm/test/Transforms/InferAlignment/ptrtoint.ll
M llvm/test/Transforms/InferFunctionAttrs/annotate.ll
M llvm/test/Transforms/InstCombine/2006-10-26-VectorReassoc.ll
M llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-comb-no-active-lanes.ll
M llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-simplify-to-u-form.ll
A llvm/test/Transforms/InstCombine/AArch64/tbl.ll
R llvm/test/Transforms/InstCombine/AArch64/tbl1.ll
A llvm/test/Transforms/InstCombine/ARM/tbl.ll
R llvm/test/Transforms/InstCombine/ARM/tbl1.ll
M llvm/test/Transforms/InstCombine/fdiv.ll
M llvm/test/Transforms/InstCombine/float-shrink-compare.ll
M llvm/test/Transforms/InstCombine/fold-select-fmul-if-zero.ll
M llvm/test/Transforms/InstCombine/icmp-add.ll
A llvm/test/Transforms/InstCombine/issue64967-reassoc-fmul.ll
M llvm/test/Transforms/InstCombine/ldexp.ll
M llvm/test/Transforms/InstCombine/mul.ll
M llvm/test/Transforms/InstCombine/select-safe-impliedcond-transforms.ll
M llvm/test/Transforms/InstSimplify/ConstProp/roundeven.ll
M llvm/test/Transforms/InstSimplify/ptrtoaddr.ll
M llvm/test/Transforms/InstSimplify/vp-reverse.ll
M llvm/test/Transforms/LoadStoreVectorizer/NVPTX/4x2xhalf.ll
A llvm/test/Transforms/LoadStoreVectorizer/NVPTX/extend-chain.ll
A llvm/test/Transforms/LoadStoreVectorizer/NVPTX/gap-fill-cleanup.ll
A llvm/test/Transforms/LoadStoreVectorizer/NVPTX/gap-fill-invariant.ll
A llvm/test/Transforms/LoadStoreVectorizer/NVPTX/gap-fill-vectors.ll
A llvm/test/Transforms/LoadStoreVectorizer/NVPTX/gap-fill-with-redundant-elements.ll
A llvm/test/Transforms/LoadStoreVectorizer/NVPTX/gap-fill.ll
M llvm/test/Transforms/LoadStoreVectorizer/NVPTX/many_loads_stores.ll
A llvm/test/Transforms/LoadStoreVectorizer/NVPTX/masked-store.ll
M llvm/test/Transforms/LoadStoreVectorizer/NVPTX/vectorize_i8.ll
M llvm/test/Transforms/LoopFusion/cannot_fuse.ll
M llvm/test/Transforms/LoopFusion/diagnostics_missed.ll
A llvm/test/Transforms/LoopInterchange/large-nested-4d.ll
A llvm/test/Transforms/LoopInterchange/large-nested-6d.ll
M llvm/test/Transforms/LoopUnroll/AArch64/apple-unrolling.ll
M llvm/test/Transforms/LoopUnroll/RISCV/vector.ll
M llvm/test/Transforms/LoopUnroll/peel-to-turn-invariant-accesses-dereferenceable.ll
M llvm/test/Transforms/LoopVectorize/AArch64/early_exit_costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/gather-cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/induction-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/low_trip_memcheck_cost.ll
M llvm/test/Transforms/LoopVectorize/AArch64/pr60831-sve-inv-store-crash.ll
M llvm/test/Transforms/LoopVectorize/AArch64/predicated-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/scalable-avoid-scalarization.ll
M llvm/test/Transforms/LoopVectorize/AArch64/simple_early_exit.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-inductions-unusual-types.ll
A llvm/test/Transforms/LoopVectorize/AArch64/sve-predicated-costs.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-vector-reverse.ll
M llvm/test/Transforms/LoopVectorize/ARM/gather-cost.ll
A llvm/test/Transforms/LoopVectorize/RISCV/predicated-costs.ll
M llvm/test/Transforms/LoopVectorize/RISCV/riscv-vector-reverse.ll
M llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses.ll
M llvm/test/Transforms/LoopVectorize/X86/gather-cost.ll
M llvm/test/Transforms/LoopVectorize/X86/replicate-uniform-call.ll
M llvm/test/Transforms/LoopVectorize/first-order-recurrence-chains-vplan.ll
M llvm/test/Transforms/LoopVectorize/hoist-predicated-loads-with-predicated-stores.ll
M llvm/test/Transforms/LoopVectorize/interleave-and-scalarize-only.ll
A llvm/test/Transforms/LoopVectorize/runtime-check-threshold-with-force-metadata.ll
M llvm/test/Transforms/LoopVectorize/scalable-assume.ll
M llvm/test/Transforms/LoopVectorize/scalable-first-order-recurrence.ll
M llvm/test/Transforms/LoopVectorize/scalable-inductions.ll
M llvm/test/Transforms/LoopVectorize/scalable-iv-outside-user.ll
M llvm/test/Transforms/LoopVectorize/vplan-printing-reductions.ll
M llvm/test/Transforms/LoopVectorize/vplan-printing.ll
M llvm/test/Transforms/LowerTypeTests/import.ll
A llvm/test/Transforms/MergeFunc/switch.ll
M llvm/test/Transforms/OpenMP/add_attributes.ll
M llvm/test/Transforms/OpenMP/custom_state_machines.ll
M llvm/test/Transforms/OpenMP/custom_state_machines_pre_lto.ll
M llvm/test/Transforms/OpenMP/custom_state_machines_remarks.ll
M llvm/test/Transforms/OpenMP/get_hardware_num_threads_in_block_fold.ll
M llvm/test/Transforms/OpenMP/gpu_state_machine_function_ptr_replacement.ll
M llvm/test/Transforms/OpenMP/indirect_call_kernel_info_crash.ll
M llvm/test/Transforms/OpenMP/is_spmd_exec_mode_fold.ll
M llvm/test/Transforms/OpenMP/nested_parallelism.ll
M llvm/test/Transforms/OpenMP/parallel_level_fold.ll
M llvm/test/Transforms/OpenMP/spmdization.ll
M llvm/test/Transforms/OpenMP/spmdization_assumes.ll
M llvm/test/Transforms/OpenMP/spmdization_constant_prop.ll
M llvm/test/Transforms/OpenMP/spmdization_guarding.ll
M llvm/test/Transforms/OpenMP/spmdization_guarding_two_reaching_kernels.ll
M llvm/test/Transforms/OpenMP/spmdization_indirect.ll
M llvm/test/Transforms/OpenMP/spmdization_no_guarding_two_reaching_kernels.ll
M llvm/test/Transforms/OpenMP/spmdization_remarks.ll
M llvm/test/Transforms/PGOProfile/memprof-dump-matched-alloc-site.ll
M llvm/test/Transforms/PGOProfile/memprof-dump-matched-call-sites.ll
M llvm/test/Transforms/PGOProfile/memprof_annotate_indirect_call.test
M llvm/test/Transforms/PGOProfile/prof-verify-known-cold.ll
M llvm/test/Transforms/PGOProfile/prof-verify.ll
M llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll
A llvm/test/Transforms/PhaseOrdering/loop-vectorize-bfi.ll
A llvm/test/Transforms/PhaseOrdering/speculative-devirt-then-inliner.ll
M llvm/test/Transforms/SLPVectorizer/X86/copyable-child-node-used-outside.ll
A llvm/test/Transforms/SLPVectorizer/X86/copyable-with-used-outside-bb.ll
M llvm/test/Transforms/SROA/protected-field-pointer.ll
M llvm/test/Transforms/Scalarizer/min-bits.ll
Log Message:
-----------
[𝘀𝗽𝗿] changes introduced through rebase
Created using spr 1.3.6-beta.1
[skip ci]
Compare: https://github.com/llvm/llvm-project/compare/367ebaf0c63a...a014906308f9
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list