LLVM/project 9adac33libcxx/include/__locale_dir wstring_convert.h wbuffer_convert.h, libcxx/test/extensions/libcxx/localization/locale.convenience/conversions/conversions.string ctor_move.pass.cpp

[libc++] Apply `[[nodiscard]]` to `wstring_convert`, `wbuffer_convert` (#205486)

`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.

- https://libcxx.llvm.org/CodingGuidelines.html
- https://timsong-cpp.github.io/cppwp/n4950/depr.conversions.string
- https://timsong-cpp.github.io/cppwp/n4950/depr.conversions.buffer
DeltaFile
+41-0libcxx/test/libcxx/localization/nodiscard.verify.cpp
+12-10libcxx/include/__locale_dir/wstring_convert.h
+2-2libcxx/include/__locale_dir/wbuffer_convert.h
+1-1libcxx/test/extensions/libcxx/localization/locale.convenience/conversions/conversions.string/ctor_move.pass.cpp
+56-134 files

LLVM/project 6a15e2doffload/plugins-nextgen/common/src PluginInterface.cpp

[Offload] Fix ordering with RPC teardown and global destructors (#205594)

Summary:
There's a bit of a chicken and egg problem for the RPC server if we want
to do something creative with the device's image for things like DWARF
dumping. The problem was that destructors can make RPC calls, but the
RPC server also needed the images to be valid. Simple fix is to just
split the destructor calling out and do it first so we can deinitialize
RPC with valid device images.
DeltaFile
+12-7offload/plugins-nextgen/common/src/PluginInterface.cpp
+12-71 files

LLVM/project 62c0effutils/bazel/llvm-project-overlay/mlir BUILD.bazel

[Bazel] Fixes 916a974 (#205583)

This fixes 916a974941fbac24889e9c2da1972bd221d0055e.

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+2-1utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+2-11 files

LLVM/project aea73b4libsycl/src device_selector.cpp, libsycl/src/detail platform_impl.cpp program_manager.cpp

[libsycl] add heuristics to prefer devices with compatible images (#203530)

Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova at intel.com>
DeltaFile
+181-0libsycl/unittests/device_selector/get_device_preference.cpp
+48-0libsycl/unittests/common/unittests_helper.hpp
+13-2libsycl/src/detail/platform_impl.cpp
+13-0libsycl/src/detail/program_manager.cpp
+11-0libsycl/src/detail/platform_impl.hpp
+8-2libsycl/src/device_selector.cpp
+274-47 files not shown
+293-1113 files

LLVM/project 653de2bllvm/include/llvm/Transforms/Vectorize/SandboxVectorizer VecUtils.h, llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes BottomUpVec.h

[SBVec] Implement topDown/botUp vectorizers in unison

This patch introduces the `top-down-vec` pass to the Sandbox Vectorizer,
adding the ability to traverse use-def chains top-down to discover and
collect vectorization opportunities. Furthermore, this patch unifies
the two vectorizers into a single implementation to minimize code
duplication.
DeltaFile
+295-277llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
+96-43llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.h
+94-0llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+69-10llvm/test/Transforms/SandboxVectorizer/pack.ll
+57-1llvm/test/Transforms/SandboxVectorizer/external_uses.ll
+7-1llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
+618-3321 files not shown
+619-3327 files

LLVM/project 27cc825libcxx/include version, libcxx/include/__expected expected.h

Revert "[libc++]  P3798R1: The unexpected in std::expected (#204826)"

This reverts commit 45a65bb48b5925707f43d08e30df2263a5e4e268.
DeltaFile
+0-42libcxx/test/std/utilities/expected/expected.void/observers/has_error.pass.cpp
+0-42libcxx/test/std/utilities/expected/expected.expected/observers/has_error.pass.cpp
+4-4libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
+4-4libcxx/test/std/language.support/support.limits/support.limits.general/expected.version.compile.pass.cpp
+0-4libcxx/include/__expected/expected.h
+2-2libcxx/include/version
+10-985 files not shown
+13-10411 files

LLVM/project a6f8c9cllvm/test/Transforms/LoopVectorize iv_outside_user.ll

[LV] Pre-commit test for live-out derivation requiring VPExpandSCEVRecipe. nfc (#204350)
DeltaFile
+106-0llvm/test/Transforms/LoopVectorize/iv_outside_user.ll
+106-01 files

LLVM/project cb27922llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer VecUtils.h, llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes BottomUpVec.h

[SBVec] Implement topDown/botUp vectorizers in unison

This patch introduces the `top-down-vec` pass to the Sandbox Vectorizer,
adding the ability to traverse use-def chains top-down to discover and
collect vectorization opportunities. Furthermore, this patch unifies
the two vectorizers into a single implementation to minimize code
duplication.
DeltaFile
+299-282llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
+96-43llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.h
+94-0llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+69-10llvm/test/Transforms/SandboxVectorizer/pack.ll
+57-1llvm/test/Transforms/SandboxVectorizer/external_uses.ll
+7-1llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
+622-3371 files not shown
+623-3377 files

LLVM/project 41b1d3cflang/include/flang/Semantics openmp-utils.h, flang/lib/Semantics check-omp-structure.cpp openmp-utils.cpp

[Flang][OpenMP][Sema] Add OpenMP warning when mapping local descriptors to device on enter without a corresponding exit (#205580)

Reland https://github.com/llvm/llvm-project/pull/201060. Issues reported
in https://github.com/llvm/llvm-project/pull/203324 have now been
resolved.

Authored-by: agozillon <Andrew.Gozillon at amd.com>
DeltaFile
+97-0flang/test/Semantics/OpenMP/target-enter-data-temp-descriptor-omp61.f90
+93-0flang/test/Semantics/OpenMP/target-enter-data-temp-descriptor.f90
+54-0flang/lib/Semantics/check-omp-structure.cpp
+23-0flang/lib/Semantics/openmp-utils.cpp
+8-0flang/lib/Semantics/check-omp-structure.h
+6-0flang/include/flang/Semantics/openmp-utils.h
+281-06 files

LLVM/project a7f5b55lldb/test/API/tools/lldb-dap/attach TestDAP_attach.py

[lldb-dap][test] Re-enable test_by_name_waitFor on Windows (#205570)

`test_by_name_waitFor` passes with `LLDB_USE_LLDB_SERVER=1`.
`test_by_partial_name_waitFor` hangs on exit. Skip if for now.

rdar://180515488
DeltaFile
+2-1lldb/test/API/tools/lldb-dap/attach/TestDAP_attach.py
+2-11 files

LLVM/project 3ae3fa4mlir/include/mlir/Dialect/LLVMIR LLVMIntrinsicOps.td, mlir/test/Target/LLVMIR llvmir-intrinsics.mlir

[mlir][llvm] Add nontemporal field to llvm.intr.masked.store (#205566)

Add `nontemporal` field to `llvm.intr.masked.store`. Since `nontemporal`
is a missing field for `llvm.intr.masked.store`, you can refer to
https://github.com/llvm/llvm-project/blob/e68e8d35c91b4fd3ba0ae3ef12d79b41d92580b2/llvm/test/CodeGen/AArch64/sve-nontemporal-masked-ldst.ll#L28.

---------

Co-authored-by: Tobias Gysi <tobias.gysi at nextsilicon.com>
DeltaFile
+8-5mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
+3-0mlir/test/Target/LLVMIR/Import/intrinsic.ll
+3-0mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir
+14-53 files

LLVM/project e0844ffllvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes BundleVecPass.h BottomUpVec.h, llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes BundleVecPass.cpp BottomUpVec.cpp

[SBVec] Implement topDown/botUp vectorizers in unison

This patch introduces the `top-down-vec` pass to the Sandbox Vectorizer,
adding the ability to traverse use-def chains top-down to discover and
collect vectorization opportunities. Furthermore, this patch unifies
the two vectorizers into a single implementation to minimize code
duplication.
DeltaFile
+571-0llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BundleVecPass.cpp
+0-554llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
+165-0llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BundleVecPass.h
+0-107llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.h
+94-0llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+69-10llvm/test/Transforms/SandboxVectorizer/pack.ll
+899-6716 files not shown
+967-67612 files

LLVM/project 6d8d32allvm/lib/Target/RISCV RISCVInstrInfoXCV.td, llvm/lib/Target/RISCV/MCTargetDesc RISCVAsmBackend.cpp RISCVMCCodeEmitter.cpp

[RISCV][XCV] Relax long `cv.beqimm`/`cv.bneimm` branches (#205096)

`cv.beqimm` and `cv.bneimm` encode their target as a 13-bit signed
PC-relative offset (+/-4094 bytes). Branches beyond that range were
silently truncated by MC fixup application, producing wrong code with no
diagnostic. Add `PseudoLongCV_BEQIMM`/`PseudoLongCV_BNEIMM` and the
MC-layer relaxation flow (inverted short branch + JAL trampoline),
mirroring the standard B-type and Qualcomm Xqcibi vendor branches.

**Tests:** `xcvbi-branch-relax.ll` (uses `-filetype=obj | llvm-objdump`,
since MC-layer relaxation is only observable on object emission, not on
textual asm).

Split out of #204879 at review request (one fix per PR).

Part of a CORE-V (XCV) series; see RFC:
https://discourse.llvm.org/t/rfc-core-v-xcv-support-for-cv32e40p-clang-builtins-xcvsimd-intrinsics-and-generic-auto-selection/91111
DeltaFile
+37-0llvm/test/MC/RISCV/corev/XCVbi-long-branch.s
+7-0llvm/lib/Target/RISCV/RISCVInstrInfoXCV.td
+6-0llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
+6-0llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp
+56-04 files

LLVM/project 2750294libcxx/include/__cxx03 __config, libcxx/include/__cxx03/__type_traits datasizeof.h

[libc++][C++03] Cherry-pick #106832 (#205547)
DeltaFile
+3-16libcxx/include/__cxx03/__type_traits/datasizeof.h
+1-13libcxx/include/__cxx03/__config
+1-3libcxx/test/libcxx-03/type_traits/datasizeof.compile.pass.cpp
+5-323 files

LLVM/project a7e1afdclang-tools-extra/test/clang-doc enum.cpp templates.cpp, clang-tools-extra/test/clang-doc/html enum.cpp

[clang-doc] Try to make testing more uniform

Today clang-doc has tests for its various backends that use the same
input files, and mix the checks for each format. This leads to very
large test files that are quite hard to update or maintain. Thus far
we've assumed that this is better than updating several files, but as we
leverage mustache and JSON more and more to test feature completeness,
much of the output complexity is now limited to each backend and its
mustache templates. To make this simpler to maintain, we can lean into
common test Inputs keeping the annotate source separate from the test
checks, and split the checks out into their own directory hierarchy.
This patch is mostly mechanical rewriting of code. This was done with
the assistance of an LLM, but was checked by me, and verified with
instrumentation based coverage that we did not lose any line coverage.
DeltaFile
+0-839clang-tools-extra/test/clang-doc/enum.cpp
+0-491clang-tools-extra/test/clang-doc/templates.cpp
+0-380clang-tools-extra/test/clang-doc/namespace.cpp
+377-0clang-tools-extra/test/clang-doc/json/enum.cpp
+368-0clang-tools-extra/test/clang-doc/html/enum.cpp
+196-0clang-tools-extra/test/clang-doc/json/templates.cpp
+941-1,710101 files not shown
+2,737-2,812107 files

LLVM/project d63ecaallvm/docs/CommandGuide llvm-objdump.rst, llvm/test/tools/llvm-objdump/X86 source-path.test

[llvm-objdump] Add --substitute-path and --source-dir for --source (#201096)

When the code object was compiled on a different machine that does not
have the same directory structure, or the source code has been moved, we
are seeing a warning with the disassembler, stating that the files
embedded in the code object were not found on disk.
 
This patch introduces a command line options for llvm-objdump, which
provide alternate directory locations to locate the source files on
disk. These options are inspired by GDB commands _set directory_ and
_set substitute-path_.
--substitute-path — Takes two strings, _from_ and _to_, and do a simple
string replacement of from with to at the start of the directory part of
the source file name, then use that result instead of the original file
name to look up the sources. A rule applies only if _from_ ends at a
directory separator.
--source-dir — Add directories to the source search path. Directories
are searched in following order: original recorded path, source-dir +
relative recorded path or absolute path without root, source-dir +
basename.
DeltaFile
+153-0llvm/test/tools/llvm-objdump/X86/source-path.test
+107-3llvm/tools/llvm-objdump/SourcePrinter.cpp
+19-0llvm/docs/CommandGuide/llvm-objdump.rst
+14-1llvm/tools/llvm-objdump/llvm-objdump.cpp
+12-0llvm/tools/llvm-objdump/ObjdumpOpts.td
+2-0llvm/tools/llvm-objdump/llvm-objdump.h
+307-46 files

LLVM/project bb7824fclang-tools-extra/test/clang-doc class-partial-specialization.cpp, clang-tools-extra/test/clang-doc/json class-partial-specialization.cpp member-function-pointer-type.cpp

[clang-doc] Test more language constructs

We're missing several different language constructs in our tests. This
patch simply adds the basic tests and captures the output without trying
to fix or adjust any behavior, and can be considered a sort of precommit
test for future fixes to the various documentation components.
DeltaFile
+25-0clang-tools-extra/test/clang-doc/json/class-partial-specialization.cpp
+18-0clang-tools-extra/test/clang-doc/json/member-function-pointer-type.cpp
+18-0clang-tools-extra/test/clang-doc/json/array-type.cpp
+18-0clang-tools-extra/test/clang-doc/json/function-pointer-type.cpp
+18-0clang-tools-extra/test/clang-doc/json/nested-pointer-qualifiers.cpp
+13-0clang-tools-extra/test/clang-doc/class-partial-specialization.cpp
+110-09 files not shown
+165-015 files

LLVM/project 25a6b5bcross-project-tests/debuginfo-tests/dexter/dex/evaluation ExpectRewriter.py, cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting rewrite_expects.cpp rewrite_multiple_scripts.cpp

[Dexter] Add ability to rewrite scripts to fill-in unknown values (#202799)

This patch adds a feature to Dexter that allows scripts to be passed to
Dexter with missing expected values (`null` values in YAML), which
Dexter will attempt to "fill-in" with expected values that match the
debugger's actual output. The result is written to a file with the same
name as the original test file, in the directory given by
--results-directory if one is present; all content outside of the Dexter
script itself is preserved exactly as-is.

NB: Each test in this patch has a corresponding "expected" file, which
is almost identical (including the `RUN` lines), and exists to be
`diff`'d against the output of Dexter's script generation.
DeltaFile
+212-0cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectRewriter.py
+130-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_expect_list_expected.cpp
+54-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_expects.cpp
+53-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_expects_expected.cpp
+48-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_multiple_scripts_expected.cpp
+48-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_multiple_scripts.cpp
+545-08 files not shown
+690-714 files

LLVM/project 5f5e8ceclang/lib/Sema SemaExpr.cpp, clang/test/CodeGenCXX gh196469-default-member-init-lambda-cleanup.cpp

[Clang] Rebuild lambda captures in default member initializers

Fixes https://github.com/llvm/llvm-project/issues/196469

Since the CWG1815 implementation, `InitListChecker` rebuilds a default
member initializer at its point of use in aggregate initialization. The
rebuild uses the `EnsureImmediateInvocationInDefaultArgs` tree
transform, where `TransformCXXBindTemporaryExpr` strips
`CXXBindTemporaryExpr` nodes, relying on the subexpression's rebuild to
re-create the temporary binding: every `Rebuild*` path funnels through
`Sema::MaybeBindToTemporary`, which also re-registers the cleanup in
the current evaluation context.

However, the transform overrides `TransformLambdaExpr` to return the
closure unchanged because the lambda body is not a subexpression. That
skips the `MaybeBindToTemporary` call that `BuildLambdaExpr` ends with.
The rebuilt initializer then lacks both the `CXXBindTemporaryExpr`
around the closure and the `ExprWithCleanups` marker, so CodeGen never
emits the closure's destructor and init-captured members leak.

    [11 lines not shown]
DeltaFile
+19-8clang/lib/Sema/SemaExpr.cpp
+24-0clang/test/CodeGenCXX/gh196469-default-member-init-lambda-cleanup.cpp
+23-0clang/test/SemaCXX/gh196469-default-member-init-lambda-capture.cpp
+66-83 files

LLVM/project d0d14c6llvm/lib/Target/AArch64 AArch64TargetMachine.cpp, llvm/test/CodeGen/AArch64 aarch64-neon-vector-insert-uaddlv.ll fabs-fp128.ll

Revert "[AArch64] Run cleanup one final time after peephole (#199711)"

This reverts commit 448c3d54df7bcd5e5be2b5d051832ad00b4cc89c.
DeltaFile
+22-22llvm/test/CodeGen/AArch64/aarch64-neon-vector-insert-uaddlv.ll
+3-2llvm/test/CodeGen/AArch64/fabs-fp128.ll
+1-3llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
+0-1llvm/test/CodeGen/AArch64/O3-pipeline.ll
+26-284 files

LLVM/project 916a974mlir/include/mlir/Dialect/MemRef/Utils MemRefUtils.h, mlir/include/mlir/Dialect/Vector/IR VectorOps.td

[mlir][vector] reject negative strides for `vector.load`/`vector.store` (#204611)

This PR follows up #204309 and #204309.

It simply rejects negative strides for vector.load/vector.store :D


AI Disclaimer: I used AI for the tests.

---------

Signed-off-by: Federico Bruzzone <federico.bruzzone.i at gmail.com>
Co-authored-by: Andrzej Warzyński <andrzej.warzynski at gmail.com>
DeltaFile
+7-14mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
+18-0mlir/test/Dialect/Vector/invalid.mlir
+9-0mlir/lib/Dialect/Vector/IR/VectorOps.cpp
+7-0mlir/lib/Dialect/MemRef/Utils/MemRefUtils.cpp
+6-0mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
+4-0mlir/include/mlir/Dialect/MemRef/Utils/MemRefUtils.h
+51-141 files not shown
+52-147 files

LLVM/project 779c908llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 i128-cmp.ll

[AArch64] Recombine SETCCCARRY for legalized unsigned compares (#204504)

Type legalization can turn wide unsigned compares into SETCCCARRY nodes
fed by USUBO carry results, hiding the original high/low compare shape
from the existing CCMP conjunction/disjunction lowering.

Add an AArch64 DAG combine for SETCCCARRY that recognizes these
legalized wide-compare patterns and rebuilds them as SETCC plus AND/OR,
exposing them to the existing CCMP lowering.

This is separated from https://github.com/llvm/llvm-project/pull/181822.
DeltaFile
+49-0llvm/test/CodeGen/AArch64/i128-cmp.ll
+37-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+86-02 files

LLVM/project 64a387bclang/lib/Sema SemaExpr.cpp, clang/test/CodeGenCXX gh196469-default-member-init-lambda-cleanup.cpp

[Clang] Rebuild lambda captures in default member initializers

Fixes https://github.com/llvm/llvm-project/issues/196469

Since the CWG1815 implementation, `InitListChecker` rebuilds a default
member initializer at its point of use in aggregate initialization. The
rebuild uses the `EnsureImmediateInvocationInDefaultArgs` tree
transform, where `TransformCXXBindTemporaryExpr` strips
`CXXBindTemporaryExpr` nodes, relying on the subexpression's rebuild to
re-create the temporary binding: every `Rebuild*` path funnels through
`Sema::MaybeBindToTemporary`, which also re-registers the cleanup in
the current evaluation context.

However, the transform overrides `TransformLambdaExpr` to return the
closure unchanged because the lambda body is not a subexpression. That
skips the `MaybeBindToTemporary` call that `BuildLambdaExpr` ends with.
The rebuilt initializer then lacks both the `CXXBindTemporaryExpr`
around the closure and the `ExprWithCleanups` marker, so CodeGen never
emits the closure's destructor and init-captured members leak.

    [11 lines not shown]
DeltaFile
+19-8clang/lib/Sema/SemaExpr.cpp
+24-0clang/test/CodeGenCXX/gh196469-default-member-init-lambda-cleanup.cpp
+23-0clang/test/SemaCXX/gh196469-default-member-init-lambda-capture.cpp
+66-83 files

LLVM/project 6819273clang/lib/Sema SemaLifetimeSafety.h, clang/test/Sema/LifetimeSafety annotation-suggestions-fixits.cpp

[LifetimeSafety] Cache lifetimebound macro lookup (#205250)

Cache lifetimebound macro spelling lookup used by fix-it suggestions.

Current cache strategy:

- During cache build, collect macro names that have ever been defined as
a lifetimebound attribute spelling.
- During lookup, only visit those cached macro names, find the active
definition at the fix-it location, and re-check that the active
definition still has lifetimebound spelling.
- If multiple matching macros are active at the fix-it location, use the
most recently defined one.

Performance:

| Case | Before 359bfe6 | 359bfe6| After Cached |

|-------------------------------------------------------------|----------------:|---------------:|-------------:|

    [10 lines not shown]
DeltaFile
+83-8clang/lib/Sema/SemaLifetimeSafety.h
+33-0clang/test/Sema/LifetimeSafety/annotation-suggestions-fixits.cpp
+116-82 files

LLVM/project b24a5f5llvm/lib/Target/AMDGPU AMDGPURegBankLegalizeHelper.cpp AMDGPURegBankLegalize.cpp, llvm/test/CodeGen/AMDGPU llvm.set.rounding.ll llvm.get.rounding.ll

AMDGPU/GlobalISel: Implement G_GET/SET_ROUNDING (#205265)

Implement G_GET/SET_ROUNDING for the llvm.get.rounding and
llvm.set.rounding intrinsics.

The lowering is ported from the existing SelectionDAG handling, keeping
the structure close to the SDAG implementation.

Assisted by: Claude Opus 4.8
DeltaFile
+1,701-810llvm/test/CodeGen/AMDGPU/llvm.set.rounding.ll
+138-2llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
+70-40llvm/test/CodeGen/AMDGPU/llvm.get.rounding.ll
+6-1llvm/lib/Target/AMDGPU/AMDGPURegBankLegalize.cpp
+7-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+5-1llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.h
+1,927-8542 files not shown
+1,932-8558 files

LLVM/project 1cf9b95llvm/test/tools/llubi infinite_loop_error_only.ll, llvm/tools/llubi llubi.cpp

[llubi] Always print out error message (#205573)

When `--verbose` is not specified, the error message and UB reason are
omitted. However, this information is still useful for test oracles. For
example, the fuzzer may skip the seed when it runs out of time.

BTW, the stack trace is always dumped. Not sure if it is intended or
not.
DeltaFile
+14-12llvm/tools/llubi/llubi.cpp
+14-0llvm/test/tools/llubi/infinite_loop_error_only.ll
+28-122 files

LLVM/project 2668971llvm/test/CodeGen/AArch64 br-cond-merging-cbz-tbnz.ll ragreedy-csr.ll

[AArch64][ISel] Enable profile-aware branch condition merging  (#201486)

AArch64 previously inherited the default {-1, -1, -1} for
`getJumpConditionMergingParams`, causing
`shouldKeepJumpConditionsTogether` in SelectionDAGBuilder to always
return false. This meant compound branch conditions (br (and/or cond1,
cond2)) were always split into separate basic blocks at the DAG level,
and profile data from BranchProbabilityInfo was never consulted for the
merge/split decision.

Override `getJumpConditionMergingParams` in AArch64TargetLowering with
tunable cl::opt parameters matching the X86 structure. Since `CCMP` is
part of the base AArch64 ISA, the `CCMP` bias is applied
unconditionally. Default values: `BaseCost=2, CcmpBias=6 (effective
threshold 8), LikelyBias=0, UnlikelyBias=-1`.

This enables three improvements:
1. Profile-guided merge/split decisions using BranchProbabilityInfo
2. Smarter compare ordering at the DAG level (e.g., placing large

    [13 lines not shown]
DeltaFile
+268-0llvm/test/CodeGen/AArch64/br-cond-merging-cbz-tbnz.ll
+83-97llvm/test/CodeGen/AArch64/ragreedy-csr.ll
+86-90llvm/test/CodeGen/AArch64/tbl-loops.ll
+107-54llvm/test/CodeGen/AArch64/arm64-ccmp.ll
+52-64llvm/test/CodeGen/AArch64/fcvt-i256.ll
+48-64llvm/test/CodeGen/AArch64/andorbrcompare.ll
+644-36912 files not shown
+905-43018 files

LLVM/project a1cdfebclang/lib/AST/ByteCode Compiler.cpp

[clang][bytecode] Work around virtual bases being present in APValues (#205553)

This happens in code called via `evaluateDestruction()`, where we
consume an `APValue` created by the current interpreter. APValues don't
have a notion of virtual bases right now, so the virtual bases simply
appear as regular ones.
DeltaFile
+5-0clang/lib/AST/ByteCode/Compiler.cpp
+5-01 files

LLVM/project 229e421mlir/lib/Dialect/Tosa/Transforms TosaInputShape.cpp, mlir/test/Dialect/Tosa tosa-input-shape.mlir

[mlir][tosa] Handle function declarations in tosa input shape pass (#205359)

Fixes https://github.com/llvm/llvm-project/issues/205063.

The `tosa-experimental-input-shape` pass currently does not handle
function declarations correctly. The pass may run on declarations, but
the current implementation assumes that every function has a body and
unconditionally accesses the entry block and the last block when
updating argument and result types.

This patch checks whether the function has a body before accessing body
blocks. For declarations, the pass updates the function signature input
types and preserves the original result types, since there is no return
operation from which result types can be inferred.

A regression test is added for the declaration case.
DeltaFile
+21-18mlir/lib/Dialect/Tosa/Transforms/TosaInputShape.cpp
+13-0mlir/test/Dialect/Tosa/tosa-input-shape.mlir
+34-182 files

LLVM/project 6136998llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 madd.ll

[X86] matchPMADDWD - add support for larger source types (#205391)

Handle cases where the source vector type came from a vXi32 type wider
than 2 x the original vXi16 type

The matcher only bothers with the lower elements - it doesn't matter if
we're extracting from a wider vector

Fixes a number of SSE/AVX512 targets that failed to legalize to
recoverable vector widths
DeltaFile
+63-218llvm/test/CodeGen/X86/madd.ll
+14-10llvm/lib/Target/X86/X86ISelLowering.cpp
+77-2282 files