[all-commits] [llvm/llvm-project] a853d7: [RISCV][GISel] Don't check for FP uses of of IMPLI...

Vitaly Buka via All-commits all-commits at lists.llvm.org
Thu Apr 4 12:27:18 PDT 2024


  Branch: refs/heads/users/vitalybuka/spr/main.nfchwasan-cleanup-opt-opt-test
  Home:   https://github.com/llvm/llvm-project
  Commit: a853d79963c6ac09154817690a8c317157345876
      https://github.com/llvm/llvm-project/commit/a853d79963c6ac09154817690a8c317157345876
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.cpp

  Log Message:
  -----------
  [RISCV][GISel] Don't check for FP uses of of IMPLICIT_DEF if the type is vector. NFC

If the type is vector, we can immediately know to use vector mapping.
Previously we searched for FP uses, but then replaced it if the type
was vector.


  Commit: a4c470555b5c311770e6cb58494c573c4efe53d6
      https://github.com/llvm/llvm-project/commit/a4c470555b5c311770e6cb58494c573c4efe53d6
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorPasses.cpp
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg-invalid.mlir
    M mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-yaml-gen.cpp

  Log Message:
  -----------
  [mlir][linalg] Fix builder API usage in `RegionBuilderHelper` (#87451)

Operations must be created with the supplied builder. Otherwise, the
dialect conversion / greedy pattern rewrite driver can break.

This commit fixes a crash in the dialect conversion:
```
within split at llvm-project/mlir/test/Conversion/TosaToLinalg/tosa-to-linalg-invalid.mlir:1 offset :8:8: error: failed to legalize operation 'tosa.add'
  %0 = tosa.add %1, %arg2 : (tensor<10x10xf32>, tensor<*xf32>) -> tensor<*xf32>
       ^
within split at llvm-project/mlir/test/Conversion/TosaToLinalg/tosa-to-linalg-invalid.mlir:1 offset :8:8: note: see current operation: %9 = "tosa.add"(%8, %arg2) : (tensor<10x10xf32>, tensor<*xf32>) -> tensor<*xf32>
mlir-opt: llvm-project/mlir/include/mlir/IR/UseDefLists.h:198: mlir::IRObjectWithUseList<mlir::OpOperand>::~IRObjectWithUseList() [OperandType = mlir::OpOperand]: Assertion `use_empty() && "Cannot destroy a value that still has uses!"' failed.
```

This commit is the proper fix for #87297 (which was reverted).


  Commit: fb635be0b8a3e14ca38f3f74e8224f9e0f716a10
      https://github.com/llvm/llvm-project/commit/fb635be0b8a3e14ca38f3f74e8224f9e0f716a10
  Author: Hristo Hristov <hghristov.rmm at gmail.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/docs/UsingLibcxx.rst
    M libcxx/include/strstream
    M libcxx/modules/std/strstream.inc
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/ccp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/ccp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/cp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/cp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.members/rdbuf.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.members/str.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.verify.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/types.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.cons/cp_size_mode.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.cons/default.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.members/freeze.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.members/pcount.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.members/rdbuf.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.members/str.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.verify.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/types.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.cons/cp_size_mode.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.cons/default.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.dest/rdbuf.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.oper/freeze.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.oper/pcount.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.oper/str.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.verify.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/types.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/ccp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/cp_size_cp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/cscp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/cucp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/custom_alloc.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/default.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/scp_size_scp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/ucp_size_ucp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/freeze.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/overflow.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/pcount.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/str.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/overflow.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/pbackfail.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/seekoff.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/seekpos.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/setbuf.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/underflow.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.verify.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/types.pass.cpp

  Log Message:
  -----------
  [libc++] P2867R1: Remove Deprecated `strstream`s From C++26 (#87107)

Implements: https://wg21.link/P2867R2

---------

Co-authored-by: Hristo Hristov <zingam at outlook.com>


  Commit: 07d5f491867d390b9aee33035c187e27cf0746a0
      https://github.com/llvm/llvm-project/commit/07d5f491867d390b9aee33035c187e27cf0746a0
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsll.ll

  Log Message:
  -----------
  [RISCV] Add patterns for fixed vector vwsll (#87316)

Fixed vectors have their sext/zext operands legalized to _VL nodes, so
we need to handle them in the patterns.

This adds a riscv_ext_vl_oneuse pattern since we don't care about the
type of extension used for the shift amount, and extends
Low8BitsSplatPat to handle other _VL nodes. We don't actually need to
check the mask or VL there since none of the _VL nodes have passthru
operands.

The remaining test cases that are widening from i8->i64 need to be
handled by extending combineBinOp_VLToVWBinOp_VL.

This also fixes Low8BitsSplatPat incorrectly checking the vector size
instead of the element size to determine if the splat value might have
been truncated below 8 bits.


  Commit: 698bf3dafcc0dfa15540ae7f1f9b72208a578bd2
      https://github.com/llvm/llvm-project/commit/698bf3dafcc0dfa15540ae7f1f9b72208a578bd2
  Author: Sourabh Singh Tomar <sourabhsingh.tomar at amd.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/ReductionProcessor.cpp
    M flang/test/Lower/OpenMP/parallel-reduction-array.f90
    M flang/test/Lower/OpenMP/parallel-reduction-array2.f90
    A flang/test/Lower/OpenMP/parallel-reduction3.f90
    M flang/test/Lower/OpenMP/wsloop-reduction-array.f90
    M flang/test/Lower/OpenMP/wsloop-reduction-array2.f90

  Log Message:
  -----------
  [flang][OpenMP] Fix for #86393 (#87452)


  Commit: e8aaa3eaedc3b5519747a68e772f0bc664b89154
      https://github.com/llvm/llvm-project/commit/e8aaa3eaedc3b5519747a68e772f0bc664b89154
  Author: Gulfem Savrun Yeniceri <gulfem at google.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M libc/config/baremetal/api.td
    M libc/config/gpu/api.td
    M libc/config/linux/api.td
    M libc/include/CMakeLists.txt
    M libc/spec/posix.td
    M libc/src/stdio/fseeko.h
    M libc/src/stdio/ftello.h

  Log Message:
  -----------
  Revert "[libc] Added transitive bindings for OffsetType (#87397)"

This reverts commit 3ee93f486293420852fb9ec95af9c5f54cecdb08
because it broke Fuchsia Clang toolchain builders:
https://logs.chromium.org/logs/fuchsia/buildbucket/cr-buildbucket/8751633430491432833/+/u/clang/build/stdout


  Commit: 3a7b5223a6639e497c856368da11b5d74ec9d6e8
      https://github.com/llvm/llvm-project/commit/3a7b5223a6639e497c856368da11b5d74ec9d6e8
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/test/CodeGen/RISCV/intrinsic-cttz-elts-vscale.ll
    A llvm/test/CodeGen/RISCV/rvv/fold-binop-into-select.ll
    M llvm/test/CodeGen/RISCV/rvv/vscale-vw-web-simplification.ll

  Log Message:
  -----------
  [DAGCombiner][RISCV] Handle truncating splats in isNeutralConstant (#87338)

On RV64, we legalize zexts of i1s to (vselect m, (splat_vector i64 1),
(splat_vector i64 0)), where the splat_vectors are implicitly
truncating.

When the vselect is used by a binop we want to pull the vselect out via
foldSelectWithIdentityConstant. But because vectors with an element size
< i64 will truncate, isNeutralConstant will return false.

This patch handles truncating splats by getting the APInt value and
truncating it. We almost don't need to do this since most of the neutral
elements are either one/zero/all ones, but it will make a difference for
smax and smin.

I wasn't able to figure out a way to write the tests in terms of select,
since we need the i1 zext legalization to create a truncating
splat_vector.

This supercedes #87236. Fixed vectors are unfortunately not handled by
this patch (since they get legalized to _VL nodes), but they don't seem
to appear in the wild.


  Commit: d89914f30bc7c180fe349a5aa0f03438ae6c20a4
      https://github.com/llvm/llvm-project/commit/d89914f30bc7c180fe349a5aa0f03438ae6c20a4
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/include/llvm/ProfileData/MemProf.h
    M llvm/lib/ProfileData/InstrProfReader.cpp
    M llvm/lib/ProfileData/InstrProfWriter.cpp
    M llvm/lib/ProfileData/MemProf.cpp
    M llvm/unittests/ProfileData/MemProfTest.cpp

  Log Message:
  -----------
  [memprof] Add Version2 of IndexedMemProfRecord serialization (#87455)

I'm currently developing a new version of the indexed memprof format
where we deduplicate call stacks in IndexedAllocationInfo::CallStack
and IndexedMemProfRecord::CallSites.  We refer to call stacks with
integer IDs, namely CallStackId, just as we refer to Frame with
FrameId.  The deduplication will cut down the profile file size by 80%
in a large memprof file of mine.

As a step toward the goal, this patch teaches
IndexedMemProfRecord::{serialize,deserialize} to speak Version2.  A
subsequent patch will add Version2 support to llvm-profdata.

The essense of the patch is to replace the serialization of a call
stack, a vector of FrameIDs, with that of a CallStackId.  That is:

  const IndexedAllocationInfo &N = ...;
  ...
  LE.write<uint64_t>(N.CallStack.size());
  for (const FrameId &Id : N.CallStack)
    LE.write<FrameId>(Id);

becomes:

  LE.write<CallStackId>(N.CSId);


  Commit: 4f19f15a601a5761b12c9c66d99d97dbc89ef90d
      https://github.com/llvm/llvm-project/commit/4f19f15a601a5761b12c9c66d99d97dbc89ef90d
  Author: Daniil Kovalev <dkovalev at accesssoftek.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/include/llvm/BinaryFormat/ELF.h
    M llvm/test/tools/llvm-readobj/ELF/AArch64/aarch64-feature-pauth.s
    M llvm/test/tools/llvm-readobj/ELF/AArch64/aarch64-note-gnu-property.s
    M llvm/tools/llvm-readobj/ELFDumper.cpp

  Log Message:
  -----------
  [PAC][llvm-readobj][AArch64][ELF] Support `GNU_PROPERTY_AARCH64_FEATURE_PAUTH` (#87545)

Reland #85231 after fixing build failure
https://lab.llvm.org/buildbot/#/builders/186/builds/15631.
Use `PRIx64` for format output of `uint64_t` as hex.
Original PR description below.

This adds support for `GNU_PROPERTY_AARCH64_FEATURE_PAUTH` feature (as
defined in https://github.com/ARM-software/abi-aa/pull/240) handling in
llvm-readobj and llvm-readelf. The following constants for supported
platforms are also introduced:

- `AARCH64_PAUTH_PLATFORM_INVALID = 0x0`
- `AARCH64_PAUTH_PLATFORM_BAREMETAL = 0x1`
- `AARCH64_PAUTH_PLATFORM_LLVM_LINUX = 0x10000002`

For the llvm_linux platform, output of the tools contains descriptions
of PAuth features which are enabled/disabled depending on the version
value. Version value bits correspond to the following `LangOptions`
defined in #85232:

- bit 0: `PointerAuthIntrinsics`;
- bit 1: `PointerAuthCalls`;
- bit 2: `PointerAuthReturns`;
- bit 3: `PointerAuthAuthTraps`;
- bit 4: `PointerAuthVTPtrAddressDiscrimination`;
- bit 5: `PointerAuthVTPtrTypeDiscrimination`;
- bit 6: `PointerAuthInitFini`.

Support for `.note.AARCH64-PAUTH-ABI-tag` is dropped since it's deleted
from the spec in ARM-software/abi-aa#250.


  Commit: d4cd65ecf2546e509f43363f96364c976f49b9da
      https://github.com/llvm/llvm-project/commit/d4cd65ecf2546e509f43363f96364c976f49b9da
  Author: Andreas Jonson <andjo403 at hotmail.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

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

  Log Message:
  -----------
  [LVI] Handle range attributes (#86413)

This adds handling of range attribute for return values of Call and
Invoke in getFromRangeMetadata and handling of argument with range
attribute in solveBlockValueNonLocal.
There is one additional check of the range metadata at line 1120 in
getValueFromSimpleICmpCondition that is not covered in this PR as after
https://github.com/llvm/llvm-project/pull/75311 there is no test that
cover that check any more and I have not been able to create a test that
trigger that code.


  Commit: d6e458219897fad0e460e663833b2190af48c06d
      https://github.com/llvm/llvm-project/commit/d6e458219897fad0e460e663833b2190af48c06d
  Author: Christian Ulmann <christianulmann at gmail.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/LLVMIR/IR/LLVMMemorySlot.cpp
    M mlir/test/Dialect/LLVMIR/mem2reg.mlir

  Log Message:
  -----------
  [MLIR][LLVM][Mem2Reg] Relax type equality requirement for load and store (#87504)

This commit relaxes Mem2Reg's type equality requirement for the LLVM
dialect's load and store operations. For now, we only allow loads to be
promoted if the reaching definition can be casted into a value of the
target type.

For stores, all type checks are removed, as a non-volatile store that
does not write out the alloca's pointer can always be deleted.


  Commit: e69cab7f37cf6f35306356cddb26049fd6138df7
      https://github.com/llvm/llvm-project/commit/e69cab7f37cf6f35306356cddb26049fd6138df7
  Author: Jan Patrick Lehr <JanPatrick.Lehr at amd.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M flang/unittests/Runtime/Time.cpp

  Log Message:
  -----------
  [Flang] Make SLES 15 build tests (#87498)

SLES 15 comes with a GCC 7.5 as default, which does not support the
C++17 `<charconv>` header. This results in build errors when trying to
run `check-flang`.
This patch addresses that and uses the older `std::stol` for the string
-> number conversion to allow the SLES 15 buildbot
(https://lab.llvm.org/staging/#/builders/193) to turn green.


  Commit: d542cb3175f0c5691808b9c50234788c7be1154f
      https://github.com/llvm/llvm-project/commit/d542cb3175f0c5691808b9c50234788c7be1154f
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M mlir/lib/Interfaces/ValueBoundsOpInterface.cpp

  Log Message:
  -----------
  [mlir][Interfaces][NFC] `ValueBoundsConstraintSet`: Delete dead code (#86098)

There is an assertion that the stop condition is not satisfied for the
the starting point at the beginning of `computeBound`. Therefore, that
case does not have to be handled later on in that function.


  Commit: 35886dc63a2d024e20c10d2e1cb3f5fa5d9f72cc
      https://github.com/llvm/llvm-project/commit/35886dc63a2d024e20c10d2e1cb3f5fa5d9f72cc
  Author: Haojian Wu <hokein.wu at gmail.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

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

  Log Message:
  -----------
  [clang] Remove an unintended statement, NFC


  Commit: 550e09db1ad6e8f28546fa0c24b5582e57e210c4
      https://github.com/llvm/llvm-project/commit/550e09db1ad6e8f28546fa0c24b5582e57e210c4
  Author: Kadir Cetinkaya <kadircet at google.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M clang-tools-extra/clangd/IncludeCleaner.h

  Log Message:
  -----------
  [clangd][NFC] Delete dead code


  Commit: 5e4a44380eed172e9f2954f462e94dac97b8e728
      https://github.com/llvm/llvm-project/commit/5e4a44380eed172e9f2954f462e94dac97b8e728
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Vector/IR/ScalableValueBoundsConstraintSet.h
    M mlir/include/mlir/Interfaces/ValueBoundsOpInterface.h
    M mlir/lib/Dialect/Affine/Transforms/ReifyValueBounds.cpp
    M mlir/lib/Dialect/Arith/Transforms/ReifyValueBounds.cpp
    M mlir/lib/Dialect/Linalg/Transforms/HoistPadding.cpp
    M mlir/lib/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.cpp
    M mlir/lib/Dialect/Vector/IR/ScalableValueBoundsConstraintSet.cpp
    M mlir/lib/Interfaces/ValueBoundsOpInterface.cpp
    M mlir/test/lib/Dialect/Affine/TestReifyValueBounds.cpp

  Log Message:
  -----------
  [mlir][Interfaces][NFC] `ValueBoundsConstraintSet`: Pass stop condition in the constructor (#86099)

This commit changes the API of `ValueBoundsConstraintSet`: the stop
condition is now passed to the constructor instead of `processWorklist`.
That makes it easier to add items to the worklist multiple times and
process them in a consistent manner. The current
`ValueBoundsConstraintSet` is passed as a reference to the stop
function, so that the stop function can be defined before the the
`ValueBoundsConstraintSet` is constructed.

This change is in preparation of adding support for branches.


  Commit: a2306b65d223212dcfafe12c7299262d8d4fdcb4
      https://github.com/llvm/llvm-project/commit/a2306b65d223212dcfafe12c7299262d8d4fdcb4
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M libc/fuzzing/CMakeLists.txt
    A libc/fuzzing/__support/CMakeLists.txt
    A libc/fuzzing/__support/uint_fuzz.cpp
    M libc/src/__support/FPUtil/dyadic_float.h
    M libc/src/__support/UInt.h
    M libc/src/__support/float_to_string.h
    M libc/src/__support/integer_literals.h
    M libc/src/__support/math_extras.h
    M libc/src/__support/number_pair.h
    M libc/test/src/__support/integer_literals_test.cpp
    M libc/test/src/__support/math_extras_test.cpp
    M libc/test/src/__support/uint_test.cpp
    M utils/bazel/llvm-project-overlay/libc/test/src/__support/BUILD.bazel

  Log Message:
  -----------
  [libc] Refactor `BigInt` (#86137)

This patch moves most of the multiprecision logic to the `multiword`
namespace and simplifies some logic in `BigInt`. It also fully
implements the mask and count functions and increases test coverage.

`math_extras.h` is also reworked to make it more concise.


  Commit: 47e996d89d4d1e229451594d4b0752b71e8e231c
      https://github.com/llvm/llvm-project/commit/47e996d89d4d1e229451594d4b0752b71e8e231c
  Author: Vyacheslav Levytskyy <vyacheslav.levytskyy at intel.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
    M llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    M llvm/test/CodeGen/SPIRV/OpVariable_order.ll
    M llvm/test/CodeGen/SPIRV/pointers/type-deduce-by-call-chain.ll
    A llvm/test/CodeGen/SPIRV/pointers/type-deduce-call-no-bitcast.ll

  Log Message:
  -----------
  [SPIR-V] Fix OpVariable instructions place in a function (#87554)

This PR:
* fixes OpVariable instructions place in a function (see
https://github.com/llvm/llvm-project/issues/66261),
* improves type inference,
* helps avoiding unneeded bitcasts when validating function call's

This allows to improve existing and add new test cases with more strict
checks. OpVariable fix refers to "All OpVariable instructions in a
function must be the first instructions in the first block" requirement
from SPIR-V spec.


  Commit: 12735916bd3a63aa9f316af8eebfe9420cfec489
      https://github.com/llvm/llvm-project/commit/12735916bd3a63aa9f316af8eebfe9420cfec489
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M libc/fuzzing/CMakeLists.txt
    R libc/fuzzing/__support/CMakeLists.txt
    R libc/fuzzing/__support/uint_fuzz.cpp
    M libc/src/__support/FPUtil/dyadic_float.h
    M libc/src/__support/UInt.h
    M libc/src/__support/float_to_string.h
    M libc/src/__support/integer_literals.h
    M libc/src/__support/math_extras.h
    M libc/src/__support/number_pair.h
    M libc/test/src/__support/integer_literals_test.cpp
    M libc/test/src/__support/math_extras_test.cpp
    M libc/test/src/__support/uint_test.cpp
    M utils/bazel/llvm-project-overlay/libc/test/src/__support/BUILD.bazel

  Log Message:
  -----------
  Revert "[libc] Refactor `BigInt`" (#87612)

Reverts llvm/llvm-project#86137

Some aarch64 compilers seem to consider that `uint128_t` is not
`is_trivially_constructible` which prevents `bit_cast`-ing.


  Commit: 61efea7142e904e6492e1ce0566ec23d9d221c1e
      https://github.com/llvm/llvm-project/commit/61efea7142e904e6492e1ce0566ec23d9d221c1e
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M libclc/CMakeLists.txt

  Log Message:
  -----------
  [libclc] Fix a couple of issues preventing in-tree builds (#87505)

libclc is mentioned in the list of LLVM_ENABLE_PROJECTS but it isn't
actually possible to build it in-tree for various reasons. Users
currently have to build it via LLVM_ENABLE_EXTERNAL_PROJECTS, which
isn't very well documented.

We can't properly build in-tree because the current system needs to
"see" clang and other tools at CMake configuration time. The general
idea is that we could fix this in the future by moving the compilation
and linking of bitcode libraries to custom commands, which would remove
the dependency on CMake configuration and would allow us to build libclc
after clang and other tools are built in-tree. Since that's a bigger
change, it is being left for later.

Note that with this commit it's *still* not possible to properly build
in-tree - this commit just fixes a few little things that are in the
way. We are now able to build in-tree in the sense that it can be built
as a regular LLVM sub-project, but the tools it uses to compile the
libraries are still picked up from a pre-existing installation of LLVM,
and not from tools built during the same build as libclc.

The things fixed by this commit include:

* Its use of CMAKE_SOURCE_DIR (i.e., assuming it was the top-level
project)
* These have been converted to PROJECT_SOURCE_DIR - should have no
consequences for out-of-tree builds.
* Its prepare_builtins tool insisting on linking against the dynamic
LLVM.so.
* This has been turned from an "llvm executable" into an "llvm utility"
which links against the static libraries.
  * It was also missing a link component for the IRReader library.
* Assuming an output path for its builtin libraries (dependent on the
working directory)
* This has been changed to query CMake for the library target's output
file.
* The spirv-mesa3d and spirv64-mesa3d targets were enabled by default
(or when asking to build 'all' libclc targets), when they require
llvm-spirv as an external dependency.
* They are now only built when the user explicitly asks for them, or
when llvm-spirv is available and the user asks for 'all'.


  Commit: 3cf539fb046457a444e93cefc87cca10cbd3b807
      https://github.com/llvm/llvm-project/commit/3cf539fb046457a444e93cefc87cca10cbd3b807
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergent-control-flow.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.is.private.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.is.shared.ll
    M llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
    M llvm/test/CodeGen/AMDGPU/atomicrmw-expand.ll
    M llvm/test/CodeGen/AMDGPU/cgp-addressing-modes-gfx908.ll
    M llvm/test/CodeGen/AMDGPU/extract-subvector-16bit.ll
    M llvm/test/CodeGen/AMDGPU/function-args.ll
    M llvm/test/CodeGen/AMDGPU/lds-global-non-entry-func.ll
    M llvm/test/CodeGen/AMDGPU/local-atomics-fp.ll
    M llvm/test/CodeGen/AMDGPU/skip-if-dead.ll
    M llvm/test/CodeGen/AMDGPU/transform-block-with-return-to-epilog.ll

  Log Message:
  -----------
  [AMDGPU] Combine or remove redundant waitcnts at the end of each MBB (#87539)

Call generateWaitcnt unconditionally at the end of
SIInsertWaitcnts::insertWaitcntInBlock. Even if we don't need to
generate a new waitcnt instruction it has the effect of combining or
removing redundant waitcnts that were already present. Tests show
various small improvements in waitcnt placement.


  Commit: 708ce8569067c2aabd3cc669b0db90f23e53b3b0
      https://github.com/llvm/llvm-project/commit/708ce8569067c2aabd3cc669b0db90f23e53b3b0
  Author: Stephen Tozer <stephen.tozer at sony.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/include/llvm/IR/DebugProgramInstruction.h
    M llvm/include/llvm/IR/PassManager.h
    M llvm/include/llvm/IR/PrintPasses.h
    M llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp
    M llvm/lib/CodeGen/MIRPrinter.cpp
    M llvm/lib/IR/LegacyPassManager.cpp
    M llvm/lib/Linker/IRMover.cpp
    M llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
    M llvm/tools/llvm-dis/llvm-dis.cpp

  Log Message:
  -----------
  [RemoveDIs][NFC] Use ScopedDbgInfoFormatSetter in more places (#87380)

The class `ScopedDbgInfoFormatSetter` was added as a convenient way to
temporarily change the debug info format of a function or module, as
part of IR printing; since this process is repeated in a number of other
places, this patch uses the format-setter class in those places as well.


  Commit: 7a8cf951b3bdc60feac412200ab9661e009d44ae
      https://github.com/llvm/llvm-project/commit/7a8cf951b3bdc60feac412200ab9661e009d44ae
  Author: Tim Northover <tnorthover at apple.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/test/Driver/mcmodel.c

  Log Message:
  -----------
  AArch64-Darwin: allow -mcmodel=large with (default) PIC

Darwin targets implement -mcmodel=large by forcing all global accesses to use
the GOT, instead of the ELF movz/movk sequence. That means it's compatible with
PIC so the Clang driver shouldn't reject the option.


  Commit: cca9115b1c640a307b510821cb84a1f3bb76b969
      https://github.com/llvm/llvm-project/commit/cca9115b1c640a307b510821cb84a1f3bb76b969
  Author: Daniil Kovalev <dkovalev at accesssoftek.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M lld/ELF/Arch/AArch64.cpp
    M lld/ELF/Config.h
    M lld/ELF/Driver.cpp
    M lld/ELF/InputFiles.cpp
    M lld/ELF/InputFiles.h
    M lld/ELF/InputSection.cpp
    M lld/ELF/Relocations.cpp
    M lld/ELF/Relocations.h
    M lld/ELF/SyntheticSections.cpp
    M lld/ELF/Writer.cpp
    M lld/docs/ReleaseNotes.rst
    M lld/docs/ld.lld.1
    M lld/test/ELF/aarch64-bti-pac-cli-error.s
    A lld/test/ELF/aarch64-feature-pauth.s
    A lld/test/ELF/aarch64-reloc-pauth-ro.s
    A lld/test/ELF/aarch64-reloc-pauth.s

  Log Message:
  -----------
  [lld][AArch64][ELF][PAC] Support AUTH relocations and AUTH ELF marking (#72714)

This patch adds lld support for:

- Dynamic R_AARCH64_AUTH_* relocations (without including RELR compressed AUTH
relocations) as described here:
https://github.com/ARM-software/abi-aa/blob/main/pauthabielf64/pauthabielf64.rst#auth-variant-dynamic-relocations

- .note.AARCH64-PAUTH-ABI-tag section as defined here
https://github.com/ARM-software/abi-aa/blob/main/pauthabielf64/pauthabielf64.rst#elf-marking

Depends on #72713 and #85231

---------

Co-authored-by: Peter Collingbourne <peter at pcc.me.uk>
Co-authored-by: Fangrui Song <i at maskray.me>


  Commit: 71c3f5d617aa132418e87403c8be3cdcd102ab18
      https://github.com/llvm/llvm-project/commit/71c3f5d617aa132418e87403c8be3cdcd102ab18
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M libc/fuzzing/CMakeLists.txt
    A libc/fuzzing/__support/CMakeLists.txt
    A libc/fuzzing/__support/uint_fuzz.cpp
    M libc/src/__support/FPUtil/dyadic_float.h
    M libc/src/__support/UInt.h
    M libc/src/__support/float_to_string.h
    M libc/src/__support/integer_literals.h
    M libc/src/__support/math_extras.h
    M libc/src/__support/number_pair.h
    M libc/test/src/__support/integer_literals_test.cpp
    M libc/test/src/__support/math_extras_test.cpp
    M libc/test/src/__support/uint_test.cpp
    M utils/bazel/llvm-project-overlay/libc/test/src/__support/BUILD.bazel

  Log Message:
  -----------
  [reland][libc] Refactor `BigInt` (#87613)

This is a reland of #86137 with a fix for platforms / compiler that do
not support trivially constructible int128 types.


  Commit: 5334b31e7c41174a418afbfe132bd0a86a47a22e
      https://github.com/llvm/llvm-project/commit/5334b31e7c41174a418afbfe132bd0a86a47a22e
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp

  Log Message:
  -----------
  [mlir][OpenMP][NFC] Use SmallVectorImpl for function arguments (#86978)


  Commit: ed5fe66370cb0ea88913458d71959407dc7b1394
      https://github.com/llvm/llvm-project/commit/ed5fe66370cb0ea88913458d71959407dc7b1394
  Author: Stephen Tozer <stephen.tozer at sony.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/include/llvm/IR/AutoUpgrade.h
    M llvm/lib/IR/AutoUpgrade.cpp

  Log Message:
  -----------
  [RemoveDIs][BC] Reject intrinsic->record upgrades for old-format modules (#87494)

Fixes issue noted at: https://github.com/llvm/llvm-project/pull/86274

When loading bitcode lazily, we may request debug intrinsics be upgraded
to debug records during the module parsing phase; later on we perform
this upgrade when materializing the module functions. If we change the
module's debug info format between parsing and materializing however,
then the requested upgrade is no longer correct and leads to an
assertion. This patch fixes the issue by adding an extra check in the
autoupgrader to see if the upgrade is no longer suitable, and either
exit-out or fall back to the correct intrinsic->intrinsic upgrade if one
is required.


  Commit: 918542d2ce550c0ac3c7e4d753318265f277631b
      https://github.com/llvm/llvm-project/commit/918542d2ce550c0ac3c7e4d753318265f277631b
  Author: Ramkumar Ramachandra <ram.ramachandra at arm.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/include/llvm/BinaryFormat/ELFRelocs/AArch64.def

  Log Message:
  -----------
  ELFRelocs/AArch64: update canonical reference URL (NFC) (#86955)

Update the URL of the reference to be used for AArch64.def, and add some
comments. The canonical aaelf64 document can be found at:

  https://github.com/ARM-software/abi-aa/blob/main/aaelf64/aaelf64.rst


  Commit: 099ecdf1ec2f87b5bae74518166daf1d2b09da45
      https://github.com/llvm/llvm-project/commit/099ecdf1ec2f87b5bae74518166daf1d2b09da45
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    A mlir/test/Target/LLVMIR/openmp-reduction-init-arg.mlir

  Log Message:
  -----------
  [mlir][OpenMP] map argument to reduction initialization region (#86979)

The argument to the initialization region of reduction declarations was
never mapped. This meant that if this argument was accessed inside the
initialization region, that mlir operation would be translated to an
llvm operation with a null argument (failing verification).

Adding the mapping ensures that the right LLVM value can be found when
inlining and converting the initialization region.

We have to separately establish and clean up these mappings for each use
of the reduction declaration because repeated usage of the same
declaration will inline it using a different concrete value for the
block argument.

This argument was never used previously because for most cases the
initialized value depends only upon the type of the reduction, not on
the original variable. It is needed now so that we can read the array
extents for the local copy from the mold.

Flang support for reductions on assumed shape arrays patch 2/3


  Commit: a9d963fdf81dc5c6221a0e915821877c35096aff
      https://github.com/llvm/llvm-project/commit/a9d963fdf81dc5c6221a0e915821877c35096aff
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

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

  Log Message:
  -----------
  [DAG] SoftenFloatResult - add clang-format off/on tags around switch statement. NFC.

Stop clang-format from trying to put all the case on separate lines.


  Commit: d799be8154d6cb9f5a5b0f6a5c41923313731a85
      https://github.com/llvm/llvm-project/commit/d799be8154d6cb9f5a5b0f6a5c41923313731a85
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M flang/lib/Lower/ConvertCall.cpp
    M flang/test/Lower/HLFIR/assumed-rank-iface.f90

  Log Message:
  -----------
  [flang] implement passing assumed-size array to assumed-rank arguments (#87511)

Remove the TODO, the patch that ensured that the descriptor upper bound
is set to -1 was https://github.com/llvm/llvm-project/pull/79156.


  Commit: cbdc86e46c3824dda152db2bd0b9fdb3872ddf87
      https://github.com/llvm/llvm-project/commit/cbdc86e46c3824dda152db2bd0b9fdb3872ddf87
  Author: Andrew V. Teylu <andrewvaughanj at gmail.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    A clang/test/Interpreter/inline-asm.cpp
    M clang/tools/clang-repl/ClangRepl.cpp

  Log Message:
  -----------
  [clang-repl] Add call to 'InitializeAllAsmParsers' (#86727)

This PR fixes the following issue when working with `clang-repl`:

```
fatal error: error in backend: Inline asm not supported by this streamer because we don't have an asm parser for this target
```

When working with the following input (named "unit.cpp"):

```cpp
__asm(".globl _ZSt21ios_base_library_initv");
int x;
```

and then in `clang-repl`:

```
#include "unit.cpp"
x = 10;
```

Signed-off-by: Andrew V. Teylu <andrew.teylu at vector.com>


  Commit: 2d0087424f120c97c8fdecf50e6e5f6a1f3969f2
      https://github.com/llvm/llvm-project/commit/2d0087424f120c97c8fdecf50e6e5f6a1f3969f2
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/freeze-vector.ll
    M llvm/test/CodeGen/X86/widen-load-of-small-alloca-with-zero-upper-half.ll

  Log Message:
  -----------
  [DAG] Remove extract_vector_elt(freeze(x)), idx -> freeze(extract_vector_elt(x), idx) fold (#87480)

Reverse the fold with handling inside canCreateUndefOrPoison for cases where we know that the extract index is in bounds.

This exposed a number or regressions, and required some initial freeze handling of SCALAR_TO_VECTOR, which will require us to properly improve demandedelts support to handle its undef upper elements.

There is still one outstanding regression to be addressed in the future - how do we want to handle folds involving frozen loads?

Fixes #86968


  Commit: dbd6eb6779bc7073c5466e9689eb5a69736d1120
      https://github.com/llvm/llvm-project/commit/dbd6eb6779bc7073c5466e9689eb5a69736d1120
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/ReductionProcessor.cpp
    A flang/test/Lower/OpenMP/wsloop-reduction-array-assumed-shape.f90

  Log Message:
  -----------
  [flang][OpenMP] lower reductions of assumed shape arrays (#86982)

Patch 1: https://github.com/llvm/llvm-project/pull/86978
Patch 2: https://github.com/llvm/llvm-project/pull/86979


  Commit: cc34ad91f0d0cfb4e568e67eedc8a6a3684b89ea
      https://github.com/llvm/llvm-project/commit/cc34ad91f0d0cfb4e568e67eedc8a6a3684b89ea
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/test/Dialect/OpenMP/invalid.mlir
    M mlir/test/Dialect/OpenMP/ops.mlir
    A mlir/test/Target/LLVMIR/openmp-parallel-reduction-cleanup.mlir
    A mlir/test/Target/LLVMIR/openmp-wsloop-reduction-cleanup.mlir

  Log Message:
  -----------
  [MLIR][OpenMP] Add cleanup region to omp.declare_reduction (#87377)

Currently, by-ref reductions will allocate the per-thread reduction
variable in the initialization region. Adding a cleanup region allows
that allocation to be undone. This will allow flang to support reduction
of arrays stored on the heap.

This conflation of allocation and initialization in the initialization
should be fixed in the future to better match the OpenMP standard, but
that is beyond the scope of this patch.


  Commit: 212b2bbcd1583353bccef3418e94912a30775715
      https://github.com/llvm/llvm-project/commit/212b2bbcd1583353bccef3418e94912a30775715
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/test/Transforms/PhaseOrdering/X86/pr67803.ll
    M llvm/test/Transforms/VectorCombine/X86/shuffle-of-casts.ll

  Log Message:
  -----------
  [VectorCombine][X86] foldShuffleOfCastops - fold shuffle(cast(x),cast(y)) -> cast(shuffle(x,y)) iff cost efficient (#87510)

Based off the existing foldShuffleOfBinops fold

Fixes #67803


  Commit: bf2d7858e5998bed28d437973588e0294bd54bcf
      https://github.com/llvm/llvm-project/commit/bf2d7858e5998bed28d437973588e0294bd54bcf
  Author: Zahira Ammarguellat <zahira.ammarguellat at intel.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CGExprComplex.cpp
    M clang/test/CodeGen/cx-complex-range.c

  Log Message:
  -----------
  Fix bug in the type promotion for complex division in strict FP mode. (#87500)

Complex division on Windows with `-fcomplex-arithmetic=promoted` and
`-ffp-model=strict` is crashing. This patch fixes the issue.
See https://godbolt.org/z/15Gh7nvdM


  Commit: 608a663c8ee485c42637d021d554c8d264d556b1
      https://github.com/llvm/llvm-project/commit/608a663c8ee485c42637d021d554c8d264d556b1
  Author: Philip Lassen <plassen at groq.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M mlir/test/Dialect/Affine/SuperVectorize/compose_maps.mlir
    M mlir/test/Dialect/Affine/SuperVectorize/vector_utils.mlir
    M mlir/test/Dialect/Affine/SuperVectorize/vectorize_unsupported.mlir
    M mlir/test/Dialect/Affine/loop-fusion-dependence-check.mlir
    M mlir/test/Dialect/Affine/loop-fusion-slice-computation.mlir
    M mlir/test/Dialect/Affine/loop-fusion-transformation.mlir
    M mlir/test/Dialect/Affine/slicing-utils.mlir
    M mlir/test/lib/Dialect/Affine/TestLoopFusion.cpp
    M mlir/test/lib/Dialect/Affine/TestVectorizationUtils.cpp

  Log Message:
  -----------
  [MLIR] Clean up pass options for test-loop-fusion and affine-super-vectorizer-test (#87606)

Before the change `test-loop-fusion` and `affine-super-vectorizer-test`
options were in their own category. This was because they used the
standard llvm command line parsing with `llvm::cl::opt`. This PR moves
them over to the mlir `Pass::Option` class.

Before the change
```
$ mlir-opt --help

...

  General options:
    ...

  Compiler passes to run
      Passes:
         ...
      Pass Pipelines:
        ...
  Generic Options:
       ....

  affine-super-vectorizer-test options:

    --backward-slicing                           
     ...
    --vectorize-affine-loop-nest
    
  test-loop-fusion options:

    --test-loop-fusion-dependence-check 
   ...
    --test-loop-fusion-transformation 
```

After the change 

```
$ mlir-opt --help

...

  General options:
    ...

  Compiler passes to run
      Passes:
          ...
          --affine-super-vectorizer-test
             --backward-slicing               
                ...
             --vectorize-affine-loop-nest  
          ...
          --test-loop-fusion options:
               --test-loop-fusion-dependence-check   
                ...
                --test-loop-fusion-transformation 
           ...
      Pass Pipelines:
        ...
  Generic Options:
      ...
```

---------

Signed-off-by: philass <plassen at groq.com>


  Commit: 4e0b8eae4cb4328f98e6b748c31050a704d378f6
      https://github.com/llvm/llvm-project/commit/4e0b8eae4cb4328f98e6b748c31050a704d378f6
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/vwsll-sdnode.ll

  Log Message:
  -----------
  [RISCV] Add tests for vwsll for extends > .vf2. NFC

These cannot be picked up by TableGen patterns alone and need to be handled
by combineBinOp_VLToVWBinOp_VL


  Commit: 7bd163d0a4b3c9c9375dc32c9c10162433c42180
      https://github.com/llvm/llvm-project/commit/7bd163d0a4b3c9c9375dc32c9c10162433c42180
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/clamped-trip-count.ll

  Log Message:
  -----------
  [VPlan] Clean up dead recipes after UF & VF specific simplification.

Recursively remove dead recipes after simplifying vector loop exit
branch.


  Commit: 8ae9c6259f833dce87f8d29402b1ddced90887b9
      https://github.com/llvm/llvm-project/commit/8ae9c6259f833dce87f8d29402b1ddced90887b9
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M libc/src/__support/math_extras.h

  Log Message:
  -----------
  [libc] Fix forward `constexpr` `add_with_carry` / `sub_with_borrow`

Introduced in #87613.


  Commit: 1c7fda9f4cde336c4ac30c7478b223536c6eb6d6
      https://github.com/llvm/llvm-project/commit/1c7fda9f4cde336c4ac30c7478b223536c6eb6d6
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/tools/llvm-readobj/ELFDumper.cpp

  Log Message:
  -----------
  Fix MSVC "result of 32-bit shift implicitly converted to 64 bits" warning. NFC.


  Commit: d54d476300d7aaeb6616a11b43e1b8006cad17c9
      https://github.com/llvm/llvm-project/commit/d54d476300d7aaeb6616a11b43e1b8006cad17c9
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

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

  Log Message:
  -----------
  [SLP] Fix Wunused-variable warning. NFC.


  Commit: 3871eaba6bd016b229f2d0e4b75e2be3b65e39a7
      https://github.com/llvm/llvm-project/commit/3871eaba6bd016b229f2d0e4b75e2be3b65e39a7
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/X86/cast.ll
    M llvm/test/Analysis/CostModel/X86/extend.ll

  Log Message:
  -----------
  [CostModel][X86] Update AVX1 sext v8i1 -> v8i32 cost based off worst case llvm-mca numbers

We were using raw instruction count which overestimated the costs for #67803


  Commit: 5ad320abe36357e3290007d3ab353e8637f33720
      https://github.com/llvm/llvm-project/commit/5ad320abe36357e3290007d3ab353e8637f33720
  Author: Victor Campos <victor.campos at arm.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/Target/ARM/Thumb2InstrInfo.cpp
    M llvm/lib/Target/ARM/Thumb2InstrInfo.h
    A llvm/test/CodeGen/ARM/misched-branch-targets.mir

  Log Message:
  -----------
  [ARM][Thumb2] Mark BTI-clearing instructions as scheduling region boundaries (#79173)

Following https://github.com/llvm/llvm-project/pull/68313 this patch
extends the idea to M-profile PACBTI.

The Machine Scheduler can reorder instructions within a scheduling
region depending on the scheduling policy set. If a BTI-clearing
instruction happens to partake in one such region, it might be moved
around, therefore ending up where it shouldn't.

The solution is to mark all BTI-clearing instructions as scheduling
region boundaries. This essentially means that they must not be part of
any scheduling region, and as consequence never get moved:

 - PAC
 - PACBTI
 - BTI
 - SG

Note that PAC isn't BTI-clearing, but it's replaced by PACBTI late in
the compilation pipeline.

As far as I know, currently it isn't possible to organically obtain code
that's susceptible to the bug:

- Instructions that write to SP are region boundaries. PAC seems to
always be followed by the pushing of r12 to the stack, so essentially
PAC is always by itself in a scheduling region.
- CALL_BTI is expanded into a machine instruction bundle. Bundles are
unpacked only after the last machine scheduler run. Thus setjmp and BTI
can be separated only if someone deliberately run the scheduler once
more.
- The BTI insertion pass is run late in the pipeline, only after the
last machine scheduling has run. So once again it can be reordered only
if someone deliberately runs the scheduler again.

Nevertheless, one can reasonably argue that we should prevent the bug in
spite of the compiler not being able to produce the required conditions
for it. If things change, the compiler will be robust against this
issue.

The tests written for this are contrived: bogus MIR instructions have
been added adjacent to the BTI-clearing instructions in order to have
them inside non-trivial scheduling regions.


  Commit: a8c59750d911eb30d5664696db19af445dd770f8
      https://github.com/llvm/llvm-project/commit/a8c59750d911eb30d5664696db19af445dd770f8
  Author: OverMighty <its.overmighty at gmail.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/docs/math/index.rst
    M libc/spec/stdc.td
    M libc/src/math/CMakeLists.txt
    A libc/src/math/exp2m1f.h
    M libc/src/math/generic/CMakeLists.txt
    A libc/src/math/generic/exp2m1f.cpp
    M libc/test/src/math/CMakeLists.txt
    M libc/test/src/math/exhaustive/CMakeLists.txt
    A libc/test/src/math/exhaustive/exp2m1f_test.cpp
    A libc/test/src/math/exp2m1f_test.cpp
    M libc/test/src/math/smoke/CMakeLists.txt
    A libc/test/src/math/smoke/exp2m1f_test.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.h

  Log Message:
  -----------
  [libc][math][c23] Add exp2m1f C23 math function (#86996)

Fixes #86502.

cc @lntue


  Commit: ff56584ee9c8a6d5430c0ba461540ccb6696ebc6
      https://github.com/llvm/llvm-project/commit/ff56584ee9c8a6d5430c0ba461540ccb6696ebc6
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M lld/COFF/Driver.cpp
    A lld/test/COFF/print-search-paths-arm64.s
    M llvm/lib/WindowsDriver/MSVCPaths.cpp

  Log Message:
  -----------
  [LLD][COFF] Use getMachineArchType in LinkerDriver::getArch. (#87499)

Adds support for ARM64EC, which should use the same search paths as
ARM64.

It's similar to #87370 and #87495. The test is based on the existing x86
test. Generally ARM64EC libraries are shipped together with native ARM64
libraries (using ECSYMBOLS section mechanism).

getMachineArchType uses Triple::thumb, while the existing
implementation uses Triple::arm. It's ultimately passed to
MSVCPaths.cpp functions, so modify them to accept both forms.


  Commit: 22089ae6c591d11143724b4bde418aa067958a8f
      https://github.com/llvm/llvm-project/commit/22089ae6c591d11143724b4bde418aa067958a8f
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M flang/include/flang/Runtime/io-api.h
    M flang/runtime/environment.cpp
    M flang/runtime/environment.h
    M flang/runtime/freestanding-tools.h
    M flang/runtime/io-api.cpp
    M flang/runtime/io-error.cpp
    M flang/runtime/io-error.h
    M flang/runtime/namelist.cpp

  Log Message:
  -----------
  Revert "[flang][runtime] Enable I/O APIs in F18 runtime offload builds." (#87629)

Reverts llvm/llvm-project#87543

The pre-merge Windows build is broken.


  Commit: bbd259af0a4cc438dd02d5ee632cb2dc1def1f6a
      https://github.com/llvm/llvm-project/commit/bbd259af0a4cc438dd02d5ee632cb2dc1def1f6a
  Author: Yitzhak Mandelbaum <ymand at users.noreply.github.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h
    M clang/include/clang/Analysis/FlowSensitive/DataflowLattice.h
    M clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
    M clang/unittests/Analysis/FlowSensitive/TypeErasedDataflowAnalysisTest.cpp

  Log Message:
  -----------
  [clang][dataflow] Refactor `widen` API to be explicit about change effect. (#87233)

The previous API relied on pointer equality of inputs and outputs to
signal whether a change occured. This was too subtle and led to bugs in
practice. It was also very limiting: the override could not return an equivalent (but
not identical) value.


  Commit: 7b5255297dca377a37c8df066e9d9749ab96cfad
      https://github.com/llvm/llvm-project/commit/7b5255297dca377a37c8df066e9d9749ab96cfad
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    A mlir/cmake/modules/MLIRCheckHardwareFeatures.cmake
    M mlir/docs/Dialects/ArmSME.md
    M mlir/test/CMakeLists.txt

  Log Message:
  -----------
  [mlir][test] Make SME e2e tests require an emulator (#86489)

Integration tests for ArmSME require an emulator (there's no hardware
available). Make sure that CMake complains if `MLIR_RUN_ARM_SME_TESTS`
is set while `ARM_EMULATOR_EXECUTABLE` is empty.

I'm also adding a note in the docs for future reference.


  Commit: 8f9903db8aed496a2cdc75a614e6d2c65c1acc07
      https://github.com/llvm/llvm-project/commit/8f9903db8aed496a2cdc75a614e6d2c65c1acc07
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

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

  Log Message:
  -----------
  [LLD][COFF][NFC] Use getMachineArchType helper. (#87495)

It's similar to #87370, but for lld-link.


  Commit: e0e615efac522365591119165a7691ce869de512
      https://github.com/llvm/llvm-project/commit/e0e615efac522365591119165a7691ce869de512
  Author: Christian Ulmann <christianulmann at gmail.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/LLVMIR/IR/LLVMMemorySlot.cpp
    M mlir/test/Dialect/LLVMIR/mem2reg.mlir

  Log Message:
  -----------
  Revert "[MLIR][LLVM][Mem2Reg] Relax type equality requirement for load and store (#87504)" (#87631)

This reverts commit d6e458219897fad0e460e663833b2190af48c06d as it
violates an assumption of Mem2Reg's block argument creation. Mem2Reg
strongly assumes that all involved values have the same type as the
alloca, which was relaxed by this PR. Therefore, branches got created
that jumped to basic blocks with differently typed block arguments.


  Commit: 417a068b63c01d79511fe3732dd52377b05d06fc
      https://github.com/llvm/llvm-project/commit/417a068b63c01d79511fe3732dd52377b05d06fc
  Author: Mikael Holmen <mikael.holmen at ericsson.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CGBlocks.cpp

  Log Message:
  -----------
  [clang][CGBlocks] Remove unused variable "refType" [NFC]

Without the change gcc warned like
 ../../clang/lib/CodeGen/CGBlocks.cpp:965:21: warning: unused variable 'refType' [-Wunused-variable]
   965 |     } else if (auto refType = type->getAs<ReferenceType>()) {
       |                     ^~~~~~~


  Commit: a1f4ac7704255627ac33ad67a22be5ac030f6179
      https://github.com/llvm/llvm-project/commit/a1f4ac7704255627ac33ad67a22be5ac030f6179
  Author: Phoebe Wang <phoebe.wang at intel.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/IR/Verifier.cpp
    A llvm/test/Verifier/pr69428.ll

  Log Message:
  -----------
  [SEH] Ignore EH pad check for internal intrinsics (#79694)

Intrinsics like @llvm.seh.scope.begin and @llvm.seh.scope.end which do
not throw do not need funclets in catchpads or cleanuppads.

Fixes #69428

Co-authored-by: Robert Cox <robert.cox at intel.com>

---------

Co-authored-by: Robert Cox <robert.cox at intel.com>


  Commit: ea88bb16485a34db58333637d8558ff57e6a1329
      https://github.com/llvm/llvm-project/commit/ea88bb16485a34db58333637d8558ff57e6a1329
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M flang/lib/Lower/Runtime.cpp
    M flang/test/Lower/stop-statement.f90

  Log Message:
  -----------
  [flang] Return 1 in ERROR STOP without user provided stop-code (#87501)

See F'2023 section 11.4: "If the stop-code in an ERROR STOP statement is
of type character or does not appear, it is recommended that a
processor-dependent nonzero value be supplied as the process exit
status"

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


  Commit: 1bce411073a1deafef998d0fe9e3ae74c4cef1e5
      https://github.com/llvm/llvm-project/commit/1bce411073a1deafef998d0fe9e3ae74c4cef1e5
  Author: YunQiang Su <syq at debian.org>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M clang/lib/Basic/Targets/Mips.h

  Log Message:
  -----------
  MIPS/Clang: Set HasUnalignedAccess false if +strict-align (#87257)

TargetInfo has HasUnalignedAccess support now. For MIPSr6, we should set
it according strict-align.

For pre-R6, we always set strict-align and HasUnalignedAccess to false.


  Commit: 110e933b7ae9150710a48b586fd3da39439079c2
      https://github.com/llvm/llvm-project/commit/110e933b7ae9150710a48b586fd3da39439079c2
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp

  Log Message:
  -----------
  CGOpenMPRuntime.cpp - fix Wparentheses warning. NFC.


  Commit: 24c256a6b7892bcf98eac531c99d9038cd826ce0
      https://github.com/llvm/llvm-project/commit/24c256a6b7892bcf98eac531c99d9038cd826ce0
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

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

  Log Message:
  -----------
  AMDGPULowerBufferFatPointers.cpp - fix Wparentheses warning. NFC.


  Commit: 6fa2d03bbf86bc01140e3b007554617b029fd3f1
      https://github.com/llvm/llvm-project/commit/6fa2d03bbf86bc01140e3b007554617b029fd3f1
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

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

  Log Message:
  -----------
  AMDGPULowerBufferFatPointers.cpp - fix Wunused-variable warning. NFC.


  Commit: a69673615bb9f14794056470a32f70f60a52213d
      https://github.com/llvm/llvm-project/commit/a69673615bb9f14794056470a32f70f60a52213d
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86SchedBroadwell.td
    M llvm/lib/Target/X86/X86SchedHaswell.td
    M llvm/test/tools/llvm-mca/X86/Broadwell/resources-avx1.s
    M llvm/test/tools/llvm-mca/X86/Broadwell/resources-sse41.s
    M llvm/test/tools/llvm-mca/X86/Haswell/resources-avx1.s
    M llvm/test/tools/llvm-mca/X86/Haswell/resources-sse41.s

  Log Message:
  -----------
  [X86] Haswell/Broadwell - fix (V)ROUND*ri sched behaviours to use 2*Port1

We were only using the Port23 memory ports and were missing the 2*Port1 uops entirely.

Confirmed by Agner + uops.info/uica


  Commit: ecb34599bdadfb74ee22529ad150e7500dd22641
      https://github.com/llvm/llvm-project/commit/ecb34599bdadfb74ee22529ad150e7500dd22641
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/lib/Target/X86/X86InstrSSE.td
    M llvm/lib/Target/X86/X86SchedSapphireRapids.td
    M llvm/test/TableGen/x86-fold-tables.inc
    M llvm/utils/TableGen/X86ManualCompressEVEXTables.def

  Log Message:
  -----------
  [X86] Add missing immediate qualifier to the (V)ROUND instructions (#87636)

Makes it easier to algorithmically recreate the instruction name in various analysis scripts I'm working on


  Commit: c1742525d0126a6124d15512b7283c4e37c7c186
      https://github.com/llvm/llvm-project/commit/c1742525d0126a6124d15512b7283c4e37c7c186
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/evex-to-vex-compress.mir

  Log Message:
  -----------
  [X86] evex-to-vex-compress.mir - update test checks missed in #87636


  Commit: 8ebf7b7d7aed45889415669e0c7353f9b528161a
      https://github.com/llvm/llvm-project/commit/8ebf7b7d7aed45889415669e0c7353f9b528161a
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M clang/test/InstallAPI/driver-invalid-options.test

  Log Message:
  -----------
  [InstallAPI][Test] Add test for invalid verification mode (#87602)


  Commit: 5b59ae423a9e86beddafb868b9d549b2f18825ab
      https://github.com/llvm/llvm-project/commit/5b59ae423a9e86beddafb868b9d549b2f18825ab
  Author: Piotr Sobczak <piotr.sobczak at amd.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/AMDGPU/bf16.ll
    M llvm/test/CodeGen/AMDGPU/function-returns.ll
    M llvm/test/CodeGen/AMDGPU/gfx-callable-return-types.ll
    M llvm/test/CodeGen/WebAssembly/multi-return.ll
    M llvm/test/CodeGen/WebAssembly/simd-arith.ll
    M llvm/test/CodeGen/WebAssembly/simd.ll

  Log Message:
  -----------
  [DAG] Preserve NUW when reassociating (#87621)

Similarly to the generic case below, preserve the NUW flag when
reassociating adds with constants.


  Commit: 51f1cb5355d296ccb7756944d0545d9c96066b78
      https://github.com/llvm/llvm-project/commit/51f1cb5355d296ccb7756944d0545d9c96066b78
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrCompiler.td
    M llvm/test/CodeGen/X86/2009-05-23-dagcombine-shifts.ll
    M llvm/test/CodeGen/X86/load-local-v3i129.ll
    M llvm/test/CodeGen/X86/pr23664.ll

  Log Message:
  -----------
  [X86] Add or_is_add patterns for INC. (#87584)

Should fix the cases noted in #86857


  Commit: 1b761205f2686516cebadbcbc37f798197d9c482
      https://github.com/llvm/llvm-project/commit/1b761205f2686516cebadbcbc37f798197d9c482
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/include/llvm/ADT/APInt.h
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/lib/Support/APInt.cpp
    M llvm/unittests/ADT/APIntTest.cpp

  Log Message:
  -----------
  [APInt] Add a simpler overload of multiplicativeInverse (#87610)

The current APInt::multiplicativeInverse takes a modulus which can be
any value, but all in-tree callers use a power of two. Moreover, most
callers want to use two to the power of the width of an existing APInt,
which is awkward because 2^N is not representable as an N-bit APInt.

Add a new overload of multiplicativeInverse which implicitly uses
2^BitWidth as the modulus.


  Commit: eb3819073ea7aa6ee06b698da5e8f8a9d08dff75
      https://github.com/llvm/llvm-project/commit/eb3819073ea7aa6ee06b698da5e8f8a9d08dff75
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M libcxx/utils/ci/oss-fuzz.sh

  Log Message:
  -----------
  [libc++][oss-fuzz] Updates C++ version used. (#87531)

This version update allows testing of `std::format` and the chrono
timezone parsing in oss-fuzz.


  Commit: 5fd9babbfcd02bae431d5b280da59adddc2824d3
      https://github.com/llvm/llvm-project/commit/5fd9babbfcd02bae431d5b280da59adddc2824d3
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ScheduleZnver3.td
    M llvm/test/tools/llvm-mca/X86/Znver3/dependency-breaking-gpr.s
    M llvm/test/tools/llvm-mca/X86/Znver3/mulx-hi-read-advance.s
    M llvm/test/tools/llvm-mca/X86/Znver3/mulx-lo-reg-use.s
    M llvm/test/tools/llvm-mca/X86/Znver3/mulx-read-advance.s
    M llvm/test/tools/llvm-mca/X86/Znver3/mulx-same-regs.s
    M llvm/test/tools/llvm-mca/X86/Znver3/one-idioms-avx-xmm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/one-idioms-avx-ymm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/one-idioms-mmx.s
    M llvm/test/tools/llvm-mca/X86/Znver3/one-idioms-sse-xmm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/partial-reg-update-3.s
    M llvm/test/tools/llvm-mca/X86/Znver3/partial-reg-update-4.s
    M llvm/test/tools/llvm-mca/X86/Znver3/partial-reg-update-5.s
    M llvm/test/tools/llvm-mca/X86/Znver3/partial-reg-update-6.s
    M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-avx-xmm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-avx-ymm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-gpr.s
    M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-mmx.s
    M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-sse-xmm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-x87.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-adx.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-aes.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-avx1.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-avx2.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-bmi1.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-bmi2.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-clflushopt.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-clzero.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-cmov.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-cmpxchg.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-f16c.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-fma.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-fsgsbase.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-lea.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-lzcnt.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-mmx.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-movbe.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-mwaitx.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-pclmul.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-popcnt.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-prefetchw.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-rdrand.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-rdseed.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sha.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sse1.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sse2.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sse3.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sse41.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sse42.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sse4a.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-ssse3.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-vaes.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-vpclmulqdq.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-x86_32.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-x86_64.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-x87.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-xsave.s
    M llvm/test/tools/llvm-mca/X86/Znver3/zero-idioms-avx-xmm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/zero-idioms-avx-ymm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/zero-idioms-gpr.s
    M llvm/test/tools/llvm-mca/X86/Znver3/zero-idioms-sse-xmm.s

  Log Message:
  -----------
  [X86] Rename Zn3FPP# ports -> Zn3FP#. NFC

Matches Zn4FP# (which is mostly a copy) and avoids an issue in llvm-exegesis which is terrible at choosing the right portname when they have aliases.


  Commit: d3fe2b538d53373f03ae096ccc05d07cb4d3ff3a
      https://github.com/llvm/llvm-project/commit/d3fe2b538d53373f03ae096ccc05d07cb4d3ff3a
  Author: Andrzej Warzynski <andrzej.warzynski at arm.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    R mlir/cmake/modules/MLIRCheckHardwareFeatures.cmake
    M mlir/docs/Dialects/ArmSME.md
    M mlir/test/CMakeLists.txt

  Log Message:
  -----------
  Revert "[mlir][test] Make SME e2e tests require an emulator (#86489)"

This reverts commit 7b5255297dca377a37c8df066e9d9749ab96cfad.

Broken bot:
* https://lab.llvm.org/buildbot/#/builders/179/builds/9794


  Commit: 62740d87bcb4a43569bc88fa76c24d27a064dcf9
      https://github.com/llvm/llvm-project/commit/62740d87bcb4a43569bc88fa76c24d27a064dcf9
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    A utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel

  Log Message:
  -----------
  [libc][bazel][math] Add float128 math functions and their smoke tests to bazel layout. (#87645)


  Commit: ed412494988411fc1aae2f1014c4ecad56d8085f
      https://github.com/llvm/llvm-project/commit/ed412494988411fc1aae2f1014c4ecad56d8085f
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/X86/cast.ll
    M llvm/test/Analysis/CostModel/X86/extend.ll

  Log Message:
  -----------
  [CostModel][X86] Update AVX1 sext v4i1 -> v4i64 cost based off worst case llvm-mca numbers

We were using raw instruction count which overestimated the costs for #67803


  Commit: 0b293e8c36d97bbd7f85ed5b67ce510ff7fd86ee
      https://github.com/llvm/llvm-project/commit/0b293e8c36d97bbd7f85ed5b67ce510ff7fd86ee
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/include/llvm/ADT/APInt.h
    M llvm/lib/Support/APInt.cpp
    M llvm/unittests/ADT/APIntTest.cpp

  Log Message:
  -----------
  [APInt] Remove multiplicativeInverse with explicit modulus (#87644)

All callers have been changed to use the new simpler overload with an
implicit modulus of 2^BitWidth. The old form was never used or tested
with non-power-of-two modulus anyway.


  Commit: 9e3b64b9f95aadf57568576712902a272fe66503
      https://github.com/llvm/llvm-project/commit/9e3b64b9f95aadf57568576712902a272fe66503
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/docs/CommandGuide/llvm-objcopy.rst
    M llvm/docs/ReleaseNotes.rst
    M llvm/include/llvm/ObjCopy/CommonConfig.h
    M llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp
    A llvm/test/tools/llvm-objcopy/ELF/compress-sections-within-segment.s
    A llvm/test/tools/llvm-objcopy/ELF/compress-sections.s
    M llvm/test/tools/llvm-objcopy/ELF/decompress-sections.test
    M llvm/tools/llvm-objcopy/ObjcopyOptions.cpp
    M llvm/tools/llvm-objcopy/ObjcopyOpts.td

  Log Message:
  -----------
  [llvm-objcopy] Add --compress-sections

--compress-sections is similar to --compress-debug-sections but applies
to arbitrary sections.

* `--compress-sections <section>=none`: decompress sections
* `--compress-sections <section>=[zlib|zstd]`: compress sections with zlib/zstd

Like `--remove-section`, the pattern is by default a glob, but a regex
when --regex is specified.

For `--remove-section` like options, `!` prevents matches and is not
dependent on ordering (see `ELF/wildcard-syntax.test`). Since
`--compress-sections a=zlib --compress-sections a=none` naturally allows
overriding, having an order-independent `!` would be confusing.
Therefore, `!` is disallowed.

Sections within a segment are effectively immutable. Report an error for
an attempt to (de)compress them. `SHF_ALLOC` sections in a relocatable
file can be compressed, but linkers usually reject them.

Link: https://discourse.llvm.org/t/rfc-compress-arbitrary-sections-with-ld-lld-compress-sections/71674

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


  Commit: dcc45faa30041a3378bcde4857df205382f1996a
      https://github.com/llvm/llvm-project/commit/dcc45faa30041a3378bcde4857df205382f1996a
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M lld/ELF/Driver.cpp
    M lld/test/ELF/linkerscript/symbolreferenced.s

  Log Message:
  -----------
  [ELF] PROVIDE: fix spurious "symbol not found"

When archive member extraction involving ENTRY happens after
`addScriptReferencedSymbolsToSymTable`,
`addScriptReferencedSymbolsToSymTable` may fail to define some PROVIDE
symbols used by ENTRY. This is an edge case that regressed after #84512.
(The interaction with PROVIDE and ENTRY-in-archive was not considered
before).

While here, also ensure that --undefined-glob extracted object files
are parsed before `addScriptReferencedSymbolsToSymTable`.

Fixes: ebb326a51fec37b5a47e5702e8ea157cd4f835cd

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


  Commit: be8fd86f6a57da79a4dbc8d1f4dca2e7adb1192a
      https://github.com/llvm/llvm-project/commit/be8fd86f6a57da79a4dbc8d1f4dca2e7adb1192a
  Author: Gulfem Savrun Yeniceri <gulfem at google.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    R llvm/test/CodeGen/AArch64/GlobalISel/combine-commute-int-const-lhs.mir

  Log Message:
  -----------
  Revert "[GlobalISel] Fix the infinite loop issue in `commute_int_constant_to_rhs`"

This reverts commit 1f01c580444ea2daef67f95ffc5fde2de5a37cec
because combine-commute-int-const-lhs.mir test failed in
multiple builders.
https://lab.llvm.org/buildbot/#/builders/124/builds/10375
https://luci-milo.appspot.com/ui/p/fuchsia/builders/prod/clang-linux-x64/b8751607530180046481/overview


  Commit: dcab42a0f9aab1d06aadc821e64af381da744819
      https://github.com/llvm/llvm-project/commit/dcab42a0f9aab1d06aadc821e64af381da744819
  Author: Julian Nagele <j.nagele at apple.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    A clang/test/CodeGen/tbaa-struct-bitfield-endianness.cpp

  Log Message:
  -----------
  [TBAA] Test for tbaa.struct metadata with bitfields in big endian layout (#87617)

This test exposes what I think is invalid tbaa.struct metadata currently
generated for bitfields when using big endian layout. The regions given
by `!{i64 2, i64 4, [[META3:![0-9]+]], i64 4, i64 4 ...` are
overlapping. This issue was originally observed in
https://github.com/llvm/llvm-project/pull/86709.


  Commit: fb2a380b5d4e483602f8cf8f36ca1df322a14a77
      https://github.com/llvm/llvm-project/commit/fb2a380b5d4e483602f8cf8f36ca1df322a14a77
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/utils/gn/secondary/libcxx/include/BUILD.gn

  Log Message:
  -----------
  [gn build] Manually port 1679b27


  Commit: 338ecfbac351e4b211836ad73d75bbdf729e9134
      https://github.com/llvm/llvm-project/commit/338ecfbac351e4b211836ad73d75bbdf729e9134
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M libclc/CMakeLists.txt

  Log Message:
  -----------
  [libclc] Use VERSION_GREATER_EQUAL where appropriate. NFC

This was added in CMake 3.7, which might explain why it wasn't used
before.

Also reformat a couple of comments.


  Commit: 4167fec40768fb05b411bcefa186fe2b106ca7e4
      https://github.com/llvm/llvm-project/commit/4167fec40768fb05b411bcefa186fe2b106ca7e4
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M libcxx/include/__chrono/tzdb.h
    M libcxx/include/__chrono/tzdb_list.h
    M libcxx/include/chrono
    M libcxx/modules/std/chrono.inc
    M libcxx/src/tzdb.cpp
    M libcxx/test/libcxx/diagnostics/chrono.nodiscard_extensions.compile.pass.cpp
    M libcxx/test/libcxx/diagnostics/chrono.nodiscard_extensions.verify.cpp
    A libcxx/test/libcxx/time/time.zone/time.zone.db/time.zone.db.tzdb/locate_zone.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.access/current_zone.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.access/locate_zone.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.tzdb/current_zone.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.tzdb/locate_zone.pass.cpp

  Log Message:
  -----------
  [libc++][chrono] Completes the tzdb class. (#82157)

It adds the missing member functions of the tzdb class and adds the free
functions that use these member functions.

Implements parts of:
- P0355 Extending <chrono> to Calendars and Time Zones


  Commit: 0f7266a97c0443234bf18508a408e6917f6a2d46
      https://github.com/llvm/llvm-project/commit/0f7266a97c0443234bf18508a408e6917f6a2d46
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
    M llvm/utils/gn/secondary/libcxx/src/BUILD.gn

  Log Message:
  -----------
  [gn build] Manually port 6f2d8cc0


  Commit: 6cf532891f9b49ccae3c7e3dfedb2a3662cdd569
      https://github.com/llvm/llvm-project/commit/6cf532891f9b49ccae3c7e3dfedb2a3662cdd569
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/readability/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 3365d6217901


  Commit: 13e75721117070d52cf3be7d88becccd5a6838b5
      https://github.com/llvm/llvm-project/commit/13e75721117070d52cf3be7d88becccd5a6838b5
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/lib/CodeGen/GlobalISel/BUILD.gn

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


  Commit: 258dd64978c055110373447325b9b1dd4e5268d7
      https://github.com/llvm/llvm-project/commit/258dd64978c055110373447325b9b1dd4e5268d7
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/utils/gn/secondary/bolt/lib/Profile/BUILD.gn

  Log Message:
  -----------
  [gn build] Port fd38366e4525


  Commit: f2d22b5944b3c3f77dd236d89dd419d231243a56
      https://github.com/llvm/llvm-project/commit/f2d22b5944b3c3f77dd236d89dd419d231243a56
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/include/llvm/ProfileData/MemProf.h
    M llvm/lib/ProfileData/InstrProfWriter.cpp

  Log Message:
  -----------
  [memprof] Make RecordWriterTrait a non-template class (#87604)

commit d89914f30bc7c180fe349a5aa0f03438ae6c20a4
  Author: Kazu Hirata <kazu at google.com>
  Date:   Wed Apr 3 21:48:38 2024 -0700

changed RecordWriterTrait to a template class with IndexedVersion as a
template parameter.  This patch changes the class back to a
non-template one while retaining the ability to serialize multiple
versions.

The reason I changed RecordWriterTrait to a template class was
because, even if RecordWriterTrait had IndexedVersion as a member
variable, RecordWriterTrait::EmitKeyDataLength, being a static
function, would not have access to the variable.

Since OnDiskChainedHashTableGenerator calls EmitKeyDataLength as:

  const std::pair<offset_type, offset_type> &Len =
      InfoObj.EmitKeyDataLength(Out, I->Key, I->Data);

we can make EmitKeyDataLength a member function, but we have one
problem.  InstrProfWriter::writeImpl calls:

  void insert(typename Info::key_type_ref Key,
              typename Info::data_type_ref Data) {
    Info InfoObj;
    insert(Key, Data, InfoObj);
  }

which default-constructs RecordWriterTrait without a specific version
number.  This patch fixes the problem by adjusting
InstrProfWriter::writeImpl to call the other form of insert instead:

  void insert(typename Info::key_type_ref Key,
              typename Info::data_type_ref Data, Info &InfoObj)

To prevent an accidental invocation of the default constructor of
RecordWriterTrait, this patch deletes the default constructor.


  Commit: b9ec4ab6ac4f3ae8603da8bfbf10bc0ec104e0b7
      https://github.com/llvm/llvm-project/commit/b9ec4ab6ac4f3ae8603da8bfbf10bc0ec104e0b7
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/tools/gold/CMakeLists.txt

  Log Message:
  -----------
  [CMake] Install LLVMgold.so for LLVM_INSTALL_TOOLCHAIN_ONLY=on (#87567)

LLVMgold.so can be used with GNU ar, gold, ld, and nm to process LLVM
bitcode files. Install it in LLVM_INSTALL_TOOLCHAIN_ONLY=on builds like
we install libLTO.so.

Suggested by @emelife

Fix #84271


  Commit: 220cdf940e953002df1521bbd061d8e0b4ffed5c
      https://github.com/llvm/llvm-project/commit/220cdf940e953002df1521bbd061d8e0b4ffed5c
  Author: Fabian Mora <fmora.dev at gmail.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
    M mlir/include/mlir/Interfaces/MemorySlotInterfaces.td
    M mlir/lib/Dialect/LLVMIR/IR/LLVMMemorySlot.cpp
    M mlir/lib/Transforms/Mem2Reg.cpp
    M mlir/test/Dialect/LLVMIR/mem2reg-dbginfo.mlir

  Log Message:
  -----------
  [mlir] Add `requiresReplacedValues` and `visitReplacedValues` to `PromotableOpInterface` (#86792)

Add `requiresReplacedValues` and `visitReplacedValues` methods to
`PromotableOpInterface`. These methods allow `PromotableOpInterface` ops
to transforms definitions mutated by a `store`.

This change is necessary to correctly handle the promotion of
`LLVM_DbgDeclareOp`.

---------

Co-authored-by: Théo Degioanni <30992420+Moxinilian at users.noreply.github.com>


  Commit: 02b49d14a50cbfad0196cdddba6771f0593fdc3b
      https://github.com/llvm/llvm-project/commit/02b49d14a50cbfad0196cdddba6771f0593fdc3b
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/test/Transforms/InstCombine/known-bits.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for computing known bits from `(icmp eq (and/or x,y), C)`; NFC


  Commit: 05cff99a29b2df17142907aa81ae488559756f01
      https://github.com/llvm/llvm-project/commit/05cff99a29b2df17142907aa81ae488559756f01
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstCombine/known-bits.ll
    M llvm/test/Transforms/InstCombine/zext-or-icmp.ll

  Log Message:
  -----------
  [ValueTracking] Infer known bits fromfrom `(icmp eq (and/or x,y), C)`

In `(icmp eq (and x,y), C)` all 1s in `C` must also be set in both
`x`/`y`.

In `(icmp eq (or x,y), C)` all 0s in `C` must also be set in both
`x`/`y`.

Closes #87143


  Commit: 74447cf46f97f24f52ac6675d642e6cc771447bb
      https://github.com/llvm/llvm-project/commit/74447cf46f97f24f52ac6675d642e6cc771447bb
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    A llvm/test/Transforms/InstCombine/implies.ll
    M llvm/test/Transforms/InstSimplify/implies.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for deducing more conditions in `isTruePredicate`; NFC


  Commit: 678f32ab66508aea2068a5e4e07d53b71ce5cf31
      https://github.com/llvm/llvm-project/commit/678f32ab66508aea2068a5e4e07d53b71ce5cf31
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstCombine/implies.ll
    M llvm/test/Transforms/InstSimplify/implies.ll

  Log Message:
  -----------
  [ValueTracking] Add more conditions in to `isTruePredicate`

There is one notable "regression". This patch replaces the bespoke `or
disjoint` logic we a direct match. This means we fail some
simplification during `instsimplify`.
All the cases we fail in `instsimplify` we do handle in `instcombine`
as we add `disjoint` flags.

Other than that, just some basic cases.

See proofs: https://alive2.llvm.org/ce/z/_-g7C8

Closes #86083


  Commit: 515d3f7d62679cba178fb3603db963baa6ec8c93
      https://github.com/llvm/llvm-project/commit/515d3f7d62679cba178fb3603db963baa6ec8c93
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/include/llvm/TextAPI/InterfaceFile.h
    M llvm/lib/TextAPI/InterfaceFile.cpp
    M llvm/lib/TextAPI/TextStubV5.cpp
    M llvm/unittests/TextAPI/TextStubV5Tests.cpp

  Log Message:
  -----------
  [TextAPI] Reorder addRPath parameters (#87601)

It matches up with other _attribute_ adding member functions and helps
simplify InterfaceFile assignment for InstallAPI.


  Commit: d97d560fbf6ed26a198b3afe1594d7d63b88ab3a
      https://github.com/llvm/llvm-project/commit/d97d560fbf6ed26a198b3afe1594d7d63b88ab3a
  Author: Daniil Kovalev <dkovalev at accesssoftek.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/IR/Verifier.cpp
    M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h
    A llvm/test/CodeGen/AArch64/note-gnu-property-elf-pauthabi.ll
    A llvm/test/Verifier/module-flags-note-gnu-property-elf-pauthabi.ll

  Log Message:
  -----------
  [AArch64][PAC][MC][ELF] Support PAuth ABI compatibility tag (#85236)

Depends on #87545

Emit `GNU_PROPERTY_AARCH64_FEATURE_PAUTH` property in
`.note.gnu.property` section depending on
`aarch64-elf-pauthabi-platform` and `aarch64-elf-pauthabi-version` llvm
module flags.


  Commit: 53fe94a0ce262c6e38117429a30814f54ea55b0f
      https://github.com/llvm/llvm-project/commit/53fe94a0ce262c6e38117429a30814f54ea55b0f
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    A llvm/test/Analysis/CostModel/X86/masked-intrinsic-codesize.ll
    M llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost-inseltpoison.ll
    M llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost.ll
    A llvm/test/Analysis/CostModel/X86/masked-intrinsic-latency.ll
    A llvm/test/Analysis/CostModel/X86/masked-intrinsic-sizelatency.ll

  Log Message:
  -----------
  [CostModel][X86] Add costkinds test coverage for masked load/store/gather/scatter

Noticed while starting triage for #87640


  Commit: c83f23d6abb6f8d693c643bc1b43f9b9e06bc537
      https://github.com/llvm/llvm-project/commit/c83f23d6abb6f8d693c643bc1b43f9b9e06bc537
  Author: Eli Friedman <efriedma at quicinc.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64.td
    M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/load-addressing-modes.mir
    M llvm/test/CodeGen/AArch64/aarch64-fold-lslfast.ll
    M llvm/test/CodeGen/AArch64/aarch64-split-and-bitmask-immediate.ll
    M llvm/test/CodeGen/AArch64/arm64-addr-mode-folding.ll
    M llvm/test/CodeGen/AArch64/arm64-vector-ldst.ll
    M llvm/test/CodeGen/AArch64/avoid-free-ext-promotion.ll
    M llvm/test/CodeGen/AArch64/cheap-as-a-move.ll
    M llvm/test/CodeGen/AArch64/extract-bits.ll
    M llvm/test/CodeGen/AArch64/machine-licm-hoist-load.ll
    M llvm/test/CodeGen/AArch64/sink-and-fold.ll

  Log Message:
  -----------
  [AArch64] Fix heuristics for folding "lsl" into load/store ops. (#86894)

The existing heuristics were assuming that every core behaves like an
Apple A7, where any extend/shift costs an extra micro-op... but in
reality, nothing else behaves like that.

On some older Cortex designs, shifts by 1 or 4 cost extra, but all other
shifts/extensions are free. On all other cores, as far as I can tell,
all shifts/extensions for integer loads are free (i.e. the same cost as
an unshifted load).

To reflect this, this patch:

- Enables aggressive folding of shifts into loads by default.

- Removes the old AddrLSLFast feature, since it applies to everything
except A7 (and even if you are explicitly targeting A7, we want to
assume extensions are free because the code will almost always run on a
newer core).

- Adds a new feature AddrLSLSlow14 that applies specifically to the
Cortex cores where shifts by 1 or 4 cost extra.

I didn't add support for AddrLSLSlow14 on the GlobalISel side because it
would require a bunch of refactoring to work correctly. Someone can pick
this up as a followup.


  Commit: 5ae143da459a73d0f6fc796d42c3fabf3ab5f9e8
      https://github.com/llvm/llvm-project/commit/5ae143da459a73d0f6fc796d42c3fabf3ab5f9e8
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    A llvm/test/Transforms/SLPVectorizer/X86/external-user-instruction-minbitwidth.ll

  Log Message:
  -----------
  [SLP]Add a test with the incorrect casting for external user, NFC.


  Commit: 8004ce236795d48063c636d1ce4818ebcb526b21
      https://github.com/llvm/llvm-project/commit/8004ce236795d48063c636d1ce4818ebcb526b21
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M libc/src/__support/RPC/rpc.h

  Log Message:
  -----------
  [libc] Move thread sync when closing port earlier

Summary:
This synchronization should be done before we handle the logic relating
to closing the port. This isn't majorly important now but it would break
if we ever decided to run a server on the GPU.


  Commit: d6713ad80d6907210c629f22babaf12177fa329c
      https://github.com/llvm/llvm-project/commit/d6713ad80d6907210c629f22babaf12177fa329c
  Author: Kevin Frei <kevinfrei at users.noreply.github.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
    M lldb/source/Plugins/SymbolLocator/CMakeLists.txt
    M lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp
    A lldb/test/API/debuginfod/Normal/Makefile
    A lldb/test/API/debuginfod/Normal/TestDebuginfod.py
    A lldb/test/API/debuginfod/Normal/main.c
    A lldb/test/API/debuginfod/SplitDWARF/Makefile
    A lldb/test/API/debuginfod/SplitDWARF/TestDebuginfodDWP.py
    A lldb/test/API/debuginfod/SplitDWARF/main.c

  Log Message:
  -----------
  Debuginfod Testing & fixes: 3rd times the charm? (#87676)

I believe I've got the tests properly configured to only run on Linux
x86(_64), as I don't have a Linux AArch64/Arm device to diagnose what's
going wrong with the tests (I suspect there's some issue with generating
`.note.gnu.build-id` sections...)

The actual code fixes have now been reviewed 3 times:
https://github.com/llvm/llvm-project/pull/79181 (moved shell tests to
API tests), https://github.com/llvm/llvm-project/pull/85693 (Changed
some of the testing infra), and
https://github.com/llvm/llvm-project/pull/86812 (didn't get the tests
configured quite right). The Debuginfod integration for symbol
acquisition in LLDB now works with the `executable` and `debuginfo`
Debuginfod network requests working properly for normal, `objcopy
--only-keep-debug` stripped, split-dwarf, and `objcopy
--only-keep-debug` stripped *plus* split-dwarf symbols/binaries.

The reasons for the multiple attempts have been tests on platforms I
don't have access to (Linux AArch64/Arm + MacOS x86_64). I believe I've
got the tests properly disabled for everything except for Linux x86(_64)
now. I've built & tested on MacOS AArch64 and Linux x86_64.

---------

Co-authored-by: Kevin Frei <freik at meta.com>


  Commit: b798c2af8b8888f8db2a9ec293066fb72d893f0c
      https://github.com/llvm/llvm-project/commit/b798c2af8b8888f8db2a9ec293066fb72d893f0c
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M .github/workflows/libcxx-build-and-test.yaml
    M libcxx/docs/index.rst
    M libcxx/test/libcxx/atomics/diagnose_invalid_memory_order.verify.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.lazy.split/no_unique_address.compile.pass.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.split/no_unique_address.compile.pass.cpp
    M libcxx/test/libcxx/ranges/range.factories/range.istream.view/no_unique_address.compile.pass.cpp

  Log Message:
  -----------
  [libc++][CI] Updates to Clang 19. (#85301)

Since we have released Clang 16 is no longer actively supported. However
the FreeBSD runner is still using this, so some tests still guard
against Clang 16.


  Commit: eeaaf33fc296d52a28252ba0d6cfe187b7b3412f
      https://github.com/llvm/llvm-project/commit/eeaaf33fc296d52a28252ba0d6cfe187b7b3412f
  Author: Jonathan Peyton <jonathan.l.peyton at intel.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M openmp/runtime/test/affinity/kmp-abs-hw-subset.c

  Log Message:
  -----------
  [OpenMP] Unsupport absolute KMP_HW_SUBSET test for s390x (#87555)


  Commit: 8a0bfe490592de3df28d82c5dd69956e43c20f1d
      https://github.com/llvm/llvm-project/commit/8a0bfe490592de3df28d82c5dd69956e43c20f1d
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/external-user-instruction-minbitwidth.ll

  Log Message:
  -----------
  [SLP]Fix PR87630: wrong result for externally used vector value.

Need to check that the externally used value can be represented with the
BitWidth before applying it, otherwise need to keep wider type.


  Commit: 9a0ae081047d7088cdecfa86a8c90b721485e418
      https://github.com/llvm/llvm-project/commit/9a0ae081047d7088cdecfa86a8c90b721485e418
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp

  Log Message:
  -----------
  [NFC][HWASAN] Simplify `selectiveInstrumentationShouldSkip` (#87670)


  Commit: f9cedbe1ccc6e45a1440a537be2e9f39d629738e
      https://github.com/llvm/llvm-project/commit/f9cedbe1ccc6e45a1440a537be2e9f39d629738e
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M .github/workflows/libcxx-build-and-test.yaml
    M clang-tools-extra/clangd/IncludeCleaner.h
    M clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h
    M clang/include/clang/Analysis/FlowSensitive/DataflowLattice.h
    M clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
    M clang/lib/Basic/Targets/Mips.h
    M clang/lib/CodeGen/CGBlocks.cpp
    M clang/lib/CodeGen/CGExprComplex.cpp
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/test/CodeGen/cx-complex-range.c
    A clang/test/CodeGen/tbaa-struct-bitfield-endianness.cpp
    M clang/test/Driver/mcmodel.c
    M clang/test/InstallAPI/driver-invalid-options.test
    A clang/test/Interpreter/inline-asm.cpp
    M clang/tools/clang-repl/ClangRepl.cpp
    M clang/unittests/Analysis/FlowSensitive/TypeErasedDataflowAnalysisTest.cpp
    M flang/include/flang/Runtime/io-api.h
    M flang/lib/Lower/ConvertCall.cpp
    M flang/lib/Lower/OpenMP/ReductionProcessor.cpp
    M flang/lib/Lower/Runtime.cpp
    M flang/runtime/environment.cpp
    M flang/runtime/environment.h
    M flang/runtime/freestanding-tools.h
    M flang/runtime/io-api.cpp
    M flang/runtime/io-error.cpp
    M flang/runtime/io-error.h
    M flang/runtime/namelist.cpp
    M flang/test/Lower/HLFIR/assumed-rank-iface.f90
    M flang/test/Lower/OpenMP/parallel-reduction-array.f90
    M flang/test/Lower/OpenMP/parallel-reduction-array2.f90
    A flang/test/Lower/OpenMP/parallel-reduction3.f90
    A flang/test/Lower/OpenMP/wsloop-reduction-array-assumed-shape.f90
    M flang/test/Lower/OpenMP/wsloop-reduction-array.f90
    M flang/test/Lower/OpenMP/wsloop-reduction-array2.f90
    M flang/test/Lower/stop-statement.f90
    M flang/unittests/Runtime/Time.cpp
    M libc/config/baremetal/api.td
    M libc/config/gpu/api.td
    M libc/config/linux/api.td
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/docs/math/index.rst
    M libc/fuzzing/CMakeLists.txt
    A libc/fuzzing/__support/CMakeLists.txt
    A libc/fuzzing/__support/uint_fuzz.cpp
    M libc/include/CMakeLists.txt
    M libc/spec/posix.td
    M libc/spec/stdc.td
    M libc/src/__support/FPUtil/dyadic_float.h
    M libc/src/__support/RPC/rpc.h
    M libc/src/__support/UInt.h
    M libc/src/__support/float_to_string.h
    M libc/src/__support/integer_literals.h
    M libc/src/__support/math_extras.h
    M libc/src/__support/number_pair.h
    M libc/src/math/CMakeLists.txt
    A libc/src/math/exp2m1f.h
    M libc/src/math/generic/CMakeLists.txt
    A libc/src/math/generic/exp2m1f.cpp
    M libc/src/stdio/fseeko.h
    M libc/src/stdio/ftello.h
    M libc/test/src/__support/integer_literals_test.cpp
    M libc/test/src/__support/math_extras_test.cpp
    M libc/test/src/__support/uint_test.cpp
    M libc/test/src/math/CMakeLists.txt
    M libc/test/src/math/exhaustive/CMakeLists.txt
    A libc/test/src/math/exhaustive/exp2m1f_test.cpp
    A libc/test/src/math/exp2m1f_test.cpp
    M libc/test/src/math/smoke/CMakeLists.txt
    A libc/test/src/math/smoke/exp2m1f_test.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.h
    M libclc/CMakeLists.txt
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/docs/UsingLibcxx.rst
    M libcxx/docs/index.rst
    M libcxx/include/__chrono/tzdb.h
    M libcxx/include/__chrono/tzdb_list.h
    M libcxx/include/chrono
    M libcxx/include/strstream
    M libcxx/modules/std/chrono.inc
    M libcxx/modules/std/strstream.inc
    M libcxx/src/tzdb.cpp
    M libcxx/test/libcxx/atomics/diagnose_invalid_memory_order.verify.cpp
    M libcxx/test/libcxx/diagnostics/chrono.nodiscard_extensions.compile.pass.cpp
    M libcxx/test/libcxx/diagnostics/chrono.nodiscard_extensions.verify.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.lazy.split/no_unique_address.compile.pass.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.split/no_unique_address.compile.pass.cpp
    M libcxx/test/libcxx/ranges/range.factories/range.istream.view/no_unique_address.compile.pass.cpp
    A libcxx/test/libcxx/time/time.zone/time.zone.db/time.zone.db.tzdb/locate_zone.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/ccp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/ccp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/cp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/cp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.members/rdbuf.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.members/str.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.verify.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/types.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.cons/cp_size_mode.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.cons/default.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.members/freeze.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.members/pcount.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.members/rdbuf.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.members/str.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.verify.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/types.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.cons/cp_size_mode.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.cons/default.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.dest/rdbuf.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.oper/freeze.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.oper/pcount.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.oper/str.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.verify.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/types.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/ccp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/cp_size_cp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/cscp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/cucp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/custom_alloc.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/default.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/scp_size_scp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/ucp_size_ucp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/freeze.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/overflow.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/pcount.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/str.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/overflow.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/pbackfail.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/seekoff.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/seekpos.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/setbuf.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/underflow.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.verify.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/types.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.access/current_zone.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.access/locate_zone.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.tzdb/current_zone.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.tzdb/locate_zone.pass.cpp
    M libcxx/utils/ci/oss-fuzz.sh
    M lld/COFF/Chunks.cpp
    M lld/COFF/Chunks.h
    M lld/COFF/Driver.cpp
    M lld/COFF/SymbolTable.cpp
    M lld/ELF/Arch/AArch64.cpp
    M lld/ELF/Config.h
    M lld/ELF/Driver.cpp
    M lld/ELF/InputFiles.cpp
    M lld/ELF/InputFiles.h
    M lld/ELF/InputSection.cpp
    M lld/ELF/Relocations.cpp
    M lld/ELF/Relocations.h
    M lld/ELF/SyntheticSections.cpp
    M lld/ELF/Writer.cpp
    M lld/docs/ReleaseNotes.rst
    M lld/docs/ld.lld.1
    A lld/test/COFF/print-search-paths-arm64.s
    M lld/test/ELF/aarch64-bti-pac-cli-error.s
    A lld/test/ELF/aarch64-feature-pauth.s
    A lld/test/ELF/aarch64-reloc-pauth-ro.s
    A lld/test/ELF/aarch64-reloc-pauth.s
    M lld/test/ELF/linkerscript/symbolreferenced.s
    M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
    M lldb/source/Plugins/SymbolLocator/CMakeLists.txt
    M lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp
    A lldb/test/API/debuginfod/Normal/Makefile
    A lldb/test/API/debuginfod/Normal/TestDebuginfod.py
    A lldb/test/API/debuginfod/Normal/main.c
    A lldb/test/API/debuginfod/SplitDWARF/Makefile
    A lldb/test/API/debuginfod/SplitDWARF/TestDebuginfodDWP.py
    A lldb/test/API/debuginfod/SplitDWARF/main.c
    M llvm/docs/CommandGuide/llvm-objcopy.rst
    M llvm/docs/ReleaseNotes.rst
    M llvm/include/llvm/ADT/APInt.h
    M llvm/include/llvm/BinaryFormat/ELF.h
    M llvm/include/llvm/BinaryFormat/ELFRelocs/AArch64.def
    M llvm/include/llvm/IR/AutoUpgrade.h
    M llvm/include/llvm/IR/DebugProgramInstruction.h
    M llvm/include/llvm/IR/PassManager.h
    M llvm/include/llvm/IR/PrintPasses.h
    M llvm/include/llvm/ObjCopy/CommonConfig.h
    M llvm/include/llvm/ProfileData/MemProf.h
    M llvm/include/llvm/TextAPI/InterfaceFile.h
    M llvm/lib/Analysis/LazyValueInfo.cpp
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    M llvm/lib/CodeGen/MIRPrinter.cpp
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/lib/IR/AutoUpgrade.cpp
    M llvm/lib/IR/LegacyPassManager.cpp
    M llvm/lib/IR/Verifier.cpp
    M llvm/lib/Linker/IRMover.cpp
    M llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp
    M llvm/lib/ProfileData/InstrProfReader.cpp
    M llvm/lib/ProfileData/InstrProfWriter.cpp
    M llvm/lib/ProfileData/MemProf.cpp
    M llvm/lib/Support/APInt.cpp
    M llvm/lib/Target/AArch64/AArch64.td
    M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
    M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h
    M llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp
    M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
    M llvm/lib/Target/ARM/Thumb2InstrInfo.cpp
    M llvm/lib/Target/ARM/Thumb2InstrInfo.h
    M llvm/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.cpp
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td
    M llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
    M llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86InstrCompiler.td
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/lib/Target/X86/X86InstrSSE.td
    M llvm/lib/Target/X86/X86SchedBroadwell.td
    M llvm/lib/Target/X86/X86SchedHaswell.td
    M llvm/lib/Target/X86/X86SchedSapphireRapids.td
    M llvm/lib/Target/X86/X86ScheduleZnver3.td
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/lib/TextAPI/InterfaceFile.cpp
    M llvm/lib/TextAPI/TextStubV5.cpp
    M llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/lib/WindowsDriver/MSVCPaths.cpp
    M llvm/test/Analysis/CostModel/X86/cast.ll
    M llvm/test/Analysis/CostModel/X86/extend.ll
    A llvm/test/Analysis/CostModel/X86/masked-intrinsic-codesize.ll
    M llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost-inseltpoison.ll
    M llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost.ll
    A llvm/test/Analysis/CostModel/X86/masked-intrinsic-latency.ll
    A llvm/test/Analysis/CostModel/X86/masked-intrinsic-sizelatency.ll
    R llvm/test/CodeGen/AArch64/GlobalISel/combine-commute-int-const-lhs.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/load-addressing-modes.mir
    M llvm/test/CodeGen/AArch64/aarch64-fold-lslfast.ll
    M llvm/test/CodeGen/AArch64/aarch64-split-and-bitmask-immediate.ll
    M llvm/test/CodeGen/AArch64/arm64-addr-mode-folding.ll
    M llvm/test/CodeGen/AArch64/arm64-vector-ldst.ll
    M llvm/test/CodeGen/AArch64/avoid-free-ext-promotion.ll
    M llvm/test/CodeGen/AArch64/cheap-as-a-move.ll
    M llvm/test/CodeGen/AArch64/extract-bits.ll
    M llvm/test/CodeGen/AArch64/machine-licm-hoist-load.ll
    A llvm/test/CodeGen/AArch64/note-gnu-property-elf-pauthabi.ll
    M llvm/test/CodeGen/AArch64/sink-and-fold.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergent-control-flow.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.is.private.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.is.shared.ll
    M llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
    M llvm/test/CodeGen/AMDGPU/atomicrmw-expand.ll
    M llvm/test/CodeGen/AMDGPU/bf16.ll
    M llvm/test/CodeGen/AMDGPU/cgp-addressing-modes-gfx908.ll
    M llvm/test/CodeGen/AMDGPU/extract-subvector-16bit.ll
    M llvm/test/CodeGen/AMDGPU/function-args.ll
    M llvm/test/CodeGen/AMDGPU/function-returns.ll
    M llvm/test/CodeGen/AMDGPU/gfx-callable-return-types.ll
    M llvm/test/CodeGen/AMDGPU/lds-global-non-entry-func.ll
    M llvm/test/CodeGen/AMDGPU/local-atomics-fp.ll
    M llvm/test/CodeGen/AMDGPU/skip-if-dead.ll
    M llvm/test/CodeGen/AMDGPU/transform-block-with-return-to-epilog.ll
    A llvm/test/CodeGen/ARM/misched-branch-targets.mir
    M llvm/test/CodeGen/RISCV/intrinsic-cttz-elts-vscale.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsll.ll
    A llvm/test/CodeGen/RISCV/rvv/fold-binop-into-select.ll
    M llvm/test/CodeGen/RISCV/rvv/vscale-vw-web-simplification.ll
    M llvm/test/CodeGen/RISCV/rvv/vwsll-sdnode.ll
    M llvm/test/CodeGen/SPIRV/OpVariable_order.ll
    M llvm/test/CodeGen/SPIRV/pointers/type-deduce-by-call-chain.ll
    A llvm/test/CodeGen/SPIRV/pointers/type-deduce-call-no-bitcast.ll
    M llvm/test/CodeGen/WebAssembly/multi-return.ll
    M llvm/test/CodeGen/WebAssembly/simd-arith.ll
    M llvm/test/CodeGen/WebAssembly/simd.ll
    M llvm/test/CodeGen/X86/2009-05-23-dagcombine-shifts.ll
    M llvm/test/CodeGen/X86/evex-to-vex-compress.mir
    M llvm/test/CodeGen/X86/freeze-vector.ll
    M llvm/test/CodeGen/X86/load-local-v3i129.ll
    M llvm/test/CodeGen/X86/pr23664.ll
    M llvm/test/CodeGen/X86/widen-load-of-small-alloca-with-zero-upper-half.ll
    M llvm/test/TableGen/x86-fold-tables.inc
    M llvm/test/Transforms/CorrelatedValuePropagation/range.ll
    A llvm/test/Transforms/InstCombine/implies.ll
    M llvm/test/Transforms/InstCombine/known-bits.ll
    M llvm/test/Transforms/InstCombine/zext-or-icmp.ll
    M llvm/test/Transforms/InstSimplify/implies.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/clamped-trip-count.ll
    M llvm/test/Transforms/PhaseOrdering/X86/pr67803.ll
    A llvm/test/Transforms/SLPVectorizer/X86/external-user-instruction-minbitwidth.ll
    M llvm/test/Transforms/VectorCombine/X86/shuffle-of-casts.ll
    A llvm/test/Verifier/module-flags-note-gnu-property-elf-pauthabi.ll
    A llvm/test/Verifier/pr69428.ll
    M llvm/test/tools/llvm-mca/X86/Broadwell/resources-avx1.s
    M llvm/test/tools/llvm-mca/X86/Broadwell/resources-sse41.s
    M llvm/test/tools/llvm-mca/X86/Haswell/resources-avx1.s
    M llvm/test/tools/llvm-mca/X86/Haswell/resources-sse41.s
    M llvm/test/tools/llvm-mca/X86/Znver3/dependency-breaking-gpr.s
    M llvm/test/tools/llvm-mca/X86/Znver3/mulx-hi-read-advance.s
    M llvm/test/tools/llvm-mca/X86/Znver3/mulx-lo-reg-use.s
    M llvm/test/tools/llvm-mca/X86/Znver3/mulx-read-advance.s
    M llvm/test/tools/llvm-mca/X86/Znver3/mulx-same-regs.s
    M llvm/test/tools/llvm-mca/X86/Znver3/one-idioms-avx-xmm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/one-idioms-avx-ymm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/one-idioms-mmx.s
    M llvm/test/tools/llvm-mca/X86/Znver3/one-idioms-sse-xmm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/partial-reg-update-3.s
    M llvm/test/tools/llvm-mca/X86/Znver3/partial-reg-update-4.s
    M llvm/test/tools/llvm-mca/X86/Znver3/partial-reg-update-5.s
    M llvm/test/tools/llvm-mca/X86/Znver3/partial-reg-update-6.s
    M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-avx-xmm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-avx-ymm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-gpr.s
    M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-mmx.s
    M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-sse-xmm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-x87.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-adx.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-aes.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-avx1.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-avx2.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-bmi1.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-bmi2.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-clflushopt.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-clzero.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-cmov.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-cmpxchg.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-f16c.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-fma.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-fsgsbase.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-lea.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-lzcnt.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-mmx.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-movbe.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-mwaitx.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-pclmul.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-popcnt.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-prefetchw.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-rdrand.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-rdseed.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sha.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sse1.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sse2.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sse3.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sse41.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sse42.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sse4a.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-ssse3.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-vaes.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-vpclmulqdq.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-x86_32.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-x86_64.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-x87.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-xsave.s
    M llvm/test/tools/llvm-mca/X86/Znver3/zero-idioms-avx-xmm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/zero-idioms-avx-ymm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/zero-idioms-gpr.s
    M llvm/test/tools/llvm-mca/X86/Znver3/zero-idioms-sse-xmm.s
    A llvm/test/tools/llvm-objcopy/ELF/compress-sections-within-segment.s
    A llvm/test/tools/llvm-objcopy/ELF/compress-sections.s
    M llvm/test/tools/llvm-objcopy/ELF/decompress-sections.test
    M llvm/test/tools/llvm-readobj/ELF/AArch64/aarch64-feature-pauth.s
    M llvm/test/tools/llvm-readobj/ELF/AArch64/aarch64-note-gnu-property.s
    M llvm/tools/gold/CMakeLists.txt
    M llvm/tools/llvm-dis/llvm-dis.cpp
    M llvm/tools/llvm-objcopy/ObjcopyOptions.cpp
    M llvm/tools/llvm-objcopy/ObjcopyOpts.td
    M llvm/tools/llvm-readobj/ELFDumper.cpp
    M llvm/unittests/ADT/APIntTest.cpp
    M llvm/unittests/ProfileData/MemProfTest.cpp
    M llvm/unittests/TextAPI/TextStubV5Tests.cpp
    M llvm/utils/TableGen/X86ManualCompressEVEXTables.def
    M llvm/utils/gn/secondary/bolt/lib/Profile/BUILD.gn
    M llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/readability/BUILD.gn
    M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
    M llvm/utils/gn/secondary/libcxx/src/BUILD.gn
    M llvm/utils/gn/secondary/llvm/lib/CodeGen/GlobalISel/BUILD.gn
    M mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/include/mlir/Dialect/Vector/IR/ScalableValueBoundsConstraintSet.h
    M mlir/include/mlir/Interfaces/MemorySlotInterfaces.td
    M mlir/include/mlir/Interfaces/ValueBoundsOpInterface.h
    M mlir/lib/Dialect/Affine/Transforms/ReifyValueBounds.cpp
    M mlir/lib/Dialect/Arith/Transforms/ReifyValueBounds.cpp
    M mlir/lib/Dialect/LLVMIR/IR/LLVMMemorySlot.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/HoistPadding.cpp
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/lib/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorPasses.cpp
    M mlir/lib/Dialect/Vector/IR/ScalableValueBoundsConstraintSet.cpp
    M mlir/lib/Interfaces/ValueBoundsOpInterface.cpp
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/lib/Transforms/Mem2Reg.cpp
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg-invalid.mlir
    M mlir/test/Dialect/Affine/SuperVectorize/compose_maps.mlir
    M mlir/test/Dialect/Affine/SuperVectorize/vector_utils.mlir
    M mlir/test/Dialect/Affine/SuperVectorize/vectorize_unsupported.mlir
    M mlir/test/Dialect/Affine/loop-fusion-dependence-check.mlir
    M mlir/test/Dialect/Affine/loop-fusion-slice-computation.mlir
    M mlir/test/Dialect/Affine/loop-fusion-transformation.mlir
    M mlir/test/Dialect/Affine/slicing-utils.mlir
    M mlir/test/Dialect/LLVMIR/mem2reg-dbginfo.mlir
    M mlir/test/Dialect/OpenMP/invalid.mlir
    M mlir/test/Dialect/OpenMP/ops.mlir
    A mlir/test/Target/LLVMIR/openmp-parallel-reduction-cleanup.mlir
    A mlir/test/Target/LLVMIR/openmp-reduction-init-arg.mlir
    A mlir/test/Target/LLVMIR/openmp-wsloop-reduction-cleanup.mlir
    M mlir/test/lib/Dialect/Affine/TestLoopFusion.cpp
    M mlir/test/lib/Dialect/Affine/TestReifyValueBounds.cpp
    M mlir/test/lib/Dialect/Affine/TestVectorizationUtils.cpp
    M mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-yaml-gen.cpp
    M openmp/runtime/test/affinity/kmp-abs-hw-subset.c
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/__support/BUILD.bazel
    A utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel

  Log Message:
  -----------
  [𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.4

[skip ci]


Compare: https://github.com/llvm/llvm-project/compare/37fdee1f17f6...f9cedbe1ccc6

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