[all-commits] [llvm/llvm-project] 0fe846: SLPVectorizer: strip bad FIXME (NFC) (#122888)

Victor Campos via All-commits all-commits at lists.llvm.org
Thu Jan 16 01:38:17 PST 2025


  Branch: refs/heads/users/vhscampos/multilib-flags-documentation
  Home:   https://github.com/llvm/llvm-project
  Commit: 0fe8469e08cfe5bbd4cd7ee42a8b931560ca041c
      https://github.com/llvm/llvm-project/commit/0fe8469e08cfe5bbd4cd7ee42a8b931560ca041c
  Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  Log Message:
  -----------
  SLPVectorizer: strip bad FIXME (NFC) (#122888)

Follow up on 4a0d53a (PatternMatch: migrate to CmpPredicate) to get rid
of the FIXME it introduced in SLPVectorizer: the FIXME is bad, and we'd
get no testable impact by using CmpPredicate::getMatching here.


  Commit: b87fdd9ce612d53b0e0b73d7c062b39a042e8629
      https://github.com/llvm/llvm-project/commit/b87fdd9ce612d53b0e0b73d7c062b39a042e8629
  Author: Martin Storsjö <martin at martin.st>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M libcxx/src/CMakeLists.txt

  Log Message:
  -----------
  [libcxx] Reindent a section of a CMake file. NFC. (#122800)

This was missed in 43ba97e7079525a9686e15a6963508dfbd493f81 (#111821)
when reindenting after
917ada35cd937ad4104dff89c48398bd796ba6b7 (#80007).


  Commit: e87f94a6a806a941242506680f88573d6a87a828
      https://github.com/llvm/llvm-project/commit/e87f94a6a806a941242506680f88573d6a87a828
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp
    M clang/lib/Basic/SourceManager.cpp
    M flang/test/HLFIR/associate-codegen.fir
    M libc/test/src/unistd/getopt_test.cpp
    M lldb/source/Commands/CommandObjectMemory.cpp
    M lldb/source/Target/StructuredDataPlugin.cpp
    M lldb/unittests/Target/RegisterFlagsTest.cpp
    M llvm/include/llvm/IR/DebugInfoMetadata.h
    M llvm/lib/Target/X86/X86LowerAMXType.cpp
    M llvm/test/CodeGen/AArch64/eon.ll
    M llvm/test/DebugInfo/X86/multiple-at-const-val.ll
    M llvm/test/Transforms/EarlyCSE/guards.ll
    M llvm/test/Transforms/InstCombine/matrix-multiplication-negation.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/blend-any-of-reduction-cost.ll
    M mlir/test/Dialect/Bufferization/Transforms/one-shot-bufferize-empty-tensor-elimination.mlir
    M mlir/test/Transforms/mem2reg.mlir
    M mlir/test/Transforms/sroa.mlir

  Log Message:
  -----------
  [llvm-project] Fix typos mutli and mutliple. NFC. (#122880)


  Commit: e409204a89c7fb1d1c040c18fac2fa8db9dfe893
      https://github.com/llvm/llvm-project/commit/e409204a89c7fb1d1c040c18fac2fa8db9dfe893
  Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/test/Transforms/VectorCombine/X86/extract-cmp-binop.ll

  Log Message:
  -----------
  VectorCombine: teach foldExtractedCmps about samesign (#122883)

Follow up on 4a0d53a (PatternMatch: migrate to CmpPredicate) to get rid
of one of the FIXMEs it introduced by replacing a predicate comparison
with CmpPredicate::getMatching.


  Commit: aae259208a2dae815112638eab52023a8526c338
      https://github.com/llvm/llvm-project/commit/aae259208a2dae815112638eab52023a8526c338
  Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/test/Transforms/LoopVersioning/incorrect-phi.ll

  Log Message:
  -----------
  LoopVersioning: improve a test, regen with UTC (#122876)

Improve a test by replacing undef with poison, and regenerate it using
UpdateTestChecks.


  Commit: 6a9e9878a200a6e494beed8944d6d08347945727
      https://github.com/llvm/llvm-project/commit/6a9e9878a200a6e494beed8944d6d08347945727
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp

  Log Message:
  -----------
  [VectorCombine] foldPermuteOfBinops - ensure potential identity mask isn't length changing.


  Commit: fabc443e9394e460d328984d75570d9f017fe709
      https://github.com/llvm/llvm-project/commit/fabc443e9394e460d328984d75570d9f017fe709
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
    M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp

  Log Message:
  -----------
  [OMPIRBuilder] Support runtime number of teams and threads, and SPMD mode (#116051)

This patch introduces a `TargetKernelRuntimeAttrs` structure to hold
host-evaluated `num_teams`, `thread_limit`, `num_threads` and trip count
values passed to the runtime kernel offloading call.

Additionally, kernel type information is used to influence target device
code generation and the `IsSPMD` flag is replaced by `ExecFlags`, which
provides more granularity.


  Commit: d0b641b7e2a9b4120c11fc60b111a657b0420176
      https://github.com/llvm/llvm-project/commit/d0b641b7e2a9b4120c11fc60b111a657b0420176
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp

  Log Message:
  -----------
  [OMPIRBuilder] Propagate attributes to outlined target regions (#117875)

This patch copies the target-cpu and target-features attributes of
functions containing target regions into the corresponding outlined
function holding the target region.

This mirrors what is currently being done for all other outlined
functions through the `CodeExtractor` in `OpenMPIRBuilder::finalize()`.


  Commit: be96bd74f8eae5637033e4e05fcbf2a693ce8334
      https://github.com/llvm/llvm-project/commit/be96bd74f8eae5637033e4e05fcbf2a693ce8334
  Author: Kirill Chibisov <contact at kchibisov.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M mlir/lib/Target/Cpp/TranslateToCpp.cpp
    M mlir/test/Target/Cpp/declare_func.mlir
    M mlir/test/Target/Cpp/for.mlir
    M mlir/test/Target/Cpp/if.mlir
    A mlir/test/Target/Cpp/no_extra_semicolon.mlir
    M mlir/test/Target/Cpp/switch.mlir

  Log Message:
  -----------
  [mlir][emitc] Don't emit extra semicolon after bracket (#122464)

Extra semicolons were emitted for operations that should never have
them, since not every place was checking whether semicolon would be
actually needed.

Thus change the emitOperation to ignore trailingSemicolon field for such
operations.


  Commit: f879da799b4e112d79243dde6d299259d8359eeb
      https://github.com/llvm/llvm-project/commit/f879da799b4e112d79243dde6d299259d8359eeb
  Author: Andrea Faulds <andrea.faulds at amd.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M mlir/tools/mlir-cpu-runner/CMakeLists.txt

  Log Message:
  -----------
  [mlir-cpu-runner] Pass --exclude-libs to linker when building runner (#122329)

This fixes a conflict between the version of LLVM linked against by the
runner and the unrelated version of LLVM that may be dynamically loaded
by a graphics driver. (Relevant to #73457: fixes loading certain Vulkan
drivers.)


  Commit: 30f9a4f75412850d603fde29b59d27dd9d31f380
      https://github.com/llvm/llvm-project/commit/30f9a4f75412850d603fde29b59d27dd9d31f380
  Author: CHANDRA GHALE <chandra.nitdgp at gmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/lib/CodeGen/CGStmt.cpp
    M clang/lib/CodeGen/CGStmtOpenMP.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    A clang/test/OpenMP/parallel_masked_taskloop_simd_codegen.c

  Log Message:
  -----------
  [OpenMP] codegen support for masked combined construct parallel masked taskloop simd. (#121746)

Added codegen support for combined masked constructs `Parallel masked
taskloop simd`.
Added implementation for `EmitOMPParallelMaskedTaskLoopSimdDirective`.

Co-authored-by: Chandra Ghale <ghale at pe31.hpc.amslabs.hpecorp.net>


  Commit: 0d71b3e4031e7b18a5947bdea076839e5a56d202
      https://github.com/llvm/llvm-project/commit/0d71b3e4031e7b18a5947bdea076839e5a56d202
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetRegisterInfo.h
    M llvm/lib/CodeGen/InitUndef.cpp
    M llvm/lib/CodeGen/SplitKit.cpp
    M llvm/lib/CodeGen/TargetRegisterInfo.cpp
    M llvm/lib/CodeGen/VirtRegMap.cpp
    M llvm/lib/Target/AMDGPU/SIFormMemoryClauses.cpp

  Log Message:
  -----------
  [CodeGen] Remove unused argument from getCoveringSubRegIndexes. NFC. (#122884)


  Commit: d2d4c3bd598453a1d871096466953ec25483034f
      https://github.com/llvm/llvm-project/commit/d2d4c3bd598453a1d871096466953ec25483034f
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/test/Integration/OpenMP/target-filtering.f90
    M flang/test/Lower/OpenMP/function-filtering-2.f90
    M flang/test/Lower/OpenMP/function-filtering-3.f90
    M flang/test/Lower/OpenMP/function-filtering.f90
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/test/Target/LLVMIR/omptarget-byref-bycopy-generation-device.mlir
    M mlir/test/Target/LLVMIR/omptarget-constant-alloca-raise.mlir
    M mlir/test/Target/LLVMIR/omptarget-constant-indexing-device-region.mlir
    M mlir/test/Target/LLVMIR/omptarget-debug.mlir
    M mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-device.mlir
    M mlir/test/Target/LLVMIR/omptarget-parallel-llvm.mlir
    M mlir/test/Target/LLVMIR/omptarget-region-device-llvm.mlir
    M mlir/test/Target/LLVMIR/omptarget-target-inside-task.mlir
    M mlir/test/Target/LLVMIR/omptarget-threadprivate-device-lowering.mlir
    A mlir/test/Target/LLVMIR/openmp-target-launch-device.mlir
    A mlir/test/Target/LLVMIR/openmp-target-launch-host.mlir
    M mlir/test/Target/LLVMIR/openmp-target-use-device-nested.mlir
    M mlir/test/Target/LLVMIR/openmp-task-target-device.mlir
    M mlir/test/Target/LLVMIR/openmp-todo.mlir

  Log Message:
  -----------
  [MLIR][OpenMP] LLVM IR translation of host_eval (#116052)

This patch adds support for processing the `host_eval` clause of
`omp.target` to populate default and runtime kernel launch attributes.
Specifically, these related to the `num_teams`, `thread_limit` and
`num_threads` clauses attached to operations nested inside of
`omp.target`. As a result, the `thread_limit` clause of `omp.target` is
also supported.

The implementation of `initTargetDefaultAttrs()` is intended to reflect
clang's own processing of multiple constructs and clauses in order to
define a default number of teams and threads to be used as kernel
attributes and to populate global variables in the target device module.

One side effect of this change is that it is no longer possible to
translate to LLVM IR target device MLIR modules unless they have a
supported target triple. This is because the local `getGridValue()`
function in the `OpenMPIRBuilder` only works for certain architectures,
and it is called whenever the maximum number of threads has not been
explicitly defined. This limitation also matches clang.

Evaluating the collapsed loop trip count of SPMD and Generic-SPMD
kernels remains unsupported.


  Commit: 6c7a53b78fd695ee58ea42d21362f6fa861eb37e
      https://github.com/llvm/llvm-project/commit/6c7a53b78fd695ee58ea42d21362f6fa861eb37e
  Author: Utkarsh Saxena <usx at google.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/include/llvm/Support/Path.h

  Log Message:
  -----------
  [llvm] Add lifetimebound to llvm::sys::path::filename, etc. (#122890)


  Commit: 0bd098b1cce62ad63eb63f7e57c3a55ccfaf7e0c
      https://github.com/llvm/llvm-project/commit/0bd098b1cce62ad63eb63f7e57c3a55ccfaf7e0c
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/shuffle-vs-trunc-512.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i64-stride-4.ll

  Log Message:
  -----------
  [X86] Fold VPERMV3(WIDEN(X),M,WIDEN(Y)) -> VPERMV(CONCAT(X,Y),M') iff the CONCAT is free (#122750)

Minor followup to #122485 - if the source operands were widened half-size subvectors, then attempt to concatenate the subvectors directly, and then adjust the shuffle mask so references to the second operand now refer to the upper half of the concat result.


  Commit: 1393f4e69f92f31e6a7ffd63676ef8fd62d1f882
      https://github.com/llvm/llvm-project/commit/1393f4e69f92f31e6a7ffd63676ef8fd62d1f882
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp

  Log Message:
  -----------
  [MemCpyOpt] Use doesNotCapture() helper (NFC)

No difference in semantics here as byval is already handled
separately. This simplifies migration to the captures attribute.


  Commit: 428c8767ae997b0f726c0b40160ea8172551babf
      https://github.com/llvm/llvm-project/commit/428c8767ae997b0f726c0b40160ea8172551babf
  Author: Alexander Richardson <alexrichardson at google.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M libcxx/CMakeLists.txt
    M libcxxabi/CMakeLists.txt
    M libcxxabi/include/CMakeLists.txt
    M lldb/test/CMakeLists.txt
    M lldb/utils/lldb-dotest/CMakeLists.txt

  Log Message:
  -----------
  [libc++] Stop copying headers to the build directory (#115380)

This was needed before https://github.com/llvm/llvm-project/pull/115077
since the compiler-rt test build made assumptions about the build
layout of libc++ and libc++abi, but now they link against a local
installation of these libraries so we no longer need this workaround.


  Commit: d8d30a96031bfdad3e2c424e14a4247c14980cb5
      https://github.com/llvm/llvm-project/commit/d8d30a96031bfdad3e2c424e14a4247c14980cb5
  Author: Andrea Faulds <andrea.faulds at amd.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M mlir/tools/mlir-cpu-runner/CMakeLists.txt

  Log Message:
  -----------
  Revert "[mlir-cpu-runner] Pass --exclude-libs to linker when building runner (#122329)"

This reverts commit f879da799b4e112d79243dde6d299259d8359eeb. The change
to not export certain symbols apparently broke the UBsan/Asan buildbot,
because the DSO for the sanitizer wants to link to them.


  Commit: 8fe11a26ae8f12622ddec83a7b80637080843a8b
      https://github.com/llvm/llvm-project/commit/8fe11a26ae8f12622ddec83a7b80637080843a8b
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/include/flang/Common/OpenMP-utils.h
    M flang/lib/Common/OpenMP-utils.cpp
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    A flang/test/Lower/OpenMP/host-eval.f90
    A flang/test/Lower/OpenMP/target-spmd.f90
    M mlir/include/mlir/Dialect/OpenMP/OpenMPClauseOperands.h

  Log Message:
  -----------
  [Flang][OpenMP] Lowering of host-evaluated clauses (#116219)

This patch adds support for lowering OpenMP clauses and expressions
attached to constructs nested inside of a target region that need to be
evaluated in the host device. This is done through the use of the
`OpenMP_HostEvalClause` `omp.target` set of operands and entry block
arguments.

When lowering clauses for a target construct, a more involved
`processHostEvalClauses()` function is called, which looks at the
current and potentially other nested constructs in order to find and
lower clauses that need to be processed outside of the `omp.target`
operation under construction. This populates an instance of a global
structure with the resulting MLIR values.

The resulting list of host-evaluated values is used to initialize the
`host_eval` operands when constructing the `omp.target` operation, and
then replaced with the corresponding block arguments after creating that
operation's region.

Afterwards, while lowering nested operations, those that might
potentially be evaluated on the host (i.e. `num_teams`, `thread_limit`,
`num_threads` and `collapse`) check first whether there is an active
global host-evaluated information structure and whether it holds values
referring to these clauses. If that is the case, the stored values
(`omp.target` entry block arguments at that stage) are used instead of
lowering these clauses again.


  Commit: 310c281b020b169e760ca75f878f5873ffbb2a9f
      https://github.com/llvm/llvm-project/commit/310c281b020b169e760ca75f878f5873ffbb2a9f
  Author: macurtis-amd <macurtis at amd.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Flang.cpp
    M flang/include/flang/Frontend/CompilerInstance.h
    M flang/include/flang/Frontend/CompilerInvocation.h
    A flang/include/flang/Support/StringOstream.h
    A flang/include/flang/Support/Timing.h
    M flang/lib/CMakeLists.txt
    M flang/lib/Frontend/CMakeLists.txt
    M flang/lib/Frontend/CompilerInstance.cpp
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Frontend/FrontendActions.cpp
    A flang/lib/Support/CMakeLists.txt
    A flang/lib/Support/Timing.cpp
    A flang/test/Driver/time-report.f90

  Log Message:
  -----------
  [flang][Driver] Preliminary support for -ftime-report (#122894)

The behavior is not entirely consistent with that of clang for the
moment since detailed timing information on the LLVM IR optimization and
code generation passes is not provided. The -ftime-report= option is
also not enabled since that is only relevant for information about the
LLVM IR passes. However, some code to handle that option has been
included, to make it easier to support the option when the issues
blocking it are resolved. A FortranSupport library has been created that
is intended to mirror the LLVM and MLIR support libraries.

Based on @tarunprabhu's PR
https://github.com/llvm/llvm-project/pull/107270 with minor changes
addressing latest review feedback. He's busy and we'd like to get this
support in ASAP.

Co-authored-by: Tarun Prabhu <tarun.prabhu at gmail.com>


  Commit: 8f6867c9c6247b394749729757a1ab9acbfa78e6
      https://github.com/llvm/llvm-project/commit/8f6867c9c6247b394749729757a1ab9acbfa78e6
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/test/Integration/OpenMP/target-filtering.f90
    M flang/test/Lower/OpenMP/function-filtering-2.f90
    M flang/test/Lower/OpenMP/function-filtering-3.f90
    M flang/test/Lower/OpenMP/function-filtering.f90

  Log Message:
  -----------
  [Flang] Add triple requirement for failing tests, NFC (#122898)

Fix Fortran test failures caused by the introduction of the
amdgcn-amd-amdhsa target triple in #116052.


  Commit: c1de9b920935e7d2fcc8dd7b39c1b7285783e948
      https://github.com/llvm/llvm-project/commit/c1de9b920935e7d2fcc8dd7b39c1b7285783e948
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/lib/AST/ByteCode/EvalEmitter.cpp
    M clang/test/AST/ByteCode/arrays.cpp
    M clang/test/AST/ByteCode/cxx23.cpp

  Log Message:
  -----------
  [clang][bytecode] Mark global decls with diagnostics invalid (#122895)

Even if their evaluation succeeds, mark them as invalid. This fixes some
long standing differences to the ast walker interpeter.


  Commit: f925e5455415d69df5716a25ceff377989603c0a
      https://github.com/llvm/llvm-project/commit/f925e5455415d69df5716a25ceff377989603c0a
  Author: Luke Lau <luke at igalia.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-reverse-load-store.ll

  Log Message:
  -----------
  [VPlan] Fix mutating whilst iterating over users in EVL transform (#122885)

This fixes a miscompilation extracted from 525.x264_r, where we were
failing to update the runtime VF of a VPReverseVectorPointerRecipe.

We were removing a use of VF whilst iterating over the users() iterator,
which messed up the iterator in-flight and caused us to miss some
recipes. This fixes it by copying the users into a SmallVector first.

Fixes #122681
Fixes #122682


  Commit: da9df6c52a81a29302e45fd77b8dec6b4ae3b5b7
      https://github.com/llvm/llvm-project/commit/da9df6c52a81a29302e45fd77b8dec6b4ae3b5b7
  Author: Guy David <49722543+guy-david at users.noreply.github.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/CodeGen/MachineVerifier.cpp
    A llvm/test/MachineVerifier/stack-protector-offset.mir

  Log Message:
  -----------
  MachineVerifier: Check stack protector is top-most in frame (#122635)

Mitigate against potential bugs that might place it elsewhere and render
the mechanism useless.


  Commit: 5ec7ecd2f2d213f1777af3ff3a2e7910d00ea774
      https://github.com/llvm/llvm-project/commit/5ec7ecd2f2d213f1777af3ff3a2e7910d00ea774
  Author: CarolineConcatto <caroline.concatto at arm.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/test/Driver/aarch64-implied-sme-features.c
    M clang/test/Driver/print-supported-extensions-aarch64.c
    M llvm/lib/Target/AArch64/AArch64.td
    M llvm/lib/Target/AArch64/AArch64Features.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
    M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
    M llvm/test/MC/AArch64/SME2p2/bfmop4as-non-widening-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/bfmop4as-non-widening.s
    M llvm/test/MC/AArch64/SME2p2/bfmop4as-widening-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/bfmop4as-widening.s
    M llvm/test/MC/AArch64/SME2p2/bftmopa-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/bftmopa.s
    M llvm/test/MC/AArch64/SME2p2/directive-arch-negative.s
    M llvm/test/MC/AArch64/SME2p2/directive-arch.s
    M llvm/test/MC/AArch64/SME2p2/directive-arch_extension-negative.s
    M llvm/test/MC/AArch64/SME2p2/directive-arch_extension.s
    M llvm/test/MC/AArch64/SME2p2/directive-cpu-negative.s
    M llvm/test/MC/AArch64/SME2p2/directive-cpu.s
    M llvm/test/MC/AArch64/SME2p2/fmop4a-fp8-fp16-widening-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/fmop4a-fp8-fp16-widening.s
    M llvm/test/MC/AArch64/SME2p2/fmop4a-fp8-fp32-widening-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/fmop4a-fp8-fp32-widening.s
    M llvm/test/MC/AArch64/SME2p2/fmop4as-fp16-fp32-widening-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/fmop4as-fp16-fp32-widening.s
    M llvm/test/MC/AArch64/SME2p2/fmop4as-fp16-non-widening-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/fmop4as-fp16-non-widening.s
    M llvm/test/MC/AArch64/SME2p2/fmop4as-fp32-non-widening-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/fmop4as-fp32-non-widening.s
    M llvm/test/MC/AArch64/SME2p2/fmop4as-fp64-non-widening-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/fmop4as-fp64-non-widening.s
    M llvm/test/MC/AArch64/SME2p2/ftmopa-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/ftmopa.s
    M llvm/test/MC/AArch64/SME2p2/smop4a-16to32.s
    M llvm/test/MC/AArch64/SME2p2/smop4a-64.s
    M llvm/test/MC/AArch64/SME2p2/smop4a-8to32.s
    M llvm/test/MC/AArch64/SME2p2/smop4a-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/smop4s-16to32.s
    M llvm/test/MC/AArch64/SME2p2/smop4s-64.s
    M llvm/test/MC/AArch64/SME2p2/smop4s-8to32.s
    M llvm/test/MC/AArch64/SME2p2/smop4s-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/stmopa-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/stmopa.s
    M llvm/test/MC/AArch64/SME2p2/sumop4a-32.s
    M llvm/test/MC/AArch64/SME2p2/sumop4a-64.s
    M llvm/test/MC/AArch64/SME2p2/sumop4a-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/sumop4s-32.s
    M llvm/test/MC/AArch64/SME2p2/sumop4s-64.s
    M llvm/test/MC/AArch64/SME2p2/sumop4s-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/sutmopa-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/sutmopa.s
    M llvm/test/MC/AArch64/SME2p2/umop4a-16to32.s
    M llvm/test/MC/AArch64/SME2p2/umop4a-64.s
    M llvm/test/MC/AArch64/SME2p2/umop4a-8to32.s
    M llvm/test/MC/AArch64/SME2p2/umop4a-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/umop4s-16to32.s
    M llvm/test/MC/AArch64/SME2p2/umop4s-64.s
    M llvm/test/MC/AArch64/SME2p2/umop4s-8to32.s
    M llvm/test/MC/AArch64/SME2p2/umop4s-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/usmop4a-32.s
    M llvm/test/MC/AArch64/SME2p2/usmop4a-64.s
    M llvm/test/MC/AArch64/SME2p2/usmop4a-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/usmop4s-32.s
    M llvm/test/MC/AArch64/SME2p2/usmop4s-64.s
    M llvm/test/MC/AArch64/SME2p2/usmop4s-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/ustmopa-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/ustmopa.s
    M llvm/test/MC/AArch64/SME2p2/utmopa-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/utmopa.s
    M llvm/unittests/TargetParser/TargetParserTest.cpp

  Log Message:
  -----------
  [LLVM][AArch64] Add new feature +sme-mop4 and +sme-tmop (#121935)

The 2024-12 ISA spec release[1] add these features:
FEAT_SME_MOP4(sme-mop4) to enable SME Quarter-tile outer product
instructions
and
FEAT_SME_TMOP(sme-tmop) to enable SME Structured sparsity outer product
instructions
to allow these instructions to be available outside Armv9.6/sme2p2

[1]
https://developer.arm.com/Architectures/A-Profile%20Architecture#Downloads


  Commit: 2d760a139ef11b31c58fa270878585961cb67cb7
      https://github.com/llvm/llvm-project/commit/2d760a139ef11b31c58fa270878585961cb67cb7
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/test/Transforms/FunctionAttrs/initializes.ll

  Log Message:
  -----------
  [FunctionAttrs] Add test for initializes + byval (NFC)


  Commit: b6eb6a87cf04d8e8e8e323e4d77a38e92a6afc3e
      https://github.com/llvm/llvm-project/commit/b6eb6a87cf04d8e8e8e323e4d77a38e92a6afc3e
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  Log Message:
  -----------
  [FunctionAttrs] Use doesNotCapture()

To be conservative, explicitly exclude byval arguments, which
doesNotCapture() would otherwise allow. Even if byval has an
initializes attribute, it would only apply to the implicit
copy.


  Commit: a53fa78e7b14e57f0acd5a0981e4c63a1c217a11
      https://github.com/llvm/llvm-project/commit/a53fa78e7b14e57f0acd5a0981e4c63a1c217a11
  Author: Congcong Cai <congcongcai0907 at 163.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang-tools-extra/docs/ReleaseNotes.rst

  Log Message:
  -----------
  [clang-tidy][doc] fix incorrectly performance-unnecessary-copy-initialization link in release note (#122910)


  Commit: 7900769985ee4994870f7dfb2a505b8c41b38740
      https://github.com/llvm/llvm-project/commit/7900769985ee4994870f7dfb2a505b8c41b38740
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/docs/ReleaseNotes.md

  Log Message:
  -----------
  [llvm][Docs] Add a release note about the lldb DWARF indexing speedup (#122870)

The figure includes works that's already committed. In does not include
the WIP/RFC proposal in
https://discourse.llvm.org/t/rfc-speeding-up-dwarf-indexing-again/83979.


  Commit: 5e26ff35c14778a728cd3ee7e70d61529bf49661
      https://github.com/llvm/llvm-project/commit/5e26ff35c14778a728cd3ee7e70d61529bf49661
  Author: Brox Chen <guochen2 at amd.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
    M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h
    M llvm/lib/Target/AMDGPU/VOPCInstructions.td
    M llvm/lib/Target/AMDGPU/VOPInstructions.td
    M llvm/test/CodeGen/AMDGPU/fix-sgpr-copies-f16-true16.mir
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vopc.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vopc.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopc.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopc.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopc_dpp16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopc_dpp8.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopc_t16_err.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopc_t16_promote.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3c.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopc.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopc_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopc_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopc_t16_err.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopc_t16_promote.s
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp16_from_vopc.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp8_from_vopc.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vopc.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc_dpp8.txt

  Log Message:
  -----------
  [AMDGPU][True16][MC] true16 for v_cmp_lt_f16 (#122499)

True16 format for v_cmp_lt_f16. Update VOPC t16 and fake16 pseudo.


  Commit: b1751faada35e3456b2a3f6b6c9559b5d74d559b
      https://github.com/llvm/llvm-project/commit/b1751faada35e3456b2a3f6b6c9559b5d74d559b
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M lldb/include/lldb/Target/MemoryRegionInfo.h
    M lldb/packages/Python/lldbsuite/test/lldbtest.py
    M lldb/source/Commands/CommandObjectMemory.cpp
    M lldb/source/Plugins/Process/Utility/LinuxProcMaps.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
    M lldb/source/Target/MemoryRegionInfo.cpp
    A lldb/test/API/linux/aarch64/gcs/Makefile
    A lldb/test/API/linux/aarch64/gcs/TestAArch64LinuxGCS.py
    A lldb/test/API/linux/aarch64/gcs/main.c
    M lldb/unittests/Process/Utility/LinuxProcMapsTest.cpp
    M lldb/unittests/Process/Utility/MemoryTagManagerAArch64MTETest.cpp
    M lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
    M lldb/unittests/Process/minidump/MinidumpParserTest.cpp

  Log Message:
  -----------
  [lldb][Linux] Mark memory regions used for shadow stacks (#117861)

This is intended for use with Arm's Guarded Control Stack extension
(GCS). Which reuses some existing shadow stack support in Linux. It
should also work with the x86 equivalent.

A "ss" flag is added to the "VmFlags" line of shadow stack memory
regions in `/proc/<pid>/smaps`. To keep the naming generic I've called
it shadow stack instead of guarded control stack.

Also the wording is "shadow stack: yes" because the shadow stack region
is just where it's stored. It's enabled for the whole process or it
isn't. As opposed to memory tagging which can be enabled per region, so
"memory tagging: enabled" fits better for that.

I've added a test case that is also intended to be the start of a set of
tests for GCS. This should help me avoid duplicating the inline assembly
needed.

Note that no special compiler support is needed for the test. However,
for the intial enabling of GCS (assuming the libc isn't doing it) we do
need to use an inline assembly version of prctl.

This is because as soon as you enable GCS, all returns are checked
against the GCS. If the GCS is empty, the program will fault. In other
words, you can never return from the function that enabled GCS, unless
you push values onto it (which is possible but not needed here).

So you cannot use the libc's prctl wrapper for this reason. You can use
that wrapper for anything else, as we do to check if GCS is enabled.


  Commit: 438e2ccd4ad18d23fc800d0ad9f4f667a547f868
      https://github.com/llvm/llvm-project/commit/438e2ccd4ad18d23fc800d0ad9f4f667a547f868
  Author: PaulXiCao <paulxicao7 at gmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/include/__algorithm/inplace_merge.h
    M libcxx/include/__algorithm/sort.h
    M libcxx/include/__algorithm/stable_sort.h
    M libcxx/include/__memory/destruct_n.h
    M libcxx/include/algorithm
    M libcxx/include/module.modulemap
    M libcxx/test/std/algorithms/alg.sorting/alg.sort/stable.sort/stable_sort.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.sort/stable.sort/stable_sort_comp.pass.cpp

  Log Message:
  -----------
  [libc++] Make std::stable_sort constexpr friendly (#110320)

Implementing `constexpr std::stable_sort`. This is part of P2562R1,
tracked via issue #105360.

Closes #119394

Co-authored-by: A. Jiang <de34 at live.cn>
Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>


  Commit: e03c435d2a4900eb442c1f68b044c21cbc89acbe
      https://github.com/llvm/llvm-project/commit/e03c435d2a4900eb442c1f68b044c21cbc89acbe
  Author: A. Jiang <de34 at live.cn>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M libcxx/include/tuple
    M libcxx/test/std/utilities/tuple/tuple.tuple/tuple.creation/tuple_cat.pass.cpp

  Log Message:
  -----------
  [libc++] Fix `tuple_cat` for element with unconstrained constructor (#122433)

Currently, when the result type is 1-`tuple`, `tuple_cat` possibly tests
an undesired constructor of the element, due to conversion from the
reference tuple to the result type. If the element type has an
unconstrained constructor template, there can be extraneous hard error
which shouldn't happen.

This patch introduces a helper function template to select the element-wise
constructor template of `tuple`, which can avoid such error.

Fixes #41034.


  Commit: f4aec22e4776218d2d94f5357e19897bc2e726d4
      https://github.com/llvm/llvm-project/commit/f4aec22e4776218d2d94f5357e19897bc2e726d4
  Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
    M mlir/unittests/Dialect/OpenACC/OpenACCOpsTest.cpp

  Log Message:
  -----------
  [mlir][acc] Fix async only api on data entry operations (#122818)

Data entry operations which are created from constructs with async
clause that has no value (aka `acc data copyin(var) async`) end up
holding an attribute array named to keep track of this information.
However, in cases where `async` clause is not used, calling
`hasAsyncOnly` ends up crashing since this attribute is not set.

Thus, to fix this issue, ensure that we check for this attribute before
trying to walk the attribute array.


  Commit: 493c066a3dd8cbd665cf4065abf15e9f3c63741f
      https://github.com/llvm/llvm-project/commit/493c066a3dd8cbd665cf4065abf15e9f3c63741f
  Author: Peng Liu <winner245 at hotmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M libcxx/include/__algorithm/count.h
    M libcxx/include/__algorithm/fill_n.h
    M libcxx/include/__algorithm/find.h
    M libcxx/include/__bit_reference
    M libcxx/include/__fwd/bit_reference.h
    M libcxx/include/bitset
    M libcxx/test/std/utilities/template.bitset/bitset.members/nonstdmem.uglified.compile.pass.cpp

  Log Message:
  -----------
  [libc++] Fix ambiguity due to non-uglified member typedefs (#121664)

This PR fixes the ambiguities in name lookup caused by non-standard
member typedefs `size_type` and `difference_type` in `std::bitset`.

Follows up #121620.
Closes #121618.


  Commit: fbef1f835f0381a71362199840bee9ec491e3918
      https://github.com/llvm/llvm-project/commit/fbef1f835f0381a71362199840bee9ec491e3918
  Author: sstwcw <su3e8a96kzlver at posteo.net>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/lib/Format/FormatTokenLexer.cpp
    M clang/unittests/Format/TokenAnnotatorTest.cpp

  Log Message:
  -----------
  [clang-format][NFC] Make formatting Verilog faster (#121139)

A regular expression was used in the lexing process. It made the program
take more than linear time with regards to the length of the input. It
looked like the entire buffer could be scanned for every token lexed.
Now the regular expression is replaced with code. Previously it took 20
minutes for the program to format 125 000 lines of code on my computer.
Now it takes 315 milliseconds.


  Commit: df40b056f1e956a25b8121174d0b42bf1b5c7732
      https://github.com/llvm/llvm-project/commit/df40b056f1e956a25b8121174d0b42bf1b5c7732
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M mlir/test/Dialect/Linalg/vectorization-pad-patterns.mlir

  Log Message:
  -----------
  [mlir][nfc] Update 2 tests for PadOpVectorizationWithTransferWritePattern (#122721)

* Relocates two tests for `PadOpVectorizationWithTransferWritePattern`
  in "vectorization-pad-patterns.mlir" to group them with other tests
  for the same pattern.
* Adds a note clarifying that these are negative tests and explains the
  reasoning behind them.
* Removes `transform.apply_patterns.linalg.decompose_pad` from the TD
  sequences as it's no longer needed (*).

This is essentially a small clean-up in preparation for upcoming
changes.

(*) `transform.apply_patterns.linalg.decompose_pad` was split off from
`transform.apply_patterns.linalg.pad_vectorization` in #117329.
"vectorization-pad-patterns.mlir" is meant to test the latter, not the
former.


  Commit: d305fd0b09b1bd7c29640e072c58567ecf2f5026
      https://github.com/llvm/llvm-project/commit/d305fd0b09b1bd7c29640e072c58567ecf2f5026
  Author: Kelvin Li <kkwli at users.noreply.github.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/lib/Lower/ConvertType.cpp

  Log Message:
  -----------
  [flang][AIX] filter out __builtin_c_devptr for generating packed type (#122812)


  Commit: 2f7807ed52ff41b7cd92b635c21e7c1da4ea8bb5
      https://github.com/llvm/llvm-project/commit/2f7807ed52ff41b7cd92b635c21e7c1da4ea8bb5
  Author: Jan Leyonberg <jan_sjodin at yahoo.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/test/Lower/math-lowering/cosh.f90
    M flang/test/Lower/trigonometric-intrinsics.f90

  Log Message:
  -----------
  [Flang] Generate math.cosh op for non-precise cosh intrinsic calls (#122292)

This patch changes the codgegn for non-precise cosh calls to generate
math.cosh ops. This wasn't done before because the math dialect did not
have a cosh operation at the time.


  Commit: 4f614a8f7c8b92f0348109521833dc3ef7ea8a4a
      https://github.com/llvm/llvm-project/commit/4f614a8f7c8b92f0348109521833dc3ef7ea8a4a
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp

  Log Message:
  -----------
  [AMDGPULowerBufferFatPointers] Use typeIncompatible() (#122902)

Use typeIncompatible() to drop attributes incompatible with the new
argument/return type, instead of keeping a custom list.


  Commit: f1b1c7f3c18c1b75b620a968746346b1a1d94ce3
      https://github.com/llvm/llvm-project/commit/f1b1c7f3c18c1b75b620a968746346b1a1d94ce3
  Author: Brox Chen <guochen2 at amd.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Target/AMDGPU/VOP3Instructions.td
    M llvm/test/CodeGen/AMDGPU/shrink-add-sub-constant.ll

  Log Message:
  -----------
  [AMDGPU][True16][CodeGen] Undo sub(x,c) to add in true16 flow (#118854)

Undo sub x, c -> add x, -c canonicalization in true16 fow.

This duplicating the pattern from fake16 and implemement the same
pattern in true16 format


  Commit: 0fb0ac708a581e795c78b7838e10305d80a25c67
      https://github.com/llvm/llvm-project/commit/0fb0ac708a581e795c78b7838e10305d80a25c67
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  Log Message:
  -----------
  [OMPIRBuilder] Simplify error handling while emitting target calls, NFC (#122477)

The OMPIRBuilder uses `llvm::Error`s to allow callbacks passed to it to
signal errors and prevent OMPIRBuilder functions to continue after one
has been triggered. This means that OMPIRBuilder functions taking
callbacks needs to be able to forward these errors, which must always be
checked.

However, in cases where these functions are called from within the
OMPIRBuilder with callbacks also defined inside of it, it can be known
in advance that no errors will be produced. This is the case of those
defined in `emitTargetCall`.

This patch introduces calls to the `cantFail` function instead of the
previous superfluous checks that still assumed calls wouldn't fail,
making these assumptions more obvious and simplifying their
implementation.


  Commit: 87750c9de4b7bd71539bfadd61c10317235da138
      https://github.com/llvm/llvm-project/commit/87750c9de4b7bd71539bfadd61c10317235da138
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/test/Transforms/VectorCombine/X86/permute-of-binops.ll

  Log Message:
  -----------
  [VectorCombine] foldPermuteOfBinops - match identity shuffles only if they match the destination type

Fixes regression identified after #122118


  Commit: 193ea83dd7e879ddd4e3dfb1fa74a676b528e4a6
      https://github.com/llvm/llvm-project/commit/193ea83dd7e879ddd4e3dfb1fa74a676b528e4a6
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
    M llvm/test/Transforms/InstCombine/str-int-2.ll
    M llvm/test/Transforms/InstCombine/str-int-3.ll
    M llvm/test/Transforms/InstCombine/str-int.ll
    M llvm/test/Transforms/InstCombine/strcall-no-nul.ll

  Log Message:
  -----------
  [SimplifyLibCalls] Don't infer call-site nocapture on atoi

This is already inferred on the function declaration by BLC, there
is no need to also do it at the call-site.


  Commit: 58fa55c04baaaa645a0bf9e265154b7ea7caf0d8
      https://github.com/llvm/llvm-project/commit/58fa55c04baaaa645a0bf9e265154b7ea7caf0d8
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/lib/AST/ByteCode/Compiler.cpp
    M clang/lib/AST/ByteCode/Compiler.h
    M clang/test/AST/ByteCode/cxx11.cpp

  Log Message:
  -----------
  [clang][bytecode] Add init link for the RVO ptr (#122904)


  Commit: 97cf5aa1b2459b91ce402f2e4f64af3587824fcf
      https://github.com/llvm/llvm-project/commit/97cf5aa1b2459b91ce402f2e4f64af3587824fcf
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/docs/ReleaseNotes.rst

  Log Message:
  -----------
  [Clang] Add AArch64 SME changes to release notes (NFC) (#122899)


  Commit: 616007d88f06f0c523239151d5e52bd4ec61db96
      https://github.com/llvm/llvm-project/commit/616007d88f06f0c523239151d5e52bd4ec61db96
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M lld/COFF/InputFiles.cpp
    A lld/test/COFF/info-sec.s

  Log Message:
  -----------
  [LLD][COFF] Skip sections marked as IMAGE_SCN_LNK_INFO in the output image (#122752)

Fixes #106275.


  Commit: 091adb8807decb4fa1b4e58eba141a06058eb804
      https://github.com/llvm/llvm-project/commit/091adb8807decb4fa1b4e58eba141a06058eb804
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
    M libc/cmake/modules/LLVMLibCTestRules.cmake

  Log Message:
  -----------
  [libc][cmake] move _get_{common|hermetic}_test_compile_options to LLVMLibCTestRules.cmake (#122549)

They're only used in that file, which is more appropriate than
LLVMLibCCompileOptionRules.cmake since they're strictly related to tests.

Remove unused flags param from _get_hermetic_test_compile_options, and flags
that were already set by a prior call to _get_common_test_compile_options.


  Commit: 0298e58c7dd1fa76b98ff270cdb9e0eba4949185
      https://github.com/llvm/llvm-project/commit/0298e58c7dd1fa76b98ff270cdb9e0eba4949185
  Author: Peng Liu <winner245 at hotmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M libcxx/docs/ReleaseNotes/20.rst
    M libcxx/include/__vector/vector.h
    M libcxx/test/benchmarks/GenerateInput.h
    M libcxx/test/benchmarks/containers/ContainerBenchmarks.h
    M libcxx/test/benchmarks/containers/vector_operations.bench.cpp
    M libcxx/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp

  Log Message:
  -----------
  [libc++] Optimize input_iterator-pair `insert` for std::vector (#113768)

As a follow-up to #113852, this PR optimizes the performance of the
`insert(const_iterator pos, InputIt first, InputIt last)` function for
`input_iterator`-pair inputs in `std::vector` for cases where
reallocation occurs during insertion. Additionally, this optimization
enhances exception safety by replacing the traditional `try-catch`
mechanism with a modern exception guard for the `insert` function.

The optimization targets cases where insertion trigger reallocation. In
scenarios without reallocation, the implementation remains unchanged.

Previous implementation
-----------------------
The previous implementation of `insert` is inefficient in reallocation
scenarios because it performs the following steps separately:
- `reserve()`: This leads to the first round of relocating old
elements to new memory;
- `rotate()`: This leads to the second round of reorganizing the
existing elements;
- Move-forward: Moves the elements after the insertion position to
their final positions.
- Insert: performs the actual insertion.

This approach results in a lot of redundant operations, requiring the
elements to undergo three rounds of relocations/reorganizations to be
placed in their final positions.

Proposed implementation
-----------------------
The proposed implementation jointly optimize the above 4 steps in the
previous implementation such that each element is placed in its final
position in just one round of relocation. Specifically, this
optimization reduces the total cost from 2 relocations + 1 std::rotate
call to just 1 relocation, without needing to call `std::rotate`,
thereby significantly improving overall performance.


  Commit: b74d3e179d6d1d8aad65a7ee8d359defd94a8ec1
      https://github.com/llvm/llvm-project/commit/b74d3e179d6d1d8aad65a7ee8d359defd94a8ec1
  Author: Vyacheslav Levytskyy <vyacheslav.levytskyy at intel.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/test/CodeGen/SPIRV/pointers/type-deduce-sycl-stub.ll
    M llvm/test/CodeGen/SPIRV/transcoding/OpGroupBroadcast.ll
    M llvm/test/CodeGen/SPIRV/validate/sycl-hier-par-basic.ll
    M llvm/test/CodeGen/SPIRV/validate/sycl-tangle-group-algorithms.ll

  Log Message:
  -----------
  [SPIR-V] Specify target environment in tests referring to the BuiltIn WorkgroupSize variable (#122755)

https://github.com/KhronosGroup/SPIRV-Tools/pull/5407 introduces a check
for WorkgroupSize variable to be a 3-component 32-bit int vector, and
indeed, we see this requirement in
https://registry.khronos.org/vulkan/specs/latest/man/html/WorkgroupSize.html#VUID-WorkgroupSize-WorkgroupSize-04427

However, OpenCL imposes different requirements, documented here:
https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_Env.html#_built_in_variables
OpenCL environment requires WorkgroupSize variable to have components of
size_t size that will be 32 or 64 depending on a target. This is the way
how the SPIR-V Backend implements this, by querying pointer size of the
current platform/target.

To allow spirv-val to account target environments difference, this PR
adds `--target-env <env>` to test cases referring to the BuiltIn
WorkgroupSize variable.


  Commit: c2771ca284124861de76ba1853ac4f26e09b8497
      https://github.com/llvm/llvm-project/commit/c2771ca284124861de76ba1853ac4f26e09b8497
  Author: Prashanth <TheStarOne01 at proton.me>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M libc/docs/CMakeLists.txt
    M libc/docs/headers/index.rst
    A libc/utils/docgen/sys/resource.yaml

  Log Message:
  -----------
  [libc][docs] Add sys/resource header's implementation status (#122563)

### Add sys/resource header's implementation status ( #122006 )

#### Changes:
1. **CMakeLists.txt**: Added `sys/resource` to the list of documentation
directories.
2. **index.rst**: Included `sys/resource` in the documentation index.
3. **resource.yaml**: Created a new YAML file for `sys/resource` with
functions and macros which manages system resources.

This PR adds documentation support for the `sys/resource` header,
including functions and macros as per the latest POSIX standards.


  Commit: 9ba27ca5c76a18c2b29cbac132b5b8d340b8f237
      https://github.com/llvm/llvm-project/commit/9ba27ca5c76a18c2b29cbac132b5b8d340b8f237
  Author: Vyacheslav Levytskyy <vyacheslav.levytskyy at intel.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVAsmPrinter.cpp
    A llvm/test/CodeGen/SPIRV/global-var-intrinsic.ll

  Log Message:
  -----------
  [SPIR-V] Ensure no uses of intrinsic global variables after module translation (#122729)

Ensure that the backend satisfies the requirement of the verifier that
disallows uses of intrinsic global variables. This PR fixes
https://github.com/llvm/llvm-project/issues/110495


  Commit: 539b15b41a6a01017c0a555e89b7d2b62ba194d2
      https://github.com/llvm/llvm-project/commit/539b15b41a6a01017c0a555e89b7d2b62ba194d2
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M libc/docs/CMakeLists.txt
    M libc/docs/headers/index.rst
    A libc/utils/docgen/pthread.yaml

  Log Message:
  -----------
  [libc][docs] stub out pthread.h support (#122497)

Link: #122006


  Commit: c33486954bd1404495581e42ed62428fb7abeae9
      https://github.com/llvm/llvm-project/commit/c33486954bd1404495581e42ed62428fb7abeae9
  Author: Zack Johnson <zacklj89 at gmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M compiler-rt/lib/asan/asan_interceptors.cpp
    A compiler-rt/test/asan/TestCases/Windows/msvc/strdup_null_input.cpp

  Log Message:
  -----------
  [ASan] Change strdup interceptor to allow null input on Windows (#122803)

[These are the MS
Docs](https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/strdup-wcsdup-mbsdup?view=msvc-170)
regarding `strdup`, but they don't explicitly mention this. The SAL
annotations on `strdup` do, though, with the input parameter being
marked `_In_opt_z_`.


  Commit: 8d9dcd111e5ced8135387917859dd64d67886be0
      https://github.com/llvm/llvm-project/commit/8d9dcd111e5ced8135387917859dd64d67886be0
  Author: David CARLIER <devnexen at gmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.h
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h

  Log Message:
  -----------
  [compiler-rt] fseek interception update. (#122795)

fseek api is POSIX.

to also address #122163


  Commit: fbb4697c3f08dc3ef69e718b3c43dde494018de3
      https://github.com/llvm/llvm-project/commit/fbb4697c3f08dc3ef69e718b3c43dde494018de3
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M libcxx/include/barrier
    M libcxx/src/barrier.cpp
    M libcxx/test/tools/clang_tidy_checks/internal_ftm_use.cpp

  Log Message:
  -----------
  [libc++] Remove unused _LIBCPP_HAS_NO_TREE_BARRIER macro and associated dead code (#122769)

That macro was present in the original implementation of the
synchronization library, but it was never defined and so it's
effectively unused.


  Commit: 06c6baeb521e321ffcb60fc0a411451e987cd98b
      https://github.com/llvm/llvm-project/commit/06c6baeb521e321ffcb60fc0a411451e987cd98b
  Author: Deric Cheung <cheung.deric at gmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/lib/Headers/hlsl/hlsl_detail.h
    M clang/lib/Headers/hlsl/hlsl_intrinsics.h
    A clang/test/CodeGenHLSL/builtins/D3DCOLORtoUBYTE4.hlsl
    A clang/test/SemaHLSL/BuiltIns/D3DCOLORtoUBYTE4-errors.hlsl

  Log Message:
  -----------
  [HLSL] Implement D3DCOLORtoUBYTE4 intrinsic (#122202)

Fixes #99092.

1. Defines the function `D3DCOLORtoUBYTE4` in
`clang/lib/Headers/hlsl/hlsl_intrinsics.h`.
2. Implements the function `D3DCOLORtoUBYTE4` as `d3d_color_to_ubyte4`
in `clang/lib/Headers/hlsl/hlsl_detail.h`
3. Adds a HLSL codegen test to
`clang/test/CodeGenHLSL/builtins/D3DCOLORtoUBYTE4.hlsl`
4. Adds sema tests to
`clang/test/SemaHLSL/BuiltIns/D3DCOLORtoUBYTE4-errors.hlsl`


  Commit: a0bd40e5a3df94229ec06243f2958289071ca75c
      https://github.com/llvm/llvm-project/commit/a0bd40e5a3df94229ec06243f2958289071ca75c
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/lib/AST/ByteCode/EvalEmitter.cpp
    M clang/test/AST/ByteCode/arrays.cpp
    M clang/test/AST/ByteCode/cxx23.cpp

  Log Message:
  -----------
  Revert "[clang][bytecode] Mark global decls with diagnostics invalid (#122895)"

This reverts commit c1de9b920935e7d2fcc8dd7b39c1b7285783e948.

It looks like this breaks the memory-sanitizer builder:
https://lab.llvm.org/buildbot/#/builders/94/builds/3745


  Commit: 692c77f2af133874f18942fe8c32f0f072bfc02b
      https://github.com/llvm/llvm-project/commit/692c77f2af133874f18942fe8c32f0f072bfc02b
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M libc/docs/build_and_test.rst
    R libc/docs/c23.rst
    R libc/docs/fullbuild_mode.rst
    A libc/docs/getting_started.rst
    M libc/docs/index.rst
    M libc/docs/porting.rst
    R libc/docs/usage_modes.rst

  Log Message:
  -----------
  [libc][docs] reorder docs to be more beginner friendly (#122376)

This commit does a few things, with the intent to make it more straightforward
to potential future users how to get started with llvm-libc. Answers to "What's
the status and how do I use it?" are front and center, "above the fold."

This commit does a few things:
* reorganize the landing page's toctree: start with implementation status, arch
* support, platform support, and
    compiler support.
  * Then a (new) simple getting started page using full host builds. Then more
  * Advanced topics such as host vs cross builds, overlay mode,
    gpu builds and additional configuration options.
* Remove c23 status, the old fullbuild_mode landing page, and
  usage_modes landing pages. c23 status isn't as interesting as I originally
  thought it might.

We should point people at full host builds to start, then link to more info on
cross compilation, or overlay mode as more advanced topics. I assert most users
starting out won't care about those.


  Commit: b1edfa1c07dc6ac42205b3397304e5b5f77617a1
      https://github.com/llvm/llvm-project/commit/b1edfa1c07dc6ac42205b3397304e5b5f77617a1
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  Log Message:
  -----------
  [SelectionDAG] Prevent converting a virtual register to an MCRegister. (#122857)

I believe the goal is that MCRegister is only for physical registers.


  Commit: c7fddf5f786d4ed726b53096d461b62cf7649b90
      https://github.com/llvm/llvm-project/commit/c7fddf5f786d4ed726b53096d461b62cf7649b90
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Target/ARM/ThumbRegisterInfo.cpp

  Log Message:
  -----------
  [ARM] Prevent converting virtual register to MCRegister. (#122862)

MCRegister should only be used for physical reigsters.


  Commit: fed817a8b25e178cd701fefcdfe80c447d2ab212
      https://github.com/llvm/llvm-project/commit/fed817a8b25e178cd701fefcdfe80c447d2ab212
  Author: Haopeng Liu <153236845+haopliu at users.noreply.github.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
    M llvm/test/Transforms/DeadStoreElimination/inter-procedural.ll

  Log Message:
  -----------
  [DSE] Consider the aliasing through global variable while checking clobber (#120044)

While update the read clobber check for the "initializes" attr, we
checked the aliasing among arguments, but didn't consider the aliasing
through global variable. It causes problems in this example:

```
int g_var = 123;

void update(int* ptr) {
  *ptr = g_var;

void foo() {
  g_var = 0;
  bar(&g_var);
}
```
We mistakenly removed `g_var = 0;` as a dead store.

Fix the issue by requiring the CallBase only access argmem or
inaccessiblemem.


  Commit: 5187482fd0065b52fc483774799df082c2a35a4d
      https://github.com/llvm/llvm-project/commit/5187482fd0065b52fc483774799df082c2a35a4d
  Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/IR/Instructions.cpp
    M llvm/test/Transforms/VectorCombine/X86/extract-cmp-binop.ll
    M llvm/unittests/IR/InstructionsTest.cpp

  Log Message:
  -----------
  IR: handle FP predicates in CmpPredicate::getMatching (#122924)

CmpPredicate::getMatching implicitly assumes that both predicates are
integer-predicates, and this has led to a crash being reported in
VectorCombine after e409204 (VectorCombine: teach foldExtractedCmps
about samesign). FP predicates are simple enough to handle as there is
never any samesign information associated with them: hence handle them
in CmpPredicate::getMatching, fixing the VectorCombine crash and
guarding against future incorrect usages.


  Commit: a4b7a2d021ca7371752f0e8180200ffd7b48ca70
      https://github.com/llvm/llvm-project/commit/a4b7a2d021ca7371752f0e8180200ffd7b48ca70
  Author: S. Bharadwaj Yadavalli <Bharadwaj.Yadavalli at microsoft.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Target/DirectX/DXILShaderFlags.cpp
    M llvm/lib/Target/DirectX/DXILShaderFlags.h
    M llvm/test/CodeGen/DirectX/ShaderFlags/double-extensions.ll
    A llvm/test/CodeGen/DirectX/ShaderFlags/propagate-function-flags-test.ll

  Log Message:
  -----------
  [DirectX] Propagate shader flags mask of callees to callers (#118306)

Propagate shader flags mask of callees to callers.

Add tests to verify propagation of shader flags


  Commit: 5a3b5ca058f36c9dd647f0ea6702d3509bee6c27
      https://github.com/llvm/llvm-project/commit/5a3b5ca058f36c9dd647f0ea6702d3509bee6c27
  Author: Jorge Gorbe Moya <jgorbe at google.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M utils/bazel/llvm-project-overlay/clang/BUILD.bazel

  Log Message:
  -----------
  [bazel] Add targets for some testing utility binaries/libraries. (#122834)


  Commit: 71f238a221ff307a1c079678b85ef3abe43c71ab
      https://github.com/llvm/llvm-project/commit/71f238a221ff307a1c079678b85ef3abe43c71ab
  Author: Ikhlas Ajbar <iajbar at quicinc.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsHexagonDep.def
    M llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td
    M llvm/lib/Target/Hexagon/HexagonDepMapAsm2Intrin.td
    M llvm/lib/Target/Hexagon/HexagonSubtarget.h

  Log Message:
  -----------
  [Hexagon] Add missing builtins for V79 (#122916)

This patch adds new builtins that were added in V79 architecture.


  Commit: 576b53801fc3d721602ae0d8377af9950f356000
      https://github.com/llvm/llvm-project/commit/576b53801fc3d721602ae0d8377af9950f356000
  Author: Kirill Stoimenov <kstoimenov at google.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M libcxx/CMakeLists.txt
    M libcxxabi/CMakeLists.txt
    M libcxxabi/include/CMakeLists.txt
    M lldb/test/CMakeLists.txt
    M lldb/utils/lldb-dotest/CMakeLists.txt

  Log Message:
  -----------
  Revert "[libc++] Stop copying headers to the build directory (#115380)"

This reverts commit 428c8767ae997b0f726c0b40160ea8172551babf.

Breaks sanitizer build: https://lab.llvm.org/buildbot/#/builders/51/builds/9056


  Commit: 1594413d5edf6a47d4100cb6a2bc613cfbb92beb
      https://github.com/llvm/llvm-project/commit/1594413d5edf6a47d4100cb6a2bc613cfbb92beb
  Author: higher-performance <higher.performance.github at gmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/include/clang/AST/Decl.h
    M clang/include/clang/AST/DeclBase.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/DiagnosticGroups.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/AST/Decl.cpp
    M clang/lib/AST/DeclCXX.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/test/Misc/pragma-attribute-supported-attributes-list.test
    M clang/test/Sema/uninit-variables.c
    M clang/test/SemaCXX/uninitialized.cpp

  Log Message:
  -----------
  Add Clang attribute to ensure that fields are initialized explicitly (#102040)

This is a new Clang-specific attribute to ensure that field
initializations are performed explicitly.

For example, if we have
```
struct B {
  [[clang::explicit]] int f1;
};
```
then the diagnostic would trigger if we do `B b{};`:
```
field 'f1' is left uninitialized, but was marked as requiring initialization
```

This prevents callers from accidentally forgetting to initialize fields,
particularly when new fields are added to the class.


  Commit: dcc141bc0bb471ba209c89aca4288dc5cd2ef8bc
      https://github.com/llvm/llvm-project/commit/dcc141bc0bb471ba209c89aca4288dc5cd2ef8bc
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/include/module.modulemap

  Log Message:
  -----------
  [TargetParser] Add missing include to modulemap (#122768)

Resolves warning when building with `LLVM_ENABLE_MODULES`

```
AArch64TargetParser.h:39:2: warning: missing submodule 'LLVM_Utils.TargetParser.AArch64FeatPriorities' [-Wincomplete-umbrella]
   39 | #include "llvm/TargetParser/AArch64FeatPriorities.inc"
      |  ^       ~~~~~~~
```


  Commit: bf23ae6d38cfdda3284e8ddb3a296ad44c001a8a
      https://github.com/llvm/llvm-project/commit/bf23ae6d38cfdda3284e8ddb3a296ad44c001a8a
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/lib/Evaluate/shape.cpp
    A flang/test/Semantics/bug121971.f90

  Log Message:
  -----------
  [flang] Fix crash in fuzzed input program (#122193)

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


  Commit: c8202db43ad0cafdc59903dadc4ea9f95a73de9b
      https://github.com/llvm/llvm-project/commit/c8202db43ad0cafdc59903dadc4ea9f95a73de9b
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/lib/Evaluate/tools.cpp
    A flang/test/Semantics/bug121972.f90

  Log Message:
  -----------
  [flang] Fix crash in fuzzing test (#122189)

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


  Commit: 6f55c8068f42f391dd38d7c711ed7c639b01d72c
      https://github.com/llvm/llvm-project/commit/6f55c8068f42f391dd38d7c711ed7c639b01d72c
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/lib/Semantics/resolve-names.cpp
    A flang/test/Semantics/bug121973.f90

  Log Message:
  -----------
  [flang] Fix crash in fuzzer-generated error test. (#122199)

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


  Commit: 9405a81ee7a16d8a30584f612234b4e27bd3d2dd
      https://github.com/llvm/llvm-project/commit/9405a81ee7a16d8a30584f612234b4e27bd3d2dd
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/test/Semantics/reshape.f90

  Log Message:
  -----------
  [flang] Fix crash exposed by fuzzing (#122187)

An integer overflowed in an erroneous test. Fix, and improve the error
messages a bit.

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


  Commit: 01a0d212a64919205734706d929db37e503c35ce
      https://github.com/llvm/llvm-project/commit/01a0d212a64919205734706d929db37e503c35ce
  Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    A flang/include/flang/Optimizer/OpenACC/FIROpenACCTypeInterfaces.h
    A flang/include/flang/Optimizer/OpenACC/RegisterOpenACCExtensions.h
    M flang/include/flang/Optimizer/Support/InitFIR.h
    M flang/lib/Frontend/CMakeLists.txt
    M flang/lib/Optimizer/CMakeLists.txt
    M flang/lib/Optimizer/Dialect/CMakeLists.txt
    A flang/lib/Optimizer/OpenACC/CMakeLists.txt
    A flang/lib/Optimizer/OpenACC/FIROpenACCTypeInterfaces.cpp
    A flang/lib/Optimizer/OpenACC/RegisterOpenACCExtensions.cpp
    A flang/test/Fir/OpenACC/openacc-mappable.fir
    M flang/test/lib/CMakeLists.txt
    A flang/test/lib/OpenACC/CMakeLists.txt
    A flang/test/lib/OpenACC/TestOpenACCInterfaces.cpp
    M flang/tools/fir-lsp-server/CMakeLists.txt
    M flang/tools/fir-opt/CMakeLists.txt
    M flang/tools/fir-opt/fir-opt.cpp
    M flang/tools/tco/CMakeLists.txt

  Log Message:
  -----------
  [flang][acc] Implement MappableType interfaces for fir.box and fir.array (#122495)

The newly introduced MappableType interface in `acc` dialect was
primarily intended to allow variables with non-materialized storage to
be used in acc data clauses (previously everything was required to be
`pointer-like`). One motivator for this was `fir.box` since it is
possible to be passed to functions without a wrapping `fir.ref` and also
it can be generated directly via operations like `fir.embox` - and
unlike other variable representations in FIR, the underlying storage for
it does not get materialized until LLVM codegen.

The new interface is being attached to both `fir.box` and `fir.array`.
Strictly speaking, attaching to the latter is primarily for consistency
since the MappableType interface requires implementation of utilities to
compute byte size - and it made sense that a
`fir.box<fir.array<10xi32>>` and `fir.array<10xi32>` would have a
consistently computable size. This decision may be revisited as
MappableType interface evolves.

The new interface attachments are made in a new library named
`FIROpenACCSupport`. The reason for this is to avoid circular
dependencies since the implementation of this library is reusing code
from lowering of OpenACC. More specifically, the types are defined in
`FIRDialect` and `FortranLower` depends on it. Thus we cannot attach
these interfaces in `FIRDialect`.


  Commit: 63d3bd6d0caf8185aba49540fe2f67512fdf3a98
      https://github.com/llvm/llvm-project/commit/63d3bd6d0caf8185aba49540fe2f67512fdf3a98
  Author: Min Hsu <min.hsu at sifive.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    A llvm/test/tools/llvm-exegesis/X86/dry-run-measurement.test
    R llvm/test/tools/llvm-exegesis/dry-run-measurement.test

  Log Message:
  -----------
  [Exegesis] Fix test failures from #122775 on MacOSX and Fuchsia

I'm making this test to run only when exegesis-can-execute-x86_64.


  Commit: d1a6eaa47884a44a122bdd1e8a22af1dff3dbcfe
      https://github.com/llvm/llvm-project/commit/d1a6eaa47884a44a122bdd1e8a22af1dff3dbcfe
  Author: macurtis-amd <macurtis at amd.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/include/llvm/Transforms/IPO/Attributor.h
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  Log Message:
  -----------
  [Attributor][NFC] Performance improvements (#122923)

` forallInterferingAccesses` is a hotspot and for large modules these
changes make a measurable improvement in compilation time.

For LTO kernel compilation of 519.clvleaf (SPEChpc 2021) I measured the
following:
```
                    |   Measured times (s)   | Average | speedup
--------------------+------------------------+---------+---------
Baseline            | 33.268  33.332  33.275 |  33.292 |      0%
Cache "kernel"      | 30.543  30.339  30.607 |  30.496 |    9.2%
templatize callback | 30.981  30.97   30.964 |  30.972 |    7.5%
Both changes        | 29.284  29.201  29.053 |  29.179 |   14.1%
```


  Commit: 1dbc98294adc06e409b1e0d44252826857ac2ec6
      https://github.com/llvm/llvm-project/commit/1dbc98294adc06e409b1e0d44252826857ac2ec6
  Author: Roland McGrath <mcgrathr at google.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M libc/test/include/assert_test.cpp
    M libc/test/include/complex_test.cpp
    M libc/test/include/fpclassify_test.c
    M libc/test/include/fpclassify_test.cpp
    M libc/test/include/fpclassifyf_test.cpp
    M libc/test/include/fpclassifyl_test.cpp
    M libc/test/include/header-test-template.c
    M libc/test/include/iscanonical_test.c
    M libc/test/include/isfinite_test.c
    M libc/test/include/isfinite_test.cpp
    M libc/test/include/isfinitef_test.cpp
    M libc/test/include/isfinitel_test.cpp
    M libc/test/include/isinf_test.c
    M libc/test/include/isinf_test.cpp
    M libc/test/include/isinff_test.cpp
    M libc/test/include/isinfl_test.cpp
    M libc/test/include/isnan_test.c
    M libc/test/include/isnan_test.cpp
    M libc/test/include/isnanf_test.cpp
    M libc/test/include/isnanl_test.cpp
    M libc/test/include/isnormal_test.c
    M libc/test/include/isnormal_test.cpp
    M libc/test/include/isnormalf_test.cpp
    M libc/test/include/isnormall_test.cpp
    M libc/test/include/issignaling_test.c
    M libc/test/include/issubnormal_test.c
    M libc/test/include/issubnormal_test.cpp
    M libc/test/include/issubnormalf_test.cpp
    M libc/test/include/issubnormall_test.cpp
    M libc/test/include/iszero_test.c
    M libc/test/include/iszero_test.cpp
    M libc/test/include/iszerof_test.cpp
    M libc/test/include/iszerol_test.cpp
    M libc/test/include/signbit_test.c
    M libc/test/include/signbit_test.cpp
    M libc/test/include/signbitf_test.cpp
    M libc/test/include/signbitl_test.cpp
    M libc/test/include/stdbit_stub.h
    M libc/test/include/stdbit_test.c
    M libc/test/include/stdbit_test.cpp
    M libc/test/include/stdckdint_test.cpp
    M libc/test/include/sys/queue_test.cpp

  Log Message:
  -----------
  [libc] Fix SPDX-License-Identifier file header comment typos (#122776)


  Commit: 0d150817c354bc61a48676754288aabbb03570c3
      https://github.com/llvm/llvm-project/commit/0d150817c354bc61a48676754288aabbb03570c3
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/lib/Lower/OpenMP/OpenMP.cpp

  Log Message:
  -----------
  [flang] Fix a warning

This patch fixes:

  flang/lib/Lower/OpenMP/OpenMP.cpp:599:15: error: unused variable
  'ompEval' [-Werror,-Wunused-variable]


  Commit: e511b3e24a67b2040d38288427a12c7e8f1c5828
      https://github.com/llvm/llvm-project/commit/e511b3e24a67b2040d38288427a12c7e8f1c5828
  Author: Steven Perron <stevenperron at google.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/WaveReadLaneAt.ll

  Log Message:
  -----------
  [SPIRV] Fix graphic test to use correct triple. (#122738)


  Commit: 5dcf5cc0e0b462be99d1ae3d993ec11b039097b8
      https://github.com/llvm/llvm-project/commit/5dcf5cc0e0b462be99d1ae3d993ec11b039097b8
  Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp
    M lldb/test/API/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py
    M lldb/test/API/functionalities/plugins/python_os_plugin/main.c

  Log Message:
  -----------
  [lldb] Remove unfiltered stop reason propagation from StopInfoMachException (#122817)

In the presence of OS plugins, StopInfoMachException currently
propagates breakpoint stop reasons even if those breakpoints were not
intended for a specific thread, effectively removing our ability to set
thread-specific breakpoints.

This was originally added in [1], but the motivation provided in the
comment does not seem strong enough to remove the ability to set
thread-specific breakpoints. The only way to break thread specific
breakpoints would be if a user set such a breakpoint and _then_ loaded
an OS plugin, a scenario which we would likely not want to support.

[1]:
https://github.com/swiftlang/llvm-project/commit/ab745c2ad865c07f3905482fd071ef36c024713a#diff-8ec6e41b1dffa7ac4b5841aae24d66442ef7ebc62c8618f89354d84594f91050R501


  Commit: dac06e76e0c12a89b750440b4c9a04c68f6baa48
      https://github.com/llvm/llvm-project/commit/dac06e76e0c12a89b750440b4c9a04c68f6baa48
  Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/test/lib/OpenACC/CMakeLists.txt

  Log Message:
  -----------
  [flang][acc] Fix FIRTestOpenACCInterfaces dependency (#122953)

According to one of the LLVM builds:

https://github.com/llvm/llvm-project/pull/122495#issuecomment-2590897971
The linking to various "mlir::Pass::" methods is failing. Ensure
dependency is properly setup.


  Commit: 5deabab06087e5bb7292e75347baacd63f3d4bde
      https://github.com/llvm/llvm-project/commit/5deabab06087e5bb7292e75347baacd63f3d4bde
  Author: higher-performance <higher.performance.github at gmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/include/clang/AST/DeclBase.h
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Basic/AttrDocs.td
    M clang/test/Sema/uninit-variables.c
    M clang/test/SemaCXX/uninitialized.cpp

  Log Message:
  -----------
  Rename [[clang::requires_explicit_initialization]] to [[clang::require_explicit_initialization]] (#122947)

This makes it consistent with
`[[clang::require_constant_initialization]]`.

(The attribute was just added to Clang a few minutes ago, so there are
no users yet.)


  Commit: 31e9d390c015bc628dce947d532d10f5d4436190
      https://github.com/llvm/llvm-project/commit/31e9d390c015bc628dce947d532d10f5d4436190
  Author: Jorge Gorbe Moya <jgorbe at google.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M utils/bazel/llvm-project-overlay/clang/BUILD.bazel

  Log Message:
  -----------
  [bazel] remove unneeded copts (#122958)


  Commit: 44d9beef7d28f4a4d73acb12ea030bb642eff1d2
      https://github.com/llvm/llvm-project/commit/44d9beef7d28f4a4d73acb12ea030bb642eff1d2
  Author: Paul Kirth <paulkirth at google.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M compiler-rt/lib/rtsan/tests/rtsan_test_functional.cpp

  Log Message:
  -----------
  [rtsan][test] Prevent test check from being optimized out in LTO builds (#122524)

In LTO builds, some test checks can be optimized away, since the
compiler can
see through the memory accesses after inlining across TUs. This causes
the existing death tests to fail, since the functions are completely
optimized out and things like copying a lambda will no longer occur and
trigger the sanitizer.

To prevent that, we can use an empty inline assembly block to tell the
compiler that memory is modified, and prevent it from doing that.


  Commit: 0e7b754ecc2ccb1d88fd929c6a198ba0f693d098
      https://github.com/llvm/llvm-project/commit/0e7b754ecc2ccb1d88fd929c6a198ba0f693d098
  Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/include/llvm/IR/CmpPredicate.h
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/IR/Instructions.cpp

  Log Message:
  -----------
  [ValueTracking] Squash compile-time regression from 66badf2 (#122700)

66badf2 (VT: teach a special-case optz about samesign) introduced a
compile-time regression due to the use of CmpPredicate::getMatching,
which is unnecessarily inefficient. Introduce
CmpPredicate::getPreferredSignedPredicate, which alleviates the
inefficiency problem and squashes the compile-time regression.


  Commit: 48757e02ba2c1651c268351d062f80923baceda4
      https://github.com/llvm/llvm-project/commit/48757e02ba2c1651c268351d062f80923baceda4
  Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/test/Transforms/InstCombine/select-cmp.ll

  Log Message:
  -----------
  [InstCombine] Teach foldSelectOpOp about samesign (#122723)

Follow up on 4a0d53a (PatternMatch: migrate to CmpPredicate) to get rid
of one of the FIXMEs it introduced by replacing a predicate comparison
with CmpPredicate::getMatching.


  Commit: 60dc450078eb362579f1184cb22c25d0b64cfc95
      https://github.com/llvm/llvm-project/commit/60dc450078eb362579f1184cb22c25d0b64cfc95
  Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/include/llvm/Analysis/ScalarEvolution.h
    M llvm/lib/Analysis/ScalarEvolution.cpp

  Log Message:
  -----------
  SCEV: migrate to CmpPredicate (NFC) (#122907)

In preparation to teach implied-cond functions about samesign, migrate
integer-compare predicates that flow through to the functions from
CmpInst::Predicate to CmpPredicate.


  Commit: 11758f9cebf4a81242c731bd441e76c72fc7d558
      https://github.com/llvm/llvm-project/commit/11758f9cebf4a81242c731bd441e76c72fc7d558
  Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/tools/bbc/CMakeLists.txt

  Log Message:
  -----------
  [flang][acc] Add missing dependency to bbc tool (#122960)

The LLVM build here:

https://lab.llvm.org/buildbot/#/builders/89/builds/14359/steps/5/logs/stdio
is failing with error:
/usr/bin/ld: tools/flang/tools/bbc/CMakeFiles/bbc.dir/bbc.cpp.o:
undefined reference to symbol
'_ZN3fir3acc25registerOpenACCExtensionsERN4mlir15DialectRegistryE

Add missing dependency.


  Commit: 68c9826534a763f783156813675783c97afa9226
      https://github.com/llvm/llvm-project/commit/68c9826534a763f783156813675783c97afa9226
  Author: Jorge Gorbe Moya <jgorbe at google.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M utils/bazel/llvm-project-overlay/clang/BUILD.bazel

  Log Message:
  -----------
  [bazel] add missing dep to //clang:static_analyzer_core_options


  Commit: 43491f0e9594b55a79ba775daed598cd37fc3cad
      https://github.com/llvm/llvm-project/commit/43491f0e9594b55a79ba775daed598cd37fc3cad
  Author: Eliud de León <tgmm.1000 at gmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M mlir/include/mlir-c/Dialect/EmitC.h
    M mlir/lib/CAPI/Dialect/EmitC.cpp

  Log Message:
  -----------
  [mlir][emitc] Expose emitc dialect types (#119645)

Added C API functions for the EmitC dialect types.


  Commit: 8d1d67ec4dc957ce15a06f782c6746281e66e559
      https://github.com/llvm/llvm-project/commit/8d1d67ec4dc957ce15a06f782c6746281e66e559
  Author: Jinsong Ji <jinsong.ji at intel.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M offload/plugins-nextgen/common/src/GlobalHandler.cpp
    M offload/test/offloading/pgo1.c

  Log Message:
  -----------
  [Offload][PGO] Fix dump of array in ProfData (#122039)

Exposed by -Warray-bounds:

In file included from
../../../../../../../llvm/offload/plugins-nextgen/common/src/GlobalHandler.cpp:252:

../../../../../../../llvm/llvm/include/llvm/ProfileData/InstrProfData.inc:109:1:
error: array index 4 is past the end of the array (that has type 'const
std::remove_const<const uint16_t>::type[4]' (aka 'const unsigned
short[4]')) [-Werror,-Warray-bounds]
109 | INSTR_PROF_DATA(const uint16_t, Int16ArrayTy,
NumValueSites[IPVK_Last+1], \
| ^ ~~~~~~~~~~~

../../../../../../../llvm/offload/plugins-nextgen/common/src/GlobalHandler.cpp:250:15:
note: expanded from macro 'INSTR_PROF_DATA'
250 | outs() << ProfData.Name << " "; \
      |               ^        ~~~~

../../../../../../../llvm/llvm/include/llvm/ProfileData/InstrProfData.inc:109:1:
note: array 'NumValueSites' declared here
109 | INSTR_PROF_DATA(const uint16_t, Int16ArrayTy,
NumValueSites[IPVK_Last+1], \
      | ^

../../../../../../../llvm/offload/plugins-nextgen/common/include/GlobalHandler.h:62:3:
note: expanded from macro 'INSTR_PROF_DATA'
   62 |   std::remove_const<Type>::type Name;

Avoid accessing out-of-bound data, but skip printing array data for now.
As there is no simple way to do this without hardcoding the
NumValueSites field.

---------

Co-authored-by: Ethan Luis McDonough <ethanluismcdonough at gmail.com>


  Commit: b720b6cbe95eda383121a4579de556202b1ffc02
      https://github.com/llvm/llvm-project/commit/b720b6cbe95eda383121a4579de556202b1ffc02
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/include/flang/Evaluate/shape.h
    M flang/lib/Evaluate/fold-implementation.h
    M flang/lib/Evaluate/shape.cpp
    A flang/test/Semantics/bug122002a.f90
    A flang/test/Semantics/bug122002b.f90

  Log Message:
  -----------
  [flang] Fix crash from fuzzy test. (#122364)

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


  Commit: ebec4d6369cbf9bbd64236b02d90e8f3597ad103
      https://github.com/llvm/llvm-project/commit/ebec4d6369cbf9bbd64236b02d90e8f3597ad103
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/include/flang/Evaluate/traverse.h
    M flang/include/flang/Evaluate/variable.h

  Log Message:
  -----------
  [flang] Fix use-after-free cases found by valgrind (#122394)

The expression traversal library needs to use interfaces into triplets
(and substrings) that return pointers to nested expressions, rather than
optional copies of them, since at least one semantic analysis collects a
set of references to some subexpression representation class instances,
and those references obviously can't point to local copies of objects.

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


  Commit: 89bbaf3cf2e5706acf46e30ac19e23a58db2e9f9
      https://github.com/llvm/llvm-project/commit/89bbaf3cf2e5706acf46e30ac19e23a58db2e9f9
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    A flang/test/Semantics/bug122045.f90

  Log Message:
  -----------
  [flang] Fix another crash from another fuzzer test. (#122562)

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


  Commit: 9696355484152eda5684e0ec6249f4c423f08e42
      https://github.com/llvm/llvm-project/commit/9696355484152eda5684e0ec6249f4c423f08e42
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/include/flang/Evaluate/shape.h
    M flang/include/flang/Evaluate/tools.h
    M flang/lib/Evaluate/check-expression.cpp
    M flang/lib/Evaluate/fold-designator.cpp
    M flang/lib/Evaluate/fold-implementation.h
    M flang/lib/Semantics/tools.cpp
    A flang/test/Semantics/bug122060.f90
    M flang/test/Semantics/reshape.f90

  Log Message:
  -----------
  [flang] Better messages and error recovery for a bad RESHAPE (#122604)

Add tests for negative array extents where necessary, motivated by a
compiler crash exposed by yet another fuzzer test, and improve overall
error message quality for RESHAPE().

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


  Commit: bf95854e9ab1209901603d8f9edba4328eed6689
      https://github.com/llvm/llvm-project/commit/bf95854e9ab1209901603d8f9edba4328eed6689
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/runtime/io-api.cpp
    M flang/runtime/io-error.cpp
    M flang/runtime/io-error.h

  Log Message:
  -----------
  [flang] EOF goes to ERR= in READ(..., REC=) (#122608)

A direct access READ that tries to read past the end of the file must
recover the error via an ERR= label, not an END= label (which is not
allowed to be present).

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


  Commit: 874a3ba868e3738d6ee21bfe032c89c6c8be3969
      https://github.com/llvm/llvm-project/commit/874a3ba868e3738d6ee21bfe032c89c6c8be3969
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/runtime/file.cpp

  Log Message:
  -----------
  [flang][runtime] Don't buffer unit 0 (#122614)

Always assume that predefined unit 0 is a terminal, so that output to it
is never buffered.


  Commit: 9f0f54a6290ead2e1581d75582759822a19fd885
      https://github.com/llvm/llvm-project/commit/9f0f54a6290ead2e1581d75582759822a19fd885
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/include/flang/Semantics/tools.h
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/tools.cpp
    A flang/test/Semantics/self-use.f90

  Log Message:
  -----------
  [flang] Improve error messages for module self-USE (#122747)

A module can't USE itself, either directly within the top-level module
or from one of its submodules. Add a test for this case (which we
already caught), and improve the diagnostic for the more confusing case
involving a submodule.


  Commit: 4a3e4b99b9ab3016afe8b02c4f83f24635964f4e
      https://github.com/llvm/llvm-project/commit/4a3e4b99b9ab3016afe8b02c4f83f24635964f4e
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/lib/Parser/prescan.cpp
    M flang/test/Preprocessing/bug129131.F

  Log Message:
  -----------
  [flang] Adjust prescanner fix for preprocessing (#122779)

Commas being optional in FORMAT statements, the tokenization of things
like 3I9HHOLLERITH is tricky. After tokenizing the initial '3', we don't
want to then take apparent identifier "I9HHOLLERITH" as the next token.
So the prescanner just consumes the letter ("I") as its own token in
this context.

A recent bug report complained that this can lead to incorrect results
when (in this case) the letter is a defined preprocessing macro. I
updated the prescanner to check that the letter is actually followed by
an instance of a problematic Hollerith literal.

And this broke two tests in the Fujitsu Fortran test suite that Linaro
runs, as it couldn't detect a following Hollerith literal that wasn't on
the same source line. We can't do look-ahead line continuation
processing in NextToken(), either.

So here's a second attempt at fixing the original problem: namely, the
letter that follows a decimal integer token is checked to see whether
it's the name of a defined macro.


  Commit: 9629f2c4ca6a514abe27f537c1cb4af35ef0aa10
      https://github.com/llvm/llvm-project/commit/9629f2c4ca6a514abe27f537c1cb4af35ef0aa10
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/lib/Semantics/mod-file.cpp
    M flang/lib/Semantics/mod-file.h
    M flang/test/Driver/intrinsic-module-path.f90
    M flang/test/Driver/use-module.f90
    M flang/test/Semantics/modfile43.f90
    M flang/test/Semantics/modfile63.f90
    M flang/test/Semantics/modfile70.f90
    M flang/test/Semantics/resolve12.f90
    M flang/test/Semantics/resolve26.f90

  Log Message:
  -----------
  [flang] Improve module file error message wording (#122787)

Instead of "Cannot read ...", distinguish true errors in finding and
parsing module files from problems with unexpected hash codes by using
"Cannot parse" or "Cannot use" wording as appropriate.


  Commit: ecf264d3b4eebcfcc3bd89ceac090b82fd5e75c7
      https://github.com/llvm/llvm-project/commit/ecf264d3b4eebcfcc3bd89ceac090b82fd5e75c7
  Author: Peter Klausler <pklausler at nvidia.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/include/flang/Semantics/tools.h
    M flang/lib/Semantics/check-declarations.cpp
    M flang/lib/Semantics/tools.cpp
    A flang/test/Semantics/generic12.f90

  Log Message:
  -----------
  [flang] Fix spurious error message due to inaccessible generic binding (#122810)

Generic operator/assignment checks for distinguishable specific
procedures must ignore inaccessible generic bindings.

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


  Commit: 93fd72cbb1a3c340add27fc380c4450406313d68
      https://github.com/llvm/llvm-project/commit/93fd72cbb1a3c340add27fc380c4450406313d68
  Author: alx32 <103613512+alx32 at users.noreply.github.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/DebugInfo/GSYM/GsymCreator.cpp

  Log Message:
  -----------
  [llvm-gsymutil] Ensure gSYM creation determinism with merged functions (#122921)

We were seeing occasional test failures with expensive checks enabled.
The issue was tracked down to a `sort` which should instead be a
`stable_sort` to ensure determinism. Checked locally and the
non-determinism went away.


  Commit: 3d24c77f14d42721226b31d7e5d08f853cfc92f1
      https://github.com/llvm/llvm-project/commit/3d24c77f14d42721226b31d7e5d08f853cfc92f1
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/lib/CodeGen/CGDebugInfo.cpp
    A clang/test/CodeGenCXX/debug-info-object-pointer.cpp

  Log Message:
  -----------
  [clang][DebugInfo] Emit DW_AT_object_pointer on function definitions with explicit `this` (#122897)

We currently don't emit `DW_AT_object_pointer` on function declarations
or definitions. GCC suffers from the same issue:
https://godbolt.org/z/h4jeT54G5

Fixing this will help LLDB in identifying static vs. non-static member
functions (see https://github.com/llvm/llvm-project/issues/120856).

If I interpreted the DWARFv5 spec correctly, it doesn't mandate this
attribute be present *only* for implicit object parameters:
```
If the member function entry describes a non-static member function,
then that entry has a DW_AT_object_pointer attribute whose value is a reference to
the formal parameter entry that corresponds to the object for which the
function is called.

That parameter also has a DW_AT_artificial attribute whose value is true.
```

This patch attaches the `DW_AT_object_pointer` for function
*defintions*. The declarations will be handled in a separate patch.

The part about `DW_AT_artificial` seems overly restrictive, and not true
for explicit object parameters. We probably should relax this part of
the DWARF spec.

Partially fixes https://github.com/llvm/llvm-project/issues/120974


  Commit: ef804d8f9b4ef4ff39e873d5910e94887519bdb6
      https://github.com/llvm/llvm-project/commit/ef804d8f9b4ef4ff39e873d5910e94887519bdb6
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M libcxx/include/__new/global_new_delete.h
    M libcxxabi/src/CMakeLists.txt

  Log Message:
  -----------
  [libc++] Simplify when the sized global deallocations overloads are available (#114667)

There doesn't seem to be much benefit in always providing declarations
for the sized deallocations from C++14 onwards if the user explicitly
passed `-fno-sized-deallocation` to disable them. This patch simplifies
the declarations to be available exactly when the compiler expects sized
deallocation functions to be available.


  Commit: 6e14f9b40e15600ae7832826b47a7f0c0503a1d7
      https://github.com/llvm/llvm-project/commit/6e14f9b40e15600ae7832826b47a7f0c0503a1d7
  Author: Jorge Gorbe Moya <jgorbe at google.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M utils/bazel/llvm-project-overlay/clang/BUILD.bazel

  Log Message:
  -----------
  [bazel] minor formatting fixes (#122964)

Added `# keep sorted` to a couple of long-ish lists of files that
buildifier didn't automatically sort by default.

Changed a couple of one-element `toolchains` attributes to the
single-line format.


  Commit: 31249e27f0f8be16e80b2b574c1f2ce70853ed31
      https://github.com/llvm/llvm-project/commit/31249e27f0f8be16e80b2b574c1f2ce70853ed31
  Author: Justin Bogner <mail at justinbogner.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp

  Log Message:
  -----------
  [DirectX] Avoid deprecated PointerUnion methods (#122972)

PointerUnion's `is`, `get`, and `dyn_cast` have been deprecated in
favour of using `isa`, `cast`, and `dyn_cast` directly. Migrate these
uses over.


  Commit: f09db6a3af971ab7d9bbc7ba574a8dc0c10b2940
      https://github.com/llvm/llvm-project/commit/f09db6a3af971ab7d9bbc7ba574a8dc0c10b2940
  Author: Jerry-Ge <jerry.ge at arm.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M mlir/include/mlir/Dialect/Tosa/IR/CMakeLists.txt
    M mlir/include/mlir/Dialect/Tosa/IR/TosaOpBase.td
    M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.h
    M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
    A mlir/include/mlir/Dialect/Tosa/IR/TosaShapeOps.td
    M mlir/include/mlir/Dialect/Tosa/IR/TosaTypesBase.td
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalgPass.cpp
    M mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp
    M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
    M mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
    M mlir/test/Dialect/Tosa/canonicalize.mlir
    M mlir/test/Dialect/Tosa/invalid.mlir
    M mlir/test/Dialect/Tosa/level_check.mlir
    M mlir/test/Dialect/Tosa/ops.mlir
    M mlir/test/Dialect/Tosa/tosa-infer-shapes.mlir
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

  Log Message:
  -----------
  [TOSA] Add Tosa_Shape type and ConstShapeOp (#122547)

Adds:
1. tosa shape type to Tosa dialect e.g., !tosa.shape<4> is a type for
rank-4 shape values (size-4 array of index values)
 2. const_shape operator
3. trait TosaShapeOperator, added to tosa shape operators, and a
verifier that all operands and results of operator are tosa shapes
4. trait TosaResolvableShapeOperands, added to all tosa operators, and a
verifier that every tosa shape operand is produced by a tosa shape
operator (indicated by trait TosaShapeOperator)
5. trait TosaShapeOperatorWithSameRanks, added to
Tosa_ElementwiseShapeOp and a verifier that all operands and result
shapes have same ranks
5. changed TileOp's multiples from attribute to input, of !tosa.shape
type.
 6. add folder for tosa ConstShape operator

This patch was originally authored by Tai Ly <tai.ly at arm.com>

Signed-off-by: Jerry Ge <Jerry.Ge at arm.com>
Signed-off-by: Tai Ly <tai.ly at arm.com>


  Commit: 6a214ec1eeef6b404bf111edeca13c6e0d958103
      https://github.com/llvm/llvm-project/commit/6a214ec1eeef6b404bf111edeca13c6e0d958103
  Author: Teresa Johnson <tejohnson at google.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
    M llvm/test/ThinLTO/X86/memprof_direct_recursion.ll

  Log Message:
  -----------
  [MemProf] Fix an assertion when writing distributed index for aliasee (#122946)

The ThinLTO index bitcode writer uses a helper forEachSummary to manage
preparation and writing of summaries needed for each distributed index
file. For alias summaries, it invokes the provided callback for the
aliasee as well, as we at least need to produce a value id for the
alias's summary. However, all summary generation for the aliasee itself
should be skipped on calls when IsAliasee is true. We invoke the
callback again if that value's summary is to be written as well.

We were asserting in debug mode when invoking collectMemProfCallStacks,
because a given stack id index was not in the StackIdIndicesToIndex
map. It was not added because the forEachSummary invocation that records
these ids in the map (invoked from the IndexBitcodeWriter constructor)
was correctly skipping this handling when invoked for aliasees. We need
the same guard in the invocation that calls collectMemProfCallStacks.

Note that this doesn't cause any real problems in a non-asserts build
as the missing map lookup will return the default 0 value from the map,
which isn't used since we don't actually write the corresponding
summary.


  Commit: 1682deed0fd02c6aca98154e8e9cf6c573ff6d45
      https://github.com/llvm/llvm-project/commit/1682deed0fd02c6aca98154e8e9cf6c573ff6d45
  Author: Eli Friedman <efriedma at quicinc.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/bindings/python/clang/cindex.py
    M clang/bindings/python/tests/cindex/test_type.py
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang-c/Index.h
    M clang/tools/libclang/CIndexCXX.cpp
    M clang/tools/libclang/CXType.cpp
    M clang/tools/libclang/libclang.map

  Log Message:
  -----------
  [libclang] Add API to query more information about base classes. (#120300)

The first API is clang_visitCXXBaseClasses: this allows visiting the
base classes without going through the generic child visitor (which is
awkward, and doesn't work for template instantiations).

The second API is clang_getOffsetOfBase; this allows computing the
offset of a base in the class layout, the same way
clang_Cursor_getOffsetOfField computes the offset of a field.

Also, add a Python binding for the existing function
clang_isVirtualBase.


  Commit: 25f28ddd69ed2453726c0934ba6feea8ae6f10f8
      https://github.com/llvm/llvm-project/commit/25f28ddd69ed2453726c0934ba6feea8ae6f10f8
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/lib/Optimizer/Transforms/CUFDeviceGlobal.cpp

  Log Message:
  -----------
  [flang][cuda][NFC] Fix file header


  Commit: 1de3dc7d23dd6b856efad3a3a04f2396328726d7
      https://github.com/llvm/llvm-project/commit/1de3dc7d23dd6b856efad3a3a04f2396328726d7
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/loopvectorize_pr33804_double.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product-epilogue.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product-mixed.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product-neon.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-no-dotprod.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/store-costs-sve.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/strict-fadd.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-widen-extractvalue.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/vplan-printing.ll
    M llvm/test/Transforms/LoopVectorize/Hexagon/maximum-vf-crash.ll
    M llvm/test/Transforms/LoopVectorize/X86/cost-constant-known-via-scev.ll
    M llvm/test/Transforms/LoopVectorize/X86/cost-model.ll
    M llvm/test/Transforms/LoopVectorize/X86/drop-poison-generating-flags.ll
    M llvm/test/Transforms/LoopVectorize/X86/interleave-cost.ll
    M llvm/test/Transforms/LoopVectorize/X86/replicate-uniform-call.ll
    A llvm/test/Transforms/LoopVectorize/epilog-vectorization-vector-trip-count-zero.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence-chains.ll
    M llvm/test/Transforms/LoopVectorize/if-pred-stores.ll
    M llvm/test/Transforms/LoopVectorize/induction.ll
    M llvm/test/Transforms/LoopVectorize/interleave-and-scalarize-only.ll
    M llvm/test/Transforms/LoopVectorize/is_fpclass.ll
    M llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization.ll
    M llvm/test/Transforms/LoopVectorize/runtime-checks-hoist.ll
    M llvm/test/Transforms/LoopVectorize/scev-predicate-reasoning.ll
    M llvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge-vf1.ll

  Log Message:
  -----------
  [LV] Bail out early if BTC+1 wraps.

Currently we fail to detect the case where BTC + 1 wraps, i.e. the
vector trip count is 0, In those cases, the minimum iteration count
check will fail, and the vector code will never be executed.

Explicitly check for this condition in computeMaxVF and avoid trying to
vectorize alltogether.

Note that a number of tests needed to be updated, because the vector
loop would never be executed given the input IR.

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


  Commit: 43f203da8986bfeb071b5dc381491abbc1126e52
      https://github.com/llvm/llvm-project/commit/43f203da8986bfeb071b5dc381491abbc1126e52
  Author: Jorge Gorbe Moya <jgorbe at google.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M utils/bazel/llvm-project-overlay/clang/BUILD.bazel

  Log Message:
  -----------
  [bazel] add missing dep


  Commit: a829ebadd4211bec24e99f4395ef855eff456eb1
      https://github.com/llvm/llvm-project/commit/a829ebadd4211bec24e99f4395ef855eff456eb1
  Author: Martin Storsjö <martin at martin.st>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/TargetParser/Triple.cpp
    M llvm/unittests/TargetParser/TripleTest.cpp

  Log Message:
  -----------
  [Triple] Ignore the vendor field for MinGW, wrt LTO/IR compatibility (#122801)

For MinGW environments, the regular C/C++ toolchains usually use "w64"
for the vendor field in triples, while Rust toolchains usually use "pc"
in the vendor field.

The differences in the vendor field have no bearing on whether the IR is
compatible on this platform. (This probably goes for most other OSes as
well, but limiting the scope of the change to the specific case.)

Add a unit test for the isCompatibleWith, including some existing test
cases found in existing tests.


  Commit: 72225ca27f561b74da292433400f250592d73b13
      https://github.com/llvm/llvm-project/commit/72225ca27f561b74da292433400f250592d73b13
  Author: Min Hsu <min.hsu at sifive.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/docs/CommandGuide/llvm-exegesis.rst
    R llvm/test/tools/llvm-exegesis/X86/dry-run-measurement.test
    M llvm/test/tools/llvm-exegesis/lit.local.cfg
    M llvm/tools/llvm-exegesis/lib/BenchmarkResult.h
    M llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp
    M llvm/tools/llvm-exegesis/lib/Target.cpp
    M llvm/tools/llvm-exegesis/llvm-exegesis.cpp

  Log Message:
  -----------
  Revert "Reland: "[Exegesis] Add the ability to dry-run the measurement phase (#121991)" (#122775)"

This reverts commit a39aaf35d3858a5542f532e399482c2bb0259dac and
63d3bd6d0caf8185aba49540fe2f67512fdf3a98.

Due to test failures on MacOSX.


  Commit: 0b3912622ed4f3cdd311b02798f8689d52ed4602
      https://github.com/llvm/llvm-project/commit/0b3912622ed4f3cdd311b02798f8689d52ed4602
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/test/CodeGen/ARM/loopvectorize_pr33804.ll

  Log Message:
  -----------
  [ARM] Update LV test in test/Codegen/ARM after 1de3dc7d23.


  Commit: 7aec7caca30f800811b76ba94291645494788a4f
      https://github.com/llvm/llvm-project/commit/7aec7caca30f800811b76ba94291645494788a4f
  Author: Eli Friedman <efriedma at quicinc.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/bindings/python/tests/cindex/test_type.py

  Log Message:
  -----------
  Add explicit triple to test_type.py.

Fixes on 32-bit hosts.


  Commit: 2b961b06438d1d07c1d3d3a89bfcdbf877df0d70
      https://github.com/llvm/llvm-project/commit/2b961b06438d1d07c1d3d3a89bfcdbf877df0d70
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/lib/AST/ByteCode/Disasm.cpp

  Log Message:
  -----------
  [AST] Migrate away from PointerUnion::dyn_cast (NFC) (#122854)

Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:

  // FIXME: Replace the uses of is(), get() and dyn_cast() with
  //        isa<T>, cast<T> and the llvm::dyn_cast<T>

Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect Source to be nonnull.


  Commit: e673f9d00de8a860d98ca7f0ea580ca0fa6a5ac8
      https://github.com/llvm/llvm-project/commit/e673f9d00de8a860d98ca7f0ea580ca0fa6a5ac8
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/lib/Sema/SemaCodeComplete.cpp

  Log Message:
  -----------
  [Sema] Migrate away from PointerUnion::dyn_cast (NFC) (#122855)

Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:

  // FIXME: Replace the uses of is(), get() and dyn_cast() with
  //        isa<T>, cast<T> and the llvm::dyn_cast<T>

Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect DeclOrVector to be nonnull.


  Commit: a1f8ce683a14c847f49f29a450bf838d6ca522a9
      https://github.com/llvm/llvm-project/commit/a1f8ce683a14c847f49f29a450bf838d6ca522a9
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp

  Log Message:
  -----------
  [StaticAnalyzer] Migrate away from PointerUnion::dyn_cast (NFC) (#122856)

Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:

  // FIXME: Replace the uses of is(), get() and dyn_cast() with
  //        isa<T>, cast<T> and the llvm::dyn_cast<T>

Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect Storage to be nonnull.


  Commit: 466753b1097d64bc2f162bafc1d3c8743ccfd4d3
      https://github.com/llvm/llvm-project/commit/466753b1097d64bc2f162bafc1d3c8743ccfd4d3
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/lib/AST/ExternalASTMerger.cpp

  Log Message:
  -----------
  [AST] Avoid repeated map lookups (NFC) (#122858)


  Commit: 99ab848a65facc2e1837c459d4ec855cba82d157
      https://github.com/llvm/llvm-project/commit/99ab848a65facc2e1837c459d4ec855cba82d157
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/include/llvm/CodeGen/ModuloSchedule.h

  Log Message:
  -----------
  [CodeGen] Avoid repeated hash lookups (NFC) (#122861)


  Commit: bc74625f50e216edd16f436c4fc81ff585b6c4c7
      https://github.com/llvm/llvm-project/commit/bc74625f50e216edd16f436c4fc81ff585b6c4c7
  Author: zotnhucucbot <thaiphd at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang-tools-extra/clang-tidy/tool/clang-tidy-diff.py
    M clang-tools-extra/docs/ReleaseNotes.rst

  Log Message:
  -----------
  [clang-tidy] Add an option to exclude files not present in the compile database (#120348)

A change list may include files that are not part of the compile
database, which can cause clang-tidy to fail (e.g., due to missing
included headers). To prevent false negatives, we should allow to skip
processing these files.


  Commit: b665dddd7070837b11714e28d841c9962a15601a
      https://github.com/llvm/llvm-project/commit/b665dddd7070837b11714e28d841c9962a15601a
  Author: Shoreshen <372660931 at qq.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/test/CodeGen/AMDGPU/v_sat_pk_u8_i16.ll

  Log Message:
  -----------
  [AMDGPU] Add tests for v_sat_pk_u8_i16 codegen (#122438)

Preparation for #121124 

This PR provides tests added into
[PR](https://github.com/llvm/llvm-project/pull/121124) that add
selection patterns for instruction `v_sat_pk`, in order to specify the
change of the tests before and after the commit.

Pre-commit tests PR for #121124 : Add selection patterns for instruction
`v_sat_pk`


  Commit: ebef44067bd0a2cd776b8baea39cffa7f602ce7b
      https://github.com/llvm/llvm-project/commit/ebef44067bd0a2cd776b8baea39cffa7f602ce7b
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/include/llvm/TargetParser/Triple.h
    M llvm/lib/TargetParser/Triple.cpp
    M llvm/unittests/TargetParser/TripleTest.cpp

  Log Message:
  -----------
  [LLVM][Triple] Add an argument to specify canonical form to `Triple::normalize` (#122935)

Currently, the output of `Triple::normalize` can vary depending on how the
`Triple` object is constructed, producing a 3-field, 4-field, or even 5-field
string. However, there is no way to control the format of the output, as all
forms are considered canonical according to the LangRef.

This lack of control can be inconvenient when a specific format is required. To
address this, this PR introduces an argument to specify the desired format (3,
4, or 5 identifiers), with the default set to none to maintain the current
behavior. If the requested format requires more components than are available in
the actual `Data`, `"unknown"` is appended as needed.


  Commit: a19919f4cd82166023e81d9ed8df981642c9d4ac
      https://github.com/llvm/llvm-project/commit/a19919f4cd82166023e81d9ed8df981642c9d4ac
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M flang/include/flang/Optimizer/Dialect/CUF/CUFOps.td
    M flang/lib/Optimizer/Transforms/CUFOpConversion.cpp
    M flang/test/Fir/CUDA/cuda-data-transfer.fir
    M flang/test/Fir/CUDA/cuda-global-addr.mlir
    M flang/test/Fir/CUDA/cuda-launch.fir

  Log Message:
  -----------
  [flang][cuda] Add cuf.device_address operation (#122975)

Introduce a new op to get the device address from a host symbol. This
simplify the current conversion and this is also in preparation for some
legalization work that need to be done in cuf kernel and cuf kernel
launch similar to
https://github.com/llvm/llvm-project/pull/122802


  Commit: 565f3bd641dfdfefd9cf932cf94cc3fbd0b30d33
      https://github.com/llvm/llvm-project/commit/565f3bd641dfdfefd9cf932cf94cc3fbd0b30d33
  Author: Longsheng Mou <longshengmou at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp

  Log Message:
  -----------
  [mlir][linalg] Remove redundant checks for variable(NFC) (#122731)

This PR removes the redundant checks for the `supported` variable, as
it's guaranteed to be true.


  Commit: ef4800c9168ee45ced8295d13ac68f58b4358759
      https://github.com/llvm/llvm-project/commit/ef4800c9168ee45ced8295d13ac68f58b4358759
  Author: Diego Caballero <dieg0ca6aller0 at gmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M mlir/include/mlir/Interfaces/ViewLikeInterface.h
    M mlir/lib/Interfaces/ViewLikeInterface.cpp

  Log Message:
  -----------
  [mlir][Interfaces][NFC] Update doc of ViewLikeOpInterface parser/printer handlers (#122555)

This PR addresses part of the feedback provided in #115808.


  Commit: 0294dab79e24cc4fc41e2d9fc77ad02730e412bc
      https://github.com/llvm/llvm-project/commit/0294dab79e24cc4fc41e2d9fc77ad02730e412bc
  Author: LiqinWeng <liqin.weng at spacemit.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlan.h
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
    M llvm/test/Transforms/LoopVectorize/X86/reduction-fastmath.ll
    M llvm/test/Transforms/LoopVectorize/epilog-vectorization-reductions.ll
    A llvm/test/Transforms/LoopVectorize/select-with-fastflags.ll
    M llvm/test/Transforms/LoopVectorize/vplan-printing.ll

  Log Message:
  -----------
  [LV][VPlan] Add fast flags for selectRecipe (#121023)

Change the inheritance of class VPWidenSelectRecipe to class
VPRecipeWithIRFlags, which allows recipe of the select to pass the
fastmath flags.The patch of #119847 will add the fastmath flag to for
recipe


  Commit: 2a5281d0e0000c04606ef86a2cf9c458d9adafef
      https://github.com/llvm/llvm-project/commit/2a5281d0e0000c04606ef86a2cf9c458d9adafef
  Author: Lang Hames <lhames at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M compiler-rt/test/orc/TestCases/Darwin/x86-64/objc-imageinfo.S

  Log Message:
  -----------
  [ORC-RT] Fix missing '\' line continuations in objc-imageinfo.S test.

These missing continuations were causing commands in this testcase to fail.


  Commit: e7f756d4684af4531a6a9564017bcae1226b719f
      https://github.com/llvm/llvm-project/commit/e7f756d4684af4531a6a9564017bcae1226b719f
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/lib/CodeGen/BackendUtil.cpp
    M llvm/lib/Passes/PassBuilder.cpp

  Log Message:
  -----------
  [NFC][BoundsChecking] Address #122576 review comments (#122773)


  Commit: 21ade5ae2978b7b809b59b70d63099c87b36dc61
      https://github.com/llvm/llvm-project/commit/21ade5ae2978b7b809b59b70d63099c87b36dc61
  Author: Lang Hames <lhames at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/ExecutionEngine/JITLink/EHFrameSupport.cpp

  Log Message:
  -----------
  [JITLink] Fix indentation in debugging output.


  Commit: 9c5001e45491ae8b1b2967d2fa48f445799c88ae
      https://github.com/llvm/llvm-project/commit/9c5001e45491ae8b1b2967d2fa48f445799c88ae
  Author: Lang Hames <lhames at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
    M llvm/lib/ExecutionEngine/JITLink/COFFLinkGraphBuilder.cpp
    M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
    M llvm/unittests/ExecutionEngine/JITLink/LinkGraphTests.cpp

  Log Message:
  -----------
  [JITLink] Add convenience methods to LinkGraph to find symbols by name.

Adds new convenience methods findDefinedSymbolByName, findExternalSymbolByName
and findAbsoluteSymbolByName to the LinkGraph class. These should be used to
find symbols of the given types by name.

COFFLinkGraphBuilder and MachOPlatform are updated to take advantage of the
new methods.


  Commit: 9f48bb637eeb40e40bb9e2927ea97b58684ece3a
      https://github.com/llvm/llvm-project/commit/9f48bb637eeb40e40bb9e2927ea97b58684ece3a
  Author: Lang Hames <lhames at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/ExecutionEngine/JITLink/EHFrameSupportImpl.h

  Log Message:
  -----------
  [JITLink] Document EHFrameEdgeFixer's handling of implicit relocations. NFC.

On platfarms where some relocations for eh-frame sections are implicit (e.g.
MachO/x86-64) EHFrameEdgeFixer is responsible for adding edges for the
implicit relocations.


  Commit: da4ac13acac166738f769a9dfa2be40563d6ff64
      https://github.com/llvm/llvm-project/commit/da4ac13acac166738f769a9dfa2be40563d6ff64
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/tools/llvm-exegesis/lib/RISCV/Target.cpp

  Log Message:
  -----------
  [RISCV][llvm-exegesis] Simplify copying a SmallVector to a std::vector. NFC (#122988)


  Commit: 9ac6a55ec54fe4cd4a99c69ef1a4ddaea49e6688
      https://github.com/llvm/llvm-project/commit/9ac6a55ec54fe4cd4a99c69ef1a4ddaea49e6688
  Author: Nathan Ridge <zeratul976 at hotmail.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M clang/include/clang/AST/Type.h

  Log Message:
  -----------
  [clang][AST] Assert that DependentNameType's Name and NNS are not null (#122418)

Also clarify the comment above DependentNameType::getIdentifier()


  Commit: c4fb7180cbbe977f1ab1ce945a691550f8fdd1fb
      https://github.com/llvm/llvm-project/commit/c4fb7180cbbe977f1ab1ce945a691550f8fdd1fb
  Author: Greg Clayton <gclayton at fb.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M lldb/include/lldb/Target/SectionLoadHistory.h
    M lldb/include/lldb/Target/Target.h
    M lldb/source/API/SBBreakpoint.cpp
    M lldb/source/Breakpoint/BreakpointLocationList.cpp
    M lldb/source/Commands/CommandObjectDisassemble.cpp
    M lldb/source/Commands/CommandObjectRegister.cpp
    M lldb/source/Commands/CommandObjectSource.cpp
    M lldb/source/Commands/CommandObjectTarget.cpp
    M lldb/source/Core/Address.cpp
    M lldb/source/Core/Disassembler.cpp
    M lldb/source/Core/DumpDataExtractor.cpp
    M lldb/source/Core/FormatEntity.cpp
    M lldb/source/Core/Section.cpp
    M lldb/source/Core/Value.cpp
    M lldb/source/DataFormatters/CXXFunctionPointer.cpp
    M lldb/source/Expression/ObjectFileJIT.cpp
    M lldb/source/Plugins/Architecture/Mips/ArchitectureMips.cpp
    M lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp
    M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp
    M lldb/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.cpp
    M lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp
    M lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp
    M lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp
    M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
    M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
    M lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
    M lldb/source/Plugins/ObjectFile/Placeholder/ObjectFilePlaceholder.cpp
    M lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp
    M lldb/source/Plugins/Trace/intel-pt/TraceIntelPTBundleSaver.cpp
    M lldb/source/Symbol/ObjectFile.cpp
    M lldb/source/Target/ProcessTrace.cpp
    M lldb/source/Target/SectionLoadHistory.cpp
    M lldb/source/Target/Target.cpp
    M lldb/source/Target/ThreadPlanStepInRange.cpp
    M lldb/source/Target/ThreadPlanTracer.cpp

  Log Message:
  -----------
  [lldb][NFC] Make the target's SectionLoadList private. (#113278)

Lots of code around LLDB was directly accessing the target's section
load list. This NFC patch makes the section load list private so the
Target class can access it, but everyone else now uses accessor
functions. This allows us to control the resolving of addresses and will
allow for functionality in LLDB which can lazily resolve addresses in
JIT plug-ins with a future patch.


  Commit: 273a94b3d5a78cd9122c7b3bbb5d5a87147735d2
      https://github.com/llvm/llvm-project/commit/273a94b3d5a78cd9122c7b3bbb5d5a87147735d2
  Author: Alex MacLean <amaclean at nvidia.com>
  Date:   2025-01-14 (Tue, 14 Jan 2025)

  Changed paths:
    M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
    M llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
    M llvm/test/CodeGen/NVPTX/arithmetic-int.ll
    M llvm/test/CodeGen/NVPTX/fma.ll
    M llvm/test/CodeGen/NVPTX/i128.ll
    M llvm/test/CodeGen/NVPTX/shift-parts.ll

  Log Message:
  -----------
  [NVPTX] Add some more immediate instruction variants (#122746)

While this likely won't impact the final SASS, it makes for more compact
PTX.


  Commit: 02403f4e450b86d93197dd34045ff40a34b21494
      https://github.com/llvm/llvm-project/commit/02403f4e450b86d93197dd34045ff40a34b21494
  Author: Luke Lau <luke at igalia.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/strided-load-store.ll

  Log Message:
  -----------
  [RISCV] Split strided-load-store.ll tests into EVL and VP. NFC

None of the changes in #122232 or the upcoming #122244 are specific to
the EVL, so split out the EVL tail-folded loops into separate
"integration tests" that reflect the output of the loop vectorizer.


  Commit: 030d48b7db9845f42bf3ef365193bfdbb23f5440
      https://github.com/llvm/llvm-project/commit/030d48b7db9845f42bf3ef365193bfdbb23f5440
  Author: Bevin Hansson <bevin.hansson at ericsson.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang-tools-extra/clangd/CodeComplete.cpp
    M clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp

  Log Message:
  -----------
  [clangd] Augment code completion results with documentation from the index. (#120099)

When looking up code completions from Sema, there is no associated
documentation. This is due to crash issues with stale preambles.
However, this also means that code completion results from other
than the main file do not have documentation in certain cases,
which is a bad user experience.

This patch performs a lookup into the index using the code
completion result declarations to find documentation, and
attaches it to the results.

Fixes clangd/clangd#2252
Fixes clangd/clangd#564


  Commit: 2504693d75c6ed1047955dd6e65ce9d4c1a164c8
      https://github.com/llvm/llvm-project/commit/2504693d75c6ed1047955dd6e65ce9d4c1a164c8
  Author: Longsheng Mou <longshengmou at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp

  Log Message:
  -----------
  [ARM][NFC] Remove redundant sub-expressions (#122911)

This PR removes redundant sub-expressions `Mnemonic != "vqmovnt"`, which
is mentioned in https://pvs-studio.com/en/blog/posts/cpp/1188/.


  Commit: 135f39c780ac106ac93ef0838a62d7ebf947c2a0
      https://github.com/llvm/llvm-project/commit/135f39c780ac106ac93ef0838a62d7ebf947c2a0
  Author: Michael Liao <michael.hliao at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/tools/spirv-tools/CMakeLists.txt

  Log Message:
  -----------
  [SPIR-V] Fix a typo in cmake. NFC

- It should be '${SPIRV_AS}' that is linked or copied to 'spirv-as',
  instead of '${SPIRV_VAL}'


  Commit: edc02351dd11cc4a39b7c541b26b71c6f36c8e55
      https://github.com/llvm/llvm-project/commit/edc02351dd11cc4a39b7c541b26b71c6f36c8e55
  Author: David Sherwood <david.sherwood at arm.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  Log Message:
  -----------
  [NFC][LoopVectorize] Add more loop early exit asserts (#122732)

This patch is split off #120567, adding asserts in
addScalarResumePhis and addExitUsersForFirstOrderRecurrences
that the loop does not contain an uncountable early exit,
since the code cannot yet handle them correctly.


  Commit: 7201cae106260aeb3e9bbbb7d5291ff30f05076a
      https://github.com/llvm/llvm-project/commit/7201cae106260aeb3e9bbbb7d5291ff30f05076a
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/DeclBase.h
    M clang/include/clang/AST/ExternalASTMerger.h
    M clang/include/clang/AST/ExternalASTSource.h
    M clang/include/clang/Sema/MultiplexExternalSemaSource.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/include/clang/Serialization/ASTReader.h
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/lib/AST/DeclBase.cpp
    M clang/lib/AST/ExternalASTMerger.cpp
    M clang/lib/AST/ExternalASTSource.cpp
    M clang/lib/Interpreter/CodeCompletion.cpp
    M clang/lib/Sema/MultiplexExternalSemaSource.cpp
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTReaderInternals.h
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/test/CXX/basic/basic.scope/basic.scope.namespace/p2.cpp
    M clang/test/CXX/module/basic/basic.link/p2.cppm
    M clang/test/CXX/module/module.import/p2.cpp
    M clang/test/CXX/module/module.interface/p7.cpp
    M clang/test/CXX/module/module.reach/p5.cpp
    M clang/test/Modules/Reachability-template-default-arg.cpp
    M clang/test/Modules/cxx20-10-1-ex2.cpp
    M clang/test/Modules/deduction-guide3.cppm
    A clang/test/Modules/module-local-with-templates.cppm
    A clang/test/Modules/pr90154.cppm
    M clang/unittests/AST/ExternalASTSourceTest.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h
    M lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h
    M lldb/source/Plugins/ExpressionParser/Clang/ClangExternalASTSourceCallbacks.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ClangExternalASTSourceCallbacks.h
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp

  Log Message:
  -----------
  [C++20] [Modules] Support module level lookup (#122887)

Close https://github.com/llvm/llvm-project/issues/90154

This patch is also an optimization to the lookup process to utilize the
information provided by `export` keyword.

Previously, in the lookup process, the `export` keyword only takes part
in the check part, it doesn't get involved in the lookup process. That
said, previously, in a name lookup for 'name', we would load all of
declarations with the name 'name' and check if these declarations are
valid or not. It works well. But it is inefficient since it may load
declarations that may not be wanted.

Note that this patch actually did a trick in the lookup process instead
of bring module information to DeclarationName or considering module
information when deciding if two declarations are the same. So it may
not be a surprise to me if there are missing cases. But it is not a
regression. It should be already the case. Issue reports are welcomed.

In this patch, I tried to split the big lookup table into a lookup table
as before and a module local lookup table, which takes a combination of
the ID of the DeclContext and hash value of the primary module name as
the key. And refactored `DeclContext::lookup()` method to take the
module information. So that a lookup in a DeclContext won't load
declarations that are local to **other** modules.

And also I think it is already beneficial to split the big lookup table
since it may reduce the conflicts during lookups in the hash table.

BTW, this patch introduced a **regression** for a reachability rule in
C++20 but it was false-negative. See
'clang/test/CXX/module/module.interface/p7.cpp' for details.

This patch is not expected to introduce any other
regressions for non-c++20-modules users since the module local lookup
table should be empty for them.

---

On the API side, this patch unfortunately add a maybe-confusing argument
`Module *NamedModule` to
`ExternalASTSource::FindExternalVisibleDeclsByName()`. People may think
we can get the information from the first argument `const DeclContext
*DC`. But sadly there are declarations (e.g., namespace) can appear in
multiple different modules as a single declaration. So we have to add
additional information to indicate this.


  Commit: d1d25641f4cb87ab2c07a4136ba1cec4fb6cf578
      https://github.com/llvm/llvm-project/commit/d1d25641f4cb87ab2c07a4136ba1cec4fb6cf578
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/lib/AST/ByteCode/Compiler.cpp
    M clang/test/SemaCXX/ptrauth-type-discriminator.cpp

  Log Message:
  -----------
  [clang][bytecode] Handle UETT_PtrAuthTypeDiscriminator (#122941)


  Commit: 929eb500d4c9b3fff0693c49fd55c8093dc1ad62
      https://github.com/llvm/llvm-project/commit/929eb500d4c9b3fff0693c49fd55c8093dc1ad62
  Author: ziereis <44057120+ziereis at users.noreply.github.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp
    M mlir/test/Dialect/Vector/vector-rewrite-narrow-types.mlir

  Log Message:
  -----------
  [mlir] Rewrites for I2 to I8 signed and unsigned extension (#121298)

Adds rewrites for i2 to i8 signed and unsigned extension, similar to the
ones that already exist for i4 to i8 conversion.

I use this for i6 quantized models, and this gives me roughly a 2x
speedup for an i6 4096x4096 dequantization-matmul on an AMD 5950x.

I didn't add the rewrite for i8 to i2 truncation because I currently
don't use it, but if this is needed, I can add it as well.

---------

Co-authored-by: Andrzej Warzyński <andrzej.warzynski at gmail.com>


  Commit: 8ac00ca4867835cacaf013f5c442658b9b1bce38
      https://github.com/llvm/llvm-project/commit/8ac00ca4867835cacaf013f5c442658b9b1bce38
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/shuffle-vs-trunc-128.ll
    M llvm/test/CodeGen/X86/shuffle-vs-trunc-512.ll
    M llvm/test/CodeGen/X86/trunc-vector-width.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-8.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-7.ll
    M llvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll
    M llvm/test/CodeGen/X86/x86-interleaved-access.ll

  Log Message:
  -----------
  [X86] lowerShuffleWithUndefHalf - don't split vXi8 unary shuffles if the 128-bit source lanes are already in place (#122919)

Allows us to use PSHUFB to shuffle the lanes, and then perform a sub-lane permutation down to the lower half

Fixes #116815


  Commit: 4c2e4ea18fd0031636994cf81fd03d82f59b7d27
      https://github.com/llvm/llvm-project/commit/4c2e4ea18fd0031636994cf81fd03d82f59b7d27
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/tools/llvm-exegesis/lib/RISCV/Target.cpp

  Log Message:
  -----------
  [RISCV][llvm-exegesis] Disable pseudo instructions in allowAsBackToBack. (#122986)

Prevents crashes trying to encode pseudo instuctions. Tested on HiFive
Premier P550.

Fixes #122974


  Commit: c24ce324d56328e4b91c8797ea4935545084303e
      https://github.com/llvm/llvm-project/commit/c24ce324d56328e4b91c8797ea4935545084303e
  Author: Matthias Springer <me at m-sp.org>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M mlir/include/mlir/IR/BuiltinTypeInterfaces.h
    M mlir/include/mlir/IR/BuiltinTypeInterfaces.td
    M mlir/include/mlir/IR/BuiltinTypes.h
    M mlir/include/mlir/IR/BuiltinTypes.td
    M mlir/lib/IR/BuiltinTypeInterfaces.cpp
    M mlir/lib/IR/BuiltinTypes.cpp
    M mlir/unittests/IR/InterfaceAttachmentTest.cpp

  Log Message:
  -----------
  [mlir][IR] Turn `FloatType` into a type interface (#118891)

This makes it possible to add new MLIR floating point types in
downstream projects. (Adding new APFloat semantics in downstream
projects is not possible yet, so parsing/printing/converting float
literals of newly added types is not supported.)

Also removes two functions where we had to hard-code all existing
floating point types (`FloatType::classof`). See discussion here:
https://discourse.llvm.org/t/rethink-on-approach-to-low-precision-fp-types/82361

No measurable compilation time changes for these lit tests:
```
Benchmark 1: mlir-opt ./mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir -split-input-file -convert-vector-to-llvm -o /dev/null
  BEFORE
  Time (mean ± σ):     248.4 ms ±   3.2 ms    [User: 237.0 ms, System: 20.1 ms]
  Range (min … max):   243.3 ms … 255.9 ms    30 runs

  AFTER
  Time (mean ± σ):     246.8 ms ±   3.2 ms    [User: 233.2 ms, System: 21.8 ms]
  Range (min … max):   240.2 ms … 252.1 ms    30 runs


Benchmark 2: mlir-opt- ./mlir/test/Dialect/Arith/canonicalize.mlir -split-input-file -canonicalize -o /dev/null
  BEFORE
  Time (mean ± σ):      37.3 ms ±   1.8 ms    [User: 31.6 ms, System: 30.4 ms]
  Range (min … max):    34.6 ms …  42.0 ms    200 runs

  AFTER
  Time (mean ± σ):      37.5 ms ±   2.0 ms    [User: 31.5 ms, System: 29.2 ms]
  Range (min … max):    34.5 ms …  43.0 ms    200 runs


Benchmark 3: mlir-opt ./mlir/test/Dialect/Tensor/canonicalize.mlir -split-input-file -canonicalize -allow-unregistered-dialect -o /dev/null
  BEFORE
  Time (mean ± σ):     152.2 ms ±   2.5 ms    [User: 140.1 ms, System: 12.2 ms]
  Range (min … max):   147.6 ms … 161.8 ms    200 runs

  AFTER
  Time (mean ± σ):     151.9 ms ±   2.7 ms    [User: 140.5 ms, System: 11.5 ms]
  Range (min … max):   147.2 ms … 159.1 ms    200 runs
```

A micro benchmark that parses + prints 32768 floats with random
floating-point type shows a slowdown from 55.1 ms -> 48.3 ms.


  Commit: af656a8d4245069f70f5b5e1f654ec9291d3b0a3
      https://github.com/llvm/llvm-project/commit/af656a8d4245069f70f5b5e1f654ec9291d3b0a3
  Author: Stephen Senran Zhang <zsrkmyn at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/Analysis/LazyValueInfo.cpp
    A llvm/test/Transforms/CorrelatedValuePropagation/ctpop-range.ll

  Log Message:
  -----------
  [LVI] Learn value ranges from ctpop results (#121945)

Fixes #115751.


  Commit: 2c34632a9977a82ce6262d95f07addb772ba7014
      https://github.com/llvm/llvm-project/commit/2c34632a9977a82ce6262d95f07addb772ba7014
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/lib/Driver/Driver.cpp
    M clang/test/Driver/modules-print-library-module-manifest-path.cpp

  Log Message:
  -----------
  [C++20] [Modules] [Driver] Support -print-library-module-manifest-path for libstdc++

Given libstdc++ has landed std module, the build systems may need clang
to find the configuration file to understand how to build the std
module. This patch did this. Tested with locally installed GCC-trunk.


  Commit: 4cec0ba92955c353c52efe728b2cfef3fbdf60f8
      https://github.com/llvm/llvm-project/commit/4cec0ba92955c353c52efe728b2cfef3fbdf60f8
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/lib/AST/ByteCode/Compiler.cpp

  Log Message:
  -----------
  [clang][bytecode][NFC] Simplify VisitCXXDefaultArgExpr (#123024)

We have `discard()` these days.


  Commit: 04b002bbb838bc502bd6d5f602af95efd6cc96b3
      https://github.com/llvm/llvm-project/commit/04b002bbb838bc502bd6d5f602af95efd6cc96b3
  Author: Sergey Kachkov <109674256+skachkov-sc at users.noreply.github.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/include/llvm/IR/IRBuilder.h
    M llvm/lib/IR/IRBuilder.cpp
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp

  Log Message:
  -----------
  [IRBuilder] Add Align argument for CreateMaskedExpandLoad and CreateMaskedCompressStore (#122878)

This patch adds possibility to specify alignment for
llvm.masked.expandload/llvm.masked.compressstore intrinsics in IRBuilder
(this is mostly NFC for now since it's only used in MemorySanitizer, but
there is an intention to generate these intrinsics in the compiler
passes, e.g. in LoopVectorizer)


  Commit: b3924cb9ecc95aa428d48e58ef5f2629f5166e02
      https://github.com/llvm/llvm-project/commit/b3924cb9ecc95aa428d48e58ef5f2629f5166e02
  Author: Mariusz Sikora <mariusz.sikora at amd.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
    M llvm/test/CodeGen/AMDGPU/sink-image-sample.ll

  Log Message:
  -----------
  [AMDGPU] Set Convergent property for image.(getlod/sample*) intrinsics which uses WQM (#122908)

This change adds IntrConvergent property to image.getlod intrinsic and
to several image.sample intrinsics. All image.sample intrinsics apart
from LOD(_L), Level 0(_LZ), Derivative(_D) will be marked as Convergent.


  Commit: eb96c8c105226956c8ed5ab30699206f53de74f7
      https://github.com/llvm/llvm-project/commit/eb96c8c105226956c8ed5ab30699206f53de74f7
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M lldb/include/lldb/Core/Disassembler.h
    M lldb/source/API/SBFunction.cpp
    M lldb/source/API/SBInstructionList.cpp
    M lldb/source/Core/Disassembler.cpp
    M lldb/source/Symbol/Function.cpp
    M lldb/test/Shell/ScriptInterpreter/Python/sb_function_ranges.s

  Log Message:
  -----------
  [lldb] Implement (SB)Function::GetInstructions for discontinuous functions (#122933)

The main change is to permit the disassembler class to process/store
multiple (discontinuous) ranges of addresses. The result is not
ambiguous because each instruction knows its size (in addition to its
address), so we can check for discontinuity by looking at whether the
next instruction begins where the previous ends.

This patch doesn't handle the "disassemble" CLI command, which uses a
more elaborate mechanism for disassembling and printing instructions.


  Commit: e4708260c7e9eeb817cafa6db9eee2569f00b5d2
      https://github.com/llvm/llvm-project/commit/e4708260c7e9eeb817cafa6db9eee2569f00b5d2
  Author: Jack Frankland <jack.frankland at arm.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M mlir/utils/vim/ftplugin/mlir.vim

  Log Message:
  -----------
  [vim] Improve `iskeyword` for MLIR (#121750)

Define keywords for the MLIR syntax. This allows better recognition of
semantic constructs such as SSA value identification e.g. `%foo` which
gives improved motion handling when using 'word based' such as `w, e`.

This is based on the work done for the LLVM IR in
8c46413f343d0a5b8db48d958890b9038f03b70d.

Signed-off-by: Jack Frankland <jack.frankland at arm.com>


  Commit: bd768246da23ad141d3e9303cf43fd4363a6d4f4
      https://github.com/llvm/llvm-project/commit/bd768246da23ad141d3e9303cf43fd4363a6d4f4
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  Log Message:
  -----------
  [DAG] replaceShuffleOfInsert - convert INSERT_VECTOR_ELT matching to use SDPatternMatch helpers. NFC.


  Commit: 85fdf501461e8ee00401f06ee6c7d21ac6622484
      https://github.com/llvm/llvm-project/commit/85fdf501461e8ee00401f06ee6c7d21ac6622484
  Author: Victor Campos <victor.campos at arm.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/include/clang/Driver/Multilib.h
    M clang/lib/Driver/Multilib.cpp
    A clang/test/Driver/baremetal-multilib-custom-flags-parsing.yaml

  Log Message:
  -----------
  [Multilib] Custom flags YAML parsing (#122903)

This patch is the first step to extend the current multilib system to
support the selection of library variants which do not correspond to
existing command-line options.

Proposal can be found in
https://discourse.llvm.org/t/rfc-multilib-custom-flags/81058

The multilib mechanism supports libraries that target code generation or
language options such as `--target`, `-mcpu`, `-mfpu`,
`-mbranch-protection`. However, some library variants are particular to
features that do not correspond to any command-line options. Examples
include variants for multithreading and semihosting.

This work introduces a way to instruct the multilib system to consider
these features in library selection. This particular patch comprises a
new section in `multilib.yaml` to declare flags for which no option
exists. Henceforth this sort of flag will be called `custom flag` for
clarity.

The `multilib.yaml` file will have a new section called Flags which
contains the declarations of the target’s custom flags:

```yaml
Flags:
- Name: multithreaded
  Values:
  - Name: no-multithreaded
    MacroDefines: [__SINGLE_THREAD__]
  - Name: multithreaded
  Default: no-multithreaded

- Name: io
  Values:
    - Name: io-none
    - Name: io-semihosting
      MacroDefines: [SEMIHOSTING]
    - Name: io-linux-syscalls
      MacroDefines: [LINUX_SYSCALLS, HOSTED=1]
   Default: io-none
```
- Name: the name to categorize a flag.
- Values: a list of possible values.
- Default: it specifies which value this flag should take if not
specified in the command-line invocation. It must be one value from the
Values field.

Each flag Value follows this description:
- Name (required): the name of the custom flag value (string). This is
the string to be used in `-fmultilib-flag=<string>`.
- MacroDefines (optional): a list of strings to be used as macro
definitions. Each string
  is fed into the driver as ``-D<string>``.

A Default value is useful to save users from specifying custom flags
that have a most commonly used value.

The namespace of flag values is common across all flags. This means that
flag values must be unique.


  Commit: a5b88cb815d8f38698a3064a727b59143e0dae42
      https://github.com/llvm/llvm-project/commit/a5b88cb815d8f38698a3064a727b59143e0dae42
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    A libclc/clc/include/clc/geometric/floatn.inc
    M libclc/clc/include/clc/integer/gentype.inc
    M libclc/clc/include/clc/math/gentype.inc
    M libclc/clc/include/clc/math/unary_intrin.inc
    M libclc/clc/include/clc/relational/clc_all.h
    M libclc/clc/include/clc/relational/clc_any.h
    M libclc/clc/include/clc/relational/clc_isequal.h
    M libclc/clc/include/clc/relational/clc_isinf.h
    M libclc/clc/include/clc/relational/clc_isnan.h
    M libclc/clc/include/clc/relational/floatn.inc
    M libclc/clc/include/clc/shared/clc_clamp.h
    R libclc/generic/include/clc/geometric/floatn.inc

  Log Message:
  -----------
  [libclc] Add missing includes to CLC headers (#118654)

There's no automatic way of checking these headers are self-contained.

Instead of including these common files many times across the whole
codebase, we can include them in the generic `gentype.inc` and
`floatn.inc` files which are included by most CLC headers.


  Commit: 9bc88280931e3b08adfab6951047191dfe12392b
      https://github.com/llvm/llvm-project/commit/9bc88280931e3b08adfab6951047191dfe12392b
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    A mlir/test/Target/LLVMIR/omptarget-if.mlir
    M mlir/test/Target/LLVMIR/openmp-todo.mlir

  Log Message:
  -----------
  [OMPIRBuilder][MLIR] Add support for target 'if' clause (#122478)

This patch implements support for handling the 'if' clause of OpenMP
'target' constructs in the OMPIRBuilder and updates MLIR to LLVM IR
translation of the `omp.target` MLIR operation to make use of this new
feature.


  Commit: 2a044f8a092efb27fa1837f953bce8237d41e59b
      https://github.com/llvm/llvm-project/commit/2a044f8a092efb27fa1837f953bce8237d41e59b
  Author: Will Froom <will.froom at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp

  Log Message:
  -----------
  [MLIR] Add [[maybe_unused]] to variables on used in assert (#123037)

Add [[maybe_unused]] to suppresses warnings when  `-NDEBUG` is enabled


  Commit: defd0d966d5ebae37787e76b86f2f2ff2a5cfd59
      https://github.com/llvm/llvm-project/commit/defd0d966d5ebae37787e76b86f2f2ff2a5cfd59
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/config/windows/entrypoints.txt
    M libc/config/windows/headers.txt
    M libc/include/sys/random.yaml
    M libc/include/unistd.yaml
    M libc/src/CMakeLists.txt
    M libc/src/unistd/CMakeLists.txt
    A libc/src/unistd/getentropy.h
    M libc/src/unistd/linux/CMakeLists.txt
    A libc/src/unistd/linux/getentropy.cpp
    A libc/src/unistd/windows/CMakeLists.txt
    A libc/src/unistd/windows/getentropy.cpp
    M libc/test/src/CMakeLists.txt
    M libc/test/src/unistd/CMakeLists.txt
    A libc/test/src/unistd/getentropy_test.cpp

  Log Message:
  -----------
  [libc] implement unistd/getentropy (#122692)

Implement GNU extension getentropy. This function is used by many
programs to acquire entropy without handling the loop of getrandom.


  Commit: 9025c269aa0b394ea755978348f882f85013ed12
      https://github.com/llvm/llvm-project/commit/9025c269aa0b394ea755978348f882f85013ed12
  Author: David Green <david.green at arm.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    A llvm/test/CodeGen/AArch64/adds_cmn.ll

  Log Message:
  -----------
  [AArch64] Add an extra test case for adds and subs combines. NFC


  Commit: e33f456ae591559883e89a1f18b2dec21225e90f
      https://github.com/llvm/llvm-project/commit/e33f456ae591559883e89a1f18b2dec21225e90f
  Author: LoS <kaffedesk at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    R clang/test/SemaCXX/warn-inconsistent-missing-destructor-override
    A clang/test/SemaCXX/warn-inconsistent-missing-destructor-override.cpp
    R clang/test/SemaCXX/warn-suggest-destructor-override
    A clang/test/SemaCXX/warn-suggest-destructor-override.cpp
    R clang/test/SemaCXX/warn-suggest-override
    A clang/test/SemaCXX/warn-suggest-override.cpp

  Log Message:
  -----------
  Fixed some warn-override tests in SemaCXX (#122680)

The `.cpp` extension have been added to test files, so that they can be
runned. Besides, the `warn-suggest-override.cpp` tests have been fixed.

---------

Co-authored-by: LoS <aurumpuro at gmail.com>


  Commit: c8bbbaa5c70a32f31a072740c87708be8f15f831
      https://github.com/llvm/llvm-project/commit/c8bbbaa5c70a32f31a072740c87708be8f15f831
  Author: jofrn <jofernau at amd.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
    M llvm/test/CodeGen/AMDGPU/flat-scratch-svs.ll

  Log Message:
  -----------
  [SelectionDAG][AMDGPU] Negative offset when selecting scratch sv offsets (#122251)

APInt will fail when given a negative offset. SelectScratchSVAddr
utilizes this function and can be given a negative offset as well, so
this change modifies it to use APSInt instead.


  Commit: 6affc1837537a802531a5394535f1f0b7ca865cb
      https://github.com/llvm/llvm-project/commit/6affc1837537a802531a5394535f1f0b7ca865cb
  Author: Clement Courbet <courbet at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang-tools-extra/clang-reorder-fields/ReorderFieldsAction.cpp
    A clang-tools-extra/test/clang-reorder-fields/Comments.cpp

  Log Message:
  -----------
  [clang-reorder-fields] Move trailing comments. (#122918)

Currently, trailing comments get mixed up:

```
struct Foo {
  int a; // This one is the cool field
         // within the struct.
  int b;
};
```

becomes:

```
struct Foo {
  int b; // This one is the cool field
         // within the struct.
  int a;
};
```

This should be:

```
struct Foo {
  int b;
  int a; // This one is the cool field
         // within the struct.
};
```


  Commit: f9350c9325bccb95e94583685bbb9322a15da610
      https://github.com/llvm/llvm-project/commit/f9350c9325bccb95e94583685bbb9322a15da610
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M .github/CODEOWNERS

  Log Message:
  -----------
  [clang][NFC] Update CODEOWNERS


  Commit: bfedf6460c2cad6e6f966b457d8d27084579dcd8
      https://github.com/llvm/llvm-project/commit/bfedf6460c2cad6e6f966b457d8d27084579dcd8
  Author: David Sherwood <david.sherwood at arm.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
    M llvm/lib/Analysis/Loads.cpp
    M llvm/lib/Analysis/LoopAccessAnalysis.cpp
    M llvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll
    M llvm/test/Transforms/LoopVectorize/load-deref-pred-align.ll

  Log Message:
  -----------
  [LoopVectorize] Add support for reverse loops in isDereferenceableAndAlignedInLoop (#96752)

Currently when we encounter a negative step in the induction
variable isDereferenceableAndAlignedInLoop bails out because
the element size is signed greater than the step. This patch
adds support for negative steps in cases where we detect the
start address for the load is of the form base + offset. In
this case the address decrements in each iteration so we need
to calculate the access size differently. I have done this by
caling getStartAndEndForAccess from LoopAccessAnalysis.cpp.

The motivation for this patch comes from PR #88385 where a
reviewer requested reusing isDereferenceableAndAlignedInLoop,
but that PR itself does support reverse loops.

The changed test in LoopVectorize/X86/load-deref-pred.ll now
passes because previously we were calculating the total access
size incorrectly, whereas now it is 412 bytes and fits
perfectly into the alloca.


  Commit: b92e97bdd598f1d4676945c3e87d40404a367327
      https://github.com/llvm/llvm-project/commit/b92e97bdd598f1d4676945c3e87d40404a367327
  Author: Alex Bradbury <asb at igalia.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    A llvm/test/Analysis/BasicAA/memset-pattern.ll
    M llvm/test/Transforms/DeadStoreElimination/memory-intrinsics-sizes.ll

  Log Message:
  -----------
  [test] Pre-commit llvm.experimental.memset.pattern tests prior to MemoryLocation improvements

Reviewed as part of <https://github.com/llvm/llvm-project/pull/120421>.


  Commit: da4551aad0c2f263dca5b1bbc9a2fe52527047f5
      https://github.com/llvm/llvm-project/commit/da4551aad0c2f263dca5b1bbc9a2fe52527047f5
  Author: David CARLIER <devnexen at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.h
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.h

  Log Message:
  -----------
  [compiler-rt][sanitizer_common] Fix for solaris and *BSD platforms proposal. (#122956)

To fix llvm#122795 build failures for these.


  Commit: e00d1dd6eaf46cf17080cdf506348ab8f037f6f2
      https://github.com/llvm/llvm-project/commit/e00d1dd6eaf46cf17080cdf506348ab8f037f6f2
  Author: Un1q32 <joey.t.reinhart at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/lib/Basic/Targets/ARM.cpp
    M clang/test/Preprocessor/arm-acle-6.4.c

  Log Message:
  -----------
  [ARM] Fix armv6kz LDREX definition (#122965)

Fixes #37901

This behavior is consistent with GCC


  Commit: d1314d0152f242c618caafce264fccbc47273d84
      https://github.com/llvm/llvm-project/commit/d1314d0152f242c618caafce264fccbc47273d84
  Author: Alex Bradbury <asb at igalia.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/Analysis/MemoryLocation.cpp
    M llvm/test/Analysis/BasicAA/memset-pattern.ll
    M llvm/test/Transforms/DeadStoreElimination/memory-intrinsics-sizes.ll

  Log Message:
  -----------
  [MemoryLocation] Teach MemoryLocation about llvm.experimental.memset.pattern (#120421)

Relates to (but isn't dependent on) #120420.

This allows alias analysis o the intrinsic of the same quality as for
the libcall, which we want in order to move LoopIdiomRecognize over to
selecting the intrinsic.


  Commit: a32c45631b69eeb605f71de3b21ea9f2fba88e34
      https://github.com/llvm/llvm-project/commit/a32c45631b69eeb605f71de3b21ea9f2fba88e34
  Author: Kareem Ergawy <kareem.ergawy at amd.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    A mlir/test/Target/LLVMIR/openmp-target-simd-on_device.mlir

  Log Message:
  -----------
  [flang][OpenMP] Generalize fixing `alloca` IP pre-condition for `private` ops (#122866)

This PR generalizes a fix that we implemented previously for
`omp.wsloop`s. The fix makes sure the pre-condtion that the `alloca`
block has a single successor whenever we inline delayed privatizers is
respected. I simply moved the fix to `allocatePrivateVars` so that it
kicks in for any op not just `omp.wsloop`.

This handles a bug uncovered by [a
test](https://github.com/OpenMP-Validation-and-Verification/OpenMP_VV/blob/master/tests/4.5/target_simd/test_target_simd_safelen.F90)
in the OpenMP_VV test suite.


  Commit: 6ca560a9092e29c9f9817db6d6da09edd5f0ded7
      https://github.com/llvm/llvm-project/commit/6ca560a9092e29c9f9817db6d6da09edd5f0ded7
  Author: Boaz Brickner <brickner at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/include/clang/Tooling/Tooling.h
    M clang/lib/Tooling/Tooling.cpp
    M clang/unittests/Tooling/ToolingTest.cpp

  Log Message:
  -----------
  [clang] Add support for passing FileSystem to buildASTFromCodeWithArgs() (#123042)

This would allow tools that don't use the real file system to use this
function.


  Commit: a00938eedd4246c4252ce3e69a05c4b6760983a3
      https://github.com/llvm/llvm-project/commit/a00938eedd4246c4252ce3e69a05c4b6760983a3
  Author: David Sherwood <david.sherwood at arm.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
    M llvm/lib/Analysis/Loads.cpp
    M llvm/lib/Analysis/LoopAccessAnalysis.cpp
    M llvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll
    M llvm/test/Transforms/LoopVectorize/load-deref-pred-align.ll

  Log Message:
  -----------
  Revert "[LoopVectorize] Add support for reverse loops in isDereferenceableAndAlignedInLoop (#96752)" (#123057)

This reverts commit bfedf6460c2cad6e6f966b457d8d27084579dcd8.


  Commit: cf2e828925dc8c9656e800387820b49be03109d6
      https://github.com/llvm/llvm-project/commit/cf2e828925dc8c9656e800387820b49be03109d6
  Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/test/Analysis/ScalarEvolution/2007-08-06-Unsigned.ll
    R llvm/test/Analysis/ScalarEvolution/implied-via-addition.ll
    M llvm/test/Analysis/ScalarEvolution/implied-via-division.ll
    M llvm/test/Analysis/ScalarEvolution/infer-prestart-no-wrap.ll
    A llvm/test/Transforms/IndVarSimplify/implied-via-addition.ll

  Log Message:
  -----------
  SCEV: regen some tests with UTC (#123050)

While at it, move a test that calls the IndVarSimplify pass into the
IndVarSimplify directory.


  Commit: f22af59336d45d2a000f1033be0203340bf8ad36
      https://github.com/llvm/llvm-project/commit/f22af59336d45d2a000f1033be0203340bf8ad36
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M lld/COFF/Driver.cpp
    M lld/COFF/Driver.h
    M lld/COFF/SymbolTable.cpp
    M lld/COFF/SymbolTable.h

  Log Message:
  -----------
  [LLD][COFF] Move symbol mangling and lookup helpers to SymbolTable class (NFC) (#122836)

This refactor prepares for further ARM64X hybrid support, where these
helpers will need to work with either the native or EC symbol table
based on context.


  Commit: c82a6a025179e3b155c70f5ad8f84fa8ec2a9452
      https://github.com/llvm/llvm-project/commit/c82a6a025179e3b155c70f5ad8f84fa8ec2a9452
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp

  Log Message:
  -----------
  [AMDGPU] Use correct vector elt type when shrinking mfma scale (#123043)

This might be a copy/paste error. I don't think this an issue in
practice as the builtins/intrinsics are only legal with identical vector
element types.


  Commit: e9504c52edd796a22a879b381f17bd8ed235bfd4
      https://github.com/llvm/llvm-project/commit/e9504c52edd796a22a879b381f17bd8ed235bfd4
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M mlir/test/Dialect/Vector/vector-sink.mlir

  Log Message:
  -----------
  [mlir][vector] Add tests for populateSinkVectorOpsPatterns (2/N) (#122338)

Adds tests for scalable vectors in:

  * "vector-sink.mlir".

This test file exercises patterns included in
`populateSinkVectorOpsPatterns`:

  * `ReorderElementwiseOpsOnBroadcast`,
  * `ReorderCastOpsOnBroadcast`,
  * `ReorderElementwiseOpsOnTranspose`.

This PR focuses on adding tests for the latter two patterns
(`ReorderCastOpsOnBroadcast` and `ReorderElementwiseOpsOnTranspose`).

Tests for `ReorderElementwiseOpsOnBroadcast` were added in #102286. Please
note that in PR #102856, I renamed:

  * `populateSinkVectorBroadcastPatterns`, to
  * `populateSinkVectorOpsPatterns`.


  Commit: c593e3d0f77509ce65a6f5bd744f2d1ea9935c47
      https://github.com/llvm/llvm-project/commit/c593e3d0f77509ce65a6f5bd744f2d1ea9935c47
  Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Flang.cpp
    M flang/include/flang/Lower/LoweringOptions.def
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Lower/ConvertVariable.cpp
    A flang/test/Driver/fno-zero-init.f90
    A flang/test/Lower/zero_init.f90
    A flang/test/Lower/zero_init_default_init.f90

  Log Message:
  -----------
  [Flang][Driver] Add a flag to control zero initialization of global v… (#122144)

…ariables

Patch adds a flag to control zero initialization of global variables
without default initialization. The default is to zero initialize.


  Commit: 44ba43aa2b740878d83a9d6f1d52a333c0d48c22
      https://github.com/llvm/llvm-project/commit/44ba43aa2b740878d83a9d6f1d52a333c0d48c22
  Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Flang.cpp
    M flang/include/flang/Lower/LoweringOptions.def
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Lower/ConvertVariable.cpp
    R flang/test/Driver/fno-zero-init.f90
    R flang/test/Lower/zero_init.f90
    R flang/test/Lower/zero_init_default_init.f90

  Log Message:
  -----------
  Revert "[Flang][Driver] Add a flag to control zero initialization of global v…" (#123067)

Reverts llvm/llvm-project#122144

Reverting due to CI failure
https://lab.llvm.org/buildbot/#/builders/89/builds/14422


  Commit: ff862d6de92f478253a332ec48cfc2c2add76bb3
      https://github.com/llvm/llvm-project/commit/ff862d6de92f478253a332ec48cfc2c2add76bb3
  Author: vdonaldson <37090318+vdonaldson at users.noreply.github.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M flang/include/flang/Evaluate/target.h
    M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
    M flang/include/flang/Optimizer/Builder/Runtime/Exceptions.h
    M flang/include/flang/Runtime/exceptions.h
    M flang/include/flang/Runtime/magic-numbers.h
    M flang/include/flang/Tools/TargetSetup.h
    M flang/lib/Evaluate/target.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/Builder/Runtime/Exceptions.cpp
    M flang/module/__fortran_ieee_exceptions.f90
    M flang/runtime/exceptions.cpp
    R flang/test/Lower/Intrinsics/ieee_femodes.f90
    R flang/test/Lower/Intrinsics/ieee_festatus.f90

  Log Message:
  -----------
  [flang] Modifications to ieee floating point environment procedures (#121949)

Intrinsic module procedures ieee_get_modes, ieee_set_modes,
ieee_get_status, and ieee_set_status store and retrieve opaque data
values whose size varies by machine and OS environment. These data
values are usually, but not always small. Their sizes are not directly
known in a cross compilation environment. Address this issue by
implementing two mechanisms for processing these data values.
Environments that use typical small data sizes can access storage
defined at compile time. When this is not valid, data storage of any
size can be allocated at runtime.


  Commit: 3fd296ece69c0bab77ce0df9a128202746ffce94
      https://github.com/llvm/llvm-project/commit/3fd296ece69c0bab77ce0df9a128202746ffce94
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/lib/AST/ASTImporter.cpp

  Log Message:
  -----------
  [AST] Migrate away from PointerUnion::dyn_cast (NFC) (#123012)

Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:

  // FIXME: Replace the uses of is(), get() and dyn_cast() with
  //        isa<T>, cast<T> and the llvm::dyn_cast<T>

Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect P to be nonnull.


  Commit: 3a3a1e4627a37bdf5915b60fe375443bb280f23b
      https://github.com/llvm/llvm-project/commit/3a3a1e4627a37bdf5915b60fe375443bb280f23b
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp

  Log Message:
  -----------
  [CodeGen] Migrate away from PointerUnion::dyn_cast (NFC) (#123013)

Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:

  // FIXME: Replace the uses of is(), get() and dyn_cast() with
  //        isa<T>, cast<T> and the llvm::dyn_cast<T>

Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect Data to be nonnull.


  Commit: acdcdbcad9b6008687570270cbdf2d6fe86318db
      https://github.com/llvm/llvm-project/commit/acdcdbcad9b6008687570270cbdf2d6fe86318db
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/lib/Sema/SemaDecl.cpp

  Log Message:
  -----------
  [Sema] Migrate away from PointerUnion::dyn_cast (NFC) (#123014)

Note that PointerUnion::dyn_cast has been soft deprecated in
PointerUnion.h:

  // FIXME: Replace the uses of is(), get() and dyn_cast() with
  //        isa<T>, cast<T> and the llvm::dyn_cast<T>

Literal migration would result in dyn_cast_if_present (see the
definition of PointerUnion::dyn_cast), but this patch uses dyn_cast
because we expect EnumUnderlying to be nonnull.


  Commit: 94e9813a20ed5885ae2908f8519f93d8082fd1f3
      https://github.com/llvm/llvm-project/commit/94e9813a20ed5885ae2908f8519f93d8082fd1f3
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/AsmParser/LLParser.cpp

  Log Message:
  -----------
  [AsmParser] Avoid repeated map lookups (NFC) (#123015)


  Commit: ebb58567e79046afb28a4e657d1b1fd481a595a0
      https://github.com/llvm/llvm-project/commit/ebb58567e79046afb28a4e657d1b1fd481a595a0
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/CodeGen/CodeGenPrepare.cpp

  Log Message:
  -----------
  [CodeGen] Avoid repeated hash lookups (NFC) (#123016)


  Commit: 618ac908db72c312e1fbdfe974b4a084b4fc4c45
      https://github.com/llvm/llvm-project/commit/618ac908db72c312e1fbdfe974b4a084b4fc4c45
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/utils/TableGen/GlobalISelCombinerEmitter.cpp
    M llvm/utils/TableGen/GlobalISelEmitter.cpp

  Log Message:
  -----------
  [TableGen] Avoid repeated hash lookups (NFC) (#123018)


  Commit: 8ac35bda18229e28e1638756a5187aa2608a4b50
      https://github.com/llvm/llvm-project/commit/8ac35bda18229e28e1638756a5187aa2608a4b50
  Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/include/clang/Driver/Driver.h
    M clang/lib/Driver/Driver.cpp
    M clang/test/Driver/hip-cuid.hip

  Log Message:
  -----------
  [CUDA][HIP] Support CUID in new driver (#122859)

CUID is needed by CUDA/HIP for supporting accessing static device
variables in host function.

Currently CUID is only supported by the old driver for CUDA/HIP. The new
driver does not support it, which causes CUDA/HIP programs using static
device variables in host functions to fail with the new driver for
CUDA/HIP.

This patch refactors the CUID support in the old driver so that CUID is
supported by both the old and the new drivers for CUDA/HIP.


  Commit: 3986cffe81128061b774c06d0ba42ff7340f2d76
      https://github.com/llvm/llvm-project/commit/3986cffe81128061b774c06d0ba42ff7340f2d76
  Author: Brad Smith <brad at comstyle.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M lldb/source/Plugins/Process/Utility/CMakeLists.txt
    A lldb/source/Plugins/Process/Utility/OpenBSDSignals.cpp
    A lldb/source/Plugins/Process/Utility/OpenBSDSignals.h
    M lldb/source/Target/UnixSignals.cpp

  Log Message:
  -----------
  [lldb] Add OpenBSD signals (#123005)

Signals 1-32 are matching the default UNIX platform.

There are platform specific ones above 32.


  Commit: 740252164ed830502ff966628bc07be07e10159b
      https://github.com/llvm/llvm-project/commit/740252164ed830502ff966628bc07be07e10159b
  Author: Andrea Faulds <andrea.faulds at amd.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M mlir/tools/mlir-cpu-runner/CMakeLists.txt

  Log Message:
  -----------
  [mlir-cpu-runner] Pass --exclude-libs to linker when building runner (#122920)

This fixes a conflict between the version of LLVM linked against by the
runner and the unrelated version of LLVM that may be dynamically loaded
by a graphics driver. (Relevant to #73457: fixes loading certain Vulkan
drivers.)

Recommit of f879da799b4e112d79243dde6d299259d8359eeb, which had been
reverted by d8d30a96031bfdad3e2c424e14a4247c14980cb5 due to it causing
UBSan/ASan/HWASan/MSan build failures.


  Commit: d0a36423c188fcf19744e79bda5680977a1c4f9f
      https://github.com/llvm/llvm-project/commit/d0a36423c188fcf19744e79bda5680977a1c4f9f
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/utils/gn/secondary/lldb/source/Plugins/Process/Utility/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 3986cffe8112


  Commit: 34d50721dbc62fc08e39ee68d12e41ccf9c88b44
      https://github.com/llvm/llvm-project/commit/34d50721dbc62fc08e39ee68d12e41ccf9c88b44
  Author: Konrad Kleine <kkleine at redhat.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M mlir/test/python/execution_engine.py

  Log Message:
  -----------
  [MLIR][test] Check for ml_dtypes before running tests (#123061)

We noticed that `mlir/python/requirements.txt` lists `ml_dtypes` as a requirement but when looking at the code in `mlir/python`, the only `import` is guarded:

```python
try:
    import ml_dtypes
except ModuleNotFoundError:
    # The third-party ml_dtypes provides some optional low precision data-types for NumPy.
    ml_dtypes = None
```

This makes `ml_dtypes` an optional dependency.

Some python tests however partially depend on `ml_dtypes` and should not run if that module is unavailable. That is what this change does.

This is a replacement for #123051 which was excluding tests too broadly.


  Commit: 2570e354f15724fd2c731ef92d01f60e1444c8a9
      https://github.com/llvm/llvm-project/commit/2570e354f15724fd2c731ef92d01f60e1444c8a9
  Author: Andreas Jonson <andjo403 at hotmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/test/Transforms/InstCombine/assume.ll

  Log Message:
  -----------
  [InstCombine] Handle trunc to i1 in align assume. (#122949)

proof: https://alive2.llvm.org/ce/z/EyAUA4


  Commit: 07a184768cb8df4b43fcf0a9c45b1aa996888160
      https://github.com/llvm/llvm-project/commit/07a184768cb8df4b43fcf0a9c45b1aa996888160
  Author: Sarah Spall <sarahspall at microsoft.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/lib/Basic/TargetInfo.cpp
    A clang/test/CodeGenHLSL/Bool.hlsl
    M clang/test/SemaHLSL/BuiltIns/asfloat-errors.hlsl

  Log Message:
  -----------
  [HLSL] Make bool in hlsl i32 (#122977)

make a bool's memory representation i32 in hlsl
add new test
fix broken test
Closes #122932


  Commit: 2bfa7bc570d530d2f8aec02ada6f11d1a2459805
      https://github.com/llvm/llvm-project/commit/2bfa7bc570d530d2f8aec02ada6f11d1a2459805
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M flang/lib/Optimizer/HLFIR/IR/HLFIROps.cpp
    M flang/test/HLFIR/mul_transpose.f90

  Log Message:
  -----------
  [flang] Propagate fastmath flags to matmul_transpose. (#122842)


  Commit: 3bb969f3ebb25037e8eb69c30a5a0dfb5d9d0f51
      https://github.com/llvm/llvm-project/commit/3bb969f3ebb25037e8eb69c30a5a0dfb5d9d0f51
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M flang/include/flang/Optimizer/Builder/FIRBuilder.h
    M flang/include/flang/Optimizer/Builder/HLFIRTools.h
    M flang/include/flang/Optimizer/HLFIR/Passes.td
    M flang/lib/Optimizer/Builder/FIRBuilder.cpp
    M flang/lib/Optimizer/Builder/HLFIRTools.cpp
    M flang/lib/Optimizer/HLFIR/Transforms/SimplifyHLFIRIntrinsics.cpp
    M flang/lib/Optimizer/Passes/Pipelines.cpp
    M flang/test/Driver/mlir-pass-pipeline.f90
    M flang/test/Fir/basic-program.fir
    A flang/test/HLFIR/simplify-hlfir-intrinsics-matmul.fir

  Log Message:
  -----------
  [flang] Inline hlfir.matmul[_transpose]. (#122821)

Inlining `hlfir.matmul` as `hlfir.eval_in_mem` does not allow
to get rid of a temporary array in many cases, but it may still be
much better allowing to:
  * Get rid of any overhead related to calling runtime MATMUL
    (such as descriptors creation).
  * Use CPU-specific vectorization cost model for matmul loops,
    which Fortran runtime cannot currently do.
  * Optimize matmul of known-size arrays by complete unrolling.

One of the drawbacks of `hlfir.eval_in_mem` inlining is that
the ops inside it with store memory effects block the current
MLIR CSE, so I decided to run this inlining late in the pipeline.
There is a source commen explaining the CSE issue in more detail.

Straightforward inlining of `hlfir.matmul` as an `hlfir.elemental`
is not good for performance, and I got performance regressions
with it comparing to Fortran runtime implementation. I put it
under an enigneering option for experiments.

At the same time, inlining `hlfir.matmul_transpose` as `hlfir.elemental`
seems to be a good approach, e.g. it allows getting rid of a temporay
array in cases like: `A(:)=B(:)+MATMUL(TRANSPOSE(C(:,:)),D(:))`.

This patch improves performance of galgel and tonto a little bit.


  Commit: 80084e9cb6d215db88ef890ea5cb8a88fb5aa0b5
      https://github.com/llvm/llvm-project/commit/80084e9cb6d215db88ef890ea5cb8a88fb5aa0b5
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M lld/COFF/Driver.cpp
    M lld/test/COFF/arm64x-loadconfig.s

  Log Message:
  -----------
  [LLD][COFF] Pull _load_config_used symbol from both symbol tables on ARM64X (#122837)


  Commit: 0360f8170afffc0f273203f820ae4d5be7faf3a2
      https://github.com/llvm/llvm-project/commit/0360f8170afffc0f273203f820ae4d5be7faf3a2
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M lld/COFF/Driver.cpp
    A lld/test/COFF/subsystem-arm64x.test

  Log Message:
  -----------
  [LLD][COFF] Infer subsystem from EC symbol table for ARM64X (#122838)


  Commit: 1c5f87486aabd0eed2b41d32fc499700e4471f11
      https://github.com/llvm/llvm-project/commit/1c5f87486aabd0eed2b41d32fc499700e4471f11
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/include/clang/Driver/Driver.h

  Log Message:
  -----------
  [Driver] Fix a warning

This patch fixes:

  clang/include/clang/Driver/Driver.h:82:3: error: definition of
  implicit copy assignment operator for 'CUIDOptions' is deprecated
  because it has a user-declared copy constructor
  [-Werror,-Wdeprecated-copy]


  Commit: 06499f3672afc371b653bf54422c2e80e1e27c90
      https://github.com/llvm/llvm-project/commit/06499f3672afc371b653bf54422c2e80e1e27c90
  Author: Andreas Jonson <andjo403 at hotmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/include/llvm/Analysis/CmpInstAnalysis.h
    M llvm/lib/Analysis/CmpInstAnalysis.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  Log Message:
  -----------
  [InstCombine] Prepare foldLogOpOfMaskedICmps to handle trunc to i1. (NFC) (#122179)


  Commit: 943b212d56795064248a13adb13253d64ac51a8c
      https://github.com/llvm/llvm-project/commit/943b212d56795064248a13adb13253d64ac51a8c
  Author: abhishek-kaushik22 <abhishek.kaushik at intel.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/utils/TableGen/DecoderEmitter.cpp

  Log Message:
  -----------
  [TableGen] Use `std::move` to avoid copy (#123088)


  Commit: ac2165fe7bb4626c85a9c8938dbe2448220217a5
      https://github.com/llvm/llvm-project/commit/ac2165fe7bb4626c85a9c8938dbe2448220217a5
  Author: Daniel Paoliello <danpao at microsoft.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/MC/WinCOFFObjectWriter.cpp

  Log Message:
  -----------
  [coff] Don't try to write the obj if the assembler has errors (#123007)

The ASAN and MSAN tests have been failing after #122777 because some
fields are now set in `executePostLayoutBinding` which is skipped by the
assembler if it had errors but read in `writeObject`

Since the compilation has failed anyway, skip `writeObject` if the
assembler had errors.


  Commit: 1e53f9523d3d5fcb2993b4b6540f1ed8d743380b
      https://github.com/llvm/llvm-project/commit/1e53f9523d3d5fcb2993b4b6540f1ed8d743380b
  Author: Fangrui Song <i at maskray.me>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/cmake/config-ix.cmake
    M llvm/include/llvm/Config/config.h.cmake
    M llvm/include/llvm/Support/FileSystem.h
    M llvm/lib/Analysis/ConstantFolding.cpp
    M llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp
    M llvm/lib/Support/Errno.cpp
    M llvm/lib/Support/Unix/Path.inc
    M llvm/lib/Support/Unix/Process.inc
    M llvm/lib/Support/Unix/Program.inc
    M llvm/lib/Support/Unix/Signals.inc
    M llvm/lib/Support/Unix/Unix.h
    M llvm/lib/Support/raw_ostream.cpp
    M llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn
    M utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/config.h
    M utils/bazel/llvm_configs/config.h.cmake

  Log Message:
  -----------
  [CMake] Remove some always-true HAVE_XXX_H

These are unneeded even on AIX, PURE_WINDOWS, and ZOS (per #104706)

* HAVE_ERRNO_H: introduced by 1a93330ffa2ae2aa0b49461f05e6f0d51e8443f8 (2009) but unneeded.
  The guarded ABI is unconditionally used by lldb.
* HAVE_FCNTL_H
* HAVE_FENV_H
* HAVE_SYS_STAT_H

Pull Request: https://github.com/llvm/llvm-project/pull/123087


  Commit: ab6e63a0df9b67fb6ead026ce4ecdfd666991591
      https://github.com/llvm/llvm-project/commit/ab6e63a0df9b67fb6ead026ce4ecdfd666991591
  Author: Markus Böck <markus.boeck02 at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M mlir/include/mlir/IR/TypeRange.h
    M mlir/include/mlir/IR/ValueRange.h
    M mlir/lib/IR/OperationSupport.cpp
    M mlir/lib/IR/TypeRange.cpp
    M mlir/unittests/IR/OperationSupportTest.cpp

  Log Message:
  -----------
  [mlir] Make single value `ValueRange`s memory safer (#121996)

A very common mistake users (and yours truly) make when using
`ValueRange`s is assigning a temporary `Value` to it. Example:
```cpp
ValueRange values = op.getOperand();
apiThatUsesValueRange(values);
```

The issue is caused by the implicit `const Value&` constructor: As per
C++ rules a const reference can be constructed from a temporary and the
address of it taken. After the statement, the temporary goes out of
scope and `stack-use-after-free` error occurs.

This PR fixes that issue by making `ValueRange` capable of owning a
single `Value` instance for that case specifically. While technically a
departure from the other owner types that are non-owning, I'd argue that
this behavior is more intuitive for the majority of users that usually
don't need to care about the lifetime of `Value` instances.

`TypeRange` has similarly been adopted to accept a single `Type`
instance to implement `getTypes`.


  Commit: 18650480cb2ea46c9e8236c83593216af80fa25c
      https://github.com/llvm/llvm-project/commit/18650480cb2ea46c9e8236c83593216af80fa25c
  Author: Steven Wu <stevenwu at apple.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/lib/Serialization/ASTWriter.cpp

  Log Message:
  -----------
  [clang][Serialization] Add the missing block info (#122976)

HEADER_SEARCH_ENTRY_USAGE and VFS_USAGE were missing from the block info
block. Add the missing info so `llvm-bcanalyzer` can read them
correctly.


  Commit: e19bc76812037abab7b6b14b7befbba366f541ce
      https://github.com/llvm/llvm-project/commit/e19bc76812037abab7b6b14b7befbba366f541ce
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/splat-vectors.ll

  Log Message:
  -----------
  [RISCV] Precommit test coverage for pr118873


  Commit: 1a56360cc61a3576ab0ad621f72d4299bd5dd0fb
      https://github.com/llvm/llvm-project/commit/1a56360cc61a3576ab0ad621f72d4299bd5dd0fb
  Author: Alex MacLean <amaclean at nvidia.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/include/llvm/IR/InstrTypes.h
    M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
    M llvm/test/Analysis/BasicAA/call-attrs.ll
    M llvm/test/Analysis/BasicAA/tail-byval.ll
    M llvm/test/Transforms/SROA/readonlynocapture.ll

  Log Message:
  -----------
  [IR] Treat calls with byval ptrs as read-only (#122961)


  Commit: 2bc422dfa7bb01e7b679ec9f78189ac466dfa55d
      https://github.com/llvm/llvm-project/commit/2bc422dfa7bb01e7b679ec9f78189ac466dfa55d
  Author: Jorge Gorbe Moya <jgorbe at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M utils/bazel/llvm-project-overlay/clang/BUILD.bazel

  Log Message:
  -----------
  [bazel] Remove internal headers from `hdrs` in //clang:format (#122987)

They are already included in `srcs`, as they should be.


  Commit: c4443a1be4e4e68fff894ba659bc157bf30c8d26
      https://github.com/llvm/llvm-project/commit/c4443a1be4e4e68fff894ba659bc157bf30c8d26
  Author: David CARLIER <devnexen at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp
    M compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp

  Log Message:
  -----------
  [compiler-rt][rtsan] fseek api interception. (#122163)


  Commit: feb787244e54fe5abe5a96fefc4c74019f21a0ff
      https://github.com/llvm/llvm-project/commit/feb787244e54fe5abe5a96fefc4c74019f21a0ff
  Author: Egor Zhdan <e_zhdan at apple.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/test/APINotes/Inputs/Headers/Templates.h
    M clang/test/APINotes/templates.cpp

  Log Message:
  -----------
  [APINotes] Avoid duplicated attributes for class template instantiations

If a C++ class template is annotated via API Notes, the instantiations
had the attributes repeated twice. This is because Clang was adding the
attribute twice while processing the same class template. This change
makes sure we don't try to add attributes from API Notes twice.

There is currently no way to annotate specific instantiations using API
Notes.

rdar://142539959


  Commit: f325e4b2d836d6e65a4d0cf3efc6b0996ccf3765
      https://github.com/llvm/llvm-project/commit/f325e4b2d836d6e65a4d0cf3efc6b0996ccf3765
  Author: Brian Cain <brian.cain at oss.qualcomm.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/cmake/caches/hexagon-unknown-linux-musl-clang-cross.cmake

  Log Message:
  -----------
  [Hexagon] Add default clang symlinks to CLANG_LINKS_TO_CREATE (#123011)

Since this cache value overrides the defaults, we end up with `clang`
linked to `clang-20`, and some `${triple}-clang*` links, but we're
missing `clang++`. This makes for a toolchain with inconsistent behavior
when used in someone's `$PATH`.

We'll add the default symlinks to our list so that C and C++ programs
are both built as expected when `clang` and `clang++` are invoked.


  Commit: 6ffc4451037bbae26cce51fb80418f8e9ed2ac84
      https://github.com/llvm/llvm-project/commit/6ffc4451037bbae26cce51fb80418f8e9ed2ac84
  Author: Wael Yehia <wyehia at ca.ibm.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M compiler-rt/test/profile/ContinuousSyncMode/online-merging.c

  Log Message:
  -----------
  [PGO][AIX] Disable multi-process continuous mode test in 32-bit

In PGO continuous mode, we mmap the profile file into shared memory, which
allows multiple processes to be updating the same memory.

The -fprofile-update=atomic option forces the counter increments to be atomic,
but the counter size is always 64-bit (in -m32 and -m64), so in 32-bit mode the
atomic operations are function calls to libatomic.a and these function calls use
locks.

The lock based libatomic.a functions are per-process, so two processes will race
on the same shared memory because each will acquire their own lock.


  Commit: 6655c53ff02f0ffca0fcaa3261e14c2a6417d3da
      https://github.com/llvm/llvm-project/commit/6655c53ff02f0ffca0fcaa3261e14c2a6417d3da
  Author: arthurqiu <arthurq at nvidia.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/cmake/modules/CrossCompile.cmake
    A llvm/cmake/modules/FileLock.cmake
    M llvm/cmake/modules/LLVMExternalProjectUtils.cmake

  Log Message:
  -----------
  [cmake] Serialize native builds for Make generator (#121021)

The build system is fragile by allowing multiple invocation of
subprocess builds in the native folder for Make generator.

For example, during sub-invocation of the native llvm-config,
llvm-min-tblgen is also built. If there is another sub-invocation of the
native llvm-min-tblgen build running in parallel, they may overwrite
each other's build results, and may lead to errors like "Text file
busy".

This patch adds a cmake script that uses file lock to serialize all
native builds for Make generator.


  Commit: 5a90168fa34e15b544d7749ca4d247a16d360119
      https://github.com/llvm/llvm-project/commit/5a90168fa34e15b544d7749ca4d247a16d360119
  Author: Heejin Ahn <aheejin at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    A llvm/test/Transforms/FunctionAttrs/phi_cycle.ll

  Log Message:
  -----------
  [ValueTracking] Provide getUnderlyingObjectAggressive fallback (#123019)

This callsite assumes `getUnderlyingObjectAggressive` returns a non-null
pointer:

https://github.com/llvm/llvm-project/blob/273a94b3d5a78cd9122c7b3bbb5d5a87147735d2/llvm/lib/Transforms/IPO/FunctionAttrs.cpp#L124

But it can return null when there are cycles in the value chain so there
is no more `Worklist` item anymore to explore, in which case it just
returns `Object` at the end of the function without ever setting it:
https://github.com/llvm/llvm-project/blob/9b5857a68381652dbea2a0c9efa734b6c4cf38c9/llvm/lib/Analysis/ValueTracking.cpp#L6866-L6867
https://github.com/llvm/llvm-project/blob/9b5857a68381652dbea2a0c9efa734b6c4cf38c9/llvm/lib/Analysis/ValueTracking.cpp#L6889

`getUnderlyingObject` does not seem to return null either judging by
looking at its code and its callsites, so I think it is not likely to be
the author's intention that `getUnderlyingObjectAggressive` returns
null.

So this checks whether `Object` is null at the end, and if so, falls
back to the original first value.

---

The test case here was reduced by bugpoint and further reduced manually,
but I find it hard to reduce it further.

To trigger this bug, the memory operation should not be reachable from
the entry BB, because the `phi`s should form a cycle without introducing
another value from the entry. I tried a minimal `phi` cycle with three
BBs (entry BB + two BBs in a cycle), but it was skipped here:
https://github.com/llvm/llvm-project/blob/273a94b3d5a78cd9122c7b3bbb5d5a87147735d2/llvm/lib/Transforms/IPO/FunctionAttrs.cpp#L121-L122
To get the result that's not `ModRefInfo::NoModRef`, the length of `phi`
chain needed to be greater than the `MaxLookup` value set in this
function:

https://github.com/llvm/llvm-project/blob/02403f4e450b86d93197dd34045ff40a34b21494/llvm/lib/Analysis/BasicAliasAnalysis.cpp#L744

But just lengthening the `phi` chain to 8 didn't trigger the same error
in `getUnderlyingObjectAggressive` because `getUnderlyingObject` here
passes through a single-chain `phi`s so not all `phi`s end up in
`Visited`:

https://github.com/llvm/llvm-project/blob/9b5857a68381652dbea2a0c9efa734b6c4cf38c9/llvm/lib/Analysis/ValueTracking.cpp#L6863

So I just submit here the smallest test case I managed to create.

---

Fixes #117308 and fixes #122166.


  Commit: 0068078dca60b41ad1c7bdd4448e7de718b82a5d
      https://github.com/llvm/llvm-project/commit/0068078dca60b41ad1c7bdd4448e7de718b82a5d
  Author: peterbell10 <peterbell10 at openai.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
    M llvm/lib/Target/NVPTX/NVPTXISelLowering.h
    M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
    M llvm/test/CodeGen/NVPTX/combine-mad.ll
    M llvm/test/CodeGen/NVPTX/dynamic_stackalloc.ll
    M llvm/test/CodeGen/NVPTX/i128.ll

  Log Message:
  -----------
  [NVPTX] Remove `NVPTX::IMAD` opcode, and rely on intruction selection only (#121724)

I noticed that NVPTX will sometimes emit `mad.lo` to multiply by 1, e.g.
in https://gcc.godbolt.org/z/4j47Y9W4c.

This happens when DAGCombiner operates on the add before the mul, so the
imad contraction happens regardless of whether the mul could have been
simplified.

To fix this, I remove `NVPTXISD::IMAD` and only combine to mad during
selection. This allows the default DAGCombiner patterns to simplify
the graph without any NVPTX-specific intervention.


  Commit: d8a68fe68093366a0218474b476fa4e795bef2f8
      https://github.com/llvm/llvm-project/commit/d8a68fe68093366a0218474b476fa4e795bef2f8
  Author: Brian Cain <brian.cain at oss.qualcomm.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
    A llvm/test/CodeGen/Hexagon/i128-fpconv-strict.ll

  Log Message:
  -----------
  [Hexagon] Omit calls to specialized {float,fix} routines (#117423)

These were introduced in 1213a7a57fdc (Hexagon backend support,
2011-12-12) but they aren't present in libclangrt.builtins-hexagon. The
generic versions of these functions are present in the builtins, though.
So it should suffice to call those instead.


  Commit: d15d410a353f5e0f95daef4a0b22416d313d460d
      https://github.com/llvm/llvm-project/commit/d15d410a353f5e0f95daef4a0b22416d313d460d
  Author: David CARLIER <devnexen at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp

  Log Message:
  -----------
  [compiler-rt][rtsan] Fix fseek test build (unused variable warning). (#123116)


  Commit: bf17016a92bc8a23d2cdd2b51355dd4eb5019c68
      https://github.com/llvm/llvm-project/commit/bf17016a92bc8a23d2cdd2b51355dd4eb5019c68
  Author: Erich Keane <ekeane at nvidia.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/docs/InternalsManual.rst
    M clang/include/clang/Basic/CMakeLists.txt
    M clang/include/clang/Basic/DiagnosticAST.h
    M clang/include/clang/Basic/DiagnosticAnalysis.h
    M clang/include/clang/Basic/DiagnosticComment.h
    M clang/include/clang/Basic/DiagnosticCrossTU.h
    M clang/include/clang/Basic/DiagnosticDriver.h
    M clang/include/clang/Basic/DiagnosticFrontend.h
    M clang/include/clang/Basic/DiagnosticInstallAPI.h
    M clang/include/clang/Basic/DiagnosticLex.h
    M clang/include/clang/Basic/DiagnosticParse.h
    M clang/include/clang/Basic/DiagnosticRefactoring.h
    M clang/include/clang/Basic/DiagnosticSema.h
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Basic/DiagnosticSerialization.h
    M clang/lib/Sema/SemaDeclCXX.cpp
    A clang/test/TableGen/select-enum-errors.td
    A clang/test/TableGen/select-enum.td
    M clang/utils/TableGen/ClangDiagnosticsEmitter.cpp
    M clang/utils/TableGen/TableGen.cpp
    M clang/utils/TableGen/TableGenBackends.h

  Log Message:
  -----------
  Add 'enum_select' diagnostic selection to clang. (#122505)

This causes us to generate an enum to go along with the select
diagnostic, which allows for clearer diagnostic error emit lines.

The syntax for this is:

%enum_select<EnumerationName>{%OptionalEnumeratorName{Text}|{Text2}}0

Where the curley brackets around the select-text are only required if an
Enumerator name is provided.

The TableGen here emits this as a normal 'select' to the frontend, which
permits us to reuse all of the existing 'select' infrastructure.
Documentation is the same as well.

---------

Co-authored-by: Aaron Ballman <aaron at aaronballman.com>


  Commit: d594d4cef7d0ba15370435aac362fe44224c1bab
      https://github.com/llvm/llvm-project/commit/d594d4cef7d0ba15370435aac362fe44224c1bab
  Author: Robert O'Callahan <rocallahan at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M lldb/include/lldb/Target/Thread.h
    M lldb/source/Target/Thread.cpp
    M lldb/source/Target/ThreadList.cpp

  Log Message:
  -----------
  Refactor `ThreadList::WillResume()` to prepare to support reverse execution (#120817)

These changes are designed to not change any behavior, but to make it
easy to add code to choose the direction of execution after we've
identified which thread(s) to run but before we add any
`ThreadPlanStepOverBreakpoint`s. And honestly I think they make the
existing code a bit clearer.


  Commit: e9255dda236e6e418abe81a10b3f7c0d16c0d083
      https://github.com/llvm/llvm-project/commit/e9255dda236e6e418abe81a10b3f7c0d16c0d083
  Author: Sharjeel Khan <sharjeelkhan at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/lib/Driver/ToolChains/Arch/ARM.cpp
    M clang/test/Driver/arm-mfpu.c

  Log Message:
  -----------
  [Driver][ARM] Change Android's NEON FPU hardcoding to "== 7" as it pessimizes future ArmV8 code (#122969)

Android hardcoded NEON FPU for ARM version ">=" 7. This hardcoding was
pessimizing ARMv8 code as it was locking it to NEON FPU instead of
something more powerful.


  Commit: ef1260acc0cf83270ce90e5f897c1f2620ba09a6
      https://github.com/llvm/llvm-project/commit/ef1260acc0cf83270ce90e5f897c1f2620ba09a6
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlan.h
    M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp

  Log Message:
  -----------
  [VPlan] Make VPBlock constructors private (NFC).

16d19aaed moved to manage block creation via VPlan directly, with VPlan
owning the created blocks. Follow up to make the VPBlock constructors
private, to require creation via VPlan helpers and thus preventing
issues due to manually constructing blocks.


  Commit: 1c3df5308a86aaed4c91869982d365cc20f2b511
      https://github.com/llvm/llvm-project/commit/1c3df5308a86aaed4c91869982d365cc20f2b511
  Author: Hubert Tong <hubert.reinterpretcast at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/unittests/AST/ExternalASTSourceTest.cpp

  Log Message:
  -----------
  [NFC] Explicitly use `clang::Module` in test file

https://github.com/llvm/llvm-project/pull/122887 uses `Module` to refer
to `clang::Module` in a test that has `using namespace llvm;`.

This causes lookup ambiguity with `llvm::Module` if the headers involved
expose that name (e.g., for downstream codebases).


  Commit: 2c75bda42605b620f8450e44a7b6f2db3adc21cb
      https://github.com/llvm/llvm-project/commit/2c75bda42605b620f8450e44a7b6f2db3adc21cb
  Author: erichkeane <ekeane at nvidia.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/lib/Sema/CMakeLists.txt
    M clang/lib/Sema/SemaOpenACC.cpp
    A clang/lib/Sema/SemaOpenACCClause.cpp

  Log Message:
  -----------
  [OpenACC] Split up SemaOpenACC.cpp

This file is getting quite large, so this patch splits the 'clause'
specific parts off into its own file to keep them better organized.


  Commit: 8de51c859af85d7edfc334ad28ebe23b35200a84
      https://github.com/llvm/llvm-project/commit/8de51c859af85d7edfc334ad28ebe23b35200a84
  Author: Martin Storsjö <martin at martin.st>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    A libcxx/test/std/input.output/file.streams/fstreams/ifstream.members/offset_range.pass.cpp

  Log Message:
  -----------
  [libcxx] [test] Add a test for the range of file offsets (#122798)

This adds a test for an issue reported downstream at
https://github.com/mstorsjo/llvm-mingw/issues/462; this is known to fail
on Windows right now, where the fseek/ftell calls end up truncated to 32
bits.

The test for this, unfortunately, requires temporarily creating a 4 GB
file.


  Commit: 2bb5ca537b4dfae9048cc1712147f13db7aa87f6
      https://github.com/llvm/llvm-project/commit/2bb5ca537b4dfae9048cc1712147f13db7aa87f6
  Author: Renaud Kauffmann <rkauffmann at nvidia.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M flang/module/cudadevice.f90

  Log Message:
  -----------
  Preparing cudadevice.mod to be the same upstream and downstream. (#123099)


  Commit: ce30ee53a860fc86062a3d98c9c966da0d12652e
      https://github.com/llvm/llvm-project/commit/ce30ee53a860fc86062a3d98c9c966da0d12652e
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M flang/lib/Optimizer/Transforms/CUFOpConversion.cpp
    M flang/test/Fir/CUDA/cuda-global-addr.mlir

  Log Message:
  -----------
  [flang][cuda] Add gpu.launch to device context (#123105)

`gpu.launch` should also be considered device context.


  Commit: cea41e9f4c0280093815f941a0ff51e47bc7f249
      https://github.com/llvm/llvm-project/commit/cea41e9f4c0280093815f941a0ff51e47bc7f249
  Author: Benjamin Kramer <benny.kra at googlemail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M utils/bazel/llvm-project-overlay/clang/BUILD.bazel

  Log Message:
  -----------
  [bazel] Port bf17016a92bc8a23d2cdd2b51355dd4eb5019c68


  Commit: 4a4a8a1476b1386b523dc5b292ba9a5a6748a9cf
      https://github.com/llvm/llvm-project/commit/4a4a8a1476b1386b523dc5b292ba9a5a6748a9cf
  Author: Martin Storsjö <martin at martin.st>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M lld/COFF/InputFiles.cpp
    A lld/test/COFF/empty-section-decl.yaml
    A lld/test/COFF/wholearchive-implib.s
    M llvm/include/llvm/Object/COFF.h

  Log Message:
  -----------
  [LLD] [COFF] Fix linking import libraries with -wholearchive: (#122806)

When LLD links against an import library (for the regular, short import
libraries), it doesn't actually link in the header/trailer object files
at all, but synthesizes new corresponding data structures into the right
sections.

If the whole of such an import library is forced to be linked, e.g. with
the -wholearchive: option, we actually end up linking in those
header/trailer objects. The header objects contain a construct which LLD
fails to handle; previously we'd error out with the error ".idata$4
should not refer to special section 0".

Within the import library header object, in the import directory we have
relocations towards the IAT (.idata$4 and .idata$5), but the header
object itself doesn't contain any data for those sections.

In the case of GNU generated import libraries, the header objects
contain zero length sections .idata$4 and .idata$5, with relocations
against them. However in the case of LLVM generated import libraries,
the sections .idata$4 and .idata$5 are not included in the list of
sections. The symbol table does contain section symbols for these
sections, but without any actual associated section. This can probably
be seen as a declaration of an empty section.

If the header/trailer objects of a short import library are linked
forcibly and we also reference other functions in the library, we end up
with two import directory entries for this DLL, one that gets
synthesized by LLD, and one from the actual header object file. This is
inelegant, but should be acceptable.

While it would seem unusual to link import libraries with the
-wholearchive: option, this can happen in certain scenarios.

Rust builds libraries that contain relevant import libraries bundled
along with compiled Rust code as regular object files, all within one
single archive. Such an archive can then end up linked with the
-wholarchive: option, if build systems decide to use such an option for
including static libraries.

This should fix https://github.com/msys2/MINGW-packages/issues/21017.

This works for the header/trailer object files in import libraries
generated by LLVM; import libraries generated by MSVC are vaguely
different. ecb5ea6a266d5cc4e05252f6db4c73613b73cc3b did an attempt at
fixing the issue for MSVC generated libraries, but it's not entirely
correct, and isn't enough for making things work for that case.


  Commit: 4f48abff0fb90ea0a05470755b799cdb1ff79d89
      https://github.com/llvm/llvm-project/commit/4f48abff0fb90ea0a05470755b799cdb1ff79d89
  Author: Ashley Coleman <ascoleman at microsoft.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/include/clang/Basic/Builtins.td
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CGHLSLRuntime.h
    M clang/lib/Headers/hlsl/hlsl_intrinsics.h
    M clang/lib/Sema/SemaHLSL.cpp
    A clang/test/CodeGenHLSL/builtins/firstbitlow.hlsl
    M clang/test/SemaHLSL/BuiltIns/firstbithigh-errors.hlsl
    A clang/test/SemaHLSL/BuiltIns/firstbitlow-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
    A llvm/test/CodeGen/DirectX/firstbitlow.ll
    A llvm/test/CodeGen/DirectX/firstbitlow_error.ll
    M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/firstbithigh.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/firstbitlow.ll

  Log Message:
  -----------
  [HLSL] Implement elementwise firstbitlow builtin (#116858)

Closes https://github.com/llvm/llvm-project/issues/99116

Implements `firstbitlow` by extracting common functionality from
`firstbithigh` into a shared function while also fixing a bug for an edge
case where `u64x3` and larger vectors will attempt to create vectors
larger than the SPRIV max of 4.
---------

Co-authored-by: Steven Perron <stevenperron at google.com>


  Commit: bbac3493419be7e3c4383edf013b15a880ff9ee0
      https://github.com/llvm/llvm-project/commit/bbac3493419be7e3c4383edf013b15a880ff9ee0
  Author: Alexander Richardson <alexrichardson at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh

  Log Message:
  -----------
  [compiler-rt] Install libc++ and libc++abi in build_symbolizer.sh (#123104)

This ensures that the directory layout of the libc++/libc++abi matches
exactly what we would get on a real installation. Currently the build
directory happens to match the install directory layout, but this will
no longer be true in the future.


  Commit: 3241d915b1b8257fd6234461b04e4775fc7ed9fb
      https://github.com/llvm/llvm-project/commit/3241d915b1b8257fd6234461b04e4775fc7ed9fb
  Author: Augusto Noronha <anoronha at apple.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M lldb/source/Core/Mangled.cpp

  Log Message:
  -----------
  [lldb] Recognize embedded Swift mangling in Mangled::GetManglingScheme

rdar://142329765


  Commit: 504dd577675e8c85cdc8525990a7c8b517a38a89
      https://github.com/llvm/llvm-project/commit/504dd577675e8c85cdc8525990a7c8b517a38a89
  Author: David Blaikie <dblaikie at gmail.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M clang/lib/CodeGen/CGDebugInfo.cpp
    A clang/test/CodeGenCXX/debug-info-codeview-nodebug.cpp

  Log Message:
  -----------
  DebugInfo: Avoid emitting null members for nodebug nested typedefs

Only comes up for CodeView, since it forcibly emits even unused nested
typedefs.

Part of issue #122350


  Commit: 24c603505f91b2979d13e0b963fbd3c0174a005f
      https://github.com/llvm/llvm-project/commit/24c603505f91b2979d13e0b963fbd3c0174a005f
  Author: Vasileios Porpodas <vporpodas at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Interval.h
    M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Interval.cpp

  Log Message:
  -----------
  [SandboxVec][Interval][NFC] Move a few definitions from header to .cpp


  Commit: 069fbeb82f56f0ce7c0382dfd5d4fa4dc1983a13
      https://github.com/llvm/llvm-project/commit/069fbeb82f56f0ce7c0382dfd5d4fa4dc1983a13
  Author: Vasileios Porpodas <vporpodas at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Interval.h
    M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Interval.cpp

  Log Message:
  -----------
  Revert "[SandboxVec][Interval][NFC] Move a few definitions from header to .cpp"

This reverts commit 24c603505f91b2979d13e0b963fbd3c0174a005f.


  Commit: fadb0e9b52511635c2b9202f5cf2fe9a8f49bfbc
      https://github.com/llvm/llvm-project/commit/fadb0e9b52511635c2b9202f5cf2fe9a8f49bfbc
  Author: Prashanth <TheStarOne01 at proton.me>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M libc/docs/CMakeLists.txt
    M libc/docs/headers/index.rst
    A libc/utils/docgen/sys/wait.yaml

  Log Message:
  -----------
  [libc][docs] add sys/wait to documentation and include related functi… (#122598)

These changes ensure that the `sys/wait` header is documented properly
with respect to the issue (#122006 ).

**Changes:**
1. **wait.yaml**: Created a new YAML file for `sys/wait` with functions
(`wait`, `waitid`, `waitpid`) and related macros.
2. **CMakeLists.txt**: Added `sys/wait` to the documentation
directories.
3. **index.rst**: Included `sys/wait` in the documentation index.


  Commit: 42662c290a547a8f31a08ac82deac5b0679dd3fd
      https://github.com/llvm/llvm-project/commit/42662c290a547a8f31a08ac82deac5b0679dd3fd
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M lld/Common/Strings.cpp

  Log Message:
  -----------
  [lld] Initialize SingleStringMatcher::ExactMatch (#123138)

It was not set false in all branches.


  Commit: 319c1190939960d009c88baf0d5fb97a549b7a57
      https://github.com/llvm/llvm-project/commit/319c1190939960d009c88baf0d5fb97a549b7a57
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/ObjectYAML/ELFYAML.cpp

  Log Message:
  -----------
  [YAML] Init local var not set by some branches (#123137)

It will not be set if:

1. `(TypeStr.starts_with("SHT_") || isInteger(TypeStr)) == false`: here
we want go to switch default.
2. `IO.mapRequired("Type", Type);` fail parsing. It sets error
internally, so probably not important what happen next, so it's go to
the switch


  Commit: b7722fbcab4d769be54ae3001f311b2955ef6134
      https://github.com/llvm/llvm-project/commit/b7722fbcab4d769be54ae3001f311b2955ef6134
  Author: Greg Clayton <gclayton at fb.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M lldb/examples/synthetic/gnu_libstdcpp.py
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/unordered/TestDataFormatterGenericUnordered.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/unordered/main.cpp

  Log Message:
  -----------
  [lldb] Fix std::unordered_* synthetic children when typedefs are used. (#123125)

There was a bug in both the GNU and libc++ library synthetic child
providers when a typedef was used in the type of the variable. Previous
code was looking at the top level typename to try and determine if
std::unordered_ was a map or set and this failed when typedefs were
being used. This patch fixes both C++ library synthetic child providers
with updated tests.


  Commit: acf6072fae00123e78e362f74f0dc2d830837d10
      https://github.com/llvm/llvm-project/commit/acf6072fae00123e78e362f74f0dc2d830837d10
  Author: Vasileios Porpodas <vporpodas at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Interval.h
    M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Interval.cpp

  Log Message:
  -----------
  Reapply "[SandboxVec][Interval][NFC] Move a few definitions from header to .cpp"

This reverts commit 069fbeb82f56f0ce7c0382dfd5d4fa4dc1983a13.


  Commit: b15845c0059b06f406e33f278127d7eb41ff5ab6
      https://github.com/llvm/llvm-project/commit/b15845c0059b06f406e33f278127d7eb41ff5ab6
  Author: Mircea Trofin <mtrofin at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/include/llvm/Analysis/CtxProfAnalysis.h
    M llvm/include/llvm/ProfileData/PGOCtxProfReader.h
    M llvm/include/llvm/ProfileData/PGOCtxProfWriter.h
    M llvm/lib/Analysis/CtxProfAnalysis.cpp
    M llvm/lib/ProfileData/PGOCtxProfReader.cpp
    M llvm/lib/ProfileData/PGOCtxProfWriter.cpp
    M llvm/test/Analysis/CtxProfAnalysis/full-cycle.ll
    M llvm/test/Analysis/CtxProfAnalysis/inline.ll
    R llvm/test/Analysis/CtxProfAnalysis/json_equals.py
    M llvm/test/Analysis/CtxProfAnalysis/load.ll
    M llvm/unittests/Transforms/Utils/CallPromotionUtilsTest.cpp

  Log Message:
  -----------
  [ctxprof] dump profiles using yaml (for testing)  (#123108)

This is a follow-up from PR #122545, which enabled converting yaml to contextual profiles.

This change uses the lower level yaml APIs because:
- the mapping APIs `llvm::yaml` offers don't work with `const` values, because they (the APIs) want to enable both serialization and deserialization
- building a helper data structure would be an alternative, but it'd be either memory-consuming or overly-complex design, given the recursive nature of the contextual profiles.


  Commit: c70f246251fb62b8ecf94f2365688cd361adec97
      https://github.com/llvm/llvm-project/commit/c70f246251fb62b8ecf94f2365688cd361adec97
  Author: Mircea Trofin <mtrofin at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/test/tools/llvm-ctxprof-util/Inputs/valid.yaml
    M llvm/test/tools/llvm-ctxprof-util/llvm-ctxprof-util.test
    M llvm/tools/llvm-ctxprof-util/llvm-ctxprof-util.cpp

  Log Message:
  -----------
  [ctxprof] add `toYAML` conversion to llvm-ctxprof-utils (#123131)

Also modified test file to match "toYaml" formatting.


  Commit: c805df69994a1f1e8f095b690c9af9e9c463906b
      https://github.com/llvm/llvm-project/commit/c805df69994a1f1e8f095b690c9af9e9c463906b
  Author: Alex Voicu <alexandru.voicu at amd.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M clang/lib/Driver/ToolChains/HIPAMD.cpp

  Log Message:
  -----------
  [NFC][clang][HIP] Remove flag from SPIR-V Translator invocation (#122995)

Remove spurious `--spirv-allow-extra-diexpressions` flag from the
translator invocation, as it's already implied by using
`nonsemantic-shader-200`.


  Commit: d2484127cd27184b373b6be71da87579b8659143
      https://github.com/llvm/llvm-project/commit/d2484127cd27184b373b6be71da87579b8659143
  Author: LiqinWeng <liqin.weng at spacemit.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M llvm/lib/CodeGen/ExpandVectorPredication.cpp
    M llvm/test/CodeGen/X86/expand-vp-int-intrinsics.ll

  Log Message:
  -----------
  [VP] IR expansion to Int Func Call (#122867)

Add basic handling for VP ops that can expand to Int intrinsics, which
includes: ctpop/cttz/ctlz/sadd.sat/uadd.sat/ssub.sat/usub.sat/fshl/fshr


  Commit: 29e63328a79af9501bf8d6b7e5a07303427ded73
      https://github.com/llvm/llvm-project/commit/29e63328a79af9501bf8d6b7e5a07303427ded73
  Author: Lang Hames <lhames at gmail.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
    M llvm/unittests/ExecutionEngine/JITLink/LinkGraphTests.cpp

  Log Message:
  -----------
  [JITLink] Add Block::edges_at(Edge::OffsetT): iterate over edges at offset.

Block::edges_at is a convenience method for iterating over edges at a given
offset within a jitlink::Block.

This method will be used in an upcoming patch for compact unwind info support.


  Commit: 731db2a03e096fe42196f0ae6531179b998b0bf8
      https://github.com/llvm/llvm-project/commit/731db2a03e096fe42196f0ae6531179b998b0bf8
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/DeclBase.h
    M clang/include/clang/AST/ExternalASTMerger.h
    M clang/include/clang/AST/ExternalASTSource.h
    M clang/include/clang/Sema/MultiplexExternalSemaSource.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/include/clang/Serialization/ASTReader.h
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/lib/AST/DeclBase.cpp
    M clang/lib/AST/ExternalASTMerger.cpp
    M clang/lib/AST/ExternalASTSource.cpp
    M clang/lib/Interpreter/CodeCompletion.cpp
    M clang/lib/Sema/MultiplexExternalSemaSource.cpp
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTReaderInternals.h
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/test/CXX/basic/basic.scope/basic.scope.namespace/p2.cpp
    M clang/test/CXX/module/basic/basic.link/p2.cppm
    M clang/test/CXX/module/module.import/p2.cpp
    M clang/test/CXX/module/module.interface/p7.cpp
    M clang/test/CXX/module/module.reach/p5.cpp
    M clang/test/Modules/Reachability-template-default-arg.cpp
    M clang/test/Modules/cxx20-10-1-ex2.cpp
    M clang/test/Modules/deduction-guide3.cppm
    R clang/test/Modules/module-local-with-templates.cppm
    R clang/test/Modules/pr90154.cppm
    M clang/unittests/AST/ExternalASTSourceTest.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h
    M lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h
    M lldb/source/Plugins/ExpressionParser/Clang/ClangExternalASTSourceCallbacks.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ClangExternalASTSourceCallbacks.h
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp

  Log Message:
  -----------
  Revert "[C++20] [Modules] Support module level lookup (#122887)"

This reverts commit 7201cae106260aeb3e9bbbb7d5291ff30f05076a.


  Commit: f79bacb485bfb2d12bc0a223cc35d2e5fb75fbf7
      https://github.com/llvm/llvm-project/commit/f79bacb485bfb2d12bc0a223cc35d2e5fb75fbf7
  Author: Luohao Wang <luohaothu at live.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M mlir/test/lit.cfg.py

  Log Message:
  -----------
  [mlir] [Python] Fix misused `lldb_build_directory` in MLIR's test script (#122596)

Related to #121288 

This PR fixes the miscopied `config.lldb_build_directory` variable in
`lit.cfg.py` inside MLIR's test suit. `config.mlir_obj_root` is used as
a replacement for the copied python executable's directory.

**PS**: Since this is a common work-around on macOS, should we promote
it as a utility across projects?

Co-authored-by: Luohao Wang <Luohaothu at users.noreply.github.com>
Co-authored-by: Kai Sasaki <lewuathe at gmail.com>


  Commit: ef77188fa85728b07059b5f42b92236998d25b19
      https://github.com/llvm/llvm-project/commit/ef77188fa85728b07059b5f42b92236998d25b19
  Author: LiqinWeng <liqin.weng at spacemit.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M llvm/lib/CodeGen/ExpandVectorPredication.cpp

  Log Message:
  -----------
  [VP] Remove createStepVector implementation and use IRBuilderBase::CreateStepVector instead. NFC (#122868)


  Commit: 98dbce3cac38ccac3f4b1cad0865aaa7ca0aee5d
      https://github.com/llvm/llvm-project/commit/98dbce3cac38ccac3f4b1cad0865aaa7ca0aee5d
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/lib/MC/MCTargetOptionsCommandFlags.cpp

  Log Message:
  -----------
  [MC] Unhide the target-abi option. (#123135)

This option is very important for RISC-V as it controls calling
convention and a field in the ELF header. It is used in a large number
of RISC-V lit tests.

Expose the option to -help.

Fixes one issue raised in #123077


  Commit: ec5d17b58779e2fb08a7c9c706b2842586f71f78
      https://github.com/llvm/llvm-project/commit/ec5d17b58779e2fb08a7c9c706b2842586f71f78
  Author: Luke Lau <luke at igalia.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp

  Log Message:
  -----------
  [RISCV] Explicitly check for passthru in doPeepholeMaskedRVV. NFC

We were previously checking a combination of the vector policy op and
the opcode to determine if we needed to skip copying the passthru from
a masked pseudo to an unmasked pseudo.

However we can just do this by checking
RISCVII::isFirstDefTiedToFirstUse, which is a proxy for whether or not
a pseudo has a passthru operand.

This should hopefully remove the need for the changes in #123106


  Commit: 1d890b06eedf0cc6746873a5c69b761a0a43cc35
      https://github.com/llvm/llvm-project/commit/1d890b06eedf0cc6746873a5c69b761a0a43cc35
  Author: Thirumalai Shaktivel <74826228+Thirumalai-Shaktivel at users.noreply.github.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.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:
  -----------
  [Flang, OpenMP] Add LLVM lowering support for PRIORITY in TASK (#120710)

Implementation details:
The PRIORITY clause is recognized by setting the flags = 32 to the 
`__kmpc_omp_task_alloc` runtime call. Also, store the priority-value 
to the `kmp_task_t` struct member


  Commit: 3e3a4d8caa0eb8fa40f09390ebc622c374fc96aa
      https://github.com/llvm/llvm-project/commit/3e3a4d8caa0eb8fa40f09390ebc622c374fc96aa
  Author: Christudasan Devadasan <christudasan.devadasan at amd.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp

  Log Message:
  -----------
  [AMDGPU] Use LV wrapperPass in getAnalysisUsage. (#123044)


  Commit: 1797fb6b233c548817008b9c39c6af06d12cae99
      https://github.com/llvm/llvm-project/commit/1797fb6b233c548817008b9c39c6af06d12cae99
  Author: Christudasan Devadasan <christudasan.devadasan at amd.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPU.h
    M llvm/lib/Target/AMDGPU/AMDGPUPassRegistry.def
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
    M llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
    A llvm/lib/Target/AMDGPU/SILowerControlFlow.h
    M llvm/test/CodeGen/AMDGPU/collapse-endcf.mir
    M llvm/test/CodeGen/AMDGPU/lower-control-flow-live-intervals.mir
    M llvm/test/CodeGen/AMDGPU/lower-control-flow-other-terminators.mir

  Log Message:
  -----------
  [AMDGPU][NewPM] Port SILowerControlFlow pass into NPM. (#123045)


  Commit: 0195ec452e16a0ff4b4f4ff2e2ea5a1dd5a20563
      https://github.com/llvm/llvm-project/commit/0195ec452e16a0ff4b4f4ff2e2ea5a1dd5a20563
  Author: David Truby <david.truby at arm.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Flang.cpp
    M flang/include/flang/Frontend/CodeGenOptions.def
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Frontend/FrontendActions.cpp
    A flang/test/Driver/funroll-loops.f90
    A flang/test/HLFIR/unroll-loops.fir
    A flang/test/Integration/unroll-loops.f90

  Log Message:
  -----------
  [flang] Add -f[no-]unroll-loops flag (#122906)


  Commit: f9a80062470daf94e07f65f9dd23df6a4f2946a2
      https://github.com/llvm/llvm-project/commit/f9a80062470daf94e07f65f9dd23df6a4f2946a2
  Author: Jianjian Guan <jacquesguan at me.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp
    M mlir/test/Conversion/ArithToEmitC/arith-to-emitc-unsupported.mlir
    M mlir/test/Conversion/ArithToEmitC/arith-to-emitc.mlir

  Log Message:
  -----------
  [mlir][emitc] Support convert arith.extf and arith.truncf to emitc (#121184)


  Commit: 95d21f6015241f1fbf36e495f101080bdcee8cd4
      https://github.com/llvm/llvm-project/commit/95d21f6015241f1fbf36e495f101080bdcee8cd4
  Author: alx32 <103613512+alx32 at users.noreply.github.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M lld/MachO/MapFile.cpp
    M lld/test/MachO/arm64-thunks.s

  Log Message:
  -----------
  [lld-macho] Reduce memory usage of printing thunks in map file (#122785)

This commit improves the memory efficiency of the lld-macho linker by
optimizing how thunks are printed in the map file. Previously, merging
vectors of input sections required creating a temporary vector, which
increased memory usage and in some cases caused the linker to run out of
memory as reported in comments on
https://github.com/llvm/llvm-project/pull/120496. The new approach
interleaves the printing of two arrays of ConcatInputSection in sorted
order without allocating additional memory for a merged array.


  Commit: f30ff0b1a978a49cb0f9bf069b7e949c985515b0
      https://github.com/llvm/llvm-project/commit/f30ff0b1a978a49cb0f9bf069b7e949c985515b0
  Author: Kazu Hirata <kazu at google.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.cpp

  Log Message:
  -----------
  [TableGen] Avoid repeated hash lookups (NFC) (#123161)


  Commit: 990774ab8e1facda0c55214d1510b42135b18deb
      https://github.com/llvm/llvm-project/commit/990774ab8e1facda0c55214d1510b42135b18deb
  Author: Thirumalai Shaktivel <74826228+Thirumalai-Shaktivel at users.noreply.github.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/check-omp-structure.h
    M flang/lib/Semantics/resolve-directives.cpp
    A flang/test/Semantics/OpenMP/cray-pointer-usage.f90

  Log Message:
  -----------
  [Flang] Add semantic checks for cray pointer usage in DSA list (#121028)

Problems:
- Cray pointee cannot be used in the DSA list (If used results in
segmentation fault)
- Cray pointer has to be in the DSA list when Cray pointee is used in
the default (none) region

Fix: Added required semantic checks along the tests

Reference from the documentation (OpenMP 5.0: 2.19.1):
- Cray pointees have the same data-sharing attribute as the storage with
   which their Cray pointers are associated.


  Commit: f711aa9e5ddb885143e2abe614b5cfb3b0d396bf
      https://github.com/llvm/llvm-project/commit/f711aa9e5ddb885143e2abe614b5cfb3b0d396bf
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M llvm/docs/ReleaseNotes.md

  Log Message:
  -----------
  [llvm][Docs] Add release note about LLDB core file improvements (#123062)


  Commit: f023da12d12635f5fba436e825cbfc999e28e623
      https://github.com/llvm/llvm-project/commit/f023da12d12635f5fba436e825cbfc999e28e623
  Author: Matthias Springer <me at m-sp.org>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M flang/include/flang/Optimizer/Builder/Runtime/RTBuilder.h
    M flang/lib/Lower/ConvertType.cpp
    M flang/lib/Optimizer/Builder/FIRBuilder.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/Builder/PPCIntrinsicCall.cpp
    M flang/lib/Optimizer/Builder/Runtime/Numeric.cpp
    M flang/lib/Optimizer/Builder/Runtime/Reduction.cpp
    M flang/lib/Optimizer/Builder/Runtime/Transformational.cpp
    M flang/lib/Optimizer/CodeGen/Target.cpp
    M flang/lib/Optimizer/Dialect/FIRType.cpp
    M flang/unittests/Optimizer/Builder/ComplexTest.cpp
    M flang/unittests/Optimizer/Builder/FIRBuilderTest.cpp
    M flang/unittests/Optimizer/Builder/HLFIRToolsTest.cpp
    M flang/unittests/Optimizer/FIRTypesTest.cpp
    M flang/unittests/Optimizer/FortranVariableTest.cpp
    M flang/unittests/Optimizer/RTBuilder.cpp
    M mlir/include/mlir/IR/BuiltinTypeInterfaces.td
    M mlir/include/mlir/IR/BuiltinTypes.h
    M mlir/lib/CAPI/IR/BuiltinTypes.cpp
    M mlir/lib/IR/Builders.cpp
    M mlir/lib/IR/BuiltinTypes.cpp
    M mlir/lib/Target/LLVMIR/DataLayoutImporter.cpp
    M mlir/lib/Target/LLVMIR/ModuleImport.cpp
    M mlir/test/lib/Dialect/Affine/TestVectorizationUtils.cpp
    M mlir/test/lib/Dialect/Test/TestPatterns.cpp
    M mlir/test/lib/Transforms/TestDialectConversion.cpp
    M mlir/tools/tblgen-to-irdl/OpDefinitionsGen.cpp
    M mlir/unittests/IR/AttributeTest.cpp
    M mlir/unittests/IR/ShapedTypeTest.cpp

  Log Message:
  -----------
  [mlir][IR] Remove factory methods from `FloatType` (#123026)

This commit removes convenience methods from `FloatType` to make it
independent of concrete interface implementations.

See discussion here:
https://discourse.llvm.org/t/rethink-on-approach-to-low-precision-fp-types/82361

Note for LLVM integration: Replace `FloatType::getF32(` with
`Float32Type::get(` etc.


  Commit: c23f2417dc5f6dc371afb07af5627ec2a9d373a0
      https://github.com/llvm/llvm-project/commit/c23f2417dc5f6dc371afb07af5627ec2a9d373a0
  Author: Pedro Lobo <pedro.lobo at tecnico.ulisboa.pt>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/test/CodeGen/ARM/vector-promotion.ll

  Log Message:
  -----------
  [CodeGenPrepare] Replace `undef` use with `poison` [NFC] (#123111)

When generating a constant vector, if `UseSplat` is false, the indices
different from the index of the extract can be filled with `poison`
instead of `undef`.


  Commit: fd4f94ddbf0c0f0c9d0185e6036fe51de5ab2ef3
      https://github.com/llvm/llvm-project/commit/fd4f94ddbf0c0f0c9d0185e6036fe51de5ab2ef3
  Author: Younan Zhang <zyn7109 at gmail.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaTemplateDeductionGuide.cpp
    M clang/test/SemaTemplate/deduction-guide.cpp

  Log Message:
  -----------
  [Clang] Correct the order of substituted arguments in CTAD alias guides (#123022)

We missed a case of type constraints referencing deduced template
parameters when constructing a deduction guide for the type alias. This
patch fixes the issue by swapping the order of constructing 'template
arguments not appearing in the type alias parameters' and 'template
arguments that are not yet deduced'.

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


  Commit: 8fb29ba287d72392bd7900c33d2a8d2149126dbe
      https://github.com/llvm/llvm-project/commit/8fb29ba287d72392bd7900c33d2a8d2149126dbe
  Author: Lang Hames <lhames at gmail.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/JITLink/x86_64.h
    M llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp
    M llvm/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp
    M llvm/lib/ExecutionEngine/JITLink/x86_64.cpp
    M llvm/unittests/ExecutionEngine/JITLink/CMakeLists.txt
    A llvm/unittests/ExecutionEngine/JITLink/X86_64Tests.cpp

  Log Message:
  -----------
  [JITLink] Teach x86_64 GOT & PLT table managers to discover existing entries.

x86_64::GOTTableManager and x86_64::PLTTableManager will now look for existing
GOT and PLT sections and re-use existing entries if they're present.

This will be used for an upcoming MachO patch to enable compact unwind support.

This patch is the x86-64 counterpart 42595bdaefb, which added the same
functionality to the GOT and PLT managers for aarch64.


  Commit: d89751240206dafcbc138829d9d7aad137aa2e04
      https://github.com/llvm/llvm-project/commit/d89751240206dafcbc138829d9d7aad137aa2e04
  Author: Pedro Lobo <pedro.lobo at tecnico.ulisboa.pt>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/MemCpyOpt/store-to-memset-is-nonzero-type.ll
    M llvm/unittests/Analysis/ValueTrackingTest.cpp

  Log Message:
  -----------
  [ValueTracking] Return `poison` for zero-sized types (#122647)

Return `poison` for zero-sized types in `isBitwiseValue`.


  Commit: ec9aa4ac2f5a1b8e91938b47081eadc1a9d3bf85
      https://github.com/llvm/llvm-project/commit/ec9aa4ac2f5a1b8e91938b47081eadc1a9d3bf85
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M llvm/cmake/config-ix.cmake

  Log Message:
  -----------
  [cmake] Hardcode some `check_include_file` checks (#104706)

This patch removes 11 `check_include_file` invocations from
configuration phase of LLVM subproject on most of the platforms,
hardcoding the results. Fallback is left for platforms that we don't
document as supported or that are not detectable via
`CMAKE_SYSTEM_NAME`, e.g. z/OS.

This patch reduces configuration time on Linux by 10%, going from 44.7
seconds down to 40.6 seconds on my Debian machine (ramdisk, `cmake
-DLLVM_ENABLE_PROJECTS="clang;lldb;clang-tools-extra"
-DLLVM_ENABLE_RUNTIMES="libunwind;libcxx;libcxxabi"
-DCMAKE_BUILD_TYPE=RelWithDebInfo -DLLVM_OPTIMIZED_TABLEGEN=ON
-DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_ENABLE_DOXYGEN=ON
-DLLVM_ENABLE_LIBCXX=ON -DBUILD_SHARED_LIBS=ON -DLLDB_ENABLE_PYTHON=ON
~/endill/llvm-project/llvm`).

In order to determine the values to hardcode, I prepared the following
header:
```cpp
#include <dlfcn.h>
#include <errno.h>
#include <fcntl.h>
#include <fenv.h>
#include <mach/mach.h>
#include <malloc/malloc.h>
#include <pthread.h>
#include <signal.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <sys/param.h>
#include <sys/resource.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sysexits.h>
#include <termios.h>
#include <unistd.h>

int main() {}
```
and tried to compile it on the oldest versions of platforms that are
still supported (which was problematic to determine sometimes): macOS
12, Cygwin, DragonFly BSD 6.4.0, FreeBSD 13.3, Haiku R1 beta 4, RHEL
8.10 as a glibc-based Linux, Alpine 3.17 as musl-based Linux, NetBSD 9,
OpenBSD 7.4, Solaris 11.4, Windows SDK 10.0.17763.0, which corresponds
to Windows 10 1809 and is the oldest Windows 10 SDK in Visual Studio
Installer.

For platforms I don't have access to, which are AIX 7.2 TL5 and z/OS
2.4.0, I had to rely on the official documentation. I suspect that AIX
offers a better set of headers than what this PR claims, so I'm open to
input from people who have access to a live system to test it.

Similarly to AIX, I have values for z/OS compiled from the official
documentation that are not included in this patch, because apparently
upstream CMake doesn't even support z/OS, so I don't even know how to
make a place to hold those values. I see `if (ZOS)` in several places
across our CMake files, but it's a mystery to me where this variable
comes from. Input from people who have access to live z/OS instance is
welcome.


  Commit: aa990069cf4ddd8546dbb36a7d2f157b7984c3b5
      https://github.com/llvm/llvm-project/commit/aa990069cf4ddd8546dbb36a7d2f157b7984c3b5
  Author: Daniel Kiss <daniel.kiss at arm.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M llvm/cmake/modules/GetHostTriple.cmake

  Log Message:
  -----------
  Simplify MSVC compatible compiler detection. (#122914)

CMAKE_CXX_SIMULATE_ID indicates the MSVC abi is usable.


  Commit: b0c4aed4f1982427d869a45fdb4910129f6d9315
      https://github.com/llvm/llvm-project/commit/b0c4aed4f1982427d869a45fdb4910129f6d9315
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M llvm/test/Transforms/LoopVectorize/no_outside_user.ll

  Log Message:
  -----------
  [LoopVectorize] Regenerate test checks (NFC)

Add a prefix to avoid conflicts, otherwise the test becomes
invalid on regeneration.


  Commit: ccd8d0b548fdbf18deda3163780c966a287db7e8
      https://github.com/llvm/llvm-project/commit/ccd8d0b548fdbf18deda3163780c966a287db7e8
  Author: David Green <david.green at arm.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M llvm/test/CodeGen/AArch64/double_reduct.ll

  Log Message:
  -----------
  [AArch64][GlobalISel] Add gisel coverage for double-reductions. NFC

The extra tests are simpler for GISel to detect.


  Commit: 3a9380f21d05eb8ced03349c8c503dc911f22621
      https://github.com/llvm/llvm-project/commit/3a9380f21d05eb8ced03349c8c503dc911f22621
  Author: Victor Campos <victor.campos at arm.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M clang/include/clang/Driver/Driver.h
    M clang/include/clang/Driver/Multilib.h
    M clang/include/clang/Driver/ToolChain.h
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/Multilib.cpp
    M clang/lib/Driver/ToolChains/BareMetal.cpp
    M clang/lib/Driver/ToolChains/BareMetal.h
    A clang/test/Driver/baremetal-multilib-custom-flags.yaml

  Log Message:
  -----------
  [Multilib] Custom flags processing for library selection (#110659)

This patch is the third step to extend the current multilib system to
support the selection of library variants which do not correspond to
existing command-line options.

Proposal can be found in
https://discourse.llvm.org/t/rfc-multilib-custom-flags/81058

The multilib mechanism supports libraries that target code generation or
language options such as --target, -mcpu, -mfpu, -mbranch-protection.
However, some library variants are particular to features that do not
correspond to any command-line options. Examples include variants for
multithreading and semihosting.

This work introduces a way to instruct the multilib system to consider
these features in library selection. This particular patch is comprised
of the core processing of these flags.

- Custom flags in the command-line are read and forwarded to the
multilib system. If multiple flag values are present for the same flag
declaration, the last one wins. Default flag values are inserted for
flag declarations for which no value was given.
- Feed `MacroDefines` back into the driver. Each item `<string>` in the
`MacroDefines` list is formatted as `-D<string>`.

Library variants should list their requirement on one or more custom
flags like they do for any other flag. The new command-line option is
passed as-is to the multilib system, therefore it should be listed in
the format `-fmultilib-flag=<str>`.

Moreover, a variant that does not specify a requirement on any
particular flag can be matched against any value of that flag.

If the user specifies `-fmultilib-flag=<name>` with a name that is
invalid, but close enough to any valid flag value name in terms of edit
distance, a suggesting error is shown:
```
error: unsupported option '-fmultilib-flag=invalidname'; did you mean '-fmultilib-flag=validname'?
```
The candidate with the smallest edit distance is chosen for the
suggestion, up to a certain maximum value (implementation detail), after
which a non-suggesting error is shown instead:
```
error: unsupported option '-fmultilib-flag=invalidname'
```


  Commit: ae527b9cc5150c77743e36cbbfd5eb12469417b4
      https://github.com/llvm/llvm-project/commit/ae527b9cc5150c77743e36cbbfd5eb12469417b4
  Author: Victor Campos <victor.campos at arm.com>
  Date:   2025-01-16 (Thu, 16 Jan 2025)

  Changed paths:
    M .github/CODEOWNERS
    M clang-tools-extra/clang-reorder-fields/ReorderFieldsAction.cpp
    M clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp
    M clang-tools-extra/clang-tidy/tool/clang-tidy-diff.py
    M clang-tools-extra/clangd/CodeComplete.cpp
    M clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    A clang-tools-extra/test/clang-reorder-fields/Comments.cpp
    M clang/bindings/python/clang/cindex.py
    M clang/bindings/python/tests/cindex/test_type.py
    M clang/cmake/caches/hexagon-unknown-linux-musl-clang-cross.cmake
    M clang/docs/InternalsManual.rst
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang-c/Index.h
    M clang/include/clang/AST/Decl.h
    M clang/include/clang/AST/DeclBase.h
    M clang/include/clang/AST/Type.h
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Basic/AttrDocs.td
    M clang/include/clang/Basic/Builtins.td
    M clang/include/clang/Basic/BuiltinsHexagonDep.def
    M clang/include/clang/Basic/CMakeLists.txt
    M clang/include/clang/Basic/DiagnosticAST.h
    M clang/include/clang/Basic/DiagnosticASTKinds.td
    M clang/include/clang/Basic/DiagnosticAnalysis.h
    M clang/include/clang/Basic/DiagnosticComment.h
    M clang/include/clang/Basic/DiagnosticCrossTU.h
    M clang/include/clang/Basic/DiagnosticDriver.h
    M clang/include/clang/Basic/DiagnosticFrontend.h
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Basic/DiagnosticInstallAPI.h
    M clang/include/clang/Basic/DiagnosticLex.h
    M clang/include/clang/Basic/DiagnosticParse.h
    M clang/include/clang/Basic/DiagnosticRefactoring.h
    M clang/include/clang/Basic/DiagnosticSema.h
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Basic/DiagnosticSerialization.h
    M clang/include/clang/Driver/Driver.h
    M clang/include/clang/Driver/Options.td
    M clang/include/clang/Tooling/Tooling.h
    M clang/lib/AST/ASTImporter.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/Decl.cpp
    M clang/lib/AST/DeclCXX.cpp
    M clang/lib/AST/ExternalASTMerger.cpp
    M clang/lib/Basic/SourceManager.cpp
    M clang/lib/Basic/TargetInfo.cpp
    M clang/lib/Basic/Targets/ARM.cpp
    M clang/lib/CodeGen/BackendUtil.cpp
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CGDebugInfo.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/CGStmtOpenMP.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/Multilib.cpp
    M clang/lib/Driver/ToolChains/Arch/ARM.cpp
    M clang/lib/Driver/ToolChains/Flang.cpp
    M clang/lib/Driver/ToolChains/HIPAMD.cpp
    M clang/lib/Format/FormatTokenLexer.cpp
    M clang/lib/Headers/hlsl/hlsl_detail.h
    M clang/lib/Headers/hlsl/hlsl_intrinsics.h
    M clang/lib/Sema/CMakeLists.txt
    M clang/lib/Sema/SemaCodeComplete.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaHLSL.cpp
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Sema/SemaOpenACC.cpp
    A clang/lib/Sema/SemaOpenACCClause.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateDeductionGuide.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp
    M clang/lib/Tooling/Tooling.cpp
    M clang/test/APINotes/Inputs/Headers/Templates.h
    M clang/test/APINotes/templates.cpp
    M clang/test/AST/ByteCode/cxx11.cpp
    A clang/test/CodeGenCXX/debug-info-codeview-nodebug.cpp
    A clang/test/CodeGenCXX/debug-info-object-pointer.cpp
    A clang/test/CodeGenHLSL/Bool.hlsl
    A clang/test/CodeGenHLSL/builtins/D3DCOLORtoUBYTE4.hlsl
    A clang/test/CodeGenHLSL/builtins/firstbitlow.hlsl
    M clang/test/Driver/aarch64-implied-sme-features.c
    M clang/test/Driver/arm-mfpu.c
    M clang/test/Driver/hip-cuid.hip
    M clang/test/Driver/modules-print-library-module-manifest-path.cpp
    M clang/test/Driver/print-supported-extensions-aarch64.c
    M clang/test/Misc/pragma-attribute-supported-attributes-list.test
    A clang/test/OpenMP/parallel_masked_taskloop_simd_codegen.c
    M clang/test/Preprocessor/arm-acle-6.4.c
    M clang/test/Sema/uninit-variables.c
    M clang/test/SemaCXX/ptrauth-type-discriminator.cpp
    M clang/test/SemaCXX/uninitialized.cpp
    R clang/test/SemaCXX/warn-inconsistent-missing-destructor-override
    A clang/test/SemaCXX/warn-inconsistent-missing-destructor-override.cpp
    R clang/test/SemaCXX/warn-suggest-destructor-override
    A clang/test/SemaCXX/warn-suggest-destructor-override.cpp
    R clang/test/SemaCXX/warn-suggest-override
    A clang/test/SemaCXX/warn-suggest-override.cpp
    A clang/test/SemaHLSL/BuiltIns/D3DCOLORtoUBYTE4-errors.hlsl
    M clang/test/SemaHLSL/BuiltIns/asfloat-errors.hlsl
    M clang/test/SemaHLSL/BuiltIns/firstbithigh-errors.hlsl
    A clang/test/SemaHLSL/BuiltIns/firstbitlow-errors.hlsl
    M clang/test/SemaTemplate/deduction-guide.cpp
    A clang/test/TableGen/select-enum-errors.td
    A clang/test/TableGen/select-enum.td
    M clang/tools/libclang/CIndexCXX.cpp
    M clang/tools/libclang/CXType.cpp
    M clang/tools/libclang/libclang.map
    M clang/unittests/Format/TokenAnnotatorTest.cpp
    M clang/unittests/Tooling/ToolingTest.cpp
    M clang/utils/TableGen/ClangDiagnosticsEmitter.cpp
    M clang/utils/TableGen/TableGen.cpp
    M clang/utils/TableGen/TableGenBackends.h
    M compiler-rt/lib/asan/asan_interceptors.cpp
    M compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp
    M compiler-rt/lib/rtsan/tests/rtsan_test_functional.cpp
    M compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.h
    M compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh
    A compiler-rt/test/asan/TestCases/Windows/msvc/strdup_null_input.cpp
    M compiler-rt/test/orc/TestCases/Darwin/x86-64/objc-imageinfo.S
    M compiler-rt/test/profile/ContinuousSyncMode/online-merging.c
    M flang/include/flang/Common/OpenMP-utils.h
    M flang/include/flang/Evaluate/shape.h
    M flang/include/flang/Evaluate/target.h
    M flang/include/flang/Evaluate/tools.h
    M flang/include/flang/Evaluate/traverse.h
    M flang/include/flang/Evaluate/variable.h
    M flang/include/flang/Frontend/CodeGenOptions.def
    M flang/include/flang/Frontend/CompilerInstance.h
    M flang/include/flang/Frontend/CompilerInvocation.h
    M flang/include/flang/Optimizer/Builder/FIRBuilder.h
    M flang/include/flang/Optimizer/Builder/HLFIRTools.h
    M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
    M flang/include/flang/Optimizer/Builder/Runtime/Exceptions.h
    M flang/include/flang/Optimizer/Builder/Runtime/RTBuilder.h
    M flang/include/flang/Optimizer/Dialect/CUF/CUFOps.td
    M flang/include/flang/Optimizer/HLFIR/Passes.td
    A flang/include/flang/Optimizer/OpenACC/FIROpenACCTypeInterfaces.h
    A flang/include/flang/Optimizer/OpenACC/RegisterOpenACCExtensions.h
    M flang/include/flang/Optimizer/Support/InitFIR.h
    M flang/include/flang/Runtime/exceptions.h
    M flang/include/flang/Runtime/magic-numbers.h
    M flang/include/flang/Semantics/tools.h
    A flang/include/flang/Support/StringOstream.h
    A flang/include/flang/Support/Timing.h
    M flang/include/flang/Tools/TargetSetup.h
    M flang/lib/CMakeLists.txt
    M flang/lib/Common/OpenMP-utils.cpp
    M flang/lib/Evaluate/check-expression.cpp
    M flang/lib/Evaluate/fold-designator.cpp
    M flang/lib/Evaluate/fold-implementation.h
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Evaluate/shape.cpp
    M flang/lib/Evaluate/target.cpp
    M flang/lib/Evaluate/tools.cpp
    M flang/lib/Frontend/CMakeLists.txt
    M flang/lib/Frontend/CompilerInstance.cpp
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Frontend/FrontendActions.cpp
    M flang/lib/Lower/ConvertType.cpp
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    M flang/lib/Optimizer/Builder/FIRBuilder.cpp
    M flang/lib/Optimizer/Builder/HLFIRTools.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/Builder/PPCIntrinsicCall.cpp
    M flang/lib/Optimizer/Builder/Runtime/Exceptions.cpp
    M flang/lib/Optimizer/Builder/Runtime/Numeric.cpp
    M flang/lib/Optimizer/Builder/Runtime/Reduction.cpp
    M flang/lib/Optimizer/Builder/Runtime/Transformational.cpp
    M flang/lib/Optimizer/CMakeLists.txt
    M flang/lib/Optimizer/CodeGen/Target.cpp
    M flang/lib/Optimizer/Dialect/CMakeLists.txt
    M flang/lib/Optimizer/Dialect/FIRType.cpp
    M flang/lib/Optimizer/HLFIR/IR/HLFIROps.cpp
    M flang/lib/Optimizer/HLFIR/Transforms/SimplifyHLFIRIntrinsics.cpp
    A flang/lib/Optimizer/OpenACC/CMakeLists.txt
    A flang/lib/Optimizer/OpenACC/FIROpenACCTypeInterfaces.cpp
    A flang/lib/Optimizer/OpenACC/RegisterOpenACCExtensions.cpp
    M flang/lib/Optimizer/Passes/Pipelines.cpp
    M flang/lib/Optimizer/Transforms/CUFDeviceGlobal.cpp
    M flang/lib/Optimizer/Transforms/CUFOpConversion.cpp
    M flang/lib/Parser/prescan.cpp
    M flang/lib/Semantics/check-declarations.cpp
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/check-omp-structure.h
    M flang/lib/Semantics/mod-file.cpp
    M flang/lib/Semantics/mod-file.h
    M flang/lib/Semantics/resolve-directives.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/tools.cpp
    A flang/lib/Support/CMakeLists.txt
    A flang/lib/Support/Timing.cpp
    M flang/module/__fortran_ieee_exceptions.f90
    M flang/module/cudadevice.f90
    M flang/runtime/exceptions.cpp
    M flang/runtime/file.cpp
    M flang/runtime/io-api.cpp
    M flang/runtime/io-error.cpp
    M flang/runtime/io-error.h
    A flang/test/Driver/funroll-loops.f90
    M flang/test/Driver/intrinsic-module-path.f90
    M flang/test/Driver/mlir-pass-pipeline.f90
    A flang/test/Driver/time-report.f90
    M flang/test/Driver/use-module.f90
    M flang/test/Fir/CUDA/cuda-data-transfer.fir
    M flang/test/Fir/CUDA/cuda-global-addr.mlir
    M flang/test/Fir/CUDA/cuda-launch.fir
    A flang/test/Fir/OpenACC/openacc-mappable.fir
    M flang/test/Fir/basic-program.fir
    M flang/test/HLFIR/associate-codegen.fir
    M flang/test/HLFIR/mul_transpose.f90
    A flang/test/HLFIR/simplify-hlfir-intrinsics-matmul.fir
    A flang/test/HLFIR/unroll-loops.fir
    M flang/test/Integration/OpenMP/target-filtering.f90
    A flang/test/Integration/unroll-loops.f90
    R flang/test/Lower/Intrinsics/ieee_femodes.f90
    R flang/test/Lower/Intrinsics/ieee_festatus.f90
    M flang/test/Lower/OpenMP/function-filtering-2.f90
    M flang/test/Lower/OpenMP/function-filtering-3.f90
    M flang/test/Lower/OpenMP/function-filtering.f90
    A flang/test/Lower/OpenMP/host-eval.f90
    A flang/test/Lower/OpenMP/target-spmd.f90
    M flang/test/Lower/math-lowering/cosh.f90
    M flang/test/Lower/trigonometric-intrinsics.f90
    M flang/test/Preprocessing/bug129131.F
    A flang/test/Semantics/OpenMP/cray-pointer-usage.f90
    A flang/test/Semantics/bug121971.f90
    A flang/test/Semantics/bug121972.f90
    A flang/test/Semantics/bug121973.f90
    A flang/test/Semantics/bug122002a.f90
    A flang/test/Semantics/bug122002b.f90
    A flang/test/Semantics/bug122045.f90
    A flang/test/Semantics/bug122060.f90
    A flang/test/Semantics/generic12.f90
    M flang/test/Semantics/modfile43.f90
    M flang/test/Semantics/modfile63.f90
    M flang/test/Semantics/modfile70.f90
    M flang/test/Semantics/reshape.f90
    M flang/test/Semantics/resolve12.f90
    M flang/test/Semantics/resolve26.f90
    A flang/test/Semantics/self-use.f90
    M flang/test/lib/CMakeLists.txt
    A flang/test/lib/OpenACC/CMakeLists.txt
    A flang/test/lib/OpenACC/TestOpenACCInterfaces.cpp
    M flang/tools/bbc/CMakeLists.txt
    M flang/tools/fir-lsp-server/CMakeLists.txt
    M flang/tools/fir-opt/CMakeLists.txt
    M flang/tools/fir-opt/fir-opt.cpp
    M flang/tools/tco/CMakeLists.txt
    M flang/unittests/Optimizer/Builder/ComplexTest.cpp
    M flang/unittests/Optimizer/Builder/FIRBuilderTest.cpp
    M flang/unittests/Optimizer/Builder/HLFIRToolsTest.cpp
    M flang/unittests/Optimizer/FIRTypesTest.cpp
    M flang/unittests/Optimizer/FortranVariableTest.cpp
    M flang/unittests/Optimizer/RTBuilder.cpp
    M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
    M libc/cmake/modules/LLVMLibCTestRules.cmake
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/config/windows/entrypoints.txt
    M libc/config/windows/headers.txt
    M libc/docs/CMakeLists.txt
    M libc/docs/build_and_test.rst
    R libc/docs/c23.rst
    R libc/docs/fullbuild_mode.rst
    A libc/docs/getting_started.rst
    M libc/docs/headers/index.rst
    M libc/docs/index.rst
    M libc/docs/porting.rst
    R libc/docs/usage_modes.rst
    M libc/include/sys/random.yaml
    M libc/include/unistd.yaml
    M libc/src/CMakeLists.txt
    M libc/src/unistd/CMakeLists.txt
    A libc/src/unistd/getentropy.h
    M libc/src/unistd/linux/CMakeLists.txt
    A libc/src/unistd/linux/getentropy.cpp
    A libc/src/unistd/windows/CMakeLists.txt
    A libc/src/unistd/windows/getentropy.cpp
    M libc/test/include/assert_test.cpp
    M libc/test/include/complex_test.cpp
    M libc/test/include/fpclassify_test.c
    M libc/test/include/fpclassify_test.cpp
    M libc/test/include/fpclassifyf_test.cpp
    M libc/test/include/fpclassifyl_test.cpp
    M libc/test/include/header-test-template.c
    M libc/test/include/iscanonical_test.c
    M libc/test/include/isfinite_test.c
    M libc/test/include/isfinite_test.cpp
    M libc/test/include/isfinitef_test.cpp
    M libc/test/include/isfinitel_test.cpp
    M libc/test/include/isinf_test.c
    M libc/test/include/isinf_test.cpp
    M libc/test/include/isinff_test.cpp
    M libc/test/include/isinfl_test.cpp
    M libc/test/include/isnan_test.c
    M libc/test/include/isnan_test.cpp
    M libc/test/include/isnanf_test.cpp
    M libc/test/include/isnanl_test.cpp
    M libc/test/include/isnormal_test.c
    M libc/test/include/isnormal_test.cpp
    M libc/test/include/isnormalf_test.cpp
    M libc/test/include/isnormall_test.cpp
    M libc/test/include/issignaling_test.c
    M libc/test/include/issubnormal_test.c
    M libc/test/include/issubnormal_test.cpp
    M libc/test/include/issubnormalf_test.cpp
    M libc/test/include/issubnormall_test.cpp
    M libc/test/include/iszero_test.c
    M libc/test/include/iszero_test.cpp
    M libc/test/include/iszerof_test.cpp
    M libc/test/include/iszerol_test.cpp
    M libc/test/include/signbit_test.c
    M libc/test/include/signbit_test.cpp
    M libc/test/include/signbitf_test.cpp
    M libc/test/include/signbitl_test.cpp
    M libc/test/include/stdbit_stub.h
    M libc/test/include/stdbit_test.c
    M libc/test/include/stdbit_test.cpp
    M libc/test/include/stdckdint_test.cpp
    M libc/test/include/sys/queue_test.cpp
    M libc/test/src/CMakeLists.txt
    M libc/test/src/unistd/CMakeLists.txt
    A libc/test/src/unistd/getentropy_test.cpp
    M libc/test/src/unistd/getopt_test.cpp
    A libc/utils/docgen/pthread.yaml
    A libc/utils/docgen/sys/resource.yaml
    A libc/utils/docgen/sys/wait.yaml
    A libclc/clc/include/clc/geometric/floatn.inc
    M libclc/clc/include/clc/integer/gentype.inc
    M libclc/clc/include/clc/math/gentype.inc
    M libclc/clc/include/clc/math/unary_intrin.inc
    M libclc/clc/include/clc/relational/clc_all.h
    M libclc/clc/include/clc/relational/clc_any.h
    M libclc/clc/include/clc/relational/clc_isequal.h
    M libclc/clc/include/clc/relational/clc_isinf.h
    M libclc/clc/include/clc/relational/clc_isnan.h
    M libclc/clc/include/clc/relational/floatn.inc
    M libclc/clc/include/clc/shared/clc_clamp.h
    R libclc/generic/include/clc/geometric/floatn.inc
    M libcxx/docs/ReleaseNotes/20.rst
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/include/__algorithm/count.h
    M libcxx/include/__algorithm/fill_n.h
    M libcxx/include/__algorithm/find.h
    M libcxx/include/__algorithm/inplace_merge.h
    M libcxx/include/__algorithm/sort.h
    M libcxx/include/__algorithm/stable_sort.h
    M libcxx/include/__bit_reference
    M libcxx/include/__fwd/bit_reference.h
    M libcxx/include/__memory/destruct_n.h
    M libcxx/include/__new/global_new_delete.h
    M libcxx/include/__vector/vector.h
    M libcxx/include/algorithm
    M libcxx/include/barrier
    M libcxx/include/bitset
    M libcxx/include/module.modulemap
    M libcxx/include/tuple
    M libcxx/src/CMakeLists.txt
    M libcxx/src/barrier.cpp
    M libcxx/test/benchmarks/GenerateInput.h
    M libcxx/test/benchmarks/containers/ContainerBenchmarks.h
    M libcxx/test/benchmarks/containers/vector_operations.bench.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.sort/stable.sort/stable_sort.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.sort/stable.sort/stable_sort_comp.pass.cpp
    M libcxx/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp
    A libcxx/test/std/input.output/file.streams/fstreams/ifstream.members/offset_range.pass.cpp
    M libcxx/test/std/utilities/template.bitset/bitset.members/nonstdmem.uglified.compile.pass.cpp
    M libcxx/test/std/utilities/tuple/tuple.tuple/tuple.creation/tuple_cat.pass.cpp
    M libcxx/test/tools/clang_tidy_checks/internal_ftm_use.cpp
    M libcxxabi/src/CMakeLists.txt
    M lld/COFF/Driver.cpp
    M lld/COFF/Driver.h
    M lld/COFF/InputFiles.cpp
    M lld/COFF/SymbolTable.cpp
    M lld/COFF/SymbolTable.h
    M lld/Common/Strings.cpp
    M lld/MachO/MapFile.cpp
    M lld/test/COFF/arm64x-loadconfig.s
    A lld/test/COFF/empty-section-decl.yaml
    A lld/test/COFF/info-sec.s
    A lld/test/COFF/subsystem-arm64x.test
    A lld/test/COFF/wholearchive-implib.s
    M lld/test/MachO/arm64-thunks.s
    M lldb/examples/synthetic/gnu_libstdcpp.py
    M lldb/include/lldb/Core/Disassembler.h
    M lldb/include/lldb/Target/MemoryRegionInfo.h
    M lldb/include/lldb/Target/SectionLoadHistory.h
    M lldb/include/lldb/Target/Target.h
    M lldb/include/lldb/Target/Thread.h
    M lldb/packages/Python/lldbsuite/test/lldbtest.py
    M lldb/source/API/SBBreakpoint.cpp
    M lldb/source/API/SBFunction.cpp
    M lldb/source/API/SBInstructionList.cpp
    M lldb/source/Breakpoint/BreakpointLocationList.cpp
    M lldb/source/Commands/CommandObjectDisassemble.cpp
    M lldb/source/Commands/CommandObjectMemory.cpp
    M lldb/source/Commands/CommandObjectRegister.cpp
    M lldb/source/Commands/CommandObjectSource.cpp
    M lldb/source/Commands/CommandObjectTarget.cpp
    M lldb/source/Core/Address.cpp
    M lldb/source/Core/Disassembler.cpp
    M lldb/source/Core/DumpDataExtractor.cpp
    M lldb/source/Core/FormatEntity.cpp
    M lldb/source/Core/Mangled.cpp
    M lldb/source/Core/Section.cpp
    M lldb/source/Core/Value.cpp
    M lldb/source/DataFormatters/CXXFunctionPointer.cpp
    M lldb/source/Expression/ObjectFileJIT.cpp
    M lldb/source/Plugins/Architecture/Mips/ArchitectureMips.cpp
    M lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp
    M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp
    M lldb/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.cpp
    M lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp
    M lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
    M lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp
    M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
    M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
    M lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
    M lldb/source/Plugins/ObjectFile/Placeholder/ObjectFilePlaceholder.cpp
    M lldb/source/Plugins/Process/Utility/CMakeLists.txt
    M lldb/source/Plugins/Process/Utility/LinuxProcMaps.cpp
    A lldb/source/Plugins/Process/Utility/OpenBSDSignals.cpp
    A lldb/source/Plugins/Process/Utility/OpenBSDSignals.h
    M lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
    M lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp
    M lldb/source/Plugins/Trace/intel-pt/TraceIntelPTBundleSaver.cpp
    M lldb/source/Symbol/Function.cpp
    M lldb/source/Symbol/ObjectFile.cpp
    M lldb/source/Target/MemoryRegionInfo.cpp
    M lldb/source/Target/ProcessTrace.cpp
    M lldb/source/Target/SectionLoadHistory.cpp
    M lldb/source/Target/StructuredDataPlugin.cpp
    M lldb/source/Target/Target.cpp
    M lldb/source/Target/Thread.cpp
    M lldb/source/Target/ThreadList.cpp
    M lldb/source/Target/ThreadPlanStepInRange.cpp
    M lldb/source/Target/ThreadPlanTracer.cpp
    M lldb/source/Target/UnixSignals.cpp
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/unordered/TestDataFormatterGenericUnordered.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/unordered/main.cpp
    M lldb/test/API/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py
    M lldb/test/API/functionalities/plugins/python_os_plugin/main.c
    A lldb/test/API/linux/aarch64/gcs/Makefile
    A lldb/test/API/linux/aarch64/gcs/TestAArch64LinuxGCS.py
    A lldb/test/API/linux/aarch64/gcs/main.c
    M lldb/test/Shell/ScriptInterpreter/Python/sb_function_ranges.s
    M lldb/unittests/Process/Utility/LinuxProcMapsTest.cpp
    M lldb/unittests/Process/Utility/MemoryTagManagerAArch64MTETest.cpp
    M lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
    M lldb/unittests/Process/minidump/MinidumpParserTest.cpp
    M lldb/unittests/Target/RegisterFlagsTest.cpp
    M llvm/cmake/config-ix.cmake
    M llvm/cmake/modules/CrossCompile.cmake
    A llvm/cmake/modules/FileLock.cmake
    M llvm/cmake/modules/GetHostTriple.cmake
    M llvm/cmake/modules/LLVMExternalProjectUtils.cmake
    M llvm/docs/CommandGuide/llvm-exegesis.rst
    M llvm/docs/ReleaseNotes.md
    M llvm/include/llvm/Analysis/CmpInstAnalysis.h
    M llvm/include/llvm/Analysis/CtxProfAnalysis.h
    M llvm/include/llvm/Analysis/ScalarEvolution.h
    M llvm/include/llvm/CodeGen/ModuloSchedule.h
    M llvm/include/llvm/CodeGen/TargetRegisterInfo.h
    M llvm/include/llvm/Config/config.h.cmake
    M llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
    M llvm/include/llvm/ExecutionEngine/JITLink/x86_64.h
    M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
    M llvm/include/llvm/IR/CmpPredicate.h
    M llvm/include/llvm/IR/DebugInfoMetadata.h
    M llvm/include/llvm/IR/IRBuilder.h
    M llvm/include/llvm/IR/InstrTypes.h
    M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
    M llvm/include/llvm/IR/IntrinsicsDirectX.td
    M llvm/include/llvm/IR/IntrinsicsSPIRV.td
    M llvm/include/llvm/Object/COFF.h
    M llvm/include/llvm/ProfileData/PGOCtxProfReader.h
    M llvm/include/llvm/ProfileData/PGOCtxProfWriter.h
    M llvm/include/llvm/Support/FileSystem.h
    M llvm/include/llvm/Support/Path.h
    M llvm/include/llvm/TargetParser/Triple.h
    M llvm/include/llvm/Transforms/IPO/Attributor.h
    M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Interval.h
    M llvm/include/module.modulemap
    M llvm/lib/Analysis/CmpInstAnalysis.cpp
    M llvm/lib/Analysis/ConstantFolding.cpp
    M llvm/lib/Analysis/CtxProfAnalysis.cpp
    M llvm/lib/Analysis/LazyValueInfo.cpp
    M llvm/lib/Analysis/MemoryLocation.cpp
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/AsmParser/LLParser.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/lib/CodeGen/ExpandVectorPredication.cpp
    M llvm/lib/CodeGen/InitUndef.cpp
    M llvm/lib/CodeGen/MachineVerifier.cpp
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
    M llvm/lib/CodeGen/SplitKit.cpp
    M llvm/lib/CodeGen/TargetRegisterInfo.cpp
    M llvm/lib/CodeGen/VirtRegMap.cpp
    M llvm/lib/DebugInfo/GSYM/GsymCreator.cpp
    M llvm/lib/ExecutionEngine/JITLink/COFFLinkGraphBuilder.cpp
    M llvm/lib/ExecutionEngine/JITLink/EHFrameSupport.cpp
    M llvm/lib/ExecutionEngine/JITLink/EHFrameSupportImpl.h
    M llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp
    M llvm/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp
    M llvm/lib/ExecutionEngine/JITLink/x86_64.cpp
    M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
    M llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M llvm/lib/IR/IRBuilder.cpp
    M llvm/lib/IR/Instructions.cpp
    M llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
    M llvm/lib/MC/WinCOFFObjectWriter.cpp
    M llvm/lib/ObjectYAML/ELFYAML.cpp
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/ProfileData/PGOCtxProfReader.cpp
    M llvm/lib/ProfileData/PGOCtxProfWriter.cpp
    M llvm/lib/Support/Errno.cpp
    M llvm/lib/Support/Unix/Path.inc
    M llvm/lib/Support/Unix/Process.inc
    M llvm/lib/Support/Unix/Program.inc
    M llvm/lib/Support/Unix/Signals.inc
    M llvm/lib/Support/Unix/Unix.h
    M llvm/lib/Support/raw_ostream.cpp
    M llvm/lib/Target/AArch64/AArch64.td
    M llvm/lib/Target/AArch64/AArch64Features.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
    M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
    M llvm/lib/Target/AMDGPU/AMDGPU.h
    M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUPassRegistry.def
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
    M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
    M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h
    M llvm/lib/Target/AMDGPU/SIFormMemoryClauses.cpp
    M llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
    A llvm/lib/Target/AMDGPU/SILowerControlFlow.h
    M llvm/lib/Target/AMDGPU/VOP3Instructions.td
    M llvm/lib/Target/AMDGPU/VOPCInstructions.td
    M llvm/lib/Target/AMDGPU/VOPInstructions.td
    M llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
    M llvm/lib/Target/ARM/ThumbRegisterInfo.cpp
    M llvm/lib/Target/DirectX/DXIL.td
    M llvm/lib/Target/DirectX/DXILShaderFlags.cpp
    M llvm/lib/Target/DirectX/DXILShaderFlags.h
    M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
    M llvm/lib/Target/DirectX/DirectXTargetTransformInfo.cpp
    M llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td
    M llvm/lib/Target/Hexagon/HexagonDepMapAsm2Intrin.td
    M llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
    M llvm/lib/Target/Hexagon/HexagonSubtarget.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/NVPTXIntrinsics.td
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/lib/Target/SPIRV/SPIRVAsmPrinter.cpp
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86LowerAMXType.cpp
    M llvm/lib/TargetParser/Triple.cpp
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
    M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
    M llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
    M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Interval.cpp
    M llvm/lib/Transforms/Vectorize/VPlan.h
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/test/Analysis/BasicAA/call-attrs.ll
    A llvm/test/Analysis/BasicAA/memset-pattern.ll
    M llvm/test/Analysis/BasicAA/tail-byval.ll
    M llvm/test/Analysis/CtxProfAnalysis/full-cycle.ll
    M llvm/test/Analysis/CtxProfAnalysis/inline.ll
    R llvm/test/Analysis/CtxProfAnalysis/json_equals.py
    M llvm/test/Analysis/CtxProfAnalysis/load.ll
    M llvm/test/Analysis/ScalarEvolution/2007-08-06-Unsigned.ll
    R llvm/test/Analysis/ScalarEvolution/implied-via-addition.ll
    M llvm/test/Analysis/ScalarEvolution/implied-via-division.ll
    M llvm/test/Analysis/ScalarEvolution/infer-prestart-no-wrap.ll
    A llvm/test/CodeGen/AArch64/adds_cmn.ll
    M llvm/test/CodeGen/AArch64/double_reduct.ll
    M llvm/test/CodeGen/AArch64/eon.ll
    M llvm/test/CodeGen/AMDGPU/collapse-endcf.mir
    M llvm/test/CodeGen/AMDGPU/fix-sgpr-copies-f16-true16.mir
    M llvm/test/CodeGen/AMDGPU/flat-scratch-svs.ll
    M llvm/test/CodeGen/AMDGPU/lower-control-flow-live-intervals.mir
    M llvm/test/CodeGen/AMDGPU/lower-control-flow-other-terminators.mir
    M llvm/test/CodeGen/AMDGPU/shrink-add-sub-constant.ll
    M llvm/test/CodeGen/AMDGPU/sink-image-sample.ll
    M llvm/test/CodeGen/AMDGPU/v_sat_pk_u8_i16.ll
    M llvm/test/CodeGen/ARM/loopvectorize_pr33804.ll
    M llvm/test/CodeGen/ARM/vector-promotion.ll
    M llvm/test/CodeGen/DirectX/ShaderFlags/double-extensions.ll
    A llvm/test/CodeGen/DirectX/ShaderFlags/propagate-function-flags-test.ll
    A llvm/test/CodeGen/DirectX/firstbitlow.ll
    A llvm/test/CodeGen/DirectX/firstbitlow_error.ll
    A llvm/test/CodeGen/Hexagon/i128-fpconv-strict.ll
    M llvm/test/CodeGen/NVPTX/arithmetic-int.ll
    M llvm/test/CodeGen/NVPTX/combine-mad.ll
    M llvm/test/CodeGen/NVPTX/dynamic_stackalloc.ll
    M llvm/test/CodeGen/NVPTX/fma.ll
    M llvm/test/CodeGen/NVPTX/i128.ll
    M llvm/test/CodeGen/NVPTX/shift-parts.ll
    M llvm/test/CodeGen/RISCV/rvv/splat-vectors.ll
    M llvm/test/CodeGen/RISCV/rvv/strided-load-store.ll
    A llvm/test/CodeGen/SPIRV/global-var-intrinsic.ll
    M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/WaveReadLaneAt.ll
    M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/firstbithigh.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/firstbitlow.ll
    M llvm/test/CodeGen/SPIRV/pointers/type-deduce-sycl-stub.ll
    M llvm/test/CodeGen/SPIRV/transcoding/OpGroupBroadcast.ll
    M llvm/test/CodeGen/SPIRV/validate/sycl-hier-par-basic.ll
    M llvm/test/CodeGen/SPIRV/validate/sycl-tangle-group-algorithms.ll
    M llvm/test/CodeGen/X86/expand-vp-int-intrinsics.ll
    M llvm/test/CodeGen/X86/shuffle-vs-trunc-128.ll
    M llvm/test/CodeGen/X86/shuffle-vs-trunc-512.ll
    M llvm/test/CodeGen/X86/trunc-vector-width.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-6.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-7.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i8-stride-8.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i64-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-7.ll
    M llvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll
    M llvm/test/CodeGen/X86/x86-interleaved-access.ll
    M llvm/test/DebugInfo/X86/multiple-at-const-val.ll
    M llvm/test/MC/AArch64/SME2p2/bfmop4as-non-widening-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/bfmop4as-non-widening.s
    M llvm/test/MC/AArch64/SME2p2/bfmop4as-widening-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/bfmop4as-widening.s
    M llvm/test/MC/AArch64/SME2p2/bftmopa-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/bftmopa.s
    M llvm/test/MC/AArch64/SME2p2/directive-arch-negative.s
    M llvm/test/MC/AArch64/SME2p2/directive-arch.s
    M llvm/test/MC/AArch64/SME2p2/directive-arch_extension-negative.s
    M llvm/test/MC/AArch64/SME2p2/directive-arch_extension.s
    M llvm/test/MC/AArch64/SME2p2/directive-cpu-negative.s
    M llvm/test/MC/AArch64/SME2p2/directive-cpu.s
    M llvm/test/MC/AArch64/SME2p2/fmop4a-fp8-fp16-widening-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/fmop4a-fp8-fp16-widening.s
    M llvm/test/MC/AArch64/SME2p2/fmop4a-fp8-fp32-widening-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/fmop4a-fp8-fp32-widening.s
    M llvm/test/MC/AArch64/SME2p2/fmop4as-fp16-fp32-widening-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/fmop4as-fp16-fp32-widening.s
    M llvm/test/MC/AArch64/SME2p2/fmop4as-fp16-non-widening-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/fmop4as-fp16-non-widening.s
    M llvm/test/MC/AArch64/SME2p2/fmop4as-fp32-non-widening-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/fmop4as-fp32-non-widening.s
    M llvm/test/MC/AArch64/SME2p2/fmop4as-fp64-non-widening-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/fmop4as-fp64-non-widening.s
    M llvm/test/MC/AArch64/SME2p2/ftmopa-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/ftmopa.s
    M llvm/test/MC/AArch64/SME2p2/smop4a-16to32.s
    M llvm/test/MC/AArch64/SME2p2/smop4a-64.s
    M llvm/test/MC/AArch64/SME2p2/smop4a-8to32.s
    M llvm/test/MC/AArch64/SME2p2/smop4a-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/smop4s-16to32.s
    M llvm/test/MC/AArch64/SME2p2/smop4s-64.s
    M llvm/test/MC/AArch64/SME2p2/smop4s-8to32.s
    M llvm/test/MC/AArch64/SME2p2/smop4s-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/stmopa-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/stmopa.s
    M llvm/test/MC/AArch64/SME2p2/sumop4a-32.s
    M llvm/test/MC/AArch64/SME2p2/sumop4a-64.s
    M llvm/test/MC/AArch64/SME2p2/sumop4a-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/sumop4s-32.s
    M llvm/test/MC/AArch64/SME2p2/sumop4s-64.s
    M llvm/test/MC/AArch64/SME2p2/sumop4s-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/sutmopa-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/sutmopa.s
    M llvm/test/MC/AArch64/SME2p2/umop4a-16to32.s
    M llvm/test/MC/AArch64/SME2p2/umop4a-64.s
    M llvm/test/MC/AArch64/SME2p2/umop4a-8to32.s
    M llvm/test/MC/AArch64/SME2p2/umop4a-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/umop4s-16to32.s
    M llvm/test/MC/AArch64/SME2p2/umop4s-64.s
    M llvm/test/MC/AArch64/SME2p2/umop4s-8to32.s
    M llvm/test/MC/AArch64/SME2p2/umop4s-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/usmop4a-32.s
    M llvm/test/MC/AArch64/SME2p2/usmop4a-64.s
    M llvm/test/MC/AArch64/SME2p2/usmop4a-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/usmop4s-32.s
    M llvm/test/MC/AArch64/SME2p2/usmop4s-64.s
    M llvm/test/MC/AArch64/SME2p2/usmop4s-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/ustmopa-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/ustmopa.s
    M llvm/test/MC/AArch64/SME2p2/utmopa-diagnostics.s
    M llvm/test/MC/AArch64/SME2p2/utmopa.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vopc.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vopc.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopc.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopc.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopc_dpp16.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopc_dpp8.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopc_t16_err.s
    M llvm/test/MC/AMDGPU/gfx11_asm_vopc_t16_promote.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3c.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopc.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopc_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopc_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopc_t16_err.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vopc_t16_promote.s
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp16_from_vopc.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp8_from_vopc.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_from_vopc.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vopc_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vopc_dpp8.txt
    A llvm/test/MachineVerifier/stack-protector-offset.mir
    M llvm/test/ThinLTO/X86/memprof_direct_recursion.ll
    A llvm/test/Transforms/CorrelatedValuePropagation/ctpop-range.ll
    M llvm/test/Transforms/DeadStoreElimination/inter-procedural.ll
    M llvm/test/Transforms/DeadStoreElimination/memory-intrinsics-sizes.ll
    M llvm/test/Transforms/EarlyCSE/guards.ll
    M llvm/test/Transforms/FunctionAttrs/initializes.ll
    A llvm/test/Transforms/FunctionAttrs/phi_cycle.ll
    A llvm/test/Transforms/IndVarSimplify/implied-via-addition.ll
    M llvm/test/Transforms/InstCombine/assume.ll
    M llvm/test/Transforms/InstCombine/matrix-multiplication-negation.ll
    M llvm/test/Transforms/InstCombine/select-cmp.ll
    M llvm/test/Transforms/InstCombine/str-int-2.ll
    M llvm/test/Transforms/InstCombine/str-int-3.ll
    M llvm/test/Transforms/InstCombine/str-int.ll
    M llvm/test/Transforms/InstCombine/strcall-no-nul.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/loopvectorize_pr33804_double.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product-epilogue.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product-mixed.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product-neon.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-no-dotprod.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/store-costs-sve.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/strict-fadd.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-widen-extractvalue.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/vplan-printing.ll
    M llvm/test/Transforms/LoopVectorize/Hexagon/maximum-vf-crash.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/blend-any-of-reduction-cost.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-reverse-load-store.ll
    M llvm/test/Transforms/LoopVectorize/X86/cost-constant-known-via-scev.ll
    M llvm/test/Transforms/LoopVectorize/X86/cost-model.ll
    M llvm/test/Transforms/LoopVectorize/X86/drop-poison-generating-flags.ll
    M llvm/test/Transforms/LoopVectorize/X86/interleave-cost.ll
    M llvm/test/Transforms/LoopVectorize/X86/reduction-fastmath.ll
    M llvm/test/Transforms/LoopVectorize/X86/replicate-uniform-call.ll
    M llvm/test/Transforms/LoopVectorize/epilog-vectorization-reductions.ll
    A llvm/test/Transforms/LoopVectorize/epilog-vectorization-vector-trip-count-zero.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence-chains.ll
    M llvm/test/Transforms/LoopVectorize/if-pred-stores.ll
    M llvm/test/Transforms/LoopVectorize/induction.ll
    M llvm/test/Transforms/LoopVectorize/interleave-and-scalarize-only.ll
    M llvm/test/Transforms/LoopVectorize/is_fpclass.ll
    M llvm/test/Transforms/LoopVectorize/no_outside_user.ll
    M llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization.ll
    M llvm/test/Transforms/LoopVectorize/runtime-checks-hoist.ll
    M llvm/test/Transforms/LoopVectorize/scev-predicate-reasoning.ll
    A llvm/test/Transforms/LoopVectorize/select-with-fastflags.ll
    M llvm/test/Transforms/LoopVectorize/vplan-printing.ll
    M llvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge-vf1.ll
    M llvm/test/Transforms/LoopVersioning/incorrect-phi.ll
    M llvm/test/Transforms/MemCpyOpt/store-to-memset-is-nonzero-type.ll
    M llvm/test/Transforms/SROA/readonlynocapture.ll
    M llvm/test/Transforms/VectorCombine/X86/extract-cmp-binop.ll
    M llvm/test/Transforms/VectorCombine/X86/permute-of-binops.ll
    M llvm/test/tools/llvm-ctxprof-util/Inputs/valid.yaml
    M llvm/test/tools/llvm-ctxprof-util/llvm-ctxprof-util.test
    R llvm/test/tools/llvm-exegesis/dry-run-measurement.test
    M llvm/test/tools/llvm-exegesis/lit.local.cfg
    M llvm/tools/llvm-ctxprof-util/llvm-ctxprof-util.cpp
    M llvm/tools/llvm-exegesis/lib/BenchmarkResult.h
    M llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp
    M llvm/tools/llvm-exegesis/lib/RISCV/Target.cpp
    M llvm/tools/llvm-exegesis/lib/Target.cpp
    M llvm/tools/llvm-exegesis/llvm-exegesis.cpp
    M llvm/tools/spirv-tools/CMakeLists.txt
    M llvm/unittests/Analysis/ValueTrackingTest.cpp
    M llvm/unittests/ExecutionEngine/JITLink/CMakeLists.txt
    M llvm/unittests/ExecutionEngine/JITLink/LinkGraphTests.cpp
    A llvm/unittests/ExecutionEngine/JITLink/X86_64Tests.cpp
    M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
    M llvm/unittests/IR/InstructionsTest.cpp
    M llvm/unittests/TargetParser/TargetParserTest.cpp
    M llvm/unittests/TargetParser/TripleTest.cpp
    M llvm/unittests/Transforms/Utils/CallPromotionUtilsTest.cpp
    M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
    M llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.cpp
    M llvm/utils/TableGen/DecoderEmitter.cpp
    M llvm/utils/TableGen/GlobalISelCombinerEmitter.cpp
    M llvm/utils/TableGen/GlobalISelEmitter.cpp
    M llvm/utils/gn/secondary/lldb/source/Plugins/Process/Utility/BUILD.gn
    M llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn
    M mlir/include/mlir-c/Dialect/EmitC.h
    M mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
    M mlir/include/mlir/Dialect/OpenMP/OpenMPClauseOperands.h
    M mlir/include/mlir/Dialect/Tosa/IR/CMakeLists.txt
    M mlir/include/mlir/Dialect/Tosa/IR/TosaOpBase.td
    M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.h
    M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
    A mlir/include/mlir/Dialect/Tosa/IR/TosaShapeOps.td
    M mlir/include/mlir/Dialect/Tosa/IR/TosaTypesBase.td
    M mlir/include/mlir/IR/BuiltinTypeInterfaces.h
    M mlir/include/mlir/IR/BuiltinTypeInterfaces.td
    M mlir/include/mlir/IR/BuiltinTypes.h
    M mlir/include/mlir/IR/BuiltinTypes.td
    M mlir/include/mlir/IR/TypeRange.h
    M mlir/include/mlir/IR/ValueRange.h
    M mlir/include/mlir/Interfaces/ViewLikeInterface.h
    M mlir/lib/CAPI/Dialect/EmitC.cpp
    M mlir/lib/CAPI/IR/BuiltinTypes.cpp
    M mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalgPass.cpp
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
    M mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp
    M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
    M mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp
    M mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp
    M mlir/lib/IR/Builders.cpp
    M mlir/lib/IR/BuiltinTypeInterfaces.cpp
    M mlir/lib/IR/BuiltinTypes.cpp
    M mlir/lib/IR/OperationSupport.cpp
    M mlir/lib/IR/TypeRange.cpp
    M mlir/lib/Interfaces/ViewLikeInterface.cpp
    M mlir/lib/Target/Cpp/TranslateToCpp.cpp
    M mlir/lib/Target/LLVMIR/DataLayoutImporter.cpp
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/lib/Target/LLVMIR/ModuleImport.cpp
    M mlir/test/Conversion/ArithToEmitC/arith-to-emitc-unsupported.mlir
    M mlir/test/Conversion/ArithToEmitC/arith-to-emitc.mlir
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
    M mlir/test/Dialect/Bufferization/Transforms/one-shot-bufferize-empty-tensor-elimination.mlir
    M mlir/test/Dialect/Linalg/vectorization-pad-patterns.mlir
    M mlir/test/Dialect/Tosa/canonicalize.mlir
    M mlir/test/Dialect/Tosa/invalid.mlir
    M mlir/test/Dialect/Tosa/level_check.mlir
    M mlir/test/Dialect/Tosa/ops.mlir
    M mlir/test/Dialect/Tosa/tosa-infer-shapes.mlir
    M mlir/test/Dialect/Vector/vector-rewrite-narrow-types.mlir
    M mlir/test/Dialect/Vector/vector-sink.mlir
    M mlir/test/Target/Cpp/declare_func.mlir
    M mlir/test/Target/Cpp/for.mlir
    M mlir/test/Target/Cpp/if.mlir
    A mlir/test/Target/Cpp/no_extra_semicolon.mlir
    M mlir/test/Target/Cpp/switch.mlir
    M mlir/test/Target/LLVMIR/omptarget-byref-bycopy-generation-device.mlir
    M mlir/test/Target/LLVMIR/omptarget-constant-alloca-raise.mlir
    M mlir/test/Target/LLVMIR/omptarget-constant-indexing-device-region.mlir
    M mlir/test/Target/LLVMIR/omptarget-debug.mlir
    M mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-device.mlir
    A mlir/test/Target/LLVMIR/omptarget-if.mlir
    M mlir/test/Target/LLVMIR/omptarget-parallel-llvm.mlir
    M mlir/test/Target/LLVMIR/omptarget-region-device-llvm.mlir
    M mlir/test/Target/LLVMIR/omptarget-target-inside-task.mlir
    M mlir/test/Target/LLVMIR/omptarget-threadprivate-device-lowering.mlir
    M mlir/test/Target/LLVMIR/openmp-llvm.mlir
    A mlir/test/Target/LLVMIR/openmp-target-launch-device.mlir
    A mlir/test/Target/LLVMIR/openmp-target-launch-host.mlir
    A mlir/test/Target/LLVMIR/openmp-target-simd-on_device.mlir
    M mlir/test/Target/LLVMIR/openmp-target-use-device-nested.mlir
    M mlir/test/Target/LLVMIR/openmp-task-target-device.mlir
    M mlir/test/Target/LLVMIR/openmp-todo.mlir
    M mlir/test/Transforms/mem2reg.mlir
    M mlir/test/Transforms/sroa.mlir
    M mlir/test/lib/Dialect/Affine/TestVectorizationUtils.cpp
    M mlir/test/lib/Dialect/Test/TestPatterns.cpp
    M mlir/test/lib/Transforms/TestDialectConversion.cpp
    M mlir/test/lit.cfg.py
    M mlir/test/python/execution_engine.py
    M mlir/tools/mlir-cpu-runner/CMakeLists.txt
    M mlir/tools/tblgen-to-irdl/OpDefinitionsGen.cpp
    M mlir/unittests/Dialect/OpenACC/OpenACCOpsTest.cpp
    M mlir/unittests/IR/AttributeTest.cpp
    M mlir/unittests/IR/InterfaceAttachmentTest.cpp
    M mlir/unittests/IR/OperationSupportTest.cpp
    M mlir/unittests/IR/ShapedTypeTest.cpp
    M mlir/utils/vim/ftplugin/mlir.vim
    M offload/plugins-nextgen/common/src/GlobalHandler.cpp
    M offload/test/offloading/pgo1.c
    M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
    M utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/config.h
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
    M utils/bazel/llvm_configs/config.h.cmake

  Log Message:
  -----------
  Merge branch 'main' into users/vhscampos/multilib-flags-documentation


Compare: https://github.com/llvm/llvm-project/compare/fbe3c1cec704...ae527b9cc515

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