[all-commits] [llvm/llvm-project] 38098b: [mlir][vector] Disable CompressStoreOp/ExpandLoadO...

Alexey Bataev via All-commits all-commits at lists.llvm.org
Mon Dec 2 13:53:30 PST 2024


  Branch: refs/heads/users/alexey-bataev/spr/slpimproved-reduction-costcodegen
  Home:   https://github.com/llvm/llvm-project
  Commit: 38098b486e44ad077b674e512eee399fc6f5a30c
      https://github.com/llvm/llvm-project/commit/38098b486e44ad077b674e512eee399fc6f5a30c
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
    M mlir/include/mlir/IR/CommonTypeConstraints.td
    M mlir/test/Dialect/Vector/invalid.mlir

  Log Message:
  -----------
  [mlir][vector] Disable CompressStoreOp/ExpandLoadOp for scalable vectors (#117538)

These operations were introduced as counterparts to the following LLVM
intrinsics:

  * `@llvm.masked.expandload.*`,
  * `@llvm.masked.compressstore.*`.

Currently, there is minimal test coverage for scalable vector use cases
involving these Ops (both LLVM and MLIR). Additionally, the verifier is
flawed  - it incorrectly allows mixing fixed-width and scalable vectors.

To address these issues, scalable vector support for these Ops is being
disabled for now. This decision can be revisited if a clear need arises
for their use with scalable vectors in the future.


  Commit: b40714b01206abef4130d3a39a90ac82aa96f18f
      https://github.com/llvm/llvm-project/commit/b40714b01206abef4130d3a39a90ac82aa96f18f
  Author: Tyler Nowicki <tyler.nowicki at amd.com>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    A llvm/lib/Transforms/Coroutines/CoroCloner.h
    M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
    M llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  Log Message:
  -----------
  [Coroutines][NFC] Refactor CoroCloner (#116885)

* Move CoroCloner to its own header. For now, the header is located in llvm/lib/Transforms/Coroutines
* Change private to protected to allow inheritance
* Create CoroSwitchCloner and move some of the switch specific code into this cloner. More code will follow in later commits.


  Commit: ef50d790c276600da609b465259a8e636e3531bc
      https://github.com/llvm/llvm-project/commit/ef50d790c276600da609b465259a8e636e3531bc
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M libcxx/utils/ci/run-buildbot-container

  Log Message:
  -----------
  [libc++] Update run-buildbot-container with up-to-date image information


  Commit: 31b7d4333a6c10aa8b7e1a7ca5aa0e281f124ec2
      https://github.com/llvm/llvm-project/commit/31b7d4333a6c10aa8b7e1a7ca5aa0e281f124ec2
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/AArch64/extract-insert.ll
    M llvm/test/CodeGen/AArch64/vec3-loads-ext-trunc-stores.ll
    M llvm/test/CodeGen/PowerPC/scalar_vector_test_5.ll
    M llvm/test/CodeGen/X86/load-partial.ll

  Log Message:
  -----------
  [DAG] Extend extract_element(bitcast(scalar_to_vector(X))) -> trunc(srl(X,C)) (#117900)

When extracting a smaller integer from a scalar_to_vector source, we were limited to only folding/truncating the lowest bits of the scalar source.

This patch extends the fold to handle extraction of any other element, by right shifting the source before truncation.

Fixes a regression from #117884


  Commit: fe042904829b83a61c1f4bc904f8f9e5b6da891e
      https://github.com/llvm/llvm-project/commit/fe042904829b83a61c1f4bc904f8f9e5b6da891e
  Author: David Green <david.green at arm.com>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64Subtarget.h
    M llvm/test/Analysis/CostModel/AArch64/sve-gather.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-intrinsics.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-scatter.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/clamped-trip-count.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/conditional-branches-cost.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/induction-costs-sve.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/low_trip_count_predicates.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/reduction-recurrence-costs-sve.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/scalable-vectorization-cost-tuning.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/scalable-vf-hint.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/store-costs-sve.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-strict-fadd-cost.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/type-shrinkage-zext-costs.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/veclib-function-calls.ll

  Log Message:
  -----------
  [AArch64] Change the default vscale-for-tuning to 1. (#117174)

Most AArch64 cpus outside of Neoverse V1 (256) and A64FX (512) have an
SVE vector length of 128, and in environments like Android (where no
mcpu option is common) we would expect all cpus to match. This patch
changes the default vector length to 128 with -mcpu=generic, to match
the most common case.


  Commit: 8fb748b4a7c45b56c2e4f37c327fd88958ab3758
      https://github.com/llvm/llvm-project/commit/8fb748b4a7c45b56c2e4f37c327fd88958ab3758
  Author: Marina Taylor <marina_taylor at apple.com>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/InlineCost.h
    M llvm/lib/Analysis/InlineCost.cpp
    A llvm/test/Transforms/Inline/AArch64/memcpy-constant-size.ll
    A llvm/test/Transforms/PhaseOrdering/AArch64/memcpy-constant-size.ll

  Log Message:
  -----------
  [Inliner] Don't count a call penalty for foldable __memcpy_chk and similar (#117876)

When the size is an appropriate constant, __memcpy_chk will turn into a
memcpy that gets folded away by InstCombine. Therefore this patch avoids
counting these as calls for purposes of inlining costs.

This is only really relevant on platforms whose headers redirect memcpy
to __memcpy_chk (such as Darwin). On platforms that use intrinsics,
memcpy and similar functions are already exempt from call penalties.


  Commit: 77c2b005539c4b0c0e2b7edeefd5f57b95019bc9
      https://github.com/llvm/llvm-project/commit/77c2b005539c4b0c0e2b7edeefd5f57b95019bc9
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    A .ci/metrics/Dockerfile
    A .ci/metrics/metrics.py
    A .ci/metrics/requirements.lock.txt
    A .ci/metrics/requirements.txt

  Log Message:
  -----------
  [CI] Upstream metrics script and container definition (#117461)

This patch includes the script that pulls information from Github and
pushes it to Grafana. This is currently running in the cluster and
pushes information to
https://llvm.grafana.net/public-dashboards/6a1c1969b6794e0a8ee5d494c72ce2cd.
This script is designed to accept other jobs relatively easily and can
be easily modified to look at other metrics.


  Commit: be75a14207ab0dac6ad9f9097957f14a918ac611
      https://github.com/llvm/llvm-project/commit/be75a14207ab0dac6ad9f9097957f14a918ac611
  Author: Oleksandr T. <oleksandr.tarasiuk at outlook.com>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaTemplateDeduction.cpp
    A clang/test/SemaTemplate/template-args-deduction-aggregates.cpp

  Log Message:
  -----------
  [Clang] fix crash due to incorrect argument position in merging deduced template arguments (#118041)

Fixes #113659


  Commit: 9ebab700cde7e47bd7b6c3386529262369e8fa2c
      https://github.com/llvm/llvm-project/commit/9ebab700cde7e47bd7b6c3386529262369e8fa2c
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    A .github/workflows/build-metrics-container.yml

  Log Message:
  -----------
  [Github] Add new workflow to build metrics container (#117462)

This patch adds a new Github Actions workflow to build the metrics
container and push it to the Github Container Registry.


  Commit: 820403c4e04db1f4adc8528bec33d393a5be3856
      https://github.com/llvm/llvm-project/commit/820403c4e04db1f4adc8528bec33d393a5be3856
  Author: Balazs Benics <benicsbalazs at gmail.com>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
    M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
    M clang/lib/StaticAnalyzer/Core/MemRegion.cpp
    M clang/lib/StaticAnalyzer/Core/ProgramState.cpp
    M clang/test/Analysis/initializer.cpp

  Log Message:
  -----------
  [analyzer] Never create Regions wrapping reference TypedValueRegions (NFCI) (#118096)

Like in the test case:
```c++
struct String {
  String(const String &) {}
};

struct MatchComponent {
  unsigned numbers[2];
  String prerelease;
  MatchComponent(MatchComponent const &) = default;
};

MatchComponent get();
void consume(MatchComponent const &);

MatchComponent parseMatchComponent() {
  MatchComponent component = get();
  component.numbers[0] = 10;
  component.numbers[1] = 20;
  return component; // We should have no stack addr escape warning here.
}

void top() {
  consume(parseMatchComponent());
}
```

When calling `consume(parseMatchComponent())` the
`parseMatchComponent()` would return a copy of a temporary of
`component`. That copy would invoke the
`MatchComponent::MatchComponent(const MatchComponent &)` ctor.

That ctor would have a (reference typed) ParamVarRegion, holding the
location (lvalue) of the object we are about to copy (&component). So
far so good, but just before evaluating the binding operation for
initializing the `numbers` field of the temporary, we evaluate the
ArrayInitLoopExpr representing the by-value elementwise copy of the
array `component.numbers`. This is represented by a LazyCompoundVal,
because we (usually) don't just copy large arrays and bind many
individual direct bindings. Rather, we take a snapshot by using a LCV.

However, notice that the LCV representing this copy would look like
this:
  lazyCompoundVal{ParamVarRegion{"reference param of cctor"}.numbers}

Notice that it refers to the numbers field of a reference. It would be
much better to desugar the reference to the actual object, thus it
should be: `lazyCompoundVal{component.numbers}`

Actually, when binding the result of the ArrayInitLoopExpr to the
`temp_object.numbers` in the compiler-generated member initializer of
the cctor, we should have two individual direct bindings because this is
a "small array":
```
  binding &Element{temp_object.numbers, 0} <- loadFrom(&Element{component.numbers, 0})
  binding &Element{temp_object.numbers, 1} <- loadFrom(&Element{component.numbers, 1})
```
Where `loadFrom(...)` would be:
```
  loadFrom(&Element{component.numbers, 0}): 10 U32b
  loadFrom(&Element{component.numbers, 1}): 20 U32b
```
So the store should look like this, after PostInitializer of
`temp_object.numbers`:
```
  temp_object at offset  0: 10 U32b
  temp_object at offset 32: 20 U32b
```

The lesson is that it's okay to have TypedValueRegions of references as
long as we don't form subregions of those. If we ever want to refer to a
subregion of a "reference" we actually meant to "desugar" the reference
and slice a subregion of the pointee of the reference instead.

Once this canonicalization is in place, we can also drop the special
handling of references in `ProcessInitializer`, because now reference
TypedValueRegions are eagerly desugared into their referee region when
forming a subregion of it.

There should be no practical differences, but there are of course bugs
that this patch may surface.


  Commit: b5132b7d044a5bc83eba9b09bd158cd77a511403
      https://github.com/llvm/llvm-project/commit/b5132b7d044a5bc83eba9b09bd158cd77a511403
  Author: Vyacheslav Levytskyy <vyacheslav.levytskyy at intel.com>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
    M llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVDuplicatesTracker.cpp
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
    M llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
    M llvm/lib/Target/SPIRV/SPIRVPostLegalizer.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.h
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_function_pointers/fp_const.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_function_pointers/fp_two_calls.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_subgroups/cl_intel_sub_groups.ll
    M llvm/test/CodeGen/SPIRV/instructions/ret-type.ll
    A llvm/test/CodeGen/SPIRV/pointers/builtin-ret-reg-type.ll
    A llvm/test/CodeGen/SPIRV/pointers/gep-types-1.ll
    A llvm/test/CodeGen/SPIRV/pointers/gep-types-2.ll
    A llvm/test/CodeGen/SPIRV/pointers/phi-chain-types.ll
    M llvm/test/CodeGen/SPIRV/pointers/phi-valid-operand-types.ll
    A llvm/test/CodeGen/SPIRV/pointers/type-deduce-via-store-load-args-rev.ll
    M llvm/test/CodeGen/SPIRV/transcoding/OpGenericCastToPtr.ll
    M llvm/test/CodeGen/SPIRV/transcoding/spirv-event-null.ll
    A llvm/test/CodeGen/SPIRV/validate/sycl-hier-par-basic.ll

  Log Message:
  -----------
  [SPIR-V] Improve type inference: fix types of return values in call lowering (#116609)

Goals of the PR are:
* to ensure that correct types are applied to virtual registers which
were used as return values in call lowering. A reproducer is attached as
a new test case, before the PR it fails because spirv-val considers
output invalid due to wrong result/operand types in OpPhi's;
* improve type inference by speeding up postprocessing of types: by
limiting iterations by checking what remains to process, and processing
each instruction just once for any number of operands with uncomplete
types;
* improve type inference by more accurate work with uncomplete types
(pass uncomplete property to dependent operands, ensure consistency of
uncomplete-types data structure);
* change processing order and add traversing of PHI nodes when type
inference apply instructions results to specify/update/cast operands
type (fixes an issue with OpPhi's result type mismatch with operand
types).


  Commit: 2de2e7aa6f82ac283bc17945ca9750c01016a331
      https://github.com/llvm/llvm-project/commit/2de2e7aa6f82ac283bc17945ca9750c01016a331
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M .github/workflows/build-metrics-container.yml

  Log Message:
  -----------
  [Github] Fix build metrics container push (#118130)

This patch fixes a couple typos that were preventing the build metrics
container job from pushing the container to GHCR.


  Commit: cbf495fd12ba08c3a8e10dbcd482df1bf80736ed
      https://github.com/llvm/llvm-project/commit/cbf495fd12ba08c3a8e10dbcd482df1bf80736ed
  Author: Reno Dakota <paparodeo at proton.me>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M clang/lib/Driver/Driver.cpp
    M clang/test/Driver/unsupported-option.c

  Log Message:
  -----------
  [Clang][Driver] report unsupported option error when link + compile in same process (#116476)

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

This change updates clang to report unsupported option errors regardless
of the command line argument order.

When clang is invoked with a source file and without `-c` it will both
compile and link. When an unsupported option is also part of the command
line clang should generated an error. However, if the source file name
comes before an object file, eg: `-lc`, the error is ignored.

```
$ clang --target=x86_64 -lc hello.c -mhtm
clang: error: unsupported option '-mhtm' for target 'x86_64'
$ echo $?
1
```

but if `-lc` comes after `hello.c` the error is dropped

```
$ clang --target=x86_64 hello.c -mhtm -lc
$ echo $?
0
```

after this change clang will report the error regardless of the command
line argument order.


  Commit: 0ad6be1927f89cef09aa5d0fb244873f687997c9
      https://github.com/llvm/llvm-project/commit/0ad6be1927f89cef09aa5d0fb244873f687997c9
  Author: Jonas Paulsson <paulson1 at linux.ibm.com>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
    M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/lib/Target/X86/X86TargetTransformInfo.h
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/SystemZ/vec-elt-insertion.ll

  Log Message:
  -----------
  [SLPVectorizer, TargetTransformInfo, SystemZ]  Improve SLP getGatherCost(). (#112491)

As vector element loads are free on SystemZ, this patch improves the cost
computation in getGatherCost() to reflect this.

getScalarizationOverhead() gets an optional parameter which can hold the actual
Values so that they in turn can be passed (by BasicTTIImpl) to
getVectorInstrCost().

SystemZTTIImpl::getVectorInstrCost() will now recognize a LoadInst and
typically return a 0 cost for it, with some exceptions.


  Commit: 6bfb6d4092a284e1fcd135625c0e713d019f0572
      https://github.com/llvm/llvm-project/commit/6bfb6d4092a284e1fcd135625c0e713d019f0572
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M llvm/include/llvm/ADT/SmallPtrSet.h

  Log Message:
  -----------
  [SmallPtrSet] Optimize contains (NFC) (#118092)

Instead of going through find_imp(), implement a specialized
contains_imp() that directly returns a boolean instead of a pointer that
needs to be compared to EndPointer().

This gives a compile-time improvement of around 0.2-0.3%.


  Commit: 05ff6e7948df3c152982814ea2367c7b83138cea
      https://github.com/llvm/llvm-project/commit/05ff6e7948df3c152982814ea2367c7b83138cea
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M lld/ELF/InputSection.cpp
    M lld/ELF/InputSection.h
    M lld/ELF/Symbols.cpp
    M lld/test/ELF/invalid-eh-frame3.s
    M lld/test/ELF/invalid-eh-frame6.s
    M lld/test/ELF/tls.s
    M lld/test/ELF/undef-multi.s
    M lld/test/ELF/undef.s

  Log Message:
  -----------
  [ELF] Use lower case offset in getObjMsg

to improve consistency with other diagnostics. While here, migrate to
use ELFSyncStream to drop toStr/getCtx uses and avoid string overhead.


  Commit: ae9b91acc76e03a3c38e2f92b59308c508901817
      https://github.com/llvm/llvm-project/commit/ae9b91acc76e03a3c38e2f92b59308c508901817
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M libcxx/docs/Status/Cxx2cIssues.csv

  Log Message:
  -----------
  [libc++] Fix malformed CSV entry for C++26 LWG issue


  Commit: 2dc0de753b6df83e35f3d98e0e6a26c95e3399c0
      https://github.com/llvm/llvm-project/commit/2dc0de753b6df83e35f3d98e0e6a26c95e3399c0
  Author: Brian Cain <bcain at quicinc.com>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/Hexagon.cpp

  Log Message:
  -----------
  [clang] recognize hexagon-*-ld.lld variants (#117338)

If we create a cross toolchain with a ${triple}-ld.lld symlink, clang
finds that symlink and when it uses it, it's not recognized as "lld".
Let's resolve that symlink and consider it when determining lld-ness.

For example, clang provides hexagon-link specific link arguments such as
`-mcpu=hexagonv65` and `-march=hexagon` when
hexagon-unknown-linux-musl-ld.lld is found. lld rejects this with the
following error:

hexagon-unknown-linux-musl-ld.lld: error: unknown emulation:
cpu=hexagonv65


  Commit: 52690db47da36a739ee506d3b3a7457fb918dc1e
      https://github.com/llvm/llvm-project/commit/52690db47da36a739ee506d3b3a7457fb918dc1e
  Author: Haojian Wu <hokein.wu at gmail.com>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M clang/lib/Sema/CheckExprLifetime.cpp
    M clang/test/Sema/warn-lifetime-analysis-nocfg.cpp

  Log Message:
  -----------
  [clang] Fix -Wdangling false negative regressions caused by 117315 (#118088)

A specialization declaration can have an attribute even if the primary
template does not, particularly when the specialization is instantiated
from an annotated using-alias declaration.

Fix #118064


  Commit: 8ac2b77a11c9db9879557ce1c26e38628e1ef45f
      https://github.com/llvm/llvm-project/commit/8ac2b77a11c9db9879557ce1c26e38628e1ef45f
  Author: vabridgers <58314289+vabridgers at users.noreply.github.com>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp
    M clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/docs/clang-tidy/checks/bugprone/branch-clone.rst
    M clang-tools-extra/docs/clang-tidy/checks/misc/redundant-expression.rst
    A clang-tools-extra/test/clang-tidy/checkers/bugprone/alpha-core-identicalexpr.cpp
    M clang/docs/ReleaseNotes.rst
    M clang/docs/analyzer/checkers.rst
    M clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
    M clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt
    R clang/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp
    R clang/test/Analysis/identical-expressions.cpp

  Log Message:
  -----------
  [analyzer] Remove alpha.core.IdenticalExpr Checker (#114715)

This change removes the alpha.core.IdenticalExpr static analysis checker
since it's checks are present in the clang-tidy checks
misc-redundant-expression and bugprone-branch-clone. This check was
implemented as a static analysis check using AST matching, and since
alpha and duplicated in 2 clang-tidy checks may be removed.

Co-authored-by: Vince Bridgers <vince.a.bridgers at ericsson.com>


  Commit: 666de79595dc2460b7abca0b99d79d058c10cadf
      https://github.com/llvm/llvm-project/commit/666de79595dc2460b7abca0b99d79d058c10cadf
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M lld/ELF/InputFiles.cpp
    M lld/ELF/InputFiles.h
    M lld/ELF/InputSection.cpp

  Log Message:
  -----------
  [ELF] Move some ObjFile members to ELFFileBase to simplify getSrcMsg


  Commit: f28e071dc075fd5591344bc5aabd7b298aaecf50
      https://github.com/llvm/llvm-project/commit/f28e071dc075fd5591344bc5aabd7b298aaecf50
  Author: Chris Apple <cja-private at pm.me>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

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

  Log Message:
  -----------
  [rtsan] NFC: Fix style of some interceptors not using MAYBE (#118145)

There were a few interceptors that weren't using the newer MAYBE style -
fixed them up for uniform style.


  Commit: b22cc5a650deb729f4a1f18206e14971616d07ee
      https://github.com/llvm/llvm-project/commit/b22cc5a650deb729f4a1f18206e14971616d07ee
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M llvm/utils/gn/secondary/clang/lib/StaticAnalyzer/Checkers/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 8ac2b77a11c9


  Commit: 9df63b2651b2435c02a7d825953ca2ddc65c778e
      https://github.com/llvm/llvm-project/commit/9df63b2651b2435c02a7d825953ca2ddc65c778e
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-11-30 (Sat, 30 Nov 2024)

  Changed paths:
    M mlir/include/mlir/Conversion/LLVMCommon/Pattern.h
    M mlir/include/mlir/Transforms/DialectConversion.h
    M mlir/lib/Dialect/Func/Transforms/DecomposeCallGraphTypes.cpp
    M mlir/lib/Dialect/Func/Transforms/FuncConversions.cpp
    M mlir/lib/Dialect/SCF/Transforms/StructuralTypeConversions.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorCodegen.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorDescriptor.h
    M mlir/lib/Transforms/Utils/DialectConversion.cpp
    M mlir/test/Transforms/decompose-call-graph-types.mlir
    M mlir/test/Transforms/test-legalizer.mlir
    M mlir/test/lib/Dialect/Test/TestOps.td
    M mlir/test/lib/Dialect/Test/TestPatterns.cpp

  Log Message:
  -----------
  [mlir][Transforms] Add 1:N `matchAndRewrite` overload (#116470)

This commit adds a new `matchAndRewrite` overload to `ConversionPattern`
to support 1:N replacements. This is the first of two main PRs that
merge the 1:1 and 1:N dialect conversion drivers.

The existing `matchAndRewrite` function supports only 1:1 replacements,
as can be seen from the `ArrayRef<Value>` parameter.
```c++
LogicalResult ConversionPattern::matchAndRewrite(
    Operation *op, ArrayRef<Value> operands /*adaptor values*/,
    ConversionPatternRewriter &rewriter) const;
```

This commit adds a `matchAndRewrite` overload that is called by the
dialect conversion driver. By default, this new overload dispatches to
the original 1:1 `matchAndRewrite` implementation. Existing
`ConversionPattern`s do not need to be changed as long as there are no
1:N type conversions or value replacements.
```c++
LogicalResult ConversionPattern::matchAndRewrite(
    Operation *op, ArrayRef<ValueRange> operands /*adaptor values*/,
    ConversionPatternRewriter &rewriter) const {
  // Note: getOneToOneAdaptorOperands produces a fatal error if at least one
  // ValueRange has 0 or more than 1 value.
  return matchAndRewrite(op, getOneToOneAdaptorOperands(operands), rewriter);
}
```

The `ConversionValueMapping`, which keeps track of value replacements
and materializations, still does not support 1:N replacements. We still
rely on argument materializations to convert N replacement values back
into a single value. The `ConversionValueMapping` will be generalized to
1:N mappings in the second main PR.

Before handing the adaptor values to a `ConversionPattern`, all argument
materializations are "unpacked". The `ConversionPattern` receives N
replacement values and does not see any argument materializations. This
implementation strategy allows us to use the 1:N infrastructure/API in
`ConversionPattern`s even though some functionality is still missing in
the driver. This strategy was chosen to keep the sizes of the PRs
smaller and to make it easier for downstream users to adapt to API
changes.

This commit also updates the the "decompose call graphs" transformation
and the "sparse tensor codegen" transformation to use the new 1:N
`ConversionPattern` API.

Note for LLVM conversion: If you are using a type converter with 1:N
type conversion rules or if your patterns are performing 1:N
replacements (via `replaceOpWithMultiple` or
`applySignatureConversion`), conversion pattern applications will start
failing (fatal LLVM error) with this error message: `pattern 'name' does
not support 1:N conversion`. The name of the failing pattern is shown in
the error message. These patterns must be updated to the new 1:N
`matchAndRewrite` API.


  Commit: 04ab599363eacc156e11238da9343c1d9d90db56
      https://github.com/llvm/llvm-project/commit/04ab599363eacc156e11238da9343c1d9d90db56
  Author: Qizhi Hu <836744285 at qq.com>
  Date:   2024-11-30 (Sat, 30 Nov 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/bugprone/ReturnConstRefFromParameterCheck.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/bugprone/return-const-ref-from-parameter.cpp

  Log Message:
  -----------
  [clang-tidy] fix false positive in bugprone-return-const-ref-from-parameter (#117734)

Fix https://github.com/llvm/llvm-project/issues/115743


  Commit: 1f13713dbb323d678c37efd5aa98a69e8f633b26
      https://github.com/llvm/llvm-project/commit/1f13713dbb323d678c37efd5aa98a69e8f633b26
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M lld/ELF/InputFiles.cpp
    M lld/ELF/InputFiles.h
    M lld/ELF/InputSection.cpp
    M lld/ELF/InputSection.h
    M lld/ELF/Relocations.cpp
    M lld/ELF/Symbols.cpp
    M lld/ELF/Target.cpp
    M lld/include/lld/Common/ErrorHandler.h

  Log Message:
  -----------
  [ELF] Change getSrcMsg to use ELFSyncStream. NFC


  Commit: 58389b220a9354ed6c34bdb9310a35165579c5e3
      https://github.com/llvm/llvm-project/commit/58389b220a9354ed6c34bdb9310a35165579c5e3
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-11-30 (Sat, 30 Nov 2024)

  Changed paths:
    M flang/include/flang/Optimizer/CodeGen/FIROpPatterns.h
    M mlir/lib/Transforms/Utils/DialectConversion.cpp

  Log Message:
  -----------
  [mlir] Fix build after #116470 (#118147)

This should have been part of #116470.


  Commit: 10b98473e8f9e3886bd4a51966c755d760de14ed
      https://github.com/llvm/llvm-project/commit/10b98473e8f9e3886bd4a51966c755d760de14ed
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M lld/ELF/ICF.cpp

  Log Message:
  -----------
  [ELF] Simplify --print-icf-sections


  Commit: ee19eb3037c781361e6f82c524b500ed5f55be18
      https://github.com/llvm/llvm-project/commit/ee19eb3037c781361e6f82c524b500ed5f55be18
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M lld/ELF/Arch/Hexagon.cpp
    M lld/ELF/Arch/PPC64.cpp
    M lld/ELF/OutputSections.cpp
    M lld/ELF/Writer.cpp
    M lld/test/ELF/linkerscript/i386-sections-max-va-overflow.s
    M lld/test/ELF/linkerscript/locationcountererr-arm-exidx.test
    M lld/test/ELF/linkerscript/sections-max-va-overflow.s

  Log Message:
  -----------
  [ELF] Change some upper-case utohexstr to lower-case to improve consistency

The convention is to use lower-case addresses.


  Commit: b9ac390cc7ec208fc738a91540b070f499b292b8
      https://github.com/llvm/llvm-project/commit/b9ac390cc7ec208fc738a91540b070f499b292b8
  Author: antangelo <contact at antangelo.com>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-no-op-intrinsics.ll

  Log Message:
  -----------
  [GISel] Add generic implementation for @llvm.expect.with.probability when optimizations are disabled (#117835)

Handle @llvm.expect.with.probability in GlobalISel in the same way
@llvm.expect is handled, passing the value through as-is. This can be
encountered if the intrinsic is used without optimizations, which would
otherwise transform it out.

Fixes #115411 for GlobalISel


  Commit: 691e55643daa3470ff19b02a55e3e2503d2de0c9
      https://github.com/llvm/llvm-project/commit/691e55643daa3470ff19b02a55e3e2503d2de0c9
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-11-29 (Fri, 29 Nov 2024)

  Changed paths:
    M clang/lib/Driver/Driver.cpp

  Log Message:
  -----------
  [Driver] BuildCompilation: remove unused BaseArg. NFC

setBaseArg, only used by -XArch_* options, are called in BuildJobs.
When processing --config and CL /clang:, BaseArg is always nullptr.

The unneeded parameter was introduced in https://reviews.llvm.org/D24933


  Commit: a348f223cab54b21a7b1c38dec7bc6aa2f81c949
      https://github.com/llvm/llvm-project/commit/a348f223cab54b21a7b1c38dec7bc6aa2f81c949
  Author: Sergei Barannikov <barannikov88 at gmail.com>
  Date:   2024-11-30 (Sat, 30 Nov 2024)

  Changed paths:
    M llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/lib/Target/ARM/ARMISelLowering.h
    M llvm/lib/Target/ARM/ARMInstrFormats.td
    M llvm/lib/Target/ARM/ARMInstrInfo.td
    M llvm/lib/Target/ARM/ARMInstrThumb.td
    M llvm/lib/Target/ARM/ARMInstrThumb2.td
    M llvm/lib/Target/ARM/ARMInstrVFP.td
    M llvm/test/CodeGen/ARM/add-like-or.ll
    M llvm/test/CodeGen/ARM/arm-shrink-wrapping.ll
    M llvm/test/CodeGen/ARM/atomic-64bit.ll
    M llvm/test/CodeGen/ARM/atomic-ops-v8.ll
    M llvm/test/CodeGen/ARM/atomicrmw-cond-sub-clamp.ll
    M llvm/test/CodeGen/ARM/atomicrmw-uinc-udec-wrap.ll
    M llvm/test/CodeGen/ARM/atomicrmw_exclusive_monitor_ints.ll
    M llvm/test/CodeGen/ARM/bfi.ll
    M llvm/test/CodeGen/ARM/cmov_fp16.ll
    M llvm/test/CodeGen/ARM/cse-call.ll
    M llvm/test/CodeGen/ARM/cttz.ll
    M llvm/test/CodeGen/ARM/fadd-select-fneg-combine.ll
    M llvm/test/CodeGen/ARM/fcmp-xo.ll
    M llvm/test/CodeGen/ARM/fpclamptosat.ll
    M llvm/test/CodeGen/ARM/fpclamptosat_vec.ll
    M llvm/test/CodeGen/ARM/fpscr-multi-use.ll
    M llvm/test/CodeGen/ARM/fptoi-sat-store.ll
    M llvm/test/CodeGen/ARM/fptosi-sat-scalar.ll
    M llvm/test/CodeGen/ARM/fptoui-sat-scalar.ll
    M llvm/test/CodeGen/ARM/funnel-shift-rot.ll
    M llvm/test/CodeGen/ARM/funnel-shift.ll
    M llvm/test/CodeGen/ARM/ifcvt1.ll
    M llvm/test/CodeGen/ARM/minnum-maxnum-intrinsics.ll
    M llvm/test/CodeGen/ARM/neon_vabd.ll
    M llvm/test/CodeGen/ARM/overflow-intrinsic-optimizations.ll
    M llvm/test/CodeGen/ARM/sadd_sat.ll
    M llvm/test/CodeGen/ARM/sadd_sat_plus.ll
    M llvm/test/CodeGen/ARM/select.ll
    M llvm/test/CodeGen/ARM/select_const.ll
    M llvm/test/CodeGen/ARM/shift-i64.ll
    M llvm/test/CodeGen/ARM/ssub_sat.ll
    M llvm/test/CodeGen/ARM/ssub_sat_plus.ll
    M llvm/test/CodeGen/ARM/sub-cmp-peephole.ll
    M llvm/test/CodeGen/ARM/uadd_sat.ll
    M llvm/test/CodeGen/ARM/uadd_sat_plus.ll
    M llvm/test/CodeGen/ARM/umulo-128-legalisation-lowering.ll
    M llvm/test/CodeGen/ARM/umulo-64-legalisation-lowering.ll
    M llvm/test/CodeGen/ARM/usub_sat.ll
    M llvm/test/CodeGen/ARM/usub_sat_plus.ll
    M llvm/test/CodeGen/ARM/vselect_imax.ll
    M llvm/test/CodeGen/ARM/wide-compares.ll
    M llvm/test/CodeGen/Thumb/arm_q15_to_q31.ll
    M llvm/test/CodeGen/Thumb/select.ll
    M llvm/test/CodeGen/Thumb/smul_fix_sat.ll
    M llvm/test/CodeGen/Thumb/stack-guard-xo.ll
    M llvm/test/CodeGen/Thumb/umul_fix_sat.ll
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/arm_cmplx_dot_prod_f32.ll
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/exitcount.ll
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/fast-fp-loops.ll
    M llvm/test/CodeGen/Thumb2/float-ops.ll
    M llvm/test/CodeGen/Thumb2/mve-blockplacement.ll
    M llvm/test/CodeGen/Thumb2/mve-doublereduct.ll
    M llvm/test/CodeGen/Thumb2/mve-float16regloops.ll
    M llvm/test/CodeGen/Thumb2/mve-float32regloops.ll
    M llvm/test/CodeGen/Thumb2/mve-fmas.ll
    M llvm/test/CodeGen/Thumb2/mve-fpclamptosat_vec.ll
    M llvm/test/CodeGen/Thumb2/mve-fptosi-sat-vector.ll
    M llvm/test/CodeGen/Thumb2/mve-fptoui-sat-vector.ll
    M llvm/test/CodeGen/Thumb2/mve-gather-scatter-ptr-address.ll
    M llvm/test/CodeGen/Thumb2/mve-laneinterleaving.ll
    M llvm/test/CodeGen/Thumb2/mve-minmaxi.ll
    M llvm/test/CodeGen/Thumb2/mve-pipelineloops.ll
    M llvm/test/CodeGen/Thumb2/mve-pred-ext.ll
    M llvm/test/CodeGen/Thumb2/mve-pred-or.ll
    M llvm/test/CodeGen/Thumb2/mve-pred-vctpvpsel.ll
    M llvm/test/CodeGen/Thumb2/mve-pred-vselect.ll
    M llvm/test/CodeGen/Thumb2/mve-pred-xor.ll
    M llvm/test/CodeGen/Thumb2/mve-satmul-loops.ll
    M llvm/test/CodeGen/Thumb2/mve-vcmpf.ll
    M llvm/test/CodeGen/Thumb2/mve-vcmpfr.ll
    M llvm/test/CodeGen/Thumb2/mve-vcmpfz.ll
    M llvm/test/CodeGen/Thumb2/mve-vmaxv-vminv-scalar.ll
    M llvm/test/CodeGen/Thumb2/mve-vqdmulh.ll
    M llvm/test/CodeGen/Thumb2/umulo-128-legalisation-lowering.ll
    M llvm/test/CodeGen/Thumb2/umulo-64-legalisation-lowering.ll

  Log Message:
  -----------
  [ARM] Stop gluing ALU nodes to branches / selects (#116970)

Following #116547 and #116676, this PR changes the type of results and
operands of some nodes to accept / return a normal type instead of Glue.

Unfortunately, changing the result type of one node requires changing
the operand types of all potential consumer nodes, which in turn
requires changing the result types of all other possible producer nodes.
So this is a bulk change.

Pull Request: https://github.com/llvm/llvm-project/pull/116970


  Commit: a8a494faab8af60754c4647dbb7b24bc86a80aab
      https://github.com/llvm/llvm-project/commit/a8a494faab8af60754c4647dbb7b24bc86a80aab
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-11-30 (Sat, 30 Nov 2024)

  Changed paths:
    M llvm/include/llvm/ADT/SmallPtrSet.h
    M llvm/lib/Support/SmallPtrSet.cpp

  Log Message:
  -----------
  [SmallPtrSet] Remove SmallArray member (NFC) (#118099)

Currently SmallPtrSet stores CurArray and SmallArray, with the former
pointing to the latter in small representation. Instead, only use
CurArray and a separate IsSmall boolean.

Most of the implementation doesn't need the separate SmallArray member
-- we only need it for copy/move/swap operations, where we may switch
back from large to small representation. In those cases, we explicitly
pass down the pointer to SmallStorage.

This reduces the size of SmallPtrSet and improves compile-time.


  Commit: 04cc492ec3e2792e3fa790750ff678baa90bd436
      https://github.com/llvm/llvm-project/commit/04cc492ec3e2792e3fa790750ff678baa90bd436
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-11-30 (Sat, 30 Nov 2024)

  Changed paths:
    M libcxx/include/__configuration/availability.h

  Log Message:
  -----------
  [libc++][NFC] Remove unused macros from <__configuration/availability.h>


  Commit: 39209724e66a20080bdebc609a051dfa0eb6b49f
      https://github.com/llvm/llvm-project/commit/39209724e66a20080bdebc609a051dfa0eb6b49f
  Author: NAKAMURA Takumi <geek4civic at gmail.com>
  Date:   2024-11-30 (Sat, 30 Nov 2024)

  Changed paths:
    M llvm/lib/Support/YAMLTraits.cpp
    M llvm/unittests/Support/YAMLIOTest.cpp

  Log Message:
  -----------
  [YAML] Fix incorrect dash output in nested sequences (#116488)

Nested sequences could be defined but the YAML output was incorrect.
`Output::newLineCheck()` was not able to emit multiple dashes `- ` and
YAML parser sometimes didn't accept its output as the result.

This fixes for emitting corresponding dashes for consecutive
`inSeqFirstElement`, but suppresses emission to the top
`inSeqFirstElement`.

This also fixes for emitting flow elements onto nested sequences.


  Commit: 1c702d38540dd8bad50f22947b71769b4d0c1202
      https://github.com/llvm/llvm-project/commit/1c702d38540dd8bad50f22947b71769b4d0c1202
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-11-30 (Sat, 30 Nov 2024)

  Changed paths:
    A llvm/test/Analysis/LoopAccessAnalysis/nssw-predicate-implied.ll

  Log Message:
  -----------
  [SCEV] Add tests where one wrap predicate implies another.


  Commit: f89fa238faa6a63168997a8a1d03c15b71da8080
      https://github.com/llvm/llvm-project/commit/f89fa238faa6a63168997a8a1d03c15b71da8080
  Author: Congcong Cai <congcongcai0907 at 163.com>
  Date:   2024-11-30 (Sat, 30 Nov 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/misc/UseInternalLinkageCheck.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/misc/use-internal-linkage-func.cpp

  Log Message:
  -----------
  [clang-tidy][use-internal-linkage]fix false positives for global overloaded operator new and operator delete (#117945)


  Commit: 4148aa63e2285ec7198c67d9b231b9097076ba8e
      https://github.com/llvm/llvm-project/commit/4148aa63e2285ec7198c67d9b231b9097076ba8e
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-11-30 (Sat, 30 Nov 2024)

  Changed paths:
    A llvm/utils/merge-json.py
    M runtimes/CMakeLists.txt

  Log Message:
  -----------
  [Reland][Runtimes] Merge 'compile_commands.json' files from runtimes build (#116303)

Summary:
When building a project in a runtime mode, the compilation database is a
separate CMake invocation. So its `compile_commands.json` file will be
placed elsewhere in the `runtimes/runtime-bins` directory. This is
somewhat annoying for ongoing development when a runtimes build is
necessary. This patch adds some CMake magic to merge the two files.

Fixed issue w/ standalone runtimes build by checking if the LLVM src and
CMake src are the same.


  Commit: 2e30df740ef0b9f8edb7075768540ce08678023d
      https://github.com/llvm/llvm-project/commit/2e30df740ef0b9f8edb7075768540ce08678023d
  Author: Jinsong Ji <jinsong.ji at intel.com>
  Date:   2024-11-30 (Sat, 30 Nov 2024)

  Changed paths:
    M llvm/utils/TableGen/AsmMatcherEmitter.cpp

  Log Message:
  -----------
  [TableGen] Fix validateOperandClass for non Phyical Reg (#118146)

https://github.com/llvm/llvm-project/commit/b71704436e61
Rewrote the register operands handling,
but the Table only contains physical regs, we will SEGV when there are
non physical regs.

---------

Co-authored-by: Sergei Barannikov <barannikov88 at gmail.com>


  Commit: 9a0f25158c2eff539de1efbd55de71e711135db7
      https://github.com/llvm/llvm-project/commit/9a0f25158c2eff539de1efbd55de71e711135db7
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-11-30 (Sat, 30 Nov 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectOptimize.cpp
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    M llvm/test/CodeGen/AArch64/selectopt-cast.ll

  Log Message:
  -----------
  [SelectOpt] Support ADD and SUB with zext operands. (#115489)

Extend the support for implicit selects in the form of OR with a ZExt
operand to support ADD and SUB binops as well. They similarly can form
implicit selects which can be profitable to convert back the branches.

PR: https://github.com/llvm/llvm-project/pull/115489


  Commit: 92ba7e397377b8005206cb01a2052a750780827e
      https://github.com/llvm/llvm-project/commit/92ba7e397377b8005206cb01a2052a750780827e
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-11-30 (Sat, 30 Nov 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
    M llvm/test/CodeGen/AMDGPU/bitop3.ll

  Log Message:
  -----------
  AMDGPU/GlobalISel: Do not try to form v_bitop3_b32 for SGPR results (#117940)


  Commit: 1c7e4074b1efe7c3c9110f1d116b16f50fce9c88
      https://github.com/llvm/llvm-project/commit/1c7e4074b1efe7c3c9110f1d116b16f50fce9c88
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2024-11-30 (Sat, 30 Nov 2024)

  Changed paths:
    M lldb/unittests/debugserver/RNBSocketTest.cpp

  Log Message:
  -----------
  [lldb] Fix  warning: 'sprintf' is deprecated in RNBSocketTest

Fixes warning: 'sprintf' is deprecated: This function is provided for
compatibility reasons only.  Due to security concerns inherent in the
design of sprintf(3), it is highly recommended that you use snprintf(3)
instead.


  Commit: 6568ceb9fa1c49383b2fa102a04fd8fd3af01491
      https://github.com/llvm/llvm-project/commit/6568ceb9fa1c49383b2fa102a04fd8fd3af01491
  Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

  Changed paths:
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    A llvm/test/Transforms/CodeGenPrepare/X86/pr118172.ll

  Log Message:
  -----------
  [CodeGenPrepare] Drop nsw flags in `optimizeLoadExt` (#118180)

Alive2: https://alive2.llvm.org/ce/z/pMcD7q
Closes https://github.com/llvm/llvm-project/issues/118172.


  Commit: 017c75bfacdfa25594f8212a427627cff7aa98f3
      https://github.com/llvm/llvm-project/commit/017c75bfacdfa25594f8212a427627cff7aa98f3
  Author: Kai Sasaki <lewuathe at gmail.com>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

  Changed paths:
    M mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp

  Log Message:
  -----------
  [mlir] Fix typo in test vector transform pass descriptions (#118194)

Fix some typos in the description of vector transform passes.


  Commit: 6881c6d2a6ef2b9f1736afb124b2486d6b8bc603
      https://github.com/llvm/llvm-project/commit/6881c6d2a6ef2b9f1736afb124b2486d6b8bc603
  Author: Sudharsan Veeravalli <quic_svs at quicinc.com>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

  Changed paths:
    M clang/test/Driver/print-supported-extensions-riscv.c
    M llvm/docs/RISCVUsage.rst
    M llvm/docs/ReleaseNotes.md
    M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
    M llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
    M llvm/lib/Target/RISCV/RISCVFeatures.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoXqci.td
    M llvm/lib/TargetParser/RISCVISAInfo.cpp
    M llvm/test/CodeGen/RISCV/attributes.ll
    A llvm/test/MC/RISCV/xqcia-invalid.s
    A llvm/test/MC/RISCV/xqcia-valid.s
    M llvm/unittests/TargetParser/RISCVISAInfoTest.cpp

  Log Message:
  -----------
  [RISCV] Add Qualcomm uC Xqcia (Arithmetic) extension (#118113)

This extension adds 11 instructions that perform integer arithmetic.

The current spec can be found at:
https://github.com/quic/riscv-unified-db/releases/latest

This patch adds assembler only support.


  Commit: 94df95de6bab20930c1a77bc785221ff2f670dba
      https://github.com/llvm/llvm-project/commit/94df95de6bab20930c1a77bc785221ff2f670dba
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/X86/shuffle-insert_subvector-codesize.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-insert_subvector-latency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-insert_subvector-sizelatency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-insert_subvector.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-transpose-codesize.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-transpose-latency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-transpose-sizelatency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-transpose.ll
    M llvm/test/Transforms/PhaseOrdering/X86/pr94546.ll

  Log Message:
  -----------
  [TTI][X86] getShuffleCosts - for SK_PermuteTwoSrc, if the masks are known to be "inlane" no need to scale the costs by worst-case legalization (#117999)

SK_PermuteTwoSrc legalization has to assume any of the legalised source registers could be referenced in split shuffles, but if we already know that each 128-bit lane only references elements from the same lane of the source operands, then this scaling won't occur.

Hopefully this can help with #113356 without us having to get full processShuffleMasks canonicalization finished first.


  Commit: f7ef0721d60f85e1f699f8d1b83d4402ae19b122
      https://github.com/llvm/llvm-project/commit/f7ef0721d60f85e1f699f8d1b83d4402ae19b122
  Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/ScalarEvolution.h
    M llvm/lib/Analysis/ScalarEvolution.cpp
    A llvm/test/Analysis/ScalarEvolution/pr117133.ll
    A llvm/test/Transforms/IndVarSimplify/pr117133.ll

  Log Message:
  -----------
  [SCEV] Do not allow refinement in the rewriting of BEValue (#117152)

See the following case:
```
; bin/opt -passes="print<scalar-evolution>" test.ll --disable-output
define i32 @widget() {
b:
  br label %b1

b1:                                              ; preds = %b5, %b
  %phi = phi i32 [ 0, %b ], [ %udiv6, %b5 ]
  %phi2 = phi i32 [ 1, %b ], [ %add, %b5 ]
  %icmp = icmp eq i32 %phi, 0
  br i1 %icmp, label %b3, label %b8

b3:                                              ; preds = %b1
  %udiv = udiv i32 10, %phi2
  %urem = urem i32 %udiv, 10
  %icmp4 = icmp eq i32 %urem, 0
  br i1 %icmp4, label %b7, label %b5

b5:                                              ; preds = %b3
  %udiv6 = udiv i32 %phi2, 0
  %add = add i32 %phi2, 1
  br label %b1

b7:                                              ; preds = %b3
  ret i32 5

b8:                                              ; preds = %b1
  ret i32 7
}
```
```
%phi2 = phi i32 [ 1, %b ], [ %add, %b5 ] -->  {1,+,1}<nuw><nsw><%b1>
%udiv6 = udiv i32 %phi2, 0 --> ({1,+,1}<nuw><nsw><%b1> /u 0)
%phi = phi i32 [ 0, %b ], [ %udiv6, %b5 ] --> ({0,+,1}<nuw><nsw><%b1> /u 0)
```
`ScalarEvolution::createAddRecFromPHI` gives a wrong SCEV result for
`%phi`:

https://github.com/llvm/llvm-project/blob/d7d6fb1804415b0f3e7f1cc9290bfb3d711cb707/llvm/lib/Analysis/ScalarEvolution.cpp#L5926-L5950
It converts `phi(0, ({1,+,1}<nuw><nsw><%b1> /u 0))` into `phi(0 / 0,
({1,+,1}<nuw><nsw><%b1> /u 0))`. Then it simplifies the expr into
`{0,+,1}<nuw><nsw><%b1> /u 0`.

As we did in
https://github.com/llvm/llvm-project/commit/acd700a24b6f767413db3d525e06d03e4245aa40,
this patch disallows udiv simplification if we cannot prove that the
denominator is a well-defined non-zero value.

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


  Commit: 22417ec6cca0ed8ccecb0c2b77011e591378fd2a
      https://github.com/llvm/llvm-project/commit/22417ec6cca0ed8ccecb0c2b77011e591378fd2a
  Author: Haohai Wen <haohai.wen at intel.com>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/test/Driver/codeview-column-info.c

  Log Message:
  -----------
  [Driver] Do not add gno-column-info when using sampling PGO (#117954)

Column info is important for sampling PGO to generate/load profile file.
On windows, it will be automatically added when using -gdwarf to
generate
profile file. It should also be generated when fprofile-sample-use= is
used.


  Commit: 1a3eace82a885fca01a70472b3816007dbee9d9f
      https://github.com/llvm/llvm-project/commit/1a3eace82a885fca01a70472b3816007dbee9d9f
  Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
    M llvm/test/Transforms/InstCombine/saturating-add-sub.ll

  Log Message:
  -----------
  [InstCombine] Fold `umax(X, C) + -C` into `usub.sat(X, C)` (#118195)

Alive2: https://alive2.llvm.org/ce/z/oSWe5S
Closes https://github.com/llvm/llvm-project/issues/118155


  Commit: 4a074330c6d587be51494f651f539c8055be201c
      https://github.com/llvm/llvm-project/commit/4a074330c6d587be51494f651f539c8055be201c
  Author: Chris Apple <cja-private at pm.me>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

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

  Log Message:
  -----------
  [rtsan] Intercept various file system functions (#118183)

Adds interceptors for
* chmod
* fchmod
* mkdir
* rmdir
* umask


  Commit: 82ed9c0319c9f0373bcb633a03ce6d35ebac3661
      https://github.com/llvm/llvm-project/commit/82ed9c0319c9f0373bcb633a03ce6d35ebac3661
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

  Changed paths:
    M clang/lib/AST/ByteCode/Context.cpp
    M clang/lib/AST/ByteCode/Context.h
    M clang/lib/AST/ByteCode/Interp.cpp
    M clang/lib/AST/ByteCode/Interp.h
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp
    M clang/utils/TableGen/ClangOpcodesEmitter.cpp

  Log Message:
  -----------
  [clang][bytecode][NFC] Remove APValue Result argument where unnecessary (#118199)

This is unneeded in almost all circumstances. We only return an APValue
back to clang when the evaluation is finished, and that is always done
by an EvalEmitter - which has its own implementation of the Ret
instructions.


  Commit: 31bde711c4098b3136edd1cb92dd4e0cc1d4d179
      https://github.com/llvm/llvm-project/commit/31bde711c4098b3136edd1cb92dd4e0cc1d4d179
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

  Changed paths:
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp
    M clang/test/AST/ByteCode/builtin-functions.cpp

  Log Message:
  -----------
  [clang][bytecode] Support __builtin_reduce_add (#117672)


  Commit: 77767986ed423f868805d8ee9652f6dcc85c6adc
      https://github.com/llvm/llvm-project/commit/77767986ed423f868805d8ee9652f6dcc85c6adc
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

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

  Log Message:
  -----------
  [LV] Use IsaPred in a few more places (NFC).

Simplifies the code slightly by removing explicit lambdas.


  Commit: 9becc4a3c966d46b95ddfcf856b3c433c030db1e
      https://github.com/llvm/llvm-project/commit/9becc4a3c966d46b95ddfcf856b3c433c030db1e
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

  Changed paths:
    M lld/ELF/InputFiles.cpp

  Log Message:
  -----------
  [ELF] ObjFile::parse: check EM_AARCH64 for SHT_AARCH64_MEMTAG_GLOBAL_STATIC

and reorder sh_type checks to make SHT_PROGBITS/SHT_GROUP fast.


  Commit: 2a5e1da57a42fa2fc081bbc11970871a1eecb3b3
      https://github.com/llvm/llvm-project/commit/2a5e1da57a42fa2fc081bbc11970871a1eecb3b3
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/lib/Target/ARM/ARMISelLowering.h
    M llvm/lib/Target/ARM/ARMInstrFormats.td
    M llvm/lib/Target/ARM/ARMInstrInfo.td
    M llvm/lib/Target/ARM/ARMInstrThumb.td
    M llvm/lib/Target/ARM/ARMInstrThumb2.td
    M llvm/lib/Target/ARM/ARMInstrVFP.td
    M llvm/test/CodeGen/ARM/add-like-or.ll
    M llvm/test/CodeGen/ARM/arm-shrink-wrapping.ll
    M llvm/test/CodeGen/ARM/atomic-64bit.ll
    M llvm/test/CodeGen/ARM/atomic-ops-v8.ll
    M llvm/test/CodeGen/ARM/atomicrmw-cond-sub-clamp.ll
    M llvm/test/CodeGen/ARM/atomicrmw-uinc-udec-wrap.ll
    M llvm/test/CodeGen/ARM/atomicrmw_exclusive_monitor_ints.ll
    M llvm/test/CodeGen/ARM/bfi.ll
    M llvm/test/CodeGen/ARM/cmov_fp16.ll
    M llvm/test/CodeGen/ARM/cse-call.ll
    M llvm/test/CodeGen/ARM/cttz.ll
    M llvm/test/CodeGen/ARM/fadd-select-fneg-combine.ll
    M llvm/test/CodeGen/ARM/fcmp-xo.ll
    M llvm/test/CodeGen/ARM/fpclamptosat.ll
    M llvm/test/CodeGen/ARM/fpclamptosat_vec.ll
    M llvm/test/CodeGen/ARM/fpscr-multi-use.ll
    M llvm/test/CodeGen/ARM/fptoi-sat-store.ll
    M llvm/test/CodeGen/ARM/fptosi-sat-scalar.ll
    M llvm/test/CodeGen/ARM/fptoui-sat-scalar.ll
    M llvm/test/CodeGen/ARM/funnel-shift-rot.ll
    M llvm/test/CodeGen/ARM/funnel-shift.ll
    M llvm/test/CodeGen/ARM/ifcvt1.ll
    M llvm/test/CodeGen/ARM/minnum-maxnum-intrinsics.ll
    M llvm/test/CodeGen/ARM/neon_vabd.ll
    M llvm/test/CodeGen/ARM/overflow-intrinsic-optimizations.ll
    M llvm/test/CodeGen/ARM/sadd_sat.ll
    M llvm/test/CodeGen/ARM/sadd_sat_plus.ll
    M llvm/test/CodeGen/ARM/select.ll
    M llvm/test/CodeGen/ARM/select_const.ll
    M llvm/test/CodeGen/ARM/shift-i64.ll
    M llvm/test/CodeGen/ARM/ssub_sat.ll
    M llvm/test/CodeGen/ARM/ssub_sat_plus.ll
    M llvm/test/CodeGen/ARM/sub-cmp-peephole.ll
    M llvm/test/CodeGen/ARM/uadd_sat.ll
    M llvm/test/CodeGen/ARM/uadd_sat_plus.ll
    M llvm/test/CodeGen/ARM/umulo-128-legalisation-lowering.ll
    M llvm/test/CodeGen/ARM/umulo-64-legalisation-lowering.ll
    M llvm/test/CodeGen/ARM/usub_sat.ll
    M llvm/test/CodeGen/ARM/usub_sat_plus.ll
    M llvm/test/CodeGen/ARM/vselect_imax.ll
    M llvm/test/CodeGen/ARM/wide-compares.ll
    M llvm/test/CodeGen/Thumb/arm_q15_to_q31.ll
    M llvm/test/CodeGen/Thumb/select.ll
    M llvm/test/CodeGen/Thumb/smul_fix_sat.ll
    M llvm/test/CodeGen/Thumb/stack-guard-xo.ll
    M llvm/test/CodeGen/Thumb/umul_fix_sat.ll
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/arm_cmplx_dot_prod_f32.ll
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/exitcount.ll
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/fast-fp-loops.ll
    M llvm/test/CodeGen/Thumb2/float-ops.ll
    M llvm/test/CodeGen/Thumb2/mve-blockplacement.ll
    M llvm/test/CodeGen/Thumb2/mve-doublereduct.ll
    M llvm/test/CodeGen/Thumb2/mve-float16regloops.ll
    M llvm/test/CodeGen/Thumb2/mve-float32regloops.ll
    M llvm/test/CodeGen/Thumb2/mve-fmas.ll
    M llvm/test/CodeGen/Thumb2/mve-fpclamptosat_vec.ll
    M llvm/test/CodeGen/Thumb2/mve-fptosi-sat-vector.ll
    M llvm/test/CodeGen/Thumb2/mve-fptoui-sat-vector.ll
    M llvm/test/CodeGen/Thumb2/mve-gather-scatter-ptr-address.ll
    M llvm/test/CodeGen/Thumb2/mve-laneinterleaving.ll
    M llvm/test/CodeGen/Thumb2/mve-minmaxi.ll
    M llvm/test/CodeGen/Thumb2/mve-pipelineloops.ll
    M llvm/test/CodeGen/Thumb2/mve-pred-ext.ll
    M llvm/test/CodeGen/Thumb2/mve-pred-or.ll
    M llvm/test/CodeGen/Thumb2/mve-pred-vctpvpsel.ll
    M llvm/test/CodeGen/Thumb2/mve-pred-vselect.ll
    M llvm/test/CodeGen/Thumb2/mve-pred-xor.ll
    M llvm/test/CodeGen/Thumb2/mve-satmul-loops.ll
    M llvm/test/CodeGen/Thumb2/mve-vcmpf.ll
    M llvm/test/CodeGen/Thumb2/mve-vcmpfr.ll
    M llvm/test/CodeGen/Thumb2/mve-vcmpfz.ll
    M llvm/test/CodeGen/Thumb2/mve-vmaxv-vminv-scalar.ll
    M llvm/test/CodeGen/Thumb2/mve-vqdmulh.ll
    M llvm/test/CodeGen/Thumb2/umulo-128-legalisation-lowering.ll
    M llvm/test/CodeGen/Thumb2/umulo-64-legalisation-lowering.ll

  Log Message:
  -----------
  Revert "[ARM] Stop gluing ALU nodes to branches / selects" (#118232)

Reverts llvm/llvm-project#116970.

This change broke Wine compiled for armv7, causing segfaults when
starting Wine. See llvm/llvm-project#116970 for more detailed discussion
about the issue.


  Commit: 603d41ab7b4078a00a5d3b899d3b9d14eea2d8ff
      https://github.com/llvm/llvm-project/commit/603d41ab7b4078a00a5d3b899d3b9d14eea2d8ff
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

  Changed paths:
    M lld/ELF/InputSection.cpp

  Log Message:
  -----------
  [ELF] decompress: remove mutex

decompress() is in the parallel code path splitIntoPieces
and we should avoid mutex.


  Commit: a09df64f406be162b0bd096dbe2466603b7a4f29
      https://github.com/llvm/llvm-project/commit/a09df64f406be162b0bd096dbe2466603b7a4f29
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

  Changed paths:
    M lld/ELF/InputFiles.cpp

  Log Message:
  -----------
  [ELF] postParse: remove some branches in the fast path


  Commit: 73f087b3318a8f887cd867f27608f693fee6dc7b
      https://github.com/llvm/llvm-project/commit/73f087b3318a8f887cd867f27608f693fee6dc7b
  Author: antangelo <contact at antangelo.com>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

  Changed paths:
    R llvm/test/CodeGen/Generic/builtin-expect-with-probability.ll
    M llvm/test/CodeGen/X86/fast-isel-expect.ll

  Log Message:
  -----------
  [NFC][SelectionDAG] Replace generic @llvm.expect.with.probability codegen test with X86 test (#117848)

Adds test case for X86 to check that the output of
@llvm.expect.with.probability's generic lowering is reasonable. This
replaces a generic test which only asserts that llc does not crash.


  Commit: 574f64ca61d252dbcf98621e056ab02b93d928bc
      https://github.com/llvm/llvm-project/commit/574f64ca61d252dbcf98621e056ab02b93d928bc
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

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

  Log Message:
  -----------
  [TimeProfiler] Remove unneeded check


  Commit: 92a4b443260ccf9237b873850a9b511fdcffd79a
      https://github.com/llvm/llvm-project/commit/92a4b443260ccf9237b873850a9b511fdcffd79a
  Author: Abdul Raheem <abdulraheembeigh at gmail.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Affine/IR/AffineOps.td

  Log Message:
  -----------
  [MLIR][NFC] Fixed a typo of member variable static_basis (#117678)

-- Fixed a typo of member variable static_basis of
AffineDelinearizeIndexOp operation in AffineOps.td

Signed-off: Abdul Raheem Beigh <abdulraheembeigh at gmail.com>


  Commit: a4c3683b665c6ac875b4821f5c6a881fdf5fef70
      https://github.com/llvm/llvm-project/commit/a4c3683b665c6ac875b4821f5c6a881fdf5fef70
  Author: Longsheng Mou <longshengmou at gmail.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M mlir/include/mlir/Interfaces/DestinationStyleOpInterface.td

  Log Message:
  -----------
  [mlir][NFC] Fix typo. (#118163)

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


  Commit: 427fb5cc5ac34414c4682c90d3db0c63c5a1b227
      https://github.com/llvm/llvm-project/commit/427fb5cc5ac34414c4682c90d3db0c63c5a1b227
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/lib/ExecutionEngine/Orc/Core.cpp
    M llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp

  Log Message:
  -----------
  [ORC] Track all dependencies on symbols that aren't Ready yet.

AsynchronousSymbolQuery tracks the symbols that it depends on in order to (1)
detach the query in the event of a failure, and (2) report those dependencies
to clients of the ExecutionSession::lookup method (via the RegisterDependencies
argument). Previously we tracked only dependencies on symbols that didn't meet
the required state (the only symbols that the query needs to be attached to),
but this is insufficient to report all necessary dependencies to lookup clients.
E.g. A lookup requiring SymbolState::Resolved where some matched symbol is
already Resolved but not yet Emitted or Ready would result in the dependency on
that symbol not being reported, which could result in illegal access in
concurrent JIT setups. (This bug was discovered by @mikaoP on discord with a
simple concurrent JIT setup).

This patch tracks and reports all dependencies on symbols that aren't Ready yet,
correcting the under-reporting issue. AsynchronousSymbolQuery::detach is updated
to stop asserting that all depended-upon symbols have a query attached.


  Commit: ed7a8f15564f11ce8ceabaa925a26842302b8450
      https://github.com/llvm/llvm-project/commit/ed7a8f15564f11ce8ceabaa925a26842302b8450
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

  Changed paths:
    M offload/test/mapping/map_both_pointer_pointee.c
    M offload/test/mapping/power_of_two_alignment.c

  Log Message:
  -----------
  [NFC][Offload] Correct the compile command of two C test files (#118243)

The compile command for the two C test files are `compilexx`, which is
actually
for C++ compilation.


  Commit: 8cb44859cc31929521c09fc6a8add66d53db44de
      https://github.com/llvm/llvm-project/commit/8cb44859cc31929521c09fc6a8add66d53db44de
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

  Changed paths:
    R offload/test/mapping/power_of_two_alignment.c
    A offload/test/mapping/power_of_two_alignment.cpp

  Log Message:
  -----------
  FIX: Fix test failure in offload/test/mapping/power_of_two_alignment.c

A C file with `template` in it. Awesome.


  Commit: c4a1e0efe6b0767dfb5861a7e8814d7db0c0de8a
      https://github.com/llvm/llvm-project/commit/c4a1e0efe6b0767dfb5861a7e8814d7db0c0de8a
  Author: Richard Trieu <57020969+Weverything at users.noreply.github.com>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

  Changed paths:
    M clang/lib/AST/ASTDiagnostic.cpp
    M clang/test/Misc/diag-template-diffing-cxx98.cpp

  Log Message:
  -----------
  [clang] Remove redundant integer values in template type diffing

Look through SubstNonTypeTemplateParmExpr to find an IntegerLiteral
node when attempting to determine if extra info is printed via
the aka mechanism.  This will avoid printing types such as
"array<5 aka 5>" and will only show "array<5>".


  Commit: a9ad9e27caba2153b82fb3029694bfadaa5803cb
      https://github.com/llvm/llvm-project/commit/a9ad9e27caba2153b82fb3029694bfadaa5803cb
  Author: Daniil Kovalev <dkovalev at accesssoftek.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/include/llvm/BinaryFormat/ELFRelocs/AArch64.def
    M llvm/test/tools/llvm-readobj/ELF/reloc-types-aarch64.test

  Log Message:
  -----------
  [PAC][llvm-readobj][AArch64] Move PAuth GOT relocs out of private space (#118214)

Apply change from the spec
https://github.com/ARM-software/abi-aa/pull/300


  Commit: 010317e1731d76b91c00ed1241583e518380d65f
      https://github.com/llvm/llvm-project/commit/010317e1731d76b91c00ed1241583e518380d65f
  Author: Congcong Cai <congcongcai0907 at 163.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/misc/UseInternalLinkageCheck.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/docs/clang-tidy/checks/misc/use-internal-linkage.rst
    A clang-tools-extra/test/clang-tidy/checkers/misc/use-internal-linkage-module.cpp
    M clang/docs/LibASTMatchersReference.html
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/ASTMatchers/ASTMatchers.h
    M clang/lib/ASTMatchers/ASTMatchersInternal.cpp
    M clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp

  Log Message:
  -----------
  [clang-tidy][use-internal-linkage]fix false positives for ExportDecl (#117901)

Fixed: #97190


  Commit: 91f69b70e075a475b550e3ef832816c47311e2bd
      https://github.com/llvm/llvm-project/commit/91f69b70e075a475b550e3ef832816c47311e2bd
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp

  Log Message:
  -----------
  [ORC] Remove redundant check from ObjectLinkingLayer.

Non-locally scoped symbols must have names.


  Commit: 0a44b24d6697ee8542583960c4a4166fc805883c
      https://github.com/llvm/llvm-project/commit/0a44b24d6697ee8542583960c4a4166fc805883c
  Author: Adam Yang <hanbyang at microsoft.com>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

  Changed paths:
    M llvm/include/llvm/IR/IntrinsicsDirectX.td
    M llvm/lib/Target/DirectX/DXIL.td
    M llvm/lib/Target/DirectX/DXILOpLowering.cpp
    A llvm/test/CodeGen/DirectX/group_memory_barrier_with_group_sync.ll
    M llvm/utils/TableGen/DXILEmitter.cpp

  Log Message:
  -----------
  [DXIL] Add GroupMemoryBarrierWithGroupSync intrinsic (#114349)

fixes #112974
partially fixes #70103

An earlier version of this change was reverted so some issues could be fixed.

### Changes
- Added new tablegen based way of lowering dx intrinsics to DXIL ops.
- Added int_dx_group_memory_barrier_with_group_sync intrinsic in
IntrinsicsDirectX.td
- Added expansion for int_dx_group_memory_barrier_with_group_sync in
DXILIntrinsicExpansion.cpp`
- Added DXIL backend test case

### Related PRs
* [[clang][HLSL] Add GroupMemoryBarrierWithGroupSync intrinsic
#111883](https://github.com/llvm/llvm-project/pull/111883)
* [[SPIRV] Add GroupMemoryBarrierWithGroupSync intrinsic
#111888](https://github.com/llvm/llvm-project/pull/111888)


  Commit: d9d656edd4d6d7ca1be5c2f2e0cca4d1ef773dd5
      https://github.com/llvm/llvm-project/commit/d9d656edd4d6d7ca1be5c2f2e0cca4d1ef773dd5
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-12-01 (Sun, 01 Dec 2024)

  Changed paths:
    M lld/ELF/Symbols.cpp

  Log Message:
  -----------
  [ELF] resolve LazySymbol: remove a branch in the fast path


  Commit: dd0d9561b8945d4128814bd7eda1bc470a1552f7
      https://github.com/llvm/llvm-project/commit/dd0d9561b8945d4128814bd7eda1bc470a1552f7
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang/lib/AST/ByteCode/Compiler.cpp
    A clang/test/AST/ByteCode/altivec.c
    M clang/test/AST/ByteCode/vectors.cpp

  Log Message:
  -----------
  [clang][bytecode] Support vector-to-vector bitcasts (#118230)


  Commit: 08c1a6b3e181c3af019b18489139bfe4b03d9d08
      https://github.com/llvm/llvm-project/commit/08c1a6b3e181c3af019b18489139bfe4b03d9d08
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/lib/ExecutionEngine/Orc/Core.cpp
    M llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp

  Log Message:
  -----------
  Revert "[ORC] Track all dependencies on symbols that aren't Ready yet."

This reverts commit 427fb5cc5ac34414c4682c90d3db0c63c5a1b227 while I investigate
the bot failure in https://lab.llvm.org/buildbot/#/builders/95/builds/6835.


  Commit: eaa6cc547e7300b122efbbaf8940ee9d15f7964c
      https://github.com/llvm/llvm-project/commit/eaa6cc547e7300b122efbbaf8940ee9d15f7964c
  Author: Shankhin <44582011+firestrike007 at users.noreply.github.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M libc/src/__support/threads/linux/rwlock.h

  Log Message:
  -----------
  Fixes #118231: Corrected spelling mistake in has_acitive_owner function (#118266)

Fixes #118231 
- Updated the method name to `has_active_owner` in
`llvm-project/libc/src/__support/threads/linux/rwlock.h`
- Verified usage and updated all references to the method.
- Ran tests:
    - `check-llvm-unit`
    - `check-all`


  Commit: 979a0356d4c90ec855be4f2d2f6687132cf10298
      https://github.com/llvm/llvm-project/commit/979a0356d4c90ec855be4f2d2f6687132cf10298
  Author: Veera <32646674+veera-sivarajan at users.noreply.github.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang/test/CodeGen/attr-counted-by.c
    M llvm/include/llvm/Analysis/ValueTracking.h
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    A llvm/test/Transforms/InstCombine/canonicalize-const-to-bop.ll
    M llvm/test/Transforms/InstCombine/minmax-fold.ll
    M llvm/test/Transforms/InstCombine/saturating-add-sub.ll
    M llvm/test/Transforms/InstCombine/select.ll
    M llvm/test/Transforms/InstCombine/unsigned_saturated_sub.ll

  Log Message:
  -----------
  [InstCombine] Fold `X Pred C2 ? X BOp C1 : C2 BOp C1` to `min/max(X, C2) BOp C1` (#116888)

Fixes #82414.

General Proof: https://alive2.llvm.org/ce/z/ERjNs4 
Proof for Tests: https://alive2.llvm.org/ce/z/K-934G

This PR transforms `select` instructions of the form `select (Cmp X C1)
(BOp X C2) C3` to `BOp (min/max X C1) C2` iff `C3 == BOp C1 C2`.

This helps in eliminating a noop loop in
https://github.com/rust-lang/rust/issues/123845 but does not improve
optimizations.


  Commit: 7bbc049688a1586827d87ad8e2fc7cb3638ef2fc
      https://github.com/llvm/llvm-project/commit/7bbc049688a1586827d87ad8e2fc7cb3638ef2fc
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

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

  Log Message:
  -----------
  [InstCombine] Consolidate another fold into select value equivalence (#117746)

We had a separate fold that handled just the trivial case where we're
replacing exactly the argument of the select. Handle this in select
value equivalence by relaxing the infinite loop protection to allow a
replacement of a non-constant with a constant.

This also fixes https://github.com/llvm/llvm-project/issues/113301, as
the separate fold did not handle undef values correctly.


  Commit: 770adc56097342d3478c1b3b6d3e67cdf6d2c93e
      https://github.com/llvm/llvm-project/commit/770adc56097342d3478c1b3b6d3e67cdf6d2c93e
  Author: Haojian Wu <hokein.wu at gmail.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang/lib/Sema/SemaAttr.cpp
    M clang/test/AST/attr-lifetime-capture-by.cpp

  Log Message:
  -----------
  [clang] Infer lifetime_capture_by for map's subscript operator. (#118078)


  Commit: a545cf5c6da6decbde95287f95e1ffce40116d23
      https://github.com/llvm/llvm-project/commit/a545cf5c6da6decbde95287f95e1ffce40116d23
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M flang/include/flang/Optimizer/Builder/HLFIRTools.h
    M flang/include/flang/Optimizer/HLFIR/HLFIROps.td
    M flang/lib/Optimizer/Builder/HLFIRTools.cpp
    M flang/lib/Optimizer/HLFIR/IR/HLFIROps.cpp
    M flang/lib/Optimizer/HLFIR/Transforms/BufferizeHLFIR.cpp
    A flang/test/HLFIR/eval_in_mem-codegen.fir
    A flang/test/HLFIR/eval_in_mem.fir
    M flang/test/HLFIR/invalid.fir

  Log Message:
  -----------
  [flang][hlfir] add hlfir.eval_in_mem operation (#118067)

See HLFIROps.td change for the description of the operation.

The goal is to ease temporary storage elision for expression evaluation
(typically evaluating the RHS directly inside the LHS) for expressions
that do not have abtsractions in HLFIR and for which it is not clear
adding one would bring much. The case that is implemented in [the
following lowering
patch](https://github.com/llvm/llvm-project/pull/118070) is the array
call case, where adding a new hlfir.call would add complexity (needs to
deal with dispatch, inlining ....).


  Commit: 8201926ec0a61ea182e3b25c23e3dbaae6036dbf
      https://github.com/llvm/llvm-project/commit/8201926ec0a61ea182e3b25c23e3dbaae6036dbf
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/lib/Analysis/InstructionSimplify.cpp
    M llvm/test/Transforms/InstSimplify/compare.ll
    M llvm/test/Transforms/InstSimplify/icmp-monotonic.ll

  Log Message:
  -----------
  [InstSimplify] Generalize simplification of icmps with monotonic operands (#69471)

InstSimplify currently folds patterns like `(x | y) uge x` and `(x & y)
ule x` to true. However, it cannot handle combinations of such
situations, such as `(x | y) uge (x & z)` etc.

To support this, recursively collect operands of monotonic instructions
(that preserve either a greater-or-equal or less-or-equal relationship)
and then check whether any of them match.

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


  Commit: 54fcf3ec26ad192e91b6ac924f6d3eb562e3647d
      https://github.com/llvm/llvm-project/commit/54fcf3ec26ad192e91b6ac924f6d3eb562e3647d
  Author: antangelo <contact at antangelo.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Basic/DiagnosticParseKinds.td
    M clang/lib/Parse/ParseDecl.cpp
    M clang/test/CXX/drs/cwg722.cpp
    A clang/test/Parser/cxx2c-oxford-variadic-comma.cpp
    M clang/www/cxx_status.html

  Log Message:
  -----------
  [clang] Implement P3176R1: The Oxford variadic comma (#117524)

Emit a deprecation warning when a variadic parameter in a
parameter-declaration-clause is not preceded by a comma for C++26.


  Commit: 4851dbb8d6f1c00ad382ff4780293ca9a743c609
      https://github.com/llvm/llvm-project/commit/4851dbb8d6f1c00ad382ff4780293ca9a743c609
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/lib/Target/Hexagon/HexagonPatterns.td
    A llvm/test/CodeGen/Hexagon/addrmode-neg-offset.ll

  Log Message:
  -----------
  [Hexagon] Use getSignedConstant for RoundTo8 XForm

To handle negative offset addrmodes correctly.

Fixes https://github.com/llvm/llvm-project/pull/117558#issuecomment-2510208764.


  Commit: 98e747ba56b2f8b51a7c797a3f379d02c545c42b
      https://github.com/llvm/llvm-project/commit/98e747ba56b2f8b51a7c797a3f379d02c545c42b
  Author: Pedro Lobo <pedro.lobo at tecnico.ulisboa.pt>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang/lib/CodeGen/CGCall.cpp
    M clang/test/CodeGen/AArch64/pure-scalable-args.c
    M clang/test/CodeGen/AArch64/sve-acle-__ARM_FEATURE_SVE_VECTOR_OPERATORS.cpp
    M clang/test/CodeGen/AArch64/sve-vls-arith-ops.c
    M clang/test/CodeGen/AArch64/sve-vls-bitwise-ops.c
    M clang/test/CodeGen/AArch64/sve-vls-compare-ops.c
    M clang/test/CodeGen/AArch64/sve-vls-shift-ops.c
    M clang/test/CodeGen/RISCV/attr-rvv-vector-bits-cast.c
    M clang/test/CodeGen/RISCV/attr-rvv-vector-bits-codegen.c
    M clang/test/CodeGen/RISCV/rvv-vls-arith-ops.c
    M clang/test/CodeGen/RISCV/rvv-vls-bitwise-ops.c
    M clang/test/CodeGen/RISCV/rvv-vls-compare-ops.c
    M clang/test/CodeGen/RISCV/rvv-vls-shift-ops.c
    M clang/test/CodeGen/attr-arm-sve-vector-bits-cast.c
    M clang/test/CodeGen/attr-arm-sve-vector-bits-codegen.c

  Log Message:
  -----------
  [clang] Use poison instead of undef as the placeholder when creating a new vector [NFC] (#117064)

Call `@llvm.vector.insert` with a `poison` vector when coercing a fixed
vector to a scalable vector with the same element type.


  Commit: 7be501c1d3b3153e08603670873e1b3b700c9598
      https://github.com/llvm/llvm-project/commit/7be501c1d3b3153e08603670873e1b3b700c9598
  Author: Balázs Kéri <balazs.keri at ericsson.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang/lib/AST/ASTImporter.cpp
    M clang/unittests/AST/ASTImporterTest.cpp

  Log Message:
  -----------
  [clang][ASTImporter] Allow import of similar friend template with different depth (#115734)

This fix applies to a case that occurs when the AST contains a friend
template that is contained within another template and this (outer)
template has specialization. (See the added test code in the commit.)


  Commit: 9cbbf15db925c8d588b998487115a46250954dc1
      https://github.com/llvm/llvm-project/commit/9cbbf15db925c8d588b998487115a46250954dc1
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

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

  Log Message:
  -----------
  [AMDGPU] Only insert intrinsic declarations when needed (#117998)


  Commit: 085e7d2b22876ebc03948a0690580e0189cddcc1
      https://github.com/llvm/llvm-project/commit/085e7d2b22876ebc03948a0690580e0189cddcc1
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    R bolt/CODE_OWNERS.TXT
    A bolt/Maintainers.txt
    M llvm/Maintainers.md

  Log Message:
  -----------
  [bolt] Move CODE_OWNERS.txt to Maintainers.txt (#118082)

To align with: https://llvm.org/docs/DeveloperPolicy.html#maintainers

I have not changed the format of the file, my only goal here is that the
project have a `bolt/Maintainers.*` so it is easy to find.


  Commit: fec0eb4c3ef2a1fa2e0e413b0ea4871ee0bcebd1
      https://github.com/llvm/llvm-project/commit/fec0eb4c3ef2a1fa2e0e413b0ea4871ee0bcebd1
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    R compiler-rt/CODE_OWNERS.TXT
    A compiler-rt/Maintainers.txt
    M llvm/Maintainers.md

  Log Message:
  -----------
  [compiler-rt] Move CODE_OWNERS.txt to Maintainers.txt (#118086)

To align with https://llvm.org/docs/DeveloperPolicy.html#maintainers

No format change, I just want each project to have a `Maintainers.*`
file so it is easy to find.


  Commit: df10f1c6f79a77e45e44c62974a186decb0f1f33
      https://github.com/llvm/llvm-project/commit/df10f1c6f79a77e45e44c62974a186decb0f1f33
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp

  Log Message:
  -----------
  [RISCV] Use getRISCVInstructionCost for split cost in mask reductions. NFC

This is effectively the same due to how the mask instructions have an
LMUL of 1 and cost of 1, but matches how we use LT.first elsewhere in
RISCVTargetTransformInfo.cpp by using it to multiply another
instruction cost.


  Commit: 51003076ebc1ccc0cf339f9d96b2cfec84ab867c
      https://github.com/llvm/llvm-project/commit/51003076ebc1ccc0cf339f9d96b2cfec84ab867c
  Author: Paschalis Mpeis <paschalis.mpeis at arm.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M bolt/include/bolt/Profile/DataAggregator.h
    M bolt/lib/Profile/DataAggregator.cpp
    M bolt/unittests/Core/CMakeLists.txt
    A bolt/unittests/Core/MemoryMaps.cpp
    M llvm/utils/gn/secondary/bolt/unittests/Core/BUILD.gn

  Log Message:
  -----------
  Reapply [BOLT] DataAggregator support for binaries with multiple text segments (#118023)

When a binary has multiple text segments, the Size is computed as the
difference of the last address of these segments from the BaseAddress.
The base addresses of all text segments must be the same.

Introduces flag 'perf-script-events' for testing, which allows passing
perf events without BOLT having to parse them by invoking 'perf script'.
The flag is used to pass a mock perf profile that has two memory
mappings for a mock binary that has two text segments. The mapping
size is updated as `parseMMapEvents` now processes all text segments.


  Commit: 7a7a426188eea0b181738436205759e13ad6fd7b
      https://github.com/llvm/llvm-project/commit/7a7a426188eea0b181738436205759e13ad6fd7b
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/lib/Analysis/LazyValueInfo.cpp
    M llvm/test/Transforms/CorrelatedValuePropagation/vectors.ll

  Log Message:
  -----------
  [LVI] Fix insertelement of constexpr

Bail out when evaluating an insertelement of a constant expression.
Unlike other ValueLattice kinds, these don't have implicit splat
semantics and we end up with type mismatches. If we actually wanted
to handle these, we should actually evaluate the insertion via
constant folding. I'm not bothering with that, as these should
get constant folded on construction already.


  Commit: 5248e1d4e1ee950d1703ec57141257b02446dd67
      https://github.com/llvm/llvm-project/commit/5248e1d4e1ee950d1703ec57141257b02446dd67
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    A llvm/test/CodeGen/AArch64/stack-hazard-windows.ll
    M llvm/test/CodeGen/AArch64/stack-hazard.ll

  Log Message:
  -----------
  [AArch64] Fix frame-pointer offset with hazard padding (#118091)

The `-aarch64-stack-hazard-size=<val>` option disables register paring
(as the hazard padding may mean the offset is too large for STP/LDP).

This broke setting the frame-pointer offset, as the code to find the
frame record looked for a (FP, LR) register pair.

This patch resolves this by looking for FP, LR as two unpaired registers
when hazard padding is enabled.


  Commit: ede570980a2534c4a21850777b92505c02924416
      https://github.com/llvm/llvm-project/commit/ede570980a2534c4a21850777b92505c02924416
  Author: LiqinWeng <liqin.weng at spacemit.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/test/CodeGen/RISCV/rvv/sink-splat-operands.ll

  Log Message:
  -----------
  [RISCV][TTI] Add llvm.vp.select into canSplatOperand. (#117982)

The second operand of llvm.vp.select is a splat operand , it can help
llvm.vp.select fold vv instructions to vx instructions.


  Commit: fe1c4f0106fe4fd6d61c38ba46e71fda8f4d1573
      https://github.com/llvm/llvm-project/commit/fe1c4f0106fe4fd6d61c38ba46e71fda8f4d1573
  Author: Andrzej Warzynski <andrzej.warzynski at arm.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td

  Log Message:
  -----------
  [mlir][vector][nfc] Remove redundant "`"


  Commit: 34d4cd8208b9378d5ec00f256d8ea898162430be
      https://github.com/llvm/llvm-project/commit/34d4cd8208b9378d5ec00f256d8ea898162430be
  Author: Kerry McLaughlin <kerry.mclaughlin at arm.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang/lib/AST/ItaniumMangle.cpp
    A clang/test/CodeGenCXX/aarch64-mangle-sme-atts.cpp

  Log Message:
  -----------
  [Clang][AArch64] Include SME attributes in the name mangling of function types (#114209)

Similar to arm_sve_vector_bits, the mangling of function types is
implemented as a pseudo template if there are any SME attributes
present, i.e.

  `__SME_ATTRS<normal_function_type, sme_state>`

For example, the following function:

  `void f(svint8_t (*fn)() __arm_streaming) { fn(); }`

would be mangled as:

  `_Z1fP11__SME_ATTRSIFu10__SVInt8_tELj1EE`

See https://github.com/ARM-software/acle/pull/358


  Commit: 541d5d911119d0268bc55fa1367ada5ef25f99c1
      https://github.com/llvm/llvm-project/commit/541d5d911119d0268bc55fa1367ada5ef25f99c1
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

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

  Log Message:
  -----------
  [clang][bytecode][NFC] Reject invalid FromTypes in emitBuiltinBitcast (#118274)

instead of silently accepting them and failing later.


  Commit: 6f285d31159501050de5563b1a844a3e1ac79a03
      https://github.com/llvm/llvm-project/commit/6f285d31159501050de5563b1a844a3e1ac79a03
  Author: Momchil Velikov <momchil.velikov at arm.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    M llvm/lib/Target/AArch64/SVEInstrFormats.td
    A llvm/test/CodeGen/AArch64/zeroing-forms-fcvt-bfcvt.ll

  Log Message:
  -----------
  [AArch64] Generate zeroing forms of certain SVE2.2 instructions (2/11) (#116828)

SVE2.2 introduces instructions with predicated forms with zeroing of
the inactive lanes. This allows in some cases to save a `movprfx` or
a `mov` instruction when emitting code for `_x` or `_z` variants of
intrinsics.

This patch adds support for emitting the zeroing forms of certain
`FCVT`, and `BFCVT` instructions.


  Commit: 3348b4688f570d5be3180f80c888325958c37db7
      https://github.com/llvm/llvm-project/commit/3348b4688f570d5be3180f80c888325958c37db7
  Author: Phoebe Wang <phoebe.wang at intel.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M compiler-rt/lib/builtins/cpu_model/x86.c
    M llvm/lib/TargetParser/Host.cpp

  Log Message:
  -----------
  [X86][compiler-rt] Split CPU names even they have the same subtype (#118237)

Fixes: #118205


  Commit: f8ce2e4bb38609033098714a467e25abe5b1f9d4
      https://github.com/llvm/llvm-project/commit/f8ce2e4bb38609033098714a467e25abe5b1f9d4
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

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

  Log Message:
  -----------
  [Matrix] Only retrieve analyses if there are any matrix intrinsics (NFC)

Only request analyses if there are any matrix intrinics to avoid
computing them if there are no matrix intrinsics.


  Commit: 50c66e52f8946bc66147f615b1beaffff620e69e
      https://github.com/llvm/llvm-project/commit/50c66e52f8946bc66147f615b1beaffff620e69e
  Author: David Green <david.green at arm.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/test/CodeGen/AArch64/concat-vector.ll

  Log Message:
  -----------
  [AArch64] Add tests for concat(extract-high, extract-high). NFC


  Commit: f5bc6b47e856ec4b44026bb82bfbe244afcc1d98
      https://github.com/llvm/llvm-project/commit/f5bc6b47e856ec4b44026bb82bfbe244afcc1d98
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/test/Transforms/PhaseOrdering/SystemZ/sub-xor.ll

  Log Message:
  -----------
  [PhaseOrdering] Remove -enable-matrix flag from sub-xor.ll test.

The test does not use matrix intrinsics, so does not need enable-matrix.


  Commit: e6eac65ad6aa2c61475d65f13d6d938d0e3a7728
      https://github.com/llvm/llvm-project/commit/e6eac65ad6aa2c61475d65f13d6d938d0e3a7728
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/test/CodeGen/ARM/2012-03-13-DAGCombineBug.ll

  Log Message:
  -----------
  [ARM] 2012-03-13-DAGCombineBug.ll - regenerate checks


  Commit: 9a34a4f8d668b72868fde3b6a58bb3a57d72c0c9
      https://github.com/llvm/llvm-project/commit/9a34a4f8d668b72868fde3b6a58bb3a57d72c0c9
  Author: dlav-sc <daniil.avdeev at syntacore.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/lldbtest.py

  Log Message:
  -----------
  [lldb] fix fd leak during lldb testsuite (#118093)

During lldb testing dotest.py opens files to dump testcase results, but
doesn't close them.

This patch makes necessary changes to fix the file descriptors leak.


  Commit: 4930f69b78e215c60eb53e25596599c2f98b6564
      https://github.com/llvm/llvm-project/commit/4930f69b78e215c60eb53e25596599c2f98b6564
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/pr50609.ll

  Log Message:
  -----------
  [X86] canonicalizeShuffleWithOp - add initial shuffle(sint_to_fp(x)) -> sint_to_fp(shuffle(x)) handling

Another tentative step towards folding shuffles through conversion ops - initially limited to cases where the src/dst types are matching width.


  Commit: 0611fdd32046c41647a7719252166033f7bce2f2
      https://github.com/llvm/llvm-project/commit/0611fdd32046c41647a7719252166033f7bce2f2
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp
    M clang/test/AST/ByteCode/builtin-functions.cpp

  Log Message:
  -----------
  [clang][bytecode] Add simple __builtin_memcpy implementation (#118278)

Not handling all the special- and error cases yet. Just making sure the
bitcast code can be used for this as well.


  Commit: 16ec534989a7ec0f67b694c3b9b21914794d8aef
      https://github.com/llvm/llvm-project/commit/16ec534989a7ec0f67b694c3b9b21914794d8aef
  Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstCombine/fpclass-from-dom-cond.ll

  Log Message:
  -----------
  [ValueTracking] Handle and/or of conditions in `computeKnownFPClassFromContext` (#118257)

Fix a typo introduced by
https://github.com/llvm/llvm-project/pull/83161.
This patch also supports decomposition of and/or expressions in
`computeKnownFPClassFromContext`.
Compile-time improvement:
http://llvm-compile-time-tracker.com/compare.php?from=688bb432c4b618de69a1d0e7807077a22f15762a&to=07493fc354b686f0aca79d6f817091a757bd7cd5&stat=instructions:u


  Commit: c1dcf75a7cf8840ddf20b622148c4ab0c3b16943
      https://github.com/llvm/llvm-project/commit/c1dcf75a7cf8840ddf20b622148c4ab0c3b16943
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang/lib/AST/ByteCode/Integral.h
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp
    M clang/test/AST/ByteCode/builtin-functions.cpp

  Log Message:
  -----------
  [clang][bytecode] Implement __builtin_reduce_mul (#118287)


  Commit: e48c7fe49f8575b7737d07ac5a71d1fc924d37f7
      https://github.com/llvm/llvm-project/commit/e48c7fe49f8575b7737d07ac5a71d1fc924d37f7
  Author: Devajith <devajith.valaparambil.sreeramaswamy at cern.ch>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/include/llvm/LineEditor/LineEditor.h
    M llvm/lib/LineEditor/LineEditor.cpp

  Log Message:
  -----------
  Reland '[lineeditor] Add `setHistorySize()` method for adjusting history size' (#115442)

Reland: https://github.com/llvm/llvm-project/pull/110092

Buildbot was failing due to an unused variable warning as there were 2
implementations (with and without libedit). Compared to last version,
wrap the variable inside the `#ifdef HAVE_LIBEDIT`.

Apologies for the oversight @vgvassilev


  Commit: ccc471fe3eb825db76ec4248c4d0dfe447aa04b1
      https://github.com/llvm/llvm-project/commit/ccc471fe3eb825db76ec4248c4d0dfe447aa04b1
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp
    M clang/test/AST/ByteCode/builtin-functions.cpp

  Log Message:
  -----------
  [clang][bytecode] Implement __builtin_reduce_and (#118289)


  Commit: da23a8372cd37e1a6280e9e0519bc0be60e2c209
      https://github.com/llvm/llvm-project/commit/da23a8372cd37e1a6280e9e0519bc0be60e2c209
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/lib/Support/FormattedStream.cpp

  Log Message:
  -----------
  [FormattedStream] Add ASCII fast path (#117892)

Printing IR spends a large amount of time updating the column count via
generic UTF-8 APIs. Speed it up by adding a fast path for the common
printable ASCII case.

This makes `-print-on-crash -print-module-scope` about two times faster.


  Commit: cbb49d4be676a251ca140db92aa2788dd5514569
      https://github.com/llvm/llvm-project/commit/cbb49d4be676a251ca140db92aa2788dd5514569
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M flang/include/flang/Optimizer/CodeGen/Target.h
    M flang/lib/Optimizer/CodeGen/Target.cpp
    M flang/lib/Optimizer/CodeGen/TargetRewrite.cpp
    M flang/test/Fir/target-rewrite-boxchar.fir
    M flang/test/Fir/target.fir

  Log Message:
  -----------
  [flang][fir] fix ABI bug 116844 (#118121)

Fix issue #116844.

The issue came from a look-up on the func.func for the sret attribute
when lowering fir.call with character arguments. This was broken because
the func.func may or may not have been rewritten when dealing with the
fir.call, but the lookup assumed it had not been rewritten yet. If the
func.func was rewritten and the result moved to a sret argument, the
call was lowered as if the character was meant to be the result, leading
to bad call code and an assert.

It turns out that the whole logic is actually useless since fir.boxchar
are never lowered as sret arguments, instead, lowering directly breaks
the character result into the first two `fir.ref<>, i64` arguments. So,
the sret case was actually never used, except in this bug.

Hence, instead of fixing the logic (probably by looking for argument
attributes on the call itself), just remove this logic that brings
unnecessary complexity.


  Commit: c2950982fe481091df91a06e59ab8a86af71509e
      https://github.com/llvm/llvm-project/commit/c2950982fe481091df91a06e59ab8a86af71509e
  Author: A. Jiang <de34 at live.cn>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M libcxx/docs/Status/Cxx2cIssues.csv
    M libcxx/docs/Status/Cxx2cPapers.csv

  Log Message:
  -----------
  [libc++] Add Wroclaw straw polls (#118116)


  Commit: 2474cf7ad123ea14308293a2237e3552cddb1136
      https://github.com/llvm/llvm-project/commit/2474cf7ad123ea14308293a2237e3552cddb1136
  Author: Momchil Velikov <momchil.velikov at arm.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    M llvm/lib/Target/AArch64/SVEInstrFormats.td
    A llvm/test/CodeGen/AArch64/zeroing-forms-fcvtlt-fcvtx.ll

  Log Message:
  -----------
  [AArch64] Generate zeroing forms of certain SVE2.2 instructions (3/11) (#116829)

SVE2.2 introduces instructions with predicated forms with zeroing of
the inactive lanes. This allows in some cases to save a `movprfx` or
a `mov` instruction when emitting code for `_x` or `_z` variants of
intrinsics.

This patch adds support for emitting the zeroing forms of certain
`FCVTLT`, and `FCVTX` instructions.


  Commit: 94488445cdd1657d1363a4994393b193c291b2cc
      https://github.com/llvm/llvm-project/commit/94488445cdd1657d1363a4994393b193c291b2cc
  Author: Kareem Ergawy <kareem.ergawy at amd.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    A flang/test/Lower/OpenMP/DelayedPrivatization/wsloop.f90
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp

  Log Message:
  -----------
  [flang][MLIR] Support delayed privatization for `wsloop` (PFT -> MLIR) (#118271)

Adds PFT to MLIR lowering for delayed privatization of `omp.wsloop` ops.
Lowering to LLVM IR will be added in a later PR.


  Commit: cdbd22876b71acad9e5eeceadc0d8859e6e73b18
      https://github.com/llvm/llvm-project/commit/cdbd22876b71acad9e5eeceadc0d8859e6e73b18
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M flang/examples/FeatureList/FeatureList.cpp
    M flang/include/flang/Parser/dump-parse-tree.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/include/flang/Semantics/openmp-modifiers.h
    M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
    M flang/lib/Lower/OpenMP/Clauses.cpp
    M flang/lib/Lower/OpenMP/Clauses.h
    M flang/lib/Parser/openmp-parsers.cpp
    M flang/lib/Parser/unparse.cpp
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/openmp-modifiers.cpp
    M flang/lib/Semantics/resolve-directives.cpp
    M flang/test/Parser/OpenMP/allocators-unparse.f90
    M flang/test/Semantics/OpenMP/allocate-clause01.f90
    M flang/test/Semantics/OpenMP/allocators01.f90
    M flang/test/Semantics/OpenMP/allocators04.f90
    M flang/test/Semantics/OpenMP/allocators05.f90
    M flang/test/Semantics/OpenMP/allocators06.f90
    M flang/test/Semantics/OpenMP/resolve06.f90
    M llvm/include/llvm/Frontend/OpenMP/ClauseT.h
    M llvm/unittests/Frontend/OpenMPDecompositionTest.cpp

  Log Message:
  -----------
  [flang][OpenMP] Use new modifiers in ALLOCATE clause (#117627)

Again, this simplifies the semantic checks and lowering quite a bit.
Update the check for positive alignment to use a more informative
message, and to highlight the modifier itsef, not the whole clause.
Remove the checks for the allocator expression itself being positive:
there is nothing in the spec that says that it should be positive.

Remove the "simple" modifier from the AllocateT template, since both
simple and complex modifiers are the same thing, only differing in
syntax.


  Commit: 61a58fc676297756519412ddc1dfab6a75207b70
      https://github.com/llvm/llvm-project/commit/61a58fc676297756519412ddc1dfab6a75207b70
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M flang/lib/Optimizer/CodeGen/TargetRewrite.cpp

  Log Message:
  -----------
  [flang] remove unused var after #118121 (#118295)

Fix https://lab.llvm.org/buildbot/#/builders/89/builds/11704


  Commit: 39337ff2dc366fde83b07193b72c294a846c5959
      https://github.com/llvm/llvm-project/commit/39337ff2dc366fde83b07193b72c294a846c5959
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
    M llvm/lib/Target/AMDGPU/GCNSubtarget.h
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
    M llvm/lib/Target/AMDGPU/VOP3Instructions.td
    M llvm/test/CodeGen/AMDGPU/hazards-gfx950.mir
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk.gfx950.ll
    M llvm/test/CodeGen/AMDGPU/materialize-frame-index-sgpr.ll

  Log Message:
  -----------
  AMDGPU: Handle cvt_scale F32/F16->F4/F8 gfx950 hazard (#117844)

gfx950 SP changes doc says:
No 4 clk forwarding on opcodes that convert from
F32/F16->F8 or F32/F16->F4. Must insert a NOP or
instruction writing some other destination VREG
after a conversion to F4/F8 since it writes either
low/high half or bytes.

Co-authored-by: Pravin Jagtap <Pravin.Jagtap at amd.com>
Co-authored-by: Jeffrey Byrnes <Jeffrey.Byrnes at amd.com>


  Commit: 1288f6d405768f57bf2d2fd5914c5a20f902f5d6
      https://github.com/llvm/llvm-project/commit/1288f6d405768f57bf2d2fd5914c5a20f902f5d6
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp
    M clang/test/AST/ByteCode/builtin-functions.cpp

  Log Message:
  -----------
  [clang][bytecode] Implement __builtin_reduce_or (#118292)


  Commit: eae30a240e34e1fd31b57096a1b8bdbd8b84352d
      https://github.com/llvm/llvm-project/commit/eae30a240e34e1fd31b57096a1b8bdbd8b84352d
  Author: Chris Apple <cja-private at pm.me>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp
    M compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp
    A compiler-rt/test/rtsan/syscall.cpp

  Log Message:
  -----------
  [rtsan] Add syscall interceptor (#118250)

This is a complex one - `syscall` is used when people want to bypass
libc and make the call directly

However, this call:
* Has a variable amount of arguments (up to 6, typically)
* Has arguments that can be any type, (think of whatever arguments go in
to the libc call, or see more details here
https://syscalls.mebeim.net/?table=x86/64/x64/latest)


I've tried to put in a couple tests to ensure we aren't mucking with the
underlying functionality and they seem to be working.


  Commit: b587b910d5b6fd27f4730ad933a8465528d6f5be
      https://github.com/llvm/llvm-project/commit/b587b910d5b6fd27f4730ad933a8465528d6f5be
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp
    M clang/test/AST/ByteCode/builtin-functions.cpp

  Log Message:
  -----------
  [clang][bytecode] Implement __builtin_reduce_xor (#118299)


  Commit: 03b5f8f0f0d10c412842ed04b90e2217cf071218
      https://github.com/llvm/llvm-project/commit/03b5f8f0f0d10c412842ed04b90e2217cf071218
  Author: Mats Petersson <mats.petersson at arm.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M flang/include/flang/Parser/dump-parse-tree.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    M flang/lib/Parser/openmp-parsers.cpp
    M flang/lib/Parser/unparse.cpp
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/check-omp-structure.h
    A flang/test/Lower/OpenMP/Todo/atomic-compare.f90
    A flang/test/Parser/OpenMP/atomic-compare.f90
    M flang/test/Parser/OpenMP/atomic-unparse.f90
    A flang/test/Semantics/OpenMP/atomic-compare.f90
    M flang/test/Semantics/OpenMP/atomic.f90

  Log Message:
  -----------
  [flang][OpenMP]Add parsing and semantics support for ATOMIC COMPARE (#117032)

This adds a minimalistic implementation of parsing and semantics for the
ATOMIC COMPARE feature from OpenMP 5.1.

There is no lowering, just a TODO for that part. Some of the Semantics
is also just a comment explaining that more is needed.


  Commit: 40fb74a8ff23c0ff042b5e80b330882b7a625e43
      https://github.com/llvm/llvm-project/commit/40fb74a8ff23c0ff042b5e80b330882b7a625e43
  Author: Brox Chen <guochen2 at amd.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/test/CodeGen/AMDGPU/GlobalISel/mul.ll
    M llvm/test/CodeGen/AMDGPU/mul.i16.ll

  Log Message:
  -----------
  [AMDGPU][True16][CodeGen] V_MUL_LO_U16 true16 test (#118118)

This is a NFC. Update and eable V_MUL_LO_U16 codegen test for
true16/fake16 flow


  Commit: aa7fe1c10e5d6d0d3aacdb345fed995de413e142
      https://github.com/llvm/llvm-project/commit/aa7fe1c10e5d6d0d3aacdb345fed995de413e142
  Author: Nathan Gauër <brioche at google.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang/include/clang/Basic/AddressSpaces.h
    M clang/lib/AST/TypePrinter.cpp
    M clang/lib/Basic/TargetInfo.cpp
    M clang/lib/Basic/Targets/AArch64.h
    M clang/lib/Basic/Targets/AMDGPU.cpp
    M clang/lib/Basic/Targets/DirectX.h
    M clang/lib/Basic/Targets/NVPTX.h
    M clang/lib/Basic/Targets/SPIR.h
    M clang/lib/Basic/Targets/SystemZ.h
    M clang/lib/Basic/Targets/TCE.h
    M clang/lib/Basic/Targets/WebAssembly.h
    M clang/lib/Basic/Targets/X86.h
    M clang/test/SemaTemplate/address_space-dependent.cpp
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.h
    A llvm/test/CodeGen/SPIRV/pointers/global-addrspacecast.ll
    A llvm/test/CodeGen/SPIRV/pointers/variables-storage-class-vk.ll
    M llvm/test/CodeGen/SPIRV/pointers/variables-storage-class.ll

  Log Message:
  -----------
  [SPIR-V] Fixup storage class for global private (#116636)

Adds a new address spaces: `hlsl_private`. Variables with such address
space will be emitted with a `Private` storage class.
This is useful for variables global to a SPIR-V module, since up to now,
they were still emitted with a `Function` storage class, which is wrong.

---------

Signed-off-by: Nathan Gauër <brioche at google.com>


  Commit: 4ad4d34a226043a5d594b261a9c2a50efd292a76
      https://github.com/llvm/llvm-project/commit/4ad4d34a226043a5d594b261a9c2a50efd292a76
  Author: Oleksandr T. <oleksandr.tarasiuk at outlook.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/test/CXX/temp/temp.deduct.guide/p3.cpp

  Log Message:
  -----------
  Revert [Clang] prevent errors for deduction guides using deduced type aliases (#118165)

Reverts https://github.com/llvm/llvm-project/pull/117450

---

Revert https://github.com/llvm/llvm-project/pull/117450 because the
prior behavior aligns with the standard - _`template-name`_ in the
_`simple-template-id`_ in the return type shall be the actual name of a
class template rather than some equivalent alias template. Details
https://github.com/llvm/llvm-project/issues/54909#issuecomment-2508418355.


  Commit: 608f4ae113f94b0c4a9b3c944a2aa9f115a805b4
      https://github.com/llvm/llvm-project/commit/608f4ae113f94b0c4a9b3c944a2aa9f115a805b4
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M flang/examples/FeatureList/FeatureList.cpp
    M flang/examples/FlangOmpReport/FlangOmpReportVisitor.cpp
    M flang/examples/FlangOmpReport/FlangOmpReportVisitor.h
    M flang/include/flang/Parser/dump-parse-tree.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/lib/Lower/OpenMP/Clauses.cpp
    M flang/lib/Parser/openmp-parsers.cpp
    M flang/lib/Parser/unparse.cpp
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/resolve-directives.cpp
    M flang/test/Parser/OpenMP/bind-clause.f90
    M flang/test/Parser/OpenMP/declare_target-device_type.f90
    M flang/test/Parser/OpenMP/proc-bind.f90
    M flang/test/Parser/OpenMP/target-loop-unparse.f90

  Log Message:
  -----------
  [flang][OpenMP] Rename some `Type` members in OpenMP clauses (#117784)

The intent is to keep names in sync with the terminology from the OpenMP
spec:
```
  OmpBindClause::Type       -> Binding
  OmpDefaultClause::Type    -> DataSharingAttribute
  OmpDeviceTypeClause::Type -> DeviceTypeDescription
  OmpProcBindClause::Type   -> AffinityPolicy
```
Add more comments with references to the OpenMP specs.


  Commit: b27d97bef782a8405e80e7b9f60b44d0537f43b6
      https://github.com/llvm/llvm-project/commit/b27d97bef782a8405e80e7b9f60b44d0537f43b6
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
    M mlir/test/Dialect/Tensor/invalid.mlir

  Log Message:
  -----------
  [mlir][tensor] Add test for invalid tensor.unpack + update error msg (#118275)

Adds a new test for invalid `tensor.unpack` operations where the output
rank does not match the expected rank (input rank + num inner tile
sizes). For example:

```mlir
tensor.unpack %output
  inner_dims_pos = [0, 1]
  inner_tiles = [32, 16]
  into %input : tensor<64x32x16xf32> -> tensor<256x128xf32>
```

In addition, updates the corresponding error message to make it more
informative:

BEFORE:
```mlir
error: packed rank must equal unpacked rank + tiling factors}
```

AFTER:
```mlir
error: packed rank != (unpacked rank + num tiling factors), got 3 != 4
```


  Commit: b343f3f3faf5b732cc19c9c51d392389677477ce
      https://github.com/llvm/llvm-project/commit/b343f3f3faf5b732cc19c9c51d392389677477ce
  Author: Donát Nagy <donat.nagy at ericsson.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
    M clang/lib/StaticAnalyzer/Core/CoreEngine.cpp
    M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp

  Log Message:
  -----------
  [analyzer][NFC] Cleanup BranchNodeBuilder (#117898)

Previously `BranchNodeBuilder` had a machinery to mark the two possible
branches (true, false) as infeasible, but this was completely useless in
practice, because the `BranchNodeBuilder` objects where short-lived
local variables so the `markInfeasible()` calls did not affect any later
calls.

The only theoretical exception was that in `ExprEngine::processBranch`
the methods of `BranchNodeBuilder` were called within a `for` loop that
iterates over the nodes created by the `check::BranchCondition`
callbacks.

However, currently only two checkers listen to `check::BranchCondition`
and neither of them produces multiple out nodes. This is fortunate,
because if the `for` loop had multiple iterations, then the lingering
effects of `markInfeasible()` would have caused wildly incorrect
behavior.

_For example, let's assume that a hypothetical `check::BranchCondition`
callback transitions to two different states, and the condition
expression happens to be true in the first and false in the second. In
this situation the first iteration of the loop would mark the false
branch as 'infeasible' and then in the second iteration the analyzer
would skip creating the transition to the false branch (from the state
where that is the 'right' path forward)._

After removing `markInfeasible()`, it became clear that the
`isFeasible()` calls in `ExprEngine::processBranch` are redundant
because they only guarded a `generateNode` call -- which immediately
calls `isFeasible()` and does nothing on an infeasible branch.

At this point in the refactoring the only code writing the feasibility
data members is their initialization in the constructors of
`BranchNodeBuilder` and the only code reading them is the check at the
beginning of `BranchNodeBuilder::generateNode`, so it was
straightforward to remove them completely and simplify the logic of
`generateNode()` to let it directly check the nullness of the
`CFGBlock*` pointer that it wants to use.

Finally, after these changes it became clear that in
`ExprEngine::processBranch` the `else` branch
(corresponding to the case when `assumeCondition` fails) is equivalent
to the "normal" case, so I eliminated it as well.

I also update the capitalization of a few variables that are already
affected by this change.


  Commit: 637a1ae85538554b98973861802e842fc30d0f91
      https://github.com/llvm/llvm-project/commit/637a1ae85538554b98973861802e842fc30d0f91
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp
    M clang/test/AST/ByteCode/builtin-functions.cpp

  Log Message:
  -----------
  [clang][bytecode] Implement __builtin_elementwise_popcount (#118307)


  Commit: 21d27b3aabf3d06f7e8b1002b34bb467f6ab66d8
      https://github.com/llvm/llvm-project/commit/21d27b3aabf3d06f7e8b1002b34bb467f6ab66d8
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    A llvm/test/Transforms/LoopUnroll/AArch64/apple-unrolling.ll

  Log Message:
  -----------
  [LoopUnroll] Add tests for loop unrolling on Apple platforms.

Add first set of tests where runtime unrolling can be highly beneficial
on Apple Silicon CPUs.


  Commit: 97f94af3560d3ae046f6c3d7ec74b03d1d2493d0
      https://github.com/llvm/llvm-project/commit/97f94af3560d3ae046f6c3d7ec74b03d1d2493d0
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M .github/workflows/docs.yml

  Log Message:
  -----------
  [Github] Upload built docs as artifact from test build docs job (#118159)

This patch makes the test documentation build job upload the docs that
have been built as artifacts. This makes it much easier to take a peek
at the resulting documentation rather than just being able to see that
it builds.


  Commit: 071da9261b7e94c2d2d4e9d3d4eba1f29115e8ae
      https://github.com/llvm/llvm-project/commit/071da9261b7e94c2d2d4e9d3d4eba1f29115e8ae
  Author: Oleksandr T. <oleksandr.tarasiuk at outlook.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/test/CodeGen/alias.cpp

  Log Message:
  -----------
  [Clang] ensure mangled names are valid identifiers before being suggested in ifunc/alias attributes notes (#118170)

Fixes #112205

--- 

Commit that introduced this feature -
https://github.com/llvm/llvm-project/commit/9306ef9750b7a319d59f6d3e4977e01e39b8f161


  Commit: f8b4182f076f8fe55f9d5f617b5a25008a77b22f
      https://github.com/llvm/llvm-project/commit/f8b4182f076f8fe55f9d5f617b5a25008a77b22f
  Author: Nathan Gauër <brioche at google.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang/include/clang/Basic/AddressSpaces.h
    M clang/lib/AST/TypePrinter.cpp
    M clang/lib/Basic/TargetInfo.cpp
    M clang/lib/Basic/Targets/AArch64.h
    M clang/lib/Basic/Targets/AMDGPU.cpp
    M clang/lib/Basic/Targets/DirectX.h
    M clang/lib/Basic/Targets/NVPTX.h
    M clang/lib/Basic/Targets/SPIR.h
    M clang/lib/Basic/Targets/SystemZ.h
    M clang/lib/Basic/Targets/TCE.h
    M clang/lib/Basic/Targets/WebAssembly.h
    M clang/lib/Basic/Targets/X86.h
    M clang/test/SemaTemplate/address_space-dependent.cpp
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.h
    R llvm/test/CodeGen/SPIRV/pointers/global-addrspacecast.ll
    R llvm/test/CodeGen/SPIRV/pointers/variables-storage-class-vk.ll
    M llvm/test/CodeGen/SPIRV/pointers/variables-storage-class.ll

  Log Message:
  -----------
  Revert "[SPIR-V] Fixup storage class for global private (#116636)" (#118312)

This reverts commit aa7fe1c10e5d6d0d3aacdb345fed995de413e142.


  Commit: 8935165659b7c31914e86059b91c9da8389cf19a
      https://github.com/llvm/llvm-project/commit/8935165659b7c31914e86059b91c9da8389cf19a
  Author: Alex Bradbury <asb at igalia.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    A llvm/test/MachineVerifier/RISCV/lit.local.cfg
    M llvm/test/MachineVerifier/RISCV/subreg-liveness.mir

  Log Message:
  -----------
  [NFCI][test] Use lit.local.cfg in test/MachineVerifier/RISCV to gate tests (#118217)

87cc4b48c08a627f330396f941b84671c5e591d5 added `REQUIRES:
riscv64-registered-target` to the only test in this directory. It seems
better (and also reflects what we do elsewhere, including in the AMDGPU/
subdir in MachineVerifier) to gate for all files in the directory via
lit.local.cfg.


  Commit: fcfdabfea18b4d2dd98a1c5b52d5b33aff77ae1a
      https://github.com/llvm/llvm-project/commit/fcfdabfea18b4d2dd98a1c5b52d5b33aff77ae1a
  Author: Ian Wood <ianwood2024 at u.northwestern.edu>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Utils/ReshapeOpsUtils.h
    M mlir/test/Dialect/Tensor/canonicalize.mlir

  Log Message:
  -----------
  [MLIR] Improve compose expand(collapse) pattern (#117768)

If expand(collapse) has a dimension that gets collapsed and then
expanded to the same shape, the pattern would fail to canonicalize this
to a single collapse shape. Line 341 was changed because the
expand(collapse) could be a reinterpret-cast like sequence where the
shapes differ but the rank is the same. This cannot be represented by a
single `collapse_shape` op.

Signed-off-by: Ian Wood <ianwood2024 at u.northwestern.edu>


  Commit: ac7fe426163adf9123473aeb94448cf3e84f6d09
      https://github.com/llvm/llvm-project/commit/ac7fe426163adf9123473aeb94448cf3e84f6d09
  Author: SpencerAbson <Spencer.Abson at arm.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M clang/include/clang/Basic/arm_sve.td
    M clang/utils/TableGen/SveEmitter.cpp

  Log Message:
  -----------
  [Clang][AArch64]Refactor typespec handling in SveEmitter.cpp (#117717)

- Switch to an enumerated type approach, which is less error-prone as we
continue to add new types. This is similar to NeonEmitter.
- Fix existing faulty typespec modifiers


  Commit: fed07a05454d53763c10d482cd6e853509eee252
      https://github.com/llvm/llvm-project/commit/fed07a05454d53763c10d482cd6e853509eee252
  Author: Paul Osmialowski <pawel.osmialowski at arm.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M compiler-rt/test/builtins/Unit/atomic_test.c

  Log Message:
  -----------
  [compiler-rt][tests] Make this test case pass on AArch64 (#117628)

See also D92832 and GCC bug
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80878


  Commit: 05096590e0ce68bdc6d32aac9ddbe8728e7514ae
      https://github.com/llvm/llvm-project/commit/05096590e0ce68bdc6d32aac9ddbe8728e7514ae
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M flang/examples/FeatureList/FeatureList.cpp
    M flang/include/flang/Parser/dump-parse-tree.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/include/flang/Semantics/openmp-modifiers.h
    M flang/lib/Lower/OpenMP/Clauses.cpp
    M flang/lib/Parser/openmp-parsers.cpp
    M flang/lib/Parser/unparse.cpp
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/openmp-modifiers.cpp
    M flang/test/Parser/OpenMP/affinity-clause.f90
    M flang/test/Parser/OpenMP/target_device_parse.f90
    M flang/test/Parser/OpenMP/target_device_unparse.f90
    M flang/test/Semantics/OpenMP/clause-validity01.f90

  Log Message:
  -----------
  [flang][OpenMP] Use new modifiers with AFFINITY/ALIGNED/DEVICE (#117786)

This is a mostly mechanical change from specific modifiers embedded
directly in a clause to the Modifier variant.

Additional comments and references to the OpenMP specs were added.


  Commit: a951e76fbed642dbe3f51965d17ca566be586cc5
      https://github.com/llvm/llvm-project/commit/a951e76fbed642dbe3f51965d17ca566be586cc5
  Author: Dmitry Vasilyev <dvassiliev at accesssoftek.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py

  Log Message:
  -----------
  [lldb] Added an exponential algorithm for the sleep time in connect_to_debug_monitor() (#118222)

Reduced MAX_ATTEMPTS to 10.
The sleep time will be 3, 3.6, 4.3, ..., 13, 15.
The total sleep time is 78 + 0.5 * MAX_CONNECT_ATTEMPTS * MAX_ATTEMPTS = 128.
Note the timeout is 600, so the rest time must be enough.
Increased the port range (12000..20000).


  Commit: 582754280c73f3b3ead67603df6b896d3ad058d8
      https://github.com/llvm/llvm-project/commit/582754280c73f3b3ead67603df6b896d3ad058d8
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M libcxx/docs/Status/Cxx23Papers.csv

  Log Message:
  -----------
  [libc++][NFC] Fix slightly incorrect row in the CSV files


  Commit: d898ff650ae09e3ef942592aee2e87627f45d7c6
      https://github.com/llvm/llvm-project/commit/d898ff650ae09e3ef942592aee2e87627f45d7c6
  Author: Perry Gibson <Wheest at users.noreply.github.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M mlir/python/mlir/dialects/func.py
    M mlir/test/python/dialects/func.py

  Log Message:
  -----------
  [mlir,python] Fix case when `FuncOp.arg_attrs` is not set (#117188)

FuncOps can have `arg_attrs`, an array of dictionary attributes
associated with their arguments.

E.g., 

```mlir
func.func @main(%arg0: tensor<8xf32> {test.attr_name = "value"}, %arg1: tensor<8x16xf32>)
```

These are exposed via the MLIR Python bindings with
`my_funcop.arg_attrs`.

In this case, it would return `[{test.attr_name = "value"}, {}]`, i.e.,
`%arg1` has an empty `DictAttr`.

However, if I try and access this property from a FuncOp with an empty
`arg_attrs`, e.g.,

```mlir
func.func @main(%arg0: tensor<8xf32>, %arg1: tensor<8x16xf32>)
```

This raises the error:

```python
    return ArrayAttr(self.attributes[ARGUMENT_ATTRIBUTE_NAME])
                     ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
KeyError: 'attempt to access a non-existent attribute'
```

This PR fixes this by returning the expected `[{}, {}]`.


  Commit: 73186546f0c0209c65c4b4ef1379a4832545b871
      https://github.com/llvm/llvm-project/commit/73186546f0c0209c65c4b4ef1379a4832545b871
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    M llvm/test/CodeGen/RISCV/rv64-float-convert-strict.ll
    M llvm/test/CodeGen/RISCV/rv64-float-convert.ll
    M llvm/test/CodeGen/RISCV/rv64-half-convert-strict.ll
    M llvm/test/CodeGen/RISCV/rv64-half-convert.ll

  Log Message:
  -----------
  [LegalizeTypes][RISCV] Call setTypeListBeforeSoften from ExpandIntRes_FP_TO_XINT if the FP type needs to be softened (#118269)

This avoids an unnecessary sext.w before the libcall.


  Commit: bee33b5291a28aec76e98c0da25349266c7b653c
      https://github.com/llvm/llvm-project/commit/bee33b5291a28aec76e98c0da25349266c7b653c
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
    M llvm/test/CodeGen/RISCV/GlobalISel/double-intrinsics.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/float-intrinsics.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir

  Log Message:
  -----------
  [RISCV][GISel] Support f32/f64 powi. (#117937)

Need to force libcall legalization to treat the integer argument as
signed so that it can be promoted to XLen in call lowering for RV64.
Alternatively we could promote the operand before converting to libcall,
but going through call lowering is closer to what SelectionDAG does.


  Commit: c16c0e26236d0468a2411cb3bce219d3c70650e9
      https://github.com/llvm/llvm-project/commit/c16c0e26236d0468a2411cb3bce219d3c70650e9
  Author: Christudasan Devadasan <christudasan.devadasan at amd.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

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

  Log Message:
  -----------
  [AMDGPU][SIOptimizeVGPRLiveRange] Add setpreservesCFG in the legacy pass flow. (#118256)


  Commit: c9fa3195f0f012a5606ec3e403a1f111b3a4e0c7
      https://github.com/llvm/llvm-project/commit/c9fa3195f0f012a5606ec3e403a1f111b3a4e0c7
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-12-03 (Tue, 03 Dec 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
    M llvm/test/CodeGen/RISCV/rvv/compressstore.ll

  Log Message:
  -----------
  [RISCV] Use LiveIntervals to determine if AVL dominates when coalescing (#118285)

In order to coalesce a vsetvli with a register AVL into a previous
vsetvli, we need to make sure that the AVL register is reachable at the
previous vsetvli.

Back in pre-RA vsetvli insertion we just checked to see if the two
virtual registers were the same virtual register, and then this was
hacked around in the move to post-RA. We can instead use live intervals
to check that the reaching definition is the same at both instructions.

On its own this doesn't have much of an impact, but helps a lot in
#118283 and enables coalescing in about 60 of the test cases from that
PR.


  Commit: a6fa51f5ce8f31a088f04d7c14690bb0de3259f1
      https://github.com/llvm/llvm-project/commit/a6fa51f5ce8f31a088f04d7c14690bb0de3259f1
  Author: Alexander Richardson <alexrichardson at google.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M lld/Common/ErrorHandler.cpp

  Log Message:
  -----------
  [lld] Move handling of message separator to reportDiagnostic()

This ensures that it is also updated when calling log() and not just for
errors and warnings. This was noticed in the downstream CHERI fork where
a test using CHECK-NEXT was seeing empty lines after single-line log()
messages.

Reviewed By: MaskRay

Pull Request: https://github.com/llvm/llvm-project/pull/117587


  Commit: 57452bb3a92d77f260296669269815e057b19b6e
      https://github.com/llvm/llvm-project/commit/57452bb3a92d77f260296669269815e057b19b6e
  Author: Raphael Moreira Zinsly <6718397+rzinsly at users.noreply.github.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
    M llvm/lib/Target/RISCV/RISCVFrameLowering.h

  Log Message:
  -----------
  [NFC][RISCV] Remove CFIIndex argument from allocateStack (#117871)

Calculates CFIIndex inside RISCVFrameLowering::allocateStack instead of
sending it by argument.


  Commit: ff0e05885e43281403de78985d386397ee948efa
      https://github.com/llvm/llvm-project/commit/ff0e05885e43281403de78985d386397ee948efa
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-12-02 (Mon, 02 Dec 2024)

  Changed paths:
    A .ci/metrics/Dockerfile
    A .ci/metrics/metrics.py
    A .ci/metrics/requirements.lock.txt
    A .ci/metrics/requirements.txt
    A .github/workflows/build-metrics-container.yml
    M .github/workflows/docs.yml
    R bolt/CODE_OWNERS.TXT
    A bolt/Maintainers.txt
    M bolt/include/bolt/Profile/DataAggregator.h
    M bolt/lib/Profile/DataAggregator.cpp
    M bolt/unittests/Core/CMakeLists.txt
    A bolt/unittests/Core/MemoryMaps.cpp
    M clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp
    M clang-tools-extra/clang-tidy/bugprone/ReturnConstRefFromParameterCheck.cpp
    M clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp
    M clang-tools-extra/clang-tidy/misc/UseInternalLinkageCheck.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/docs/clang-tidy/checks/bugprone/branch-clone.rst
    M clang-tools-extra/docs/clang-tidy/checks/misc/redundant-expression.rst
    M clang-tools-extra/docs/clang-tidy/checks/misc/use-internal-linkage.rst
    A clang-tools-extra/test/clang-tidy/checkers/bugprone/alpha-core-identicalexpr.cpp
    M clang-tools-extra/test/clang-tidy/checkers/bugprone/return-const-ref-from-parameter.cpp
    M clang-tools-extra/test/clang-tidy/checkers/misc/use-internal-linkage-func.cpp
    A clang-tools-extra/test/clang-tidy/checkers/misc/use-internal-linkage-module.cpp
    M clang/docs/LibASTMatchersReference.html
    M clang/docs/ReleaseNotes.rst
    M clang/docs/analyzer/checkers.rst
    M clang/include/clang/ASTMatchers/ASTMatchers.h
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Basic/DiagnosticParseKinds.td
    M clang/include/clang/Basic/arm_sve.td
    M clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
    M clang/lib/AST/ASTDiagnostic.cpp
    M clang/lib/AST/ASTImporter.cpp
    M clang/lib/AST/ByteCode/Compiler.cpp
    M clang/lib/AST/ByteCode/Context.cpp
    M clang/lib/AST/ByteCode/Context.h
    M clang/lib/AST/ByteCode/Integral.h
    M clang/lib/AST/ByteCode/Interp.cpp
    M clang/lib/AST/ByteCode/Interp.h
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp
    M clang/lib/AST/ItaniumMangle.cpp
    M clang/lib/ASTMatchers/ASTMatchersInternal.cpp
    M clang/lib/Basic/Targets/WebAssembly.h
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Driver/ToolChains/Hexagon.cpp
    M clang/lib/Parse/ParseDecl.cpp
    M clang/lib/Sema/CheckExprLifetime.cpp
    M clang/lib/Sema/SemaAttr.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaTemplateDeduction.cpp
    M clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt
    R clang/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp
    M clang/lib/StaticAnalyzer/Core/CoreEngine.cpp
    M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
    M clang/lib/StaticAnalyzer/Core/MemRegion.cpp
    M clang/lib/StaticAnalyzer/Core/ProgramState.cpp
    A clang/test/AST/ByteCode/altivec.c
    M clang/test/AST/ByteCode/builtin-functions.cpp
    M clang/test/AST/ByteCode/vectors.cpp
    M clang/test/AST/attr-lifetime-capture-by.cpp
    R clang/test/Analysis/identical-expressions.cpp
    M clang/test/Analysis/initializer.cpp
    M clang/test/CXX/drs/cwg722.cpp
    M clang/test/CXX/temp/temp.deduct.guide/p3.cpp
    M clang/test/CodeGen/AArch64/pure-scalable-args.c
    M clang/test/CodeGen/AArch64/sve-acle-__ARM_FEATURE_SVE_VECTOR_OPERATORS.cpp
    M clang/test/CodeGen/AArch64/sve-vls-arith-ops.c
    M clang/test/CodeGen/AArch64/sve-vls-bitwise-ops.c
    M clang/test/CodeGen/AArch64/sve-vls-compare-ops.c
    M clang/test/CodeGen/AArch64/sve-vls-shift-ops.c
    M clang/test/CodeGen/RISCV/attr-rvv-vector-bits-cast.c
    M clang/test/CodeGen/RISCV/attr-rvv-vector-bits-codegen.c
    M clang/test/CodeGen/RISCV/rvv-vls-arith-ops.c
    M clang/test/CodeGen/RISCV/rvv-vls-bitwise-ops.c
    M clang/test/CodeGen/RISCV/rvv-vls-compare-ops.c
    M clang/test/CodeGen/RISCV/rvv-vls-shift-ops.c
    M clang/test/CodeGen/alias.cpp
    M clang/test/CodeGen/attr-arm-sve-vector-bits-cast.c
    M clang/test/CodeGen/attr-arm-sve-vector-bits-codegen.c
    M clang/test/CodeGen/attr-counted-by.c
    A clang/test/CodeGenCXX/aarch64-mangle-sme-atts.cpp
    M clang/test/Driver/codeview-column-info.c
    M clang/test/Driver/print-supported-extensions-riscv.c
    M clang/test/Driver/unsupported-option.c
    M clang/test/Misc/diag-template-diffing-cxx98.cpp
    A clang/test/Parser/cxx2c-oxford-variadic-comma.cpp
    M clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
    A clang/test/SemaTemplate/template-args-deduction-aggregates.cpp
    M clang/unittests/AST/ASTImporterTest.cpp
    M clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp
    M clang/utils/TableGen/ClangOpcodesEmitter.cpp
    M clang/utils/TableGen/SveEmitter.cpp
    M clang/www/cxx_status.html
    R compiler-rt/CODE_OWNERS.TXT
    A compiler-rt/Maintainers.txt
    M compiler-rt/lib/builtins/cpu_model/x86.c
    M compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp
    M compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp
    M compiler-rt/test/builtins/Unit/atomic_test.c
    A compiler-rt/test/rtsan/syscall.cpp
    M flang/examples/FeatureList/FeatureList.cpp
    M flang/examples/FlangOmpReport/FlangOmpReportVisitor.cpp
    M flang/examples/FlangOmpReport/FlangOmpReportVisitor.h
    M flang/include/flang/Optimizer/Builder/HLFIRTools.h
    M flang/include/flang/Optimizer/CodeGen/FIROpPatterns.h
    M flang/include/flang/Optimizer/CodeGen/Target.h
    M flang/include/flang/Optimizer/HLFIR/HLFIROps.td
    M flang/include/flang/Parser/dump-parse-tree.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/include/flang/Semantics/openmp-modifiers.h
    M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
    M flang/lib/Lower/OpenMP/Clauses.cpp
    M flang/lib/Lower/OpenMP/Clauses.h
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    M flang/lib/Optimizer/Builder/HLFIRTools.cpp
    M flang/lib/Optimizer/CodeGen/Target.cpp
    M flang/lib/Optimizer/CodeGen/TargetRewrite.cpp
    M flang/lib/Optimizer/HLFIR/IR/HLFIROps.cpp
    M flang/lib/Optimizer/HLFIR/Transforms/BufferizeHLFIR.cpp
    M flang/lib/Parser/openmp-parsers.cpp
    M flang/lib/Parser/unparse.cpp
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/check-omp-structure.h
    M flang/lib/Semantics/openmp-modifiers.cpp
    M flang/lib/Semantics/resolve-directives.cpp
    M flang/test/Fir/target-rewrite-boxchar.fir
    M flang/test/Fir/target.fir
    A flang/test/HLFIR/eval_in_mem-codegen.fir
    A flang/test/HLFIR/eval_in_mem.fir
    M flang/test/HLFIR/invalid.fir
    A flang/test/Lower/OpenMP/DelayedPrivatization/wsloop.f90
    A flang/test/Lower/OpenMP/Todo/atomic-compare.f90
    M flang/test/Parser/OpenMP/affinity-clause.f90
    M flang/test/Parser/OpenMP/allocators-unparse.f90
    A flang/test/Parser/OpenMP/atomic-compare.f90
    M flang/test/Parser/OpenMP/atomic-unparse.f90
    M flang/test/Parser/OpenMP/bind-clause.f90
    M flang/test/Parser/OpenMP/declare_target-device_type.f90
    M flang/test/Parser/OpenMP/proc-bind.f90
    M flang/test/Parser/OpenMP/target-loop-unparse.f90
    M flang/test/Parser/OpenMP/target_device_parse.f90
    M flang/test/Parser/OpenMP/target_device_unparse.f90
    M flang/test/Semantics/OpenMP/allocate-clause01.f90
    M flang/test/Semantics/OpenMP/allocators01.f90
    M flang/test/Semantics/OpenMP/allocators04.f90
    M flang/test/Semantics/OpenMP/allocators05.f90
    M flang/test/Semantics/OpenMP/allocators06.f90
    A flang/test/Semantics/OpenMP/atomic-compare.f90
    M flang/test/Semantics/OpenMP/atomic.f90
    M flang/test/Semantics/OpenMP/clause-validity01.f90
    M flang/test/Semantics/OpenMP/resolve06.f90
    M libc/src/__support/threads/linux/rwlock.h
    M libcxx/docs/Status/Cxx23Papers.csv
    M libcxx/docs/Status/Cxx2cIssues.csv
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/include/__configuration/availability.h
    M libcxx/utils/ci/run-buildbot-container
    M lld/Common/ErrorHandler.cpp
    M lld/ELF/Arch/Hexagon.cpp
    M lld/ELF/Arch/PPC64.cpp
    M lld/ELF/ICF.cpp
    M lld/ELF/InputFiles.cpp
    M lld/ELF/InputFiles.h
    M lld/ELF/InputSection.cpp
    M lld/ELF/InputSection.h
    M lld/ELF/OutputSections.cpp
    M lld/ELF/Relocations.cpp
    M lld/ELF/Symbols.cpp
    M lld/ELF/Target.cpp
    M lld/ELF/Writer.cpp
    M lld/include/lld/Common/ErrorHandler.h
    M lld/test/ELF/invalid-eh-frame3.s
    M lld/test/ELF/invalid-eh-frame6.s
    M lld/test/ELF/linkerscript/i386-sections-max-va-overflow.s
    M lld/test/ELF/linkerscript/locationcountererr-arm-exidx.test
    M lld/test/ELF/linkerscript/sections-max-va-overflow.s
    M lld/test/ELF/tls.s
    M lld/test/ELF/undef-multi.s
    M lld/test/ELF/undef.s
    M lldb/packages/Python/lldbsuite/test/lldbtest.py
    M lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
    M lldb/unittests/debugserver/RNBSocketTest.cpp
    M llvm/Maintainers.md
    M llvm/docs/RISCVUsage.rst
    M llvm/docs/ReleaseNotes.md
    M llvm/include/llvm/ADT/SmallPtrSet.h
    M llvm/include/llvm/Analysis/InlineCost.h
    M llvm/include/llvm/Analysis/ScalarEvolution.h
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
    M llvm/include/llvm/Analysis/ValueTracking.h
    M llvm/include/llvm/BinaryFormat/ELFRelocs/AArch64.def
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h
    M llvm/include/llvm/Frontend/OpenMP/ClauseT.h
    M llvm/include/llvm/IR/IntrinsicsDirectX.td
    M llvm/include/llvm/LineEditor/LineEditor.h
    M llvm/include/llvm/Support/TimeProfiler.h
    M llvm/lib/Analysis/InlineCost.cpp
    M llvm/lib/Analysis/InstructionSimplify.cpp
    M llvm/lib/Analysis/LazyValueInfo.cpp
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/CodeGen/SelectOptimize.cpp
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    M llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
    M llvm/lib/LineEditor/LineEditor.cpp
    M llvm/lib/Support/FormattedStream.cpp
    M llvm/lib/Support/SmallPtrSet.cpp
    M llvm/lib/Support/YAMLTraits.cpp
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    M llvm/lib/Target/AArch64/AArch64Subtarget.h
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
    M llvm/lib/Target/AArch64/SVEInstrFormats.td
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
    M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
    M llvm/lib/Target/AMDGPU/GCNSubtarget.h
    M llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp
    M llvm/lib/Target/AMDGPU/SIOptimizeVGPRLiveRange.cpp
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
    M llvm/lib/Target/AMDGPU/VOP3Instructions.td
    M llvm/lib/Target/DirectX/DXIL.td
    M llvm/lib/Target/DirectX/DXILOpLowering.cpp
    M llvm/lib/Target/Hexagon/HexagonPatterns.td
    M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
    M llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
    M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
    M llvm/lib/Target/RISCV/RISCVFeatures.td
    M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
    M llvm/lib/Target/RISCV/RISCVFrameLowering.h
    M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoXqci.td
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
    M llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVDuplicatesTracker.cpp
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
    M llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
    M llvm/lib/Target/SPIRV/SPIRVPostLegalizer.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.h
    M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
    M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/lib/Target/X86/X86TargetTransformInfo.h
    M llvm/lib/TargetParser/Host.cpp
    M llvm/lib/TargetParser/RISCVISAInfo.cpp
    A llvm/lib/Transforms/Coroutines/CoroCloner.h
    M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
    M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/test/Analysis/CostModel/AArch64/sve-gather.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-intrinsics.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-scatter.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-insert_subvector-codesize.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-insert_subvector-latency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-insert_subvector-sizelatency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-insert_subvector.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-transpose-codesize.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-transpose-latency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-transpose-sizelatency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-transpose.ll
    A llvm/test/Analysis/LoopAccessAnalysis/nssw-predicate-implied.ll
    A llvm/test/Analysis/ScalarEvolution/pr117133.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-no-op-intrinsics.ll
    M llvm/test/CodeGen/AArch64/concat-vector.ll
    M llvm/test/CodeGen/AArch64/extract-insert.ll
    M llvm/test/CodeGen/AArch64/selectopt-cast.ll
    A llvm/test/CodeGen/AArch64/stack-hazard-windows.ll
    M llvm/test/CodeGen/AArch64/stack-hazard.ll
    M llvm/test/CodeGen/AArch64/vec3-loads-ext-trunc-stores.ll
    A llvm/test/CodeGen/AArch64/zeroing-forms-fcvt-bfcvt.ll
    A llvm/test/CodeGen/AArch64/zeroing-forms-fcvtlt-fcvtx.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/mul.ll
    M llvm/test/CodeGen/AMDGPU/bitop3.ll
    M llvm/test/CodeGen/AMDGPU/hazards-gfx950.mir
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk.gfx950.ll
    M llvm/test/CodeGen/AMDGPU/materialize-frame-index-sgpr.ll
    M llvm/test/CodeGen/AMDGPU/mul.i16.ll
    M llvm/test/CodeGen/ARM/2012-03-13-DAGCombineBug.ll
    A llvm/test/CodeGen/DirectX/group_memory_barrier_with_group_sync.ll
    R llvm/test/CodeGen/Generic/builtin-expect-with-probability.ll
    A llvm/test/CodeGen/Hexagon/addrmode-neg-offset.ll
    M llvm/test/CodeGen/PowerPC/scalar_vector_test_5.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/double-intrinsics.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/float-intrinsics.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir
    M llvm/test/CodeGen/RISCV/attributes.ll
    M llvm/test/CodeGen/RISCV/rv64-float-convert-strict.ll
    M llvm/test/CodeGen/RISCV/rv64-float-convert.ll
    M llvm/test/CodeGen/RISCV/rv64-half-convert-strict.ll
    M llvm/test/CodeGen/RISCV/rv64-half-convert.ll
    M llvm/test/CodeGen/RISCV/rvv/compressstore.ll
    M llvm/test/CodeGen/RISCV/rvv/sink-splat-operands.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_function_pointers/fp_const.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_function_pointers/fp_two_calls.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_subgroups/cl_intel_sub_groups.ll
    M llvm/test/CodeGen/SPIRV/instructions/ret-type.ll
    A llvm/test/CodeGen/SPIRV/pointers/builtin-ret-reg-type.ll
    A llvm/test/CodeGen/SPIRV/pointers/gep-types-1.ll
    A llvm/test/CodeGen/SPIRV/pointers/gep-types-2.ll
    A llvm/test/CodeGen/SPIRV/pointers/phi-chain-types.ll
    M llvm/test/CodeGen/SPIRV/pointers/phi-valid-operand-types.ll
    A llvm/test/CodeGen/SPIRV/pointers/type-deduce-via-store-load-args-rev.ll
    M llvm/test/CodeGen/SPIRV/transcoding/OpGenericCastToPtr.ll
    M llvm/test/CodeGen/SPIRV/transcoding/spirv-event-null.ll
    A llvm/test/CodeGen/SPIRV/validate/sycl-hier-par-basic.ll
    M llvm/test/CodeGen/X86/fast-isel-expect.ll
    M llvm/test/CodeGen/X86/load-partial.ll
    M llvm/test/CodeGen/X86/pr50609.ll
    A llvm/test/MC/RISCV/xqcia-invalid.s
    A llvm/test/MC/RISCV/xqcia-valid.s
    A llvm/test/MachineVerifier/RISCV/lit.local.cfg
    M llvm/test/MachineVerifier/RISCV/subreg-liveness.mir
    A llvm/test/Transforms/CodeGenPrepare/X86/pr118172.ll
    M llvm/test/Transforms/CorrelatedValuePropagation/vectors.ll
    A llvm/test/Transforms/IndVarSimplify/pr117133.ll
    A llvm/test/Transforms/Inline/AArch64/memcpy-constant-size.ll
    A llvm/test/Transforms/InstCombine/canonicalize-const-to-bop.ll
    M llvm/test/Transforms/InstCombine/fpclass-from-dom-cond.ll
    M llvm/test/Transforms/InstCombine/minmax-fold.ll
    M llvm/test/Transforms/InstCombine/saturating-add-sub.ll
    M llvm/test/Transforms/InstCombine/select-value-equivalence.ll
    M llvm/test/Transforms/InstCombine/select.ll
    M llvm/test/Transforms/InstCombine/unsigned_saturated_sub.ll
    M llvm/test/Transforms/InstSimplify/compare.ll
    M llvm/test/Transforms/InstSimplify/icmp-monotonic.ll
    A llvm/test/Transforms/LoopUnroll/AArch64/apple-unrolling.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/clamped-trip-count.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/conditional-branches-cost.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/induction-costs-sve.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/low_trip_count_predicates.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/reduction-recurrence-costs-sve.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/scalable-vectorization-cost-tuning.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/scalable-vf-hint.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/store-costs-sve.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-strict-fadd-cost.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/type-shrinkage-zext-costs.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/veclib-function-calls.ll
    A llvm/test/Transforms/PhaseOrdering/AArch64/memcpy-constant-size.ll
    M llvm/test/Transforms/PhaseOrdering/SystemZ/sub-xor.ll
    M llvm/test/Transforms/PhaseOrdering/X86/pr94546.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/reduce-fadd.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/reduction.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/horizontal-list.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/partial-vec-invalid-cost.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/reductions.ll
    M llvm/test/Transforms/SLPVectorizer/SystemZ/vec-elt-insertion.ll
    M llvm/test/Transforms/SLPVectorizer/X86/bool-mask.ll
    M llvm/test/Transforms/SLPVectorizer/X86/external-used-across-reductions.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extract-scalar-from-undef.ll
    M llvm/test/Transforms/SLPVectorizer/X86/horizontal-list.ll
    M llvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
    M llvm/test/Transforms/SLPVectorizer/X86/malformed_phis.ll
    M llvm/test/Transforms/SLPVectorizer/X86/multi-tracked-reduced-value.ll
    M llvm/test/Transforms/SLPVectorizer/X86/phi-node-reshuffled-part.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reduced-val-extracted-and-externally-used.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reduction-extracted-value.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reduction-logical.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reduction-transpose.ll
    M llvm/test/Transforms/SLPVectorizer/X86/revectorized_rdx_crash.ll
    M llvm/test/Transforms/SLPVectorizer/X86/undef_vect.ll
    M llvm/test/Transforms/SLPVectorizer/partial-register-extract.ll
    M llvm/test/Transforms/SLPVectorizer/reduction-modified-values.ll
    M llvm/test/Transforms/SLPVectorizer/scalarization-overhead.ll
    M llvm/test/tools/llvm-readobj/ELF/reloc-types-aarch64.test
    M llvm/unittests/Frontend/OpenMPDecompositionTest.cpp
    M llvm/unittests/Support/YAMLIOTest.cpp
    M llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
    M llvm/utils/TableGen/AsmMatcherEmitter.cpp
    M llvm/utils/TableGen/DXILEmitter.cpp
    M llvm/utils/gn/secondary/bolt/unittests/Core/BUILD.gn
    M llvm/utils/gn/secondary/clang/lib/StaticAnalyzer/Checkers/BUILD.gn
    A llvm/utils/merge-json.py
    M mlir/include/mlir/Conversion/LLVMCommon/Pattern.h
    M mlir/include/mlir/Dialect/Affine/IR/AffineOps.td
    M mlir/include/mlir/Dialect/Utils/ReshapeOpsUtils.h
    M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
    M mlir/include/mlir/IR/CommonTypeConstraints.td
    M mlir/include/mlir/Interfaces/DestinationStyleOpInterface.td
    M mlir/include/mlir/Transforms/DialectConversion.h
    M mlir/lib/Dialect/Func/Transforms/DecomposeCallGraphTypes.cpp
    M mlir/lib/Dialect/Func/Transforms/FuncConversions.cpp
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/lib/Dialect/SCF/Transforms/StructuralTypeConversions.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorCodegen.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorDescriptor.h
    M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
    M mlir/lib/Transforms/Utils/DialectConversion.cpp
    M mlir/python/mlir/dialects/func.py
    M mlir/test/Dialect/Tensor/canonicalize.mlir
    M mlir/test/Dialect/Tensor/invalid.mlir
    M mlir/test/Dialect/Vector/invalid.mlir
    M mlir/test/Transforms/decompose-call-graph-types.mlir
    M mlir/test/Transforms/test-legalizer.mlir
    M mlir/test/lib/Dialect/Test/TestOps.td
    M mlir/test/lib/Dialect/Test/TestPatterns.cpp
    M mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
    M mlir/test/python/dialects/func.py
    M offload/test/mapping/map_both_pointer_pointee.c
    R offload/test/mapping/power_of_two_alignment.c
    A offload/test/mapping/power_of_two_alignment.cpp
    M runtimes/CMakeLists.txt

  Log Message:
  -----------
  Tests update

Created using spr 1.3.5


Compare: https://github.com/llvm/llvm-project/compare/708daae52449...ff0e05885e43

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