[all-commits] [llvm/llvm-project] 37bee2: [BOLT][NFC] Refactor function matching (#97502)

Fangrui Song via All-commits all-commits at lists.llvm.org
Mon Jul 8 09:29:14 PDT 2024


  Branch: refs/heads/users/MaskRay/spr/main.llvm-objcopy-support-crel
  Home:   https://github.com/llvm/llvm-project
  Commit: 37bee254975baaa07511cc93ddf059722f29e6b0
      https://github.com/llvm/llvm-project/commit/37bee254975baaa07511cc93ddf059722f29e6b0
  Author: Shaw Young <58664393+shawbyoung at users.noreply.github.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M bolt/include/bolt/Profile/YAMLProfileReader.h
    M bolt/lib/Profile/YAMLProfileReader.cpp

  Log Message:
  -----------
  [BOLT][NFC] Refactor function matching (#97502)

Moved function matching techniques into separate helper functions for
ease of understanding and to make space for additional function 
matching techniques to be added (e.g. call graph function matching).


  Commit: 4a0aff199bda8abf04a59e4c0bdcedaac7d19841
      https://github.com/llvm/llvm-project/commit/4a0aff199bda8abf04a59e4c0bdcedaac7d19841
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M llvm/include/llvm/MC/MCAssembler.h
    M llvm/lib/MC/MCAssembler.cpp

  Log Message:
  -----------
  MCAssembler: Clean up iterator types for Symbols


  Commit: 045e68f97b0e3d3df7be1d45e9ea3e105fff7b2a
      https://github.com/llvm/llvm-project/commit/045e68f97b0e3d3df7be1d45e9ea3e105fff7b2a
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M libc/test/src/unistd/readlink_test.cpp
    M libc/test/src/unistd/readlinkat_test.cpp

  Log Message:
  -----------
  [libc] Change the test file names used in readlink_test and readlinkat_test. (#97864)

Attempting to fix the following errors from the build bots:
```
Failed to match LIBC_NAMESPACE::symlink(LINK_VAL, LINK) against Succeeds(0).
Expected return value to be equal to 0 but got -1.
Expected errno to be equal to "Success" but got "File exists".
```


  Commit: dc1da93958be0311b79dce39d71bd954c478cf19
      https://github.com/llvm/llvm-project/commit/dc1da93958be0311b79dce39d71bd954c478cf19
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M bolt/lib/Profile/BoltAddressTranslation.cpp
    M bolt/test/X86/register-fragments-bolt-symbols.s

  Log Message:
  -----------
  [BOLT][BAT] Add support for three-way split functions (#93760)

In three-way split functions, if only .warm fragment is present, BAT
incorrectly overwrites the map for .warm fragment by empty .cold
fragment.

Test Plan: updated register-fragments-bolt-symbols.s


  Commit: 34855405b0a7dd6719fa3278f9b888f7f11bc4d8
      https://github.com/llvm/llvm-project/commit/34855405b0a7dd6719fa3278f9b888f7f11bc4d8
  Author: Youngsuk Kim <youngsuk.kim at hpe.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M llvm/lib/CodeGen/MIRPrintingPass.cpp
    M llvm/lib/FileCheck/FileCheck.cpp
    M llvm/lib/IR/DiagnosticInfo.cpp
    M llvm/lib/Remarks/Remark.cpp
    M llvm/tools/llvm-opt-report/OptReport.cpp
    M llvm/utils/TableGen/CompressInstEmitter.cpp
    M llvm/utils/TableGen/X86DisassemblerTables.cpp

  Log Message:
  -----------
  [llvm] Avoid 'raw_string_ostream::str' (NFC)

Since `raw_string_ostream` doesn't own the string buffer, it is
desirable (in terms of memory safety) for users to directly reference
the string buffer rather than use `raw_string_ostream::str()`.

Work towards TODO item to remove `raw_string_ostream::str()`.


  Commit: ceade83ad5fc529f2b2beb896eec0dd0b29fdd44
      https://github.com/llvm/llvm-project/commit/ceade83ad5fc529f2b2beb896eec0dd0b29fdd44
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M clang/lib/Format/Format.cpp
    M clang/unittests/Format/SortIncludesTest.cpp

  Log Message:
  -----------
  [clang-format] Skip block commented out includes when sorting them (#97787)

Fixes #97539.


  Commit: b75453bc07dabe8e0dc0efb0766a4238e3df6712
      https://github.com/llvm/llvm-project/commit/b75453bc07dabe8e0dc0efb0766a4238e3df6712
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M llvm/include/llvm/MC/MCAssembler.h
    M llvm/lib/MC/MCAssembler.cpp
    M llvm/lib/MC/MachObjectWriter.cpp
    M llvm/lib/MC/WinCOFFObjectWriter.cpp

  Log Message:
  -----------
  MCAssembler: Remove unneeded non-const iterators for Sections and misleading size()

The pointers cannot be mutated even if the dereferenced MCSection can.


  Commit: 8f5b1440dbdda570d66f170f47cb971388126bf3
      https://github.com/llvm/llvm-project/commit/8f5b1440dbdda570d66f170f47cb971388126bf3
  Author: Keith Smiley <keithbsmiley at gmail.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

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

  Log Message:
  -----------
  [bazel] Port #97777 (#97868)


  Commit: 88381cecfff48536230e11901f1598332033fd45
      https://github.com/llvm/llvm-project/commit/88381cecfff48536230e11901f1598332033fd45
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

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

  Log Message:
  -----------
  [RISCV] Hoist some common setOperationActions to a common place. NFC

We always want these actions if the type is legal. We don't need
to check the subtarget features. So hoist them to a common point.


  Commit: f118c882fe2f2548b814492aa4e51ef29aa29739
      https://github.com/llvm/llvm-project/commit/f118c882fe2f2548b814492aa4e51ef29aa29739
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

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

  Log Message:
  -----------
  [RISCV] Remove unnecessary setOperationAction for ISD::SELECT_CC for fixed vectors. NFC

We already looped through all builtin operations and marked them as
Expand. We don't need to do it to SELECT_CC again.


  Commit: 593f708118aef792f434185547f74fedeaf51dd4
      https://github.com/llvm/llvm-project/commit/593f708118aef792f434185547f74fedeaf51dd4
  Author: Alexandre Ganea <aganea at havenstudios.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M llvm/lib/Support/Windows/Process.inc
    M llvm/lib/Support/Windows/Signals.inc

  Log Message:
  -----------
  [Support] Silence function cast warning when building with Clang ToT targetting Windows


  Commit: 10e1b935e5d9017067207d62ababa733df088ecd
      https://github.com/llvm/llvm-project/commit/10e1b935e5d9017067207d62ababa733df088ecd
  Author: Alexandre Ganea <aganea at havenstudios.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cpp

  Log Message:
  -----------
  [compiler-rt] Silence function cast warning when building with Clang ToT targetting Windows


  Commit: cf1ded3ac248ad4feeed7b4dd20c60b7e3c40339
      https://github.com/llvm/llvm-project/commit/cf1ded3ac248ad4feeed7b4dd20c60b7e3c40339
  Author: Alexandre Ganea <aganea at havenstudios.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M lldb/source/Plugins/Process/Windows/Common/TargetThreadWindows.cpp

  Log Message:
  -----------
  [lldb] Silence function cast warning when building with Clang ToT targetting Windows


  Commit: be26e545424a6e006cd67e4433c88c25b23404ae
      https://github.com/llvm/llvm-project/commit/be26e545424a6e006cd67e4433c88c25b23404ae
  Author: Alexandre Ganea <aganea at havenstudios.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M openmp/runtime/src/CMakeLists.txt

  Log Message:
  -----------
  [openmp] Silence warning when building the x64 Windows LLVM release package

This fixes:
```
MASM : warning A4018:invalid command-line option : -U_GLIBCXX_ASSERTIONS
```


  Commit: 6337fdcc520e8f948bef23b361c75edeb32ed015
      https://github.com/llvm/llvm-project/commit/6337fdcc520e8f948bef23b361c75edeb32ed015
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-int.ll

  Log Message:
  -----------
  [RISCV] Use EXTLOAD in lowerVECTOR_SHUFFLE. (#97862)

We're creating a load and a splat. The splat doesn't use the extended
bits so it doesn't matter what extend we use.


  Commit: 0b9f2847da79298ed09c29493245113f02b32d9f
      https://github.com/llvm/llvm-project/commit/0b9f2847da79298ed09c29493245113f02b32d9f
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll

  Log Message:
  -----------
  [RISCV] Remove unused check-prefixes. NFC


  Commit: a348824798e03c1ffd10e6a1c5340130b0f48bf9
      https://github.com/llvm/llvm-project/commit/a348824798e03c1ffd10e6a1c5340130b0f48bf9
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll
    M llvm/test/CodeGen/RISCV/rvv/vmadd-vp.ll

  Log Message:
  -----------
  [RISCV] Allow folding vmerge with implicit passthru when true has tied dest (#78565)

We currently don't fold a vmerge if it has an implicit-def passthru and
its true operand also has a passthru (i.e. tied dest).

This restriction was added in https://reviews.llvm.org/D151596, back
whenever we had separate TU/TA pseudos. It looks like it was added
because the policy might not have been handled correctly.

However the policy should be set correctly if we relax this restriction
today, since we compute the policy differently now that we have removed
the TU/TA distinction in our pseudos.

We use a TUMU policy, and relax it to TAMU iff the vmerge's passthru is
implicit-def.

The reasoning behind this being that the tail elements always come from
the vmerge's passthru[^1], so if vmerge's passthru is implicit-def then
the tail is also implicit-def. So a tail agnostic policy is OK.

[^1]: unless the VL was shrunk, but in this case which case we
conservatively use TUMU.


  Commit: ccf357ff643c6af86bb459eba5a00f40f1dcaf22
      https://github.com/llvm/llvm-project/commit/ccf357ff643c6af86bb459eba5a00f40f1dcaf22
  Author: Izaak Schroeder <izaak.schroeder at gmail.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M libc/config/linux/aarch64/headers.txt
    M libc/config/linux/x86_64/headers.txt
    M libc/include/CMakeLists.txt
    A libc/include/dlfcn.h.def
    M libc/include/llvm-libc-macros/CMakeLists.txt
    A libc/include/llvm-libc-macros/dlfcn-macros.h

  Log Message:
  -----------
  [libc] Add `dlfcn.h` headers (#97772)


  Commit: 9cb9a97e44130e17e96f994c3e594aba69ea1ad5
      https://github.com/llvm/llvm-project/commit/9cb9a97e44130e17e96f994c3e594aba69ea1ad5
  Author: Petr Hosek <phosek at google.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M clang/cmake/caches/Fuchsia-stage2.cmake
    M compiler-rt/cmake/Modules/CompilerRTUtils.cmake
    M runtimes/CMakeLists.txt

  Log Message:
  -----------
  [CMake] Use Clang to infer the target triple (#89425)

When using Clang as a compiler, use Clang to normalize the triple that's
used to construct path for runtime library build and install paths. This
ensures that paths are consistent and avoids the issue where the build
uses a different triple spelling.

Differential Revision: https://reviews.llvm.org/D140925


  Commit: acd7a688fcd26ce4d72cecbddeddef788482e17e
      https://github.com/llvm/llvm-project/commit/acd7a688fcd26ce4d72cecbddeddef788482e17e
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetInstrInfo.h
    M llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp
    M llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.h
    M llvm/tools/bugpoint/BugDriver.cpp
    M llvm/tools/llvm-as/llvm-as.cpp
    M llvm/tools/llvm-extract/llvm-extract.cpp
    M llvm/tools/llvm-link/llvm-link.cpp
    M llvm/tools/verify-uselistorder/verify-uselistorder.cpp

  Log Message:
  -----------
  [llvm] Remove redundant calls to std::unique_ptr<T>::get (NFC) (#97778)


  Commit: 874ca08645420413e525054a47caf039bebde28b
      https://github.com/llvm/llvm-project/commit/874ca08645420413e525054a47caf039bebde28b
  Author: Zhikai Zeng <backlight.zzk at gmail.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/AST/ExprConstant.cpp
    M clang/test/SemaCXX/eval-crashes.cpp

  Log Message:
  -----------
  [Clang][ExprConstant] fix constant expression did not evaluate to integer (#97146)

fixes https://github.com/llvm/llvm-project/issues/96670

The cause is that we might return a lvalue here at


https://github.com/llvm/llvm-project/blob/3e53c97d33210db68188e731e93ee48dbaeeae32/clang/lib/AST/ExprConstant.cpp#L15861-L15865

This PR will make sure we return a rvalue in `FastEvaluateAsRValue`.


  Commit: ac9d34a2eed4c4d58edf25b92e397faa76170d00
      https://github.com/llvm/llvm-project/commit/ac9d34a2eed4c4d58edf25b92e397faa76170d00
  Author: PeterChou1 <peter.chou at mail.utoronto.ca>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M clang-tools-extra/clang-doc/tool/CMakeLists.txt
    M llvm/CMakeLists.txt

  Log Message:
  -----------
  [clang-doc] revert asset bug fix (#97882)

reverts https://github.com/llvm/llvm-project/pull/97540

which broke clangs standalone build


  Commit: 5aa8ef8e9b05b714550eedbced34f67f225dbe6f
      https://github.com/llvm/llvm-project/commit/5aa8ef8e9b05b714550eedbced34f67f225dbe6f
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M libcxx/test/libcxx/language.support/support.dynamic/libcpp_deallocate.sh.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp

  Log Message:
  -----------
  [libc++][test] Updates sized deallocation tests. (#97833)

In #90373 size deallocation was enabled by default. Some test were
disabled to propagate the clang changes to the libc++ CI. These changes
have been propagated so the test filter can be updated.


  Commit: 126f81dd5a804636e4b66146d2d039099d9d5889
      https://github.com/llvm/llvm-project/commit/126f81dd5a804636e4b66146d2d039099d9d5889
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M libcxx/src/tzdb.cpp

  Log Message:
  -----------
  [NFC][libc++] removes std:: qualification,

Elements in nested namespaces in the std namespace do not use fully
qualified names in libc++. This adjusts a few cases found.


  Commit: 55b95a7a75ec4568d6ee7a3199090e830619c68e
      https://github.com/llvm/llvm-project/commit/55b95a7a75ec4568d6ee7a3199090e830619c68e
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M mlir/docs/DialectConversion.md
    M mlir/include/mlir/Transforms/DialectConversion.h

  Log Message:
  -----------
  [mlir][Transforms][NFC] Dialect conversion: Reland docs improvement (#97886)

#96207 was reverted but the improvements to the documentation of the
dialect conversion are still useful.


  Commit: 88b26293a24bdd85fce2b2f7191cc0a5bc0cecfe
      https://github.com/llvm/llvm-project/commit/88b26293a24bdd85fce2b2f7191cc0a5bc0cecfe
  Author: Anatoly Trosinenko <atrosinenko at accesssoftek.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64SLSHardening.cpp
    A llvm/test/CodeGen/AArch64/speculation-hardening-sls-blra.mir

  Log Message:
  -----------
  [AArch64][PAC] Support BLRA* instructions in SLS Hardening pass (#97605)

Make SLS Hardening pass handle BLRA* instructions the same way it
handles BLR. The thunk names have the form

    __llvm_slsblr_thunk_xN            for BLR thunks
    __llvm_slsblr_thunk_(aaz|abz)_xN  for BLRAAZ and BLRABZ thunks
    __llvm_slsblr_thunk_(aa|ab)_xN_xM for BLRAA and BLRAB thunks

Now there are about 1800 possible thunk names, so do not rely on linear
thunk function's name lookup and parse the name instead.


  Commit: f90bac99e19d4243ac52cf6e18aa374f9a8754cb
      https://github.com/llvm/llvm-project/commit/f90bac99e19d4243ac52cf6e18aa374f9a8754cb
  Author: Anatoly Trosinenko <atrosinenko at accesssoftek.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64SLSHardening.cpp
    R llvm/test/CodeGen/AArch64/speculation-hardening-sls-blra.mir

  Log Message:
  -----------
  Revert "[AArch64][PAC] Support BLRA* instructions in SLS Hardening pass" (#97887)

This reverts commit 88b26293a24bdd85fce2b2f7191cc0a5bc0cecfe due to
failures of

    CodeGen/AArch64/speculation-hardening-sls-blra.mir


  Commit: be3a8b8d94608746b22cb0cf3fc03af33b7d8648
      https://github.com/llvm/llvm-project/commit/be3a8b8d94608746b22cb0cf3fc03af33b7d8648
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticGroups.td

  Log Message:
  -----------
  [clang] Add C++26 diagnostics to compatibility diagnosic groups (#97806)

This patch adds `CXXPre26Compat` and `CXXPre26CompatPedantic` groups
(which are concerned with new features not available in older language
modes) to `CXX98Compat`, etc. This way, if user has `-Wc++20-compat` and
they use pack indexing, they will be warned.

Ideally this should have been done when C++26 groups were created, but
we shipped two releases of Clang since then.


  Commit: 4a9aef683df895934c26591404692d41a687b005
      https://github.com/llvm/llvm-project/commit/4a9aef683df895934c26591404692d41a687b005
  Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M llvm/include/llvm/ADT/APInt.h
    M llvm/include/llvm/ADT/DynamicAPInt.h
    M llvm/include/llvm/ADT/SlowDynamicAPInt.h
    M llvm/lib/Support/DynamicAPInt.cpp

  Log Message:
  -----------
  DynamicAPInt: optimize size of structure (#97831)

Reuse the APInt::BitWidth to eliminate DynamicAPInt::HoldsLarge, cutting
the size of DynamicAPInt by four bytes. This is implemented by making
DynamicAPInt a friend of SlowDynamicAPInt and APInt, so it can directly
access SlowDynamicAPInt::Val and APInt::BitWidth.

We get a speedup of 4% with this patch.


  Commit: de88b2cb16af4bba659d0bb2ddf10bda681ec84d
      https://github.com/llvm/llvm-project/commit/de88b2cb16af4bba659d0bb2ddf10bda681ec84d
  Author: Gábor Spaits <gaborspaits1 at gmail.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaInit.cpp

  Log Message:
  -----------
  [Clang] Simplify release notes and remove irrelevant comment (#96407)

As discussed before with @cor3ntin before
(https://github.com/llvm/llvm-project/pull/94752) here is the
simplification of the release note written for the previously mentioned
PR and the removal of a comment that is no longer useful.

(Sorry for creating this PR this late.)

Co-authored-by: Gabor Spaits <Gabor.Spaits at hightec-rt.com>


  Commit: f8834ed24bf11d19c96c49d42e77d4408af91fd8
      https://github.com/llvm/llvm-project/commit/f8834ed24bf11d19c96c49d42e77d4408af91fd8
  Author: Hendrik Hübner <117831077+HendrikHuebner at users.noreply.github.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M libc/config/darwin/arm/entrypoints.txt
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/docs/math/index.rst
    M libc/src/math/CMakeLists.txt
    A libc/src/math/cospif.h
    M libc/src/math/generic/CMakeLists.txt
    A libc/src/math/generic/cospif.cpp
    M libc/src/math/generic/sinpif.cpp
    M libc/test/src/math/CMakeLists.txt
    A libc/test/src/math/cospif_test.cpp
    M libc/test/src/math/exhaustive/CMakeLists.txt
    A libc/test/src/math/exhaustive/cospif_test.cpp
    M libc/test/src/math/smoke/CMakeLists.txt
    A libc/test/src/math/smoke/cospif_test.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.h

  Log Message:
  -----------
  [libc][C23][math] Implement cospif function correctly rounded for all rounding modes (#97464)

I also fixed a comment in sinpif.cpp in the first commit. Should this be
included in this PR?

All tests were passed, including the exhaustive test.

CC: @lntue


  Commit: 9374f83a73e53633da3258090f5c9a1f0d055526
      https://github.com/llvm/llvm-project/commit/9374f83a73e53633da3258090f5c9a1f0d055526
  Author: Justin Holewinski <jholewinski at nvidia.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

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

  Log Message:
  -----------
  Outline X86 autoupgrade patterns (#97851)

Outlining these patterns has a significant impact on the overall stack
frame size of llvm::UpgradeIntrinsicCall. This is helpful for scenarios
where compilation threads are stack-constrained. The overall impact is
low when using clang as the host compiler, but very pronounced when
using MSVC 2022 with release builds.

Clang:   1,624 ->   824 bytes
MSVC:   23,560 -> 6,120 bytes


  Commit: 2da0055924161d63f4ecb88371ba6ccb4552f13d
      https://github.com/llvm/llvm-project/commit/2da0055924161d63f4ecb88371ba6ccb4552f13d
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M libcxx/include/__string/char_traits.h

  Log Message:
  -----------
  [libc++][NFC] Merge identical char_traits functions into a base class (#97700)


  Commit: d64efe42eb98af76ba4ba26f48d079713f513af9
      https://github.com/llvm/llvm-project/commit/d64efe42eb98af76ba4ba26f48d079713f513af9
  Author: Daniel Bertalan <dani at danielbertalan.dev>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M lld/MachO/Driver.cpp
    M lld/MachO/Writer.cpp
    M lld/test/MachO/init-offsets.s
    A lld/test/MachO/invalid/init-offsets.s

  Log Message:
  -----------
  [lld-macho] Remove symbols to `__mod_init_func` with `-init_offsets` (#97156)

When `-fixup_chains`/`-init_offsets` is used, a different section,
`__init_offsets` is synthesized from `__mod_init_func`. If there are any
symbols defined inside `__mod_init_func`, they are added to the symbol
table unconditionally while processing the input files. Later, when
querying these symbols' addresses (when constructing the symtab or
exports trie), we crash with a null deref, as there is no output section
assigned to them.

Just making the symbols point to `__init_offsets` is a bad idea, as the
new section stores 32-bit integers instead of 64-bit pointers; accessing
the symbols would not do what the programmer intended. We should
entirely omit them from the output. This is what ld64 and ld-prime do.

This patch uses the same mechanism as dead-stripping to mark these
symbols as not needed in the output. There might be nicer fixes than the
workaround, this is discussed in #97155.

Fixes https://github.com/llvm/llvm-project/pull/79894#issuecomment-1944092892
Fixes #94716


  Commit: e55585fd7bddf5bb3824a53cbe2971206d3c20c6
      https://github.com/llvm/llvm-project/commit/e55585fd7bddf5bb3824a53cbe2971206d3c20c6
  Author: cor3ntin <corentinjabot at gmail.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M clang/www/cxx_status.html

  Log Message:
  -----------
  [Clang] Fix typo in cxx_status.html


  Commit: 9e9404387d3b787305dc8bf21b0e20c477b6ff39
      https://github.com/llvm/llvm-project/commit/9e9404387d3b787305dc8bf21b0e20c477b6ff39
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M libcxx/docs/index.rst
    M libcxx/include/__configuration/compiler.h
    M libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp
    M libcxx/test/std/algorithms/robust_against_adl.compile.pass.cpp
    M libcxx/test/std/containers/views/mdspan/mdspan/index_operator.pass.cpp
    M libcxx/test/std/time/time.zone/time.zone.leap/nonmembers/comparison.pass.cpp
    M libcxx/test/std/utilities/expected/expected.expected/monadic/transform.pass.cpp
    M libcxx/test/std/utilities/expected/expected.expected/monadic/transform_error.pass.cpp
    M libcxx/test/std/utilities/expected/expected.void/monadic/transform_error.pass.cpp
    M libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.char_array.pass.cpp
    M libcxxabi/test/catch_member_function_pointer_02.pass.cpp

  Log Message:
  -----------
  [libc++] Remove annotations for GCC 13 and update the documentation (#97744)

GCC 14 has been released a while ago. We've updated the CI to use GCC 14
now. This removes any old annotations in the tests and updates the
documentation to reflect the updated version requirements.


  Commit: 048815c22ae779b1f2a0289b7b28ed8cf54af676
      https://github.com/llvm/llvm-project/commit/048815c22ae779b1f2a0289b7b28ed8cf54af676
  Author: Alexandre Ganea <aganea at havenstudios.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M lldb/source/Plugins/Process/Windows/Common/TargetThreadWindows.cpp

  Log Message:
  -----------
  Revert "[lldb] Silence function cast warning when building with Clang ToT targetting Windows"

This reverts commit cf1ded3ac248ad4feeed7b4dd20c60b7e3c40339.


  Commit: b4b17d97637bb70976405b7cd4194ee89a60b763
      https://github.com/llvm/llvm-project/commit/b4b17d97637bb70976405b7cd4194ee89a60b763
  Author: Alexandre Ganea <aganea at havenstudios.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cpp

  Log Message:
  -----------
  Revert "[compiler-rt] Silence function cast warning when building with Clang ToT targetting Windows"

This reverts commit 10e1b935e5d9017067207d62ababa733df088ecd.


  Commit: 57b76b4210728a11a5a0c5ed869a251d5ad9742d
      https://github.com/llvm/llvm-project/commit/57b76b4210728a11a5a0c5ed869a251d5ad9742d
  Author: Alexandre Ganea <aganea at havenstudios.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M llvm/lib/Support/Windows/Process.inc
    M llvm/lib/Support/Windows/Signals.inc

  Log Message:
  -----------
  Revert "[Support] Silence function cast warning when building with Clang ToT targetting Windows"

This reverts commit 593f708118aef792f434185547f74fedeaf51dd4.


  Commit: 6e4bb60adef6abd34516f9121930eaa84e41e04a
      https://github.com/llvm/llvm-project/commit/6e4bb60adef6abd34516f9121930eaa84e41e04a
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M libcxx/utils/libcxx/test/features.py

  Log Message:
  -----------
  [libc++] Assume newer LLVM versions for not-yet-released macOS versions

This makes the test suite forward-compatible with future versions of macOS.
Previously, the Lit features were built in a way that they would assume
that any newer macOS version doesn't contain any version of LLVM, which
doesn't make sense.


  Commit: 8426b51e0e942b27af8a50b9cee53c1b68d139c2
      https://github.com/llvm/llvm-project/commit/8426b51e0e942b27af8a50b9cee53c1b68d139c2
  Author: Mital Ashok <mital at mitalashok.co.uk>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M libcxx/test/std/utilities/utility/pairs/pairs.pair/ctor.pair_U_V_move.pass.cpp

  Log Message:
  -----------
  [libcxx][test][NFC] Fix std::pair convertible tests in light of CWG2137 (#97403)

https://cplusplus.github.io/CWG/issues/2137.html

This change was previously made as part of
924701311aa79180e86ad8ce43d253f27d25ec7d (#77768) and later reverted in
6e4930c67508a90bdfd756f6e45417b5253cd741

This change is still needed because the comment is still true: A
standards-conformant compiler is currently supposed to fail this test.

This also means that any future work on CWG2137 with Clang would not
need to modify the libc++ test suite


  Commit: 5028dea65266ab8b7f8f9ebd5d5e01faacebc645
      https://github.com/llvm/llvm-project/commit/5028dea65266ab8b7f8f9ebd5d5e01faacebc645
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

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

  Log Message:
  -----------
  [LAA] Only invalidate loops that require runtime checks (NFCI).

LAA doesn't keep references to IR outside the loop or references to
SCEVs that may be invalidated, unless runtime checks are needed (either
memory or SCEV predicates). For the current LAA users, it should be
sufficient to invalidate entries for loops that require runtime checks,
thus avoiding analyzing loops again unnecessarily.

This helps reduce compile-time, in particular when removing the
restrictions added in 234cc40adc6.

https://llvm-compile-time-tracker.com/compare.php?from=73894dba2cdbcc00678d0c13a6b61765675f60b4&to=05c6bdc41b5f63696ebeb7116325725fa94f66d6&stat=instructions:u


  Commit: 9abb574f9a68b1c0c32f49745f9dad8e1a7db1f9
      https://github.com/llvm/llvm-project/commit/9abb574f9a68b1c0c32f49745f9dad8e1a7db1f9
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M llvm/include/llvm/MC/MCDwarf.h

  Log Message:
  -----------
  [MC] Make MCCFIInstruction smaller

by placing `Operation` next to a 4-byte member.
Refactor the union representation so that it is easy to add a pointer
member for .cfi_label support without increasing the total size. There
are two primary forms (RI and RR) and RIA for AMDGPU-specific
.cfi_llvm_def_aspace_cfa.


  Commit: 40c12648c6c0a39efce294e3fa763fd6c8ed4005
      https://github.com/llvm/llvm-project/commit/40c12648c6c0a39efce294e3fa763fd6c8ed4005
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/Bitcode/Reader/MetadataLoader.cpp
    M llvm/lib/Bitcode/Writer/ValueEnumerator.cpp

  Log Message:
  -----------
  [Bitcode] Use range-based for loops (NFC) (#97776)


  Commit: 02c7be5094fa3ffb3f118d9e2d69af435b7c8ef6
      https://github.com/llvm/llvm-project/commit/02c7be5094fa3ffb3f118d9e2d69af435b7c8ef6
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M libcxx/include/__locale_dir/locale_base_api.h
    M libcxx/include/__locale_dir/locale_base_api/android.h
    M libcxx/include/__locale_dir/locale_base_api/fuchsia.h
    M libcxx/include/__locale_dir/locale_base_api/ibm.h
    M libcxx/include/__locale_dir/locale_base_api/musl.h
    M libcxx/include/__locale_dir/locale_base_api/newlib.h
    M libcxx/include/__locale_dir/locale_base_api/openbsd.h
    M libcxx/include/__locale_dir/locale_base_api/win32.h
    M libcxx/include/__support/xlocale/__posix_l_fallback.h
    M libcxx/include/__support/xlocale/__strtonum_fallback.h

  Log Message:
  -----------
  [libc++] Remove dead code from the locale base API and support code (#89070)


  Commit: f4e6ddbc2ed77ef73a036408f1d04bb792e2d357
      https://github.com/llvm/llvm-project/commit/f4e6ddbc2ed77ef73a036408f1d04bb792e2d357
  Author: jameshu15869 <55058507+jameshu15869 at users.noreply.github.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M libc/benchmarks/gpu/LibcGpuBenchmark.cpp
    M libc/benchmarks/gpu/LibcGpuBenchmark.h

  Log Message:
  -----------
  [libc] Fix Cppcheck Issues (#96999)

This PR fixes linting issues discovered by `cppcheck`.

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


  Commit: b151c7e36a26a4168d0384c88295099e4b6470d0
      https://github.com/llvm/llvm-project/commit/b151c7e36a26a4168d0384c88295099e4b6470d0
  Author: Izaak Schroeder <izaak.schroeder at gmail.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/docs/dev/undefined_behavior.rst
    M libc/spec/posix.td
    M libc/src/CMakeLists.txt
    A libc/src/dlfcn/CMakeLists.txt
    A libc/src/dlfcn/dlclose.cpp
    A libc/src/dlfcn/dlclose.h
    A libc/src/dlfcn/dlerror.cpp
    A libc/src/dlfcn/dlerror.h
    A libc/src/dlfcn/dlopen.cpp
    A libc/src/dlfcn/dlopen.h
    A libc/src/dlfcn/dlsym.cpp
    A libc/src/dlfcn/dlsym.h

  Log Message:
  -----------
  [libc] Add `dlfcn.h` placeholder (#97501)

Adds `dlopen` and friends. This is needed as part of the effort to
compile `libunwind` + `libc` without baremetal mode. This is part of
https://github.com/llvm/llvm-project/issues/97191. This should still be
spec compliant, since `dlopen` always returns `NULL` and `dlerror`
always returns an error message.

> If dlopen() fails for any reason, it returns NULL.

> The function dlclose() returns 0 on success, and nonzero on error.

> Since the value of the symbol could actually be NULL (so that a NULL
return from dlsym() need not indicate an error), the correct way to test
for an error is to call dlerror() to clear any old error conditions,
then call dlsym(), and then call dlerror() again, saving its return
value into a variable, and check whether this saved value is not NULL.


See:
- https://linux.die.net/man/3/dlopen


  Commit: f767295942288bd70156ad322defac60b568c927
      https://github.com/llvm/llvm-project/commit/f767295942288bd70156ad322defac60b568c927
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M clang-tools-extra/clangd/support/ThreadsafeFS.cpp

  Log Message:
  -----------
  [clangd] Use std::make_unique (NFC) (#97915)


  Commit: 75bc20ff899753b100cb875ce703af2348a1d6bb
      https://github.com/llvm/llvm-project/commit/75bc20ff899753b100cb875ce703af2348a1d6bb
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/BranchProbabilityInfo.h
    M llvm/include/llvm/Analysis/MLInlineAdvisor.h
    M llvm/include/llvm/Analysis/MemorySSA.h
    M llvm/include/llvm/ProfileData/SampleProfReader.h
    M llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    M llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp
    M llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp
    M llvm/lib/IR/DebugProgramInstruction.cpp
    M llvm/lib/ObjectYAML/XCOFFYAML.cpp
    M llvm/lib/Support/TimeProfiler.cpp
    M llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/tools/bugpoint/CrashDebugger.cpp
    M llvm/tools/llvm-as/llvm-as.cpp
    M llvm/tools/llvm-objdump/MachODump.cpp
    M llvm/tools/llvm-profgen/ProfiledBinary.cpp
    M llvm/tools/llvm-readobj/llvm-readobj.cpp
    M llvm/unittests/CodeGen/GlobalISel/GISelMITest.h
    M llvm/unittests/DebugInfo/BTF/BTFParserTest.cpp
    M llvm/unittests/DebugInfo/DWARF/DWARFExpressionCopyBytesTest.cpp
    M llvm/unittests/IR/VFABIDemanglerTest.cpp
    M llvm/unittests/Linker/LinkModulesTest.cpp
    M llvm/unittests/MC/DwarfLineTableHeaders.cpp
    M llvm/unittests/MIR/MachineMetadata.cpp
    M llvm/unittests/Target/X86/MachineSizeOptsTest.cpp
    M llvm/unittests/Transforms/Utils/SizeOptsTest.cpp

  Log Message:
  -----------
  [llvm] Remove redundant calls to std::unique_ptr<T>::get (NFC) (#97914)


  Commit: d00f1c14dc0ea8a933f90ada0f77781d99a439a7
      https://github.com/llvm/llvm-project/commit/d00f1c14dc0ea8a933f90ada0f77781d99a439a7
  Author: Kyungwoo Lee <kyulee at meta.com>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    A llvm/include/llvm/CodeGenData/OutlinedHashTree.h
    A llvm/include/llvm/CodeGenData/OutlinedHashTreeRecord.h
    M llvm/lib/CMakeLists.txt
    A llvm/lib/CodeGenData/CMakeLists.txt
    A llvm/lib/CodeGenData/OutlinedHashTree.cpp
    A llvm/lib/CodeGenData/OutlinedHashTreeRecord.cpp
    M llvm/unittests/CMakeLists.txt
    A llvm/unittests/CodeGenData/CMakeLists.txt
    A llvm/unittests/CodeGenData/OutlinedHashTreeRecordTest.cpp
    A llvm/unittests/CodeGenData/OutlinedHashTreeTest.cpp

  Log Message:
  -----------
  [CGData] Outlined Hash Tree (#89792)

This defines the OutlinedHashTree class.
It contains sequences of stable hash values of instructions that have
been outlined. This OutlinedHashTree can be used to track the outlined
instruction sequences across modules. A trie structure is used in its
implementation, allowing for a compact sharing of common prefixes.

This is a patch for
https://discourse.llvm.org/t/rfc-enhanced-machine-outliner-part-2-thinlto-nolto/78753.


  Commit: 8a41327948e7611e851234782b8005d615c5c92c
      https://github.com/llvm/llvm-project/commit/8a41327948e7611e851234782b8005d615c5c92c
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M lld/docs/ReleaseNotes.rst

  Log Message:
  -----------
  ReleaseNotes: add lld/ELF notes


  Commit: 57fa5084036d10824f6f64e3bcc481db8fa73c24
      https://github.com/llvm/llvm-project/commit/57fa5084036d10824f6f64e3bcc481db8fa73c24
  Author: Kyungwoo Lee <kyulee at meta.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M llvm/unittests/CodeGenData/OutlinedHashTreeTest.cpp

  Log Message:
  -----------
  Fix build break for [CGData] Outlined Hash Tree (#89792)


  Commit: ba255076a0efce1e2e7ecf5572a794912e23370b
      https://github.com/llvm/llvm-project/commit/ba255076a0efce1e2e7ecf5572a794912e23370b
  Author: Izaak Schroeder <izaak.schroeder at gmail.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M libc/config/linux/aarch64/headers.txt
    M libc/config/linux/x86_64/headers.txt
    M libc/include/CMakeLists.txt
    M libc/include/llvm-libc-macros/CMakeLists.txt
    A libc/include/llvm-libc-macros/elf-macros.h
    M libc/include/llvm-libc-macros/link-macros.h
    M libc/include/llvm-libc-types/CMakeLists.txt
    A libc/include/llvm-libc-types/Dl_info.h
    A libc/include/llvm-libc-types/__dl_iterate_phdr_callback_t.h
    A libc/include/llvm-libc-types/struct_dl_phdr_info.h

  Log Message:
  -----------
  [libc] Add `link.h` and `elf.h` headers (#97924)

Headers for https://github.com/llvm/llvm-project/pull/97504


  Commit: 1acb08660a7a2cd3f0f2e8f4fbfe34c830484480
      https://github.com/llvm/llvm-project/commit/1acb08660a7a2cd3f0f2e8f4fbfe34c830484480
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M libc/config/linux/aarch64/headers.txt
    M libc/config/linux/x86_64/headers.txt
    M libc/include/CMakeLists.txt
    M libc/include/llvm-libc-macros/CMakeLists.txt
    R libc/include/llvm-libc-macros/elf-macros.h
    M libc/include/llvm-libc-macros/link-macros.h
    M libc/include/llvm-libc-types/CMakeLists.txt
    R libc/include/llvm-libc-types/Dl_info.h
    R libc/include/llvm-libc-types/__dl_iterate_phdr_callback_t.h
    R libc/include/llvm-libc-types/struct_dl_phdr_info.h

  Log Message:
  -----------
  Revert "[libc] Add `link.h` and `elf.h` headers" (#97931)

Reverts llvm/llvm-project#97924


  Commit: f4c781174b4b8fd958d9074c25eb06b6e276cb1c
      https://github.com/llvm/llvm-project/commit/f4c781174b4b8fd958d9074c25eb06b6e276cb1c
  Author: Younan Zhang <zyn7109 at gmail.com>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/test/SemaTemplate/generic-lambda.cpp

  Log Message:
  -----------
  [Clang] Add captures to the instantiation scope for noexcept specifiers (#97166)

The noexcept specifiers of dependent lambdas would be transformed and
rebuilt, where the map of instantiation should also contain captured
variables in case they are used from the noexcept specifier.

I also uncovered another assertion failure while at it. However, I
decided to leave it as-is because 1) that doesn't appear to be the case
in the release version and 2) fixing that might lead to ABI breakage.
Anyhow, the case has been added to the test comment.

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


  Commit: e83e53b7027149a61a6d4d27ddf66614d8d24129
      https://github.com/llvm/llvm-project/commit/e83e53b7027149a61a6d4d27ddf66614d8d24129
  Author: Carl Ritson <carl.ritson at amd.com>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
    M llvm/unittests/MC/AMDGPU/CMakeLists.txt
    A llvm/unittests/MC/AMDGPU/Disassembler.cpp

  Log Message:
  -----------
  [AMDGPU][MC] Allow UC_VERSION_* constant reuse (#96461)

If more than one disassembler is created for a context then allow reuse
of existing constants.
Warn if constants values do not match.


  Commit: 9d6b68b63f02e0fa3a1dd5b4553cc0d8f17d8777
      https://github.com/llvm/llvm-project/commit/9d6b68b63f02e0fa3a1dd5b4553cc0d8f17d8777
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M libcxx/src/CMakeLists.txt
    R libcxx/src/chrono_exception.cpp
    A libcxx/src/experimental/chrono_exception.cpp
    A libcxx/src/experimental/include/tzdb/time_zone_private.h
    A libcxx/src/experimental/include/tzdb/types_private.h
    A libcxx/src/experimental/include/tzdb/tzdb_list_private.h
    A libcxx/src/experimental/include/tzdb/tzdb_private.h
    A libcxx/src/experimental/time_zone.cpp
    A libcxx/src/experimental/tzdb.cpp
    A libcxx/src/experimental/tzdb_list.cpp
    R libcxx/src/include/tzdb/time_zone_private.h
    R libcxx/src/include/tzdb/types_private.h
    R libcxx/src/include/tzdb/tzdb_list_private.h
    R libcxx/src/include/tzdb/tzdb_private.h
    R libcxx/src/time_zone.cpp
    R libcxx/src/tzdb.cpp
    R libcxx/src/tzdb_list.cpp
    M libcxx/test/libcxx/time/time.zone/time.zone.db/rules.pass.cpp
    M libcxx/test/libcxx/time/time.zone/time.zone.db/zones.pass.cpp

  Log Message:
  -----------
  [libc++][TZDB] Makes implementation experimental. (#95657)

This moves the files to libcxx/src/experimental/ as discussed in #90394.

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


  Commit: 0ff06b44cc345901eaeaf968f885b9a0fd59ec24
      https://github.com/llvm/llvm-project/commit/0ff06b44cc345901eaeaf968f885b9a0fd59ec24
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    A llvm/utils/gn/secondary/llvm/lib/CodeGenData/BUILD.gn
    M llvm/utils/gn/secondary/llvm/unittests/BUILD.gn
    A llvm/utils/gn/secondary/llvm/unittests/CodeGenData/BUILD.gn

  Log Message:
  -----------
  [gn] port d00f1c14dc0e (CodeGenDataTests)


  Commit: 964327d22f51e479ef12dfcfc1ed28af0e7f7d06
      https://github.com/llvm/llvm-project/commit/964327d22f51e479ef12dfcfc1ed28af0e7f7d06
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

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

  Log Message:
  -----------
  [gn] port 9d6b68b63f02 (libc++ tzdb to experimental/)


  Commit: 03807aa2c5d924a2e88fad1cacda2470c5052f1c
      https://github.com/llvm/llvm-project/commit/03807aa2c5d924a2e88fad1cacda2470c5052f1c
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M llvm/unittests/MC/AMDGPU/Disassembler.cpp

  Log Message:
  -----------
  [AMDGPU][MC] Attempt to fix build after e83e53b702714

See https://github.com/llvm/llvm-project/pull/96461#issuecomment-2212381515


  Commit: 902fb1b4653d5a23613492406cd5693446f06ab6
      https://github.com/llvm/llvm-project/commit/902fb1b4653d5a23613492406cd5693446f06ab6
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/unittests/MC/AMDGPU/BUILD.gn

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


  Commit: c65f8d881671c3c7966fbbc967b7c4ca063d989b
      https://github.com/llvm/llvm-project/commit/c65f8d881671c3c7966fbbc967b7c4ca063d989b
  Author: Felix Schneider <fx.schn at gmail.com>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/test/Dialect/Linalg/invalid.mlir

  Log Message:
  -----------
  [mlir][linalg] Fix crashes in parser on linalg ops without operands (#97944)

`parseDstStyleOp` parses both `ins()` and `outs()` optionally. The
parsers for `linalg.transpose`, `linalg.broadcast` and `linalg.map`
however assume that at least one operand is present in the state,
leading to crashes otherwise.

This patch adds checks to the parsers which stop them from crashing if
no operands were parsed. When the Ops are parsed successfuly, the
verifiers can work on them.

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


  Commit: 07c157a43534744bff8b9cf03a5ec8d19717ba72
      https://github.com/llvm/llvm-project/commit/07c157a43534744bff8b9cf03a5ec8d19717ba72
  Author: Jeremy Kun <jkun at google.com>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M mlir/include/mlir/IR/DialectImplementation.h
    M mlir/test/IR/parser.mlir
    A mlir/test/IR/parser_dialect_loading.mlir
    M mlir/test/lib/Dialect/Test/TestAttrDefs.td
    M mlir/test/lib/Dialect/Test/TestOps.td
    M mlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp
    M mlir/tools/mlir-tblgen/AttrOrTypeFormatGen.cpp

  Log Message:
  -----------
  [mlir] load dialect in parser for optional parameters (#96667)

https://github.com/llvm/llvm-project/pull/96242 fixed an issue where the
auto-generated parsers were not loading dialects whose namespaces are
not present in the textual IR. This required the attribute parameter to
be a tablegen def with its dialect information attached.

This fails when using parameter wrapper classes like
`OptionalParameter`. This came up because `RingAttr` uses
`OptionalParameter` for its second and third attributes.
`OptionalParameter` takes as input the C++ type as a string instead of
the tablegen def, and so it doesn't have a dialect member value to
trigger the fix from https://github.com/llvm/llvm-project/pull/96242.
The docs on this topic say the appropriate solution as overloading
`FieldParser` for a particular type.

This PR updates `FieldParser` for generic attributes to load the dialect
on demand. This requires `mlir-tblgen` to emit a `dialectName` static
field on the generated attribute class, and check for it with template
metaprogramming, since not all attribute types go through `mlir-tblgen`.

---------

Co-authored-by: Jeremy Kun <j2kun at users.noreply.github.com>
Co-authored-by: Oleksandr "Alex" Zinenko <ftynse at gmail.com>


  Commit: 649cdfc4b6781a350dfc87d9b2a4b5a4c3395909
      https://github.com/llvm/llvm-project/commit/649cdfc4b6781a350dfc87d9b2a4b5a4c3395909
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M lld/ELF/Driver.cpp
    M lld/test/ELF/version.test

  Log Message:
  -----------
  [ELF] Reinstate the former spelling in the version message

With `LLVM_APPEND_VC_REV=off`, the new version message after #97323
looks like:
```
% /tmp/out/custom2/bin/ld.lld --version
LLD 19.0.0, compatible with GNU linkers
```

A trailing comma after the version string might cause issues with
version detection tools that don't strip it, as seen in the Linux
kernel's scripts/ld-version.sh script.

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


  Commit: d043e4c322489fa5b9f6363e3c83984219c2b602
      https://github.com/llvm/llvm-project/commit/d043e4c322489fa5b9f6363e3c83984219c2b602
  Author: Hristo Hristov <hghristov.rmm at gmail.com>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M libcxx/include/__compare/synth_three_way.h
    M libcxx/include/array
    M libcxx/include/deque
    M libcxx/include/forward_list
    M libcxx/include/list
    M libcxx/include/map
    M libcxx/include/set
    M libcxx/include/vector

  Log Message:
  -----------
  [libc++] Restore `__synth_three_way` lambda (#90398)

Restore `__synth_three_way` lambda to match the Standard. 
GH-57222 is done, restoring the Standard wording implementation should
be possible.


https://github.com/llvm/llvm-project/blob/df28d4412c1d21b0e18896c92ac77d2fac7729f1/libcxx/include/__compare/synth_three_way.h#L28

According to comment
https://github.com/llvm/llvm-project/issues/59513#issuecomment-2068338762,
GH-59513 is not a blocker.

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


  Commit: 7f3c40a6613346a4ea856c1462de4fca12dc4fef
      https://github.com/llvm/llvm-project/commit/7f3c40a6613346a4ea856c1462de4fca12dc4fef
  Author: Nhat Nguyen <nhat7203 at gmail.com>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/hdr/CMakeLists.txt
    A libc/hdr/limits_macros.h
    A libc/hdr/sys_stat_macros.h
    A libc/hdr/unistd_macros.h
    M libc/include/llvm-libc-macros/limits-macros.h
    M libc/include/llvm-libc-macros/linux/unistd-macros.h
    M libc/src/sys/statvfs/linux/CMakeLists.txt
    M libc/src/unistd/CMakeLists.txt
    A libc/src/unistd/fpathconf.h
    M libc/src/unistd/linux/CMakeLists.txt
    A libc/src/unistd/linux/fpathconf.cpp
    A libc/src/unistd/linux/pathconf.cpp
    A libc/src/unistd/linux/pathconf_utils.cpp
    A libc/src/unistd/linux/pathconf_utils.h
    A libc/src/unistd/pathconf.h
    M libc/test/src/unistd/CMakeLists.txt
    A libc/test/src/unistd/fpathconf_test.cpp
    A libc/test/src/unistd/pathconf_test.cpp

  Log Message:
  -----------
  [libc] implement pathconf/fpathconf (#87165)


  Commit: 29b8b72117845dc3d20e70fbfa85c590fa9c7830
      https://github.com/llvm/llvm-project/commit/29b8b72117845dc3d20e70fbfa85c590fa9c7830
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
    M llvm/test/Transforms/LoopVectorize/SystemZ/zero_unroll.ll
    M llvm/test/Transforms/LoopVectorize/X86/induction-costs.ll
    M llvm/test/Transforms/LoopVectorize/pr32859.ll
    M llvm/test/Transforms/LoopVectorize/vplan-incomplete-cases.ll

  Log Message:
  -----------
  [LV] Move check if any vector insts will be generated to VPlan. (#96622)

This patch moves the check if any vector instructions will be generated
from getInstructionCost to be based on VPlan. This simplifies
getInstructionCost, is more accurate as we check the final result and
also allows us to exit early once we visit a recipe that generates
vector instructions.

The helper can then be re-used by the VPlan-based cost model to match
the legacy selectVectorizationFactor behavior, this fixing a crash and
paving the way to recommit
https://github.com/llvm/llvm-project/pull/92555.

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


  Commit: 1b26bb0d12e6d609403e667282d5e7aa10dc4d48
      https://github.com/llvm/llvm-project/commit/1b26bb0d12e6d609403e667282d5e7aa10dc4d48
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M libc/hdr/math_macros.h
    M libc/src/__support/File/linux/CMakeLists.txt
    M libc/src/__support/threads/sleep.h
    M libc/src/math/generic/cos.cpp
    M libc/src/math/generic/sin.cpp
    M libc/src/math/generic/sincos.cpp
    M libc/src/search/hsearch.cpp
    M libc/startup/linux/aarch64/tls.cpp

  Log Message:
  -----------
  [libc] fix aarch64 GCC build (#97932)

This PR fix several build errors on aarch64 targets when building with
gcc:
- uninitialized values leading to `Werrors`
- undefined builtin functions
- glibc header pollution


  Commit: f13463ee52cf95c76867d0dafe6bff16cb9e3009
      https://github.com/llvm/llvm-project/commit/f13463ee52cf95c76867d0dafe6bff16cb9e3009
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M libc/utils/HdrGen/CMakeLists.txt
    M libc/utils/LibcTableGenUtil/CMakeLists.txt

  Log Message:
  -----------
  [libc] support out of tree build with dynlibs (#97959)


  Commit: 2718654c542c742e2dd18dcda8b93de1d4d3b640
      https://github.com/llvm/llvm-project/commit/2718654c542c742e2dd18dcda8b93de1d4d3b640
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M bolt/lib/Core/BinaryFunction.cpp
    M llvm/include/llvm/MC/MCDwarf.h
    M llvm/include/llvm/MC/MCStreamer.h
    M llvm/lib/CodeGen/CFIInstrInserter.cpp
    M llvm/lib/MC/MCAsmStreamer.cpp
    M llvm/lib/MC/MCDwarf.cpp
    M llvm/lib/MC/MCParser/AsmParser.cpp
    M llvm/lib/MC/MCStreamer.cpp
    A llvm/test/MC/ELF/cfi-label.s

  Log Message:
  -----------
  [MC] Support .cfi_label

GNU assembler 2.26 introduced the .cfi_label directive. It does not
expand to any CFI instructions, but defines a label in
.eh_frame/.debug_frame, which can be used by runtime patching code to
locate the FDE. .cfi_label is not allowed for CIE's initial
instructions, and can therefore be used to force the next instruction to
be placed in a FDE instead of a CIE.

In glibc since 2018, sysdeps/riscv/start.S utilizes .cfi_label to force
DW_CFA_undefined to be placed in a FDE. arc/csky/loongarch ports have
copied this use.
```
.cfi_startproc
// DW_CFA_undefined is allowed for CIE's initial instructions.
// Without .cfi_label, gas would place DW_CFA_undefined in a CIE.
.cfi_label .Ldummy
.cfi_undefined ra
.cfi_endproc
```

No CFI instruction is associated with .cfi_label, so the `case
MCCFIInstruction::OpLabel:` code in BOLT is unreachable and onlt to make
-Wswitch happy.

Close #97222

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


  Commit: 73447a3302541c343525570222b318e7f94f9402
      https://github.com/llvm/llvm-project/commit/73447a3302541c343525570222b318e7f94f9402
  Author: Petr Hosek <phosek at google.com>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M libc/config/baremetal/arm/entrypoints.txt
    M libc/config/baremetal/riscv/entrypoints.txt

  Log Message:
  -----------
  [libc] Include tan in the baremetal configuration (#97921)

This is available as of #97489.


  Commit: cc5ba739f27ab2f28d4a0f2e295d1e426aa836a7
      https://github.com/llvm/llvm-project/commit/cc5ba739f27ab2f28d4a0f2e295d1e426aa836a7
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/lib/IR/AsmWriter.cpp
    M llvm/lib/IR/Module.cpp

  Log Message:
  -----------
  [IR] Use range-based for loops (NFC) (#97950)


  Commit: afd0e6d06ba05cf3cd8b0bb91b6506242de78a4d
      https://github.com/llvm/llvm-project/commit/afd0e6d06ba05cf3cd8b0bb91b6506242de78a4d
  Author: Chen Zheng <czhengsz at cn.ibm.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticCommonKinds.td
    M clang/lib/Basic/Targets/PPC.cpp
    M clang/lib/Basic/Targets/PPC.h
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/CodeGen/CodeGenModule.h
    A clang/test/CodeGen/PowerPC/musttail-forward-declaration-inline.c
    A clang/test/CodeGen/PowerPC/musttail-forward-declaration-weak.c
    A clang/test/CodeGen/PowerPC/musttail-forward-declaration.c
    A clang/test/CodeGen/PowerPC/musttail-indirect.cpp
    A clang/test/CodeGen/PowerPC/musttail-inline.c
    A clang/test/CodeGen/PowerPC/musttail-undefined.c
    A clang/test/CodeGen/PowerPC/musttail-weak.c
    A clang/test/CodeGen/PowerPC/musttail.c

  Log Message:
  -----------
  [PowerPC] Diagnose musttail instead of crash inside backend (#93267)

musttail is not often possible to be generated on PPC targets as when
calling to a function defined in another module, PPC needs to restore
the TOC pointer. To restore the TOC pointer, compiler needs to emit a
nop after the call to let linker generate codes to restore TOC pointer.
Tail call cannot generate expected call sequence for this case.

To avoid the crash inside the compiler backend, a diagnosis is added in
the frontend.

Fixes #63214


  Commit: 112aa105635413c24e7a2ed3638a14a5600d1d1d
      https://github.com/llvm/llvm-project/commit/112aa105635413c24e7a2ed3638a14a5600d1d1d
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M compiler-rt/lib/orc/error.h

  Log Message:
  -----------
  [ORC-RT] Fix typo in comment.


  Commit: 73bfb65c5714c6442a00bce866132d28ea609254
      https://github.com/llvm/llvm-project/commit/73bfb65c5714c6442a00bce866132d28ea609254
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M compiler-rt/include/orc_rt/c_api.h

  Log Message:
  -----------
  [ORC-RT] Remove unused typedef from the C API.


  Commit: 431b9965f59ad68e5c7d7112bc6b7ea154e5f85c
      https://github.com/llvm/llvm-project/commit/431b9965f59ad68e5c7d7112bc6b7ea154e5f85c
  Author: Shan Huang <52285902006 at stu.ecnu.edu.cn>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
    A llvm/test/Transforms/SpeculativeExecution/dropping-debugloc-hoist.ll

  Log Message:
  -----------
  [DebugInfo][SpeculativeExecution] Drop the debug location of the hoisted instruction (#97384)

Fix #97375 .


  Commit: e4ee9bf0d2dee8064c539c047ee525e5b7ad44e5
      https://github.com/llvm/llvm-project/commit/e4ee9bf0d2dee8064c539c047ee525e5b7ad44e5
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll

  Log Message:
  -----------
  [RISCV] Custom legalize vXf16 BUILD_VECTOR without Zfhmin. (#97874)

If we don't have Zfhmin, we will call `SoftPromoteHalfOperand` on the
BUILD_VECTOR. This operation is not supported by the generic code.

Instead, custom lower to a vXi16 BUILD_VECTOR using bitcasts.

Fixes #97849.


  Commit: 3ed76b45be185469f0ff58292102a4202902679d
      https://github.com/llvm/llvm-project/commit/3ed76b45be185469f0ff58292102a4202902679d
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h

  Log Message:
  -----------
  [X86][NFC] Remove dead code for "_REV" instructions (#97828)

Those "_REV" instructions should not appear before encoding
optimization, while macro fusion is done before encoding optimization.

Partial reland of 8bbf100799a97f8342bf1a8409c6fb48f03e837f

BOLT has dropped macro-op fusion alignment optimization in
https://github.com/llvm/llvm-project/pull/97358, which unblocks the
reland.


  Commit: 4a9dabee73f79974c69a35af7668c7a7e52e2d7f
      https://github.com/llvm/llvm-project/commit/4a9dabee73f79974c69a35af7668c7a7e52e2d7f
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M libc/spec/linux.td

  Log Message:
  -----------
  [libc] add prctl func spec (#97971)


  Commit: e603451f3cb16792fb46ab5f2fa50b05f3e5d935
      https://github.com/llvm/llvm-project/commit/e603451f3cb16792fb46ab5f2fa50b05f3e5d935
  Author: Feng Zou <feng.zou at intel.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M clang/lib/Basic/Targets/X86.cpp
    M clang/lib/Basic/Targets/X86.h
    M llvm/lib/Target/X86/X86.td
    M llvm/lib/Target/X86/X86MCInstLower.cpp
    A llvm/test/CodeGen/X86/branch-hint.ll

  Log Message:
  -----------
  [X86] Support branch hint (#97721)

For more details about this feature, please refer to latest Intel 64 and
IA-32 Architectures Optimization Reference Manual Volume 1:
https://www.intel.com/content/www/us/en/content-details/821612/intel-64-and-ia-32-architectures-optimization-reference-manual-volume-1.html


  Commit: 2a9607168b42498c4a70441089be57af88eec4d2
      https://github.com/llvm/llvm-project/commit/2a9607168b42498c4a70441089be57af88eec4d2
  Author: Vikram Hegde <115221833+vikramRH at users.noreply.github.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
    M llvm/test/CodeGen/AMDGPU/GlobalISel/global-atomic-fadd.f32-no-rtn.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/global-atomic-fadd.f32-rtn.ll
    M llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
    M llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
    M llvm/test/CodeGen/AMDGPU/global-atomic-fadd.f32-no-rtn.ll
    M llvm/test/CodeGen/AMDGPU/global-atomic-fadd.f32-rtn.ll
    M llvm/test/CodeGen/AMDGPU/global_atomic_optimizer_fp_rtn.ll
    M llvm/test/CodeGen/AMDGPU/global_atomics_iterative_scan_fp.ll
    M llvm/test/CodeGen/AMDGPU/global_atomics_optimizer_fp_no_rtn.ll
    M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fadd.ll
    M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fmax.ll
    M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fmin.ll
    M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fsub.ll

  Log Message:
  -----------
  [AMDGPU] Cleanup bitcast spam in atomic optimizer (#96933)


  Commit: 13ed3b472b6209ef6f7c5b0ee1eb91e563e01cbc
      https://github.com/llvm/llvm-project/commit/13ed3b472b6209ef6f7c5b0ee1eb91e563e01cbc
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

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

  Log Message:
  -----------
  [DivisionByConstantInfo] Use APInt::getLowBitsSet instead of getAllOnes+lshr. NFC


  Commit: 5789ee28772d942da113762f45fa5f47996b55d7
      https://github.com/llvm/llvm-project/commit/5789ee28772d942da113762f45fa5f47996b55d7
  Author: Konstantin Varlamov <varconsteq at gmail.com>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    M libcxx/include/chrono

  Log Message:
  -----------
  [libc++] Guard transitive include of `<locale>` with availability macro (#97869)

This is a follow-up to https://github.com/llvm/llvm-project/pull/85521,
similar to https://github.com/llvm/llvm-project/pull/95686.


  Commit: 5ab9e003c8bd1e8b095869e472336447de1ed148
      https://github.com/llvm/llvm-project/commit/5ab9e003c8bd1e8b095869e472336447de1ed148
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

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

  Log Message:
  -----------
  [AMDGPU] Fix -Wunused-variable in AMDGPUAtomicOptimizer.cpp (NFC)

/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp:688:18:
error: unused variable 'TyBitWidth' [-Werror,-Wunused-variable]
  const unsigned TyBitWidth = DL->getTypeSizeInBits(Ty);
                 ^
1 error generated.


  Commit: ef465bf8b11f667fd5e73fc5abcc121793a18a81
      https://github.com/llvm/llvm-project/commit/ef465bf8b11f667fd5e73fc5abcc121793a18a81
  Author: hstk30-hw <hanwei62 at huawei.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    A llvm/test/CodeGen/ARM/sdiv_shl.ll

  Log Message:
  -----------
  [ARM] Fix arm32be softfp mode miscompilation for neon sdiv (#97883)

Related issue: https://github.com/llvm/llvm-project/issues/97782


  Commit: aa9e4f0bc93fc735e83ea8b5269e699f31fb9d28
      https://github.com/llvm/llvm-project/commit/aa9e4f0bc93fc735e83ea8b5269e699f31fb9d28
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

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

  Log Message:
  -----------
  [RISCV] Refactor mask check in performCombineVMergeAndVOps. NFC


  Commit: 5e136b7e0d310b368ce5025d55bfd7a376391199
      https://github.com/llvm/llvm-project/commit/5e136b7e0d310b368ce5025d55bfd7a376391199
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M lldb/include/lldb/Utility/Listener.h
    M lldb/source/Utility/Listener.cpp

  Log Message:
  -----------
  [lldb] Make Listener::m_broadcasters_mutex non-recursive (#97552)

Follow-up to #97400. No changes apart from changing the type were
necessary. The mutex was already not used recursively.


  Commit: 64740edac8d62a477701a9f089d89a654a004b22
      https://github.com/llvm/llvm-project/commit/64740edac8d62a477701a9f089d89a654a004b22
  Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M mlir/lib/Analysis/Presburger/Utils.cpp

  Log Message:
  -----------
  mlir/Presburger: optimize normalizeDiv when gcd=1 (#97893)


  Commit: 074414fdbdff93bd14fe0a46499cf4fb03587899
      https://github.com/llvm/llvm-project/commit/074414fdbdff93bd14fe0a46499cf4fb03587899
  Author: Cullen Rhodes <cullen.rhodes at arm.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseVectorization.cpp

  Log Message:
  -----------
  [mlir][sparse] Use vector.step for index vector generation (#97692)


  Commit: 4132ab84eece2352302ced8803a88c140a217aff
      https://github.com/llvm/llvm-project/commit/4132ab84eece2352302ced8803a88c140a217aff
  Author: Haojian Wu <hokein.wu at gmail.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

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

  Log Message:
  -----------
  [bazel] Port for the libc change f8834ed24bf11d19c96c49d42e77d4408af91fd8


  Commit: 1604c24981a73fd7689626db87c23165d7303d7a
      https://github.com/llvm/llvm-project/commit/1604c24981a73fd7689626db87c23165d7303d7a
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

  Log Message:
  -----------
  [AArch64] Fix copy and paste error in tryCombineMULLWithUZP1() (NFCI) (#97729)

The bitcast check was performed on the wrong value in one of the
branches.

I believe this doesn't actually result in any behavior difference,
because the following code looking at ExtractHigh users currently
doesn't try to look through BITCASTS. I've left a TODO for that.

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


  Commit: c119da23afb42daf588c3e4caf97094689d70688
      https://github.com/llvm/llvm-project/commit/c119da23afb42daf588c3e4caf97094689d70688
  Author: esmeyi <esme.yi at ibm.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    M llvm/test/CodeGen/PowerPC/aix-available-externally-linkage-fun.ll
    M llvm/test/CodeGen/PowerPC/aix-extern-weak.ll
    M llvm/test/CodeGen/PowerPC/aix-extern.ll
    M llvm/test/CodeGen/PowerPC/aix-text-ref.ll
    M llvm/test/CodeGen/PowerPC/aix-xcoff-reloc.ll
    M llvm/test/CodeGen/PowerPC/aix-xcoff-visibility.ll

  Log Message:
  -----------
  [PowerPC] Function descriptor symbol may be omitted for external symbol. #97526

If a function's address is taken, which means it may be called via a function pointer,
we need the function descriptor for it.
Otherwise, the function descriptor can be omitted for external symbols.


  Commit: f21b62b0d1d13fa3f259da4dde587c1289c84fb8
      https://github.com/llvm/llvm-project/commit/f21b62b0d1d13fa3f259da4dde587c1289c84fb8
  Author: Orlando Cazalet-Hyams <orlando.hyams at sony.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    A llvm/include/llvm/IR/DbgVariableFragmentInfo.h
    M llvm/include/llvm/IR/DebugInfoMetadata.h
    M llvm/include/llvm/IR/DebugProgramInstruction.h
    M llvm/lib/IR/DebugProgramInstruction.cpp

  Log Message:
  -----------
  [NFC] Add fragment-getting functions to DbgRecord (#97705)

Patch [1/x] to fix structured bindings debug info in SROA.

Copy getFragment and getFragmentOrEntireVariable from DbgVariableIntrinsic.

Move FragmentInfo out of DIExpression and DebugInfoMetadata.h into a new file
DbgVariableFragmentInfo.h so it can be included into DebugProgramInstruction.h
without pulling in other includes and classes.

These functions will be used in subsequent patches.


  Commit: 40fe73e09f1f76c7ff2a50cf960c753dd809629b
      https://github.com/llvm/llvm-project/commit/40fe73e09f1f76c7ff2a50cf960c753dd809629b
  Author: Haojian Wu <hokein.wu at gmail.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

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

  Log Message:
  -----------
  [bazel] Add missing gmp dep for f8834ed24bf11d19c96c49d42e77d4408af91fd8


  Commit: 11f7c89bef14f57e36ed74a0fc647f214b1e058e
      https://github.com/llvm/llvm-project/commit/11f7c89bef14f57e36ed74a0fc647f214b1e058e
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    R llvm/include/llvm/IR/DbgVariableFragmentInfo.h
    M llvm/include/llvm/IR/DebugInfoMetadata.h
    M llvm/include/llvm/IR/DebugProgramInstruction.h
    M llvm/lib/IR/DebugProgramInstruction.cpp

  Log Message:
  -----------
  Revert "[NFC] Add fragment-getting functions to DbgRecord (#97705)"

This reverts commit f21b62b0d1d13fa3f259da4dde587c1289c84fb8.

Fails to build.


  Commit: 9b754675d3e0861039cf87cf4a0488ecc121e530
      https://github.com/llvm/llvm-project/commit/9b754675d3e0861039cf87cf4a0488ecc121e530
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

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

  Log Message:
  -----------
  [ValueLattice] Add asConstantRange() helper (NFC)

Move the toConstantRange() helper from LVI into ValueLattice,
so it can be reused in other places like SCCP.


  Commit: deb6b6038c3dcdca7ce21abca4fddffbe53b1403
      https://github.com/llvm/llvm-project/commit/deb6b6038c3dcdca7ce21abca4fddffbe53b1403
  Author: Orlando Cazalet-Hyams <orlando.hyams at sony.com>
  Date:   2024-07-07 (Sun, 07 Jul 2024)

  Changed paths:
    A llvm/include/llvm/IR/DbgVariableFragmentInfo.h
    M llvm/include/llvm/IR/DebugInfoMetadata.h
    M llvm/include/llvm/IR/DebugProgramInstruction.h
    M llvm/lib/IR/DebugProgramInstruction.cpp

  Log Message:
  -----------
  Reapply [NFC] Add fragment-getting functions to DbgRecord (#97705)

Patch [1/x] to fix structured bindings debug info in SROA.

Copy getFragment and getFragmentOrEntireVariable from DbgVariableIntrinsic.

Move FragmentInfo out of DIExpression and DebugInfoMetadata.h into a new file
DbgVariableFragmentInfo.h so it can be included into DebugProgramInstruction.h
without pulling in other includes and classes.


  Commit: f50f7a7aa0b897ef91361d7dc159f3262d142bdc
      https://github.com/llvm/llvm-project/commit/f50f7a7aa0b897ef91361d7dc159f3262d142bdc
  Author: Orlando Cazalet-Hyams <orlando.hyams at sony.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/include/llvm/IR/DebugInfoMetadata.h
    M llvm/lib/IR/DebugInfoMetadata.cpp
    M llvm/unittests/IR/MetadataTest.cpp

  Log Message:
  -----------
  [NFC] Add DIExpression::extractLeadingOffset (#97719)

Patch [2/x] to fix structured bindings debug info in SROA.

It extracts a constant offset from the DIExpression if there is one and fills
RemainingOps with the ops that come after it.

This function will be used in a subsequent patch.


  Commit: 5ce9a86110df0592d036688dc5b3ae2fbdbf99db
      https://github.com/llvm/llvm-project/commit/5ce9a86110df0592d036688dc5b3ae2fbdbf99db
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M lldb/examples/synthetic/gnu_libstdcpp.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/variant/TestDataFormatterLibStdcxxVariant.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/variant/main.cpp

  Log Message:
  -----------
  [lldb] Make variant formatter work with libstdc++-14 (#97568)

In this version the internal data member has grown an additional
template parameter (bool), which was throwing the summary provider off.

This patch uses the type of the entire variant object. This is part of
the API/ABI, so it should be more stable, but it means we have to
explicitly strip typedefs and references to get to the interesting bits,
which is why I've extended the test case with examples of those.


  Commit: b590e9a5aedabeceb00d81d49897abbf02ab3b87
      https://github.com/llvm/llvm-project/commit/b590e9a5aedabeceb00d81d49897abbf02ab3b87
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M lldb/include/lldb/Utility/Listener.h
    M lldb/source/API/SBAttachInfo.cpp
    M lldb/source/API/SBLaunchInfo.cpp
    M lldb/source/Utility/Listener.cpp

  Log Message:
  -----------
  [lldb] Remove Listener::SetShadow (#97555)

It's not used since https://reviews.llvm.org/D157556.


  Commit: c2fe75f99c9b385eb707571e0b46b7a1afef37db
      https://github.com/llvm/llvm-project/commit/c2fe75f99c9b385eb707571e0b46b7a1afef37db
  Author: tcwzxx <tcwzxx at gmail.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

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

  Log Message:
  -----------
  Make the logic for checking scatter vectorized nodes of GEP clearer (#97826)

There is no functional change.

Authored-by: zhizhixu <zhizhixu at tencent.com>


  Commit: 4c23625357b0b6091bc97478a79d522a832c2b21
      https://github.com/llvm/llvm-project/commit/4c23625357b0b6091bc97478a79d522a832c2b21
  Author: Kendal Harland <3987220+kendalharland at users.noreply.github.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M lldb/test/API/functionalities/unwind/zeroth_frame/TestZerothFrame.py

  Log Message:
  -----------
  Fix flake in TestZerothFrame.py (#96685)

This test is currently flaky on a local Windows amd64 build. The reason
is that it relies on the order of `process.threads` but this order is
nondeterministic:

If we print lldb's inputs and outputs while running, we can see that the
breakpoints are always being set correctly, and always being hit:

```sh
runCmd: breakpoint set -f "main.c" -l 2
output: Breakpoint 1: where = a.out`func_inner + 1 at main.c:2:9, address = 0x0000000140001001

runCmd: breakpoint set -f "main.c" -l 7
output: Breakpoint 2: where = a.out`main + 17 at main.c:7:5, address = 0x0000000140001021

runCmd: run
output: Process 52328 launched: 'C:\workspace\llvm-project\llvm\build\lldb-test-build.noindex\functionalities\unwind\zeroth_frame\TestZerothFrame.test_dwarf\a.out' (x86_64)
Process 52328 stopped
* thread #1, stop reason = breakpoint 1.1
    frame #0: 0x00007ff68f6b1001 a.out`func_inner at main.c:2:9
   1    void func_inner() {
-> 2        int a = 1;  // Set breakpoint 1 here
                ^
   3    }
   4
   5    int main() {
   6        func_inner();
   7        return 0; // Set breakpoint 2 here
```

However, sometimes the backtrace printed in this test shows that the
process is stopped inside NtWaitForWorkViaWorkerFactory from
`ntdll.dll`:

```sh
Backtrace at the first breakpoint:
frame #0: 0x00007ffecc7b3bf4 ntdll.dll`NtWaitForWorkViaWorkerFactory + 20
frame #1: 0x00007ffecc74585e ntdll.dll`RtlClearThreadWorkOnBehalfTicket + 862
frame #2: 0x00007ffecc3e257d kernel32.dll`BaseThreadInitThunk + 29
frame #3: 0x00007ffecc76af28 ntdll.dll`RtlUserThreadStart + 40
```

When this happens, the test fails with an assertion error that the
stopped thread's zeroth frame's current line number does not match the
expected line number. This is because the test is looking at the wrong
thread: `process.threads[0]`.

If we print the list of threads each time the test is run, we notice
that threads are sometimes in a different order, within
`process.threads`:

```sh
Thread 0: thread #4: tid = 0x9c38, 0x00007ffecc7b3bf4 ntdll.dll`NtWaitForWorkViaWorkerFactory + 20
Thread 1: thread #2: tid = 0xa950, 0x00007ffecc7b3bf4 ntdll.dll`NtWaitForWorkViaWorkerFactory + 20
Thread 2: thread #1: tid = 0xab18, 0x00007ff64bc81001 a.out`func_inner at main.c:2:9, stop reason = breakpoint 1.1
Thread 3: thread #3: tid = 0xc514, 0x00007ffecc7b3bf4 ntdll.dll`NtWaitForWorkViaWorkerFactory + 20

Thread 0: thread #3: tid = 0x018c, 0x00007ffecc7b3bf4 ntdll.dll`NtWaitForWorkViaWorkerFactory + 20
Thread 1: thread #1: tid = 0x85c8, 0x00007ff7130c1001 a.out`func_inner at main.c:2:9, stop reason = breakpoint 1.1
Thread 2: thread #2: tid = 0xf344, 0x00007ffecc7b3bf4 ntdll.dll`NtWaitForWorkViaWorkerFactory + 20
Thread 3: thread #4: tid = 0x6a50, 0x00007ffecc7b3bf4 ntdll.dll`NtWaitForWorkViaWorkerFactory + 20
```

Use `self.thread()` to consistently select the correct thread, instead.

Co-authored-by: kendal <kendal at thebrowser.company>


  Commit: d6fb89903409c7977f90b9f2f6a557f04d3f7e35
      https://github.com/llvm/llvm-project/commit/d6fb89903409c7977f90b9f2f6a557f04d3f7e35
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M flang/test/Fir/convert-to-llvm-openmp-and-fir.fir
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOpsInterfaces.td
    M mlir/test/Conversion/OpenMPToLLVM/convert-to-llvmir.mlir
    M mlir/test/Dialect/OpenMP/invalid.mlir
    M mlir/test/Dialect/OpenMP/ops.mlir
    M mlir/test/Target/LLVMIR/openmp-llvm.mlir

  Log Message:
  -----------
  [MLIR][OpenMP] Improve loop wrapper representation (#97706)

This patch replaces the `SingleBlockImplicitTerminator<"TerminatorOp">`
trait of loop wrapper operations for the `SingleBlock` trait. This
enables a more robust implementation of the
`LoopWrapperInterface::isWrapper()` method, since it does no longer have
to deal with the potentially missing (implicit) terminator.

The `LoopWrapperInterface::isWrapper()` method is also extended to not
identify as wrappers those operations which have a loop wrapper
operation inside that is not taking a wrapper role. This is important
for cases where `omp.parallel` is nested, which can but is not required
to work as a loop wrapper.

Tests are updated to integrate these representation and validation
changes.


  Commit: 857700ff6fb9f9f653c3788445df06db07e7bb59
      https://github.com/llvm/llvm-project/commit/857700ff6fb9f9f653c3788445df06db07e7bb59
  Author: Kendal Harland <3987220+kendalharland at users.noreply.github.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

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

  Log Message:
  -----------
  [lldb][test] Fix type error when calling random.randrange with 'float' arg (#97328)

This test only runs on Windows and fails because we're passing a literal
of the wrong type to random.randrange.

Co-authored-by: kendal <kendal at thebrowser.company>


  Commit: a497e987e5b09ab58efc7c6bef5ff68d4cd750f3
      https://github.com/llvm/llvm-project/commit/a497e987e5b09ab58efc7c6bef5ff68d4cd750f3
  Author: Momchil Velikov <momchil.velikov at arm.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    A llvm/test/CodeGen/AArch64/sitofp-to-tbl.ll

  Log Message:
  -----------
  Reapply "[AArch64] Lower extending sitofp using tbl (#92528)"

This re-commits d1a4f0c9fb559eb4c2fb56112e56343bcd333edc after
a issue was fixed in f92bfca9fc217cad9026598ef6755e711c0be070
("[AArch64] All bits of an exact right shift are demanded (#97448)").


  Commit: 124b18b09d6bc25ac5f34e24a9b13f4212c01233
      https://github.com/llvm/llvm-project/commit/124b18b09d6bc25ac5f34e24a9b13f4212c01233
  Author: Orlando Cazalet-Hyams <orlando.hyams at sony.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/unittests/IR/MetadataTest.cpp

  Log Message:
  -----------
  Fix un/signed mismatch in test introduced in #97719

Buildbot:
https://lab.llvm.org/buildbot/#/builders/168/builds/799


  Commit: 8ac6b415e4e5e631410d9cf6a10f15668f663441
      https://github.com/llvm/llvm-project/commit/8ac6b415e4e5e631410d9cf6a10f15668f663441
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

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

  Log Message:
  -----------
  [X86] Ensure VPERMV3 -> VPERMV fold comes from a double width vector

#96414 + #97206 didn't ensure that we were extracting subvectors from a vector double the width of the destination.

We can relax this in a future patch, but fix the #97968 crash first.

Fixes #97968


  Commit: 92083e855b4d4ce7e3f7633cd35a4fcb90e2c24f
      https://github.com/llvm/llvm-project/commit/92083e855b4d4ce7e3f7633cd35a4fcb90e2c24f
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

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

  Log Message:
  -----------
  [X86] Allow VPERMV3 -> VPERMV folds to handle extraction from a wider source vector (e.g. v16i32 -> v4i32)

We don't need to restrict this to double width vectors, as long as we correctly bitcast the types

Improves the fix for #97968


  Commit: 27ccc8835e5163484234549fa6128eeb00d7432d
      https://github.com/llvm/llvm-project/commit/27ccc8835e5163484234549fa6128eeb00d7432d
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    A llvm/test/Transforms/LoopVectorize/X86/ephemeral-recipes.ll

  Log Message:
  -----------
  [LV] Add tests with ephemeral values that are widened.

Add tests with loops with ephemeral values that are widened.
After 29b8b72117, @ephemeral_load_and_compare_another_load_used_outside
is vectorized even though the only vector values that are generated are
ephemeral.


  Commit: b9254ade77d41c7582a98e6754058c39fd456c2a
      https://github.com/llvm/llvm-project/commit/b9254ade77d41c7582a98e6754058c39fd456c2a
  Author: Tomas Matheson <Tomas.Matheson at arm.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M clang/test/Driver/aarch64-v81a.c
    M clang/test/Driver/aarch64-v82a.c
    M clang/test/Driver/aarch64-v83a.c
    M clang/test/Driver/aarch64-v84a.c
    M clang/test/Driver/aarch64-v85a.c
    M clang/test/Driver/aarch64-v86a.c
    M clang/test/Driver/aarch64-v87a.c
    M clang/test/Driver/aarch64-v88a.c
    M clang/test/Driver/aarch64-v89a.c
    M clang/test/Driver/aarch64-v8a.c
    M clang/test/Driver/aarch64-v91a.c
    M clang/test/Driver/aarch64-v92a.c
    M clang/test/Driver/aarch64-v93a.c
    M clang/test/Driver/aarch64-v94a.c
    M clang/test/Driver/aarch64-v95a.c
    M clang/test/Driver/aarch64-v9a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-a64fx.c
    A clang/test/Driver/print-enabled-extensions/aarch64-ampere1.c
    A clang/test/Driver/print-enabled-extensions/aarch64-ampere1a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-ampere1b.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-a10.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-a11.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-a12.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-a13.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-a14.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-a15.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-a16.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-a17.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-a7.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-m4.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8-r.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8.1-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8.2-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8.3-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8.4-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8.5-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8.6-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8.7-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8.8-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8.9-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv9-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv9.1-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv9.2-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv9.3-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv9.4-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv9.5-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-carmel.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a34.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a35.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a510.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a520.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a520ae.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a53.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a55.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a57.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a65.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a65ae.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a710.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a715.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a72.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a720.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a720ae.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a725.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a73.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a75.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a76.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a76ae.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a77.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a78.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a78ae.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a78c.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-r82.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-r82ae.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-x1.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-x1c.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-x2.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-x3.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-x4.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-x925.c
    A clang/test/Driver/print-enabled-extensions/aarch64-exynos-m3.c
    A clang/test/Driver/print-enabled-extensions/aarch64-exynos-m4.c
    A clang/test/Driver/print-enabled-extensions/aarch64-exynos-m5.c
    A clang/test/Driver/print-enabled-extensions/aarch64-falkor.c
    A clang/test/Driver/print-enabled-extensions/aarch64-generic.c
    A clang/test/Driver/print-enabled-extensions/aarch64-kryo.c
    A clang/test/Driver/print-enabled-extensions/aarch64-neoverse-512tvb.c
    A clang/test/Driver/print-enabled-extensions/aarch64-neoverse-e1.c
    A clang/test/Driver/print-enabled-extensions/aarch64-neoverse-n1.c
    A clang/test/Driver/print-enabled-extensions/aarch64-neoverse-n2.c
    A clang/test/Driver/print-enabled-extensions/aarch64-neoverse-n3.c
    A clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v1.c
    A clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v2.c
    A clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v3.c
    A clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v3ae.c
    A clang/test/Driver/print-enabled-extensions/aarch64-oryon-1.c
    A clang/test/Driver/print-enabled-extensions/aarch64-saphira.c
    A clang/test/Driver/print-enabled-extensions/aarch64-thunderx.c
    A clang/test/Driver/print-enabled-extensions/aarch64-thunderx2t99.c
    A clang/test/Driver/print-enabled-extensions/aarch64-thunderx3t110.c
    A clang/test/Driver/print-enabled-extensions/aarch64-thunderxt81.c
    A clang/test/Driver/print-enabled-extensions/aarch64-thunderxt83.c
    A clang/test/Driver/print-enabled-extensions/aarch64-thunderxt88.c
    A clang/test/Driver/print-enabled-extensions/aarch64-tsv110.c
    A clang/test/Driver/print-supported-extensions-aarch64.c
    A clang/test/Driver/print-supported-extensions-arm.c
    A clang/test/Driver/print-supported-extensions-riscv.c
    M clang/test/Driver/print-supported-extensions.c
    M llvm/unittests/TargetParser/TargetParserTest.cpp

  Log Message:
  -----------
  [AArch64][RISCV] Improve the tests for --print-enabled-extensions and --print-supported-extensions (#97829)

For AArch64, we have existing tests for `--print-enabled-extensions` for
each architecture. However:
- These are added to the end of the existing tests which check for
`"-target-feature"`, which complicates them slightly.
- They do not test the descriptions printed next to each feature.
- Part of the output was tested separately in `TargetParserTest`.
- We did not have _any_ tests of this output for CPUs (only for
architectures).

Similarly, the tests for `--print-supported-extensions` do not give
complete coverage of either the full list of features or the
descriptions.

In my opinion we should be testing the full output, as this is what the
user sees. Descriptions and formatting can contain errors and be
accidentally broken.


  Commit: 1e6dfc624867fbfc6cd6e5dd534bd11f0616e7fc
      https://github.com/llvm/llvm-project/commit/1e6dfc624867fbfc6cd6e5dd534bd11f0616e7fc
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp

  Log Message:
  -----------
  [lldb][DataFormatter] Remove support for old std::map layout (#97549)

We currently supported the layout from pre-2016 (before the layout
change in
[14caaddd3f08e798dcd9ac0ddfc](https://github.com/llvm/llvm-project/commit/14caaddd3f08e798dcd9ac0ddfc)).
We have another upcoming layout change in `__tree` and `map` (as part of
https://github.com/llvm/llvm-project/issues/93069) which will likely
require rewriting parts of this formatter. Removing the support for the
pre-2016 layout will make those changes more straightforward to
review/maintain.

Being backward compatible would be great but we have no tests that
actually verify that the old layout still works (and our oldest matrix
bot tests clang-15). If anyone feels strongly about keeping this layout,
we could possibly factor out that logic and keep it around.


  Commit: cb72aecea6e7da49c7a7fbeb1bde4e401324b9ba
      https://github.com/llvm/llvm-project/commit/cb72aecea6e7da49c7a7fbeb1bde4e401324b9ba
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxx.h
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp

  Log Message:
  -----------
  [lldb][DataFormatter] Move std::unordered_map::iterator formatter into LibCxxUnorderedMap.cpp (#97752)

Similar to how we moved the `std::map::iterator` formatter in
https://github.com/llvm/llvm-project/pull/97687, do the same for
`std::unordered_map::iterator`.

Again the `unordered_map` and `unordered_map::iterator` formatters try
to do very similar things: retrieve data out of the map. The iterator
formatter does this in a fragile way (similar to how `std::map` does it,
see https://github.com/llvm/llvm-project/pull/97579). Thus we will be
refactoring the `std::unordered_map::iterator` in upcoming patches.
Having it in `LibCxxUnorderedMap` will allow us to re-use some of the
logic (and we won't have to repeat some of the clarification comments).


  Commit: 69192e0193e60c169c7776f444362dffba31eb7d
      https://github.com/llvm/llvm-project/commit/69192e0193e60c169c7776f444362dffba31eb7d
  Author: Manish Kausik H <46352931+Nirhar at users.noreply.github.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    A llvm/test/CodeGen/AArch64/ctlz_zero_undef.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ctlz-zero-undef.mir
    M llvm/test/CodeGen/AMDGPU/ctlz_zero_undef.ll
    M llvm/test/CodeGen/ARM/GlobalISel/arm-legalize-bitcounts.mir
    M llvm/test/CodeGen/Hexagon/bitmanip.ll
    M llvm/test/CodeGen/RISCV/ctlz-cttz-ctpop.ll
    M llvm/test/CodeGen/RISCV/rv64-legal-i32/rv64xtheadbb.ll
    M llvm/test/CodeGen/RISCV/rvv/ctlz-vp.ll
    M llvm/test/CodeGen/SystemZ/scalar-ctlz-01.ll
    M llvm/test/CodeGen/VE/Scalar/ctlz.ll
    M llvm/test/CodeGen/X86/ctlo.ll
    M llvm/test/CodeGen/X86/ctlz.ll
    M llvm/test/CodeGen/X86/lzcnt.ll
    M llvm/test/CodeGen/X86/pr38539.ll
    M llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp

  Log Message:
  -----------
  [LegalizeDAG] Optimize CodeGen for `ISD::CTLZ_ZERO_UNDEF` (#83039)

Previously we had the same instructions being generated for `ISD::CTLZ` and `ISD::CTLZ_ZERO_UNDEF` which did not take advantage of the fact that zero is an invalid input for `ISD::CTLZ_ZERO_UNDEF`. This commit separates codegen for the two cases to allow for the optimization for the latter case.

The details of the optimization are outlined in #82075

Fixes #82075

Co-authored-by: Manish Kausik H <hmamishkausik at gmail.com>


  Commit: 2f2b931e1296aebe6c03fd969363683b637973e5
      https://github.com/llvm/llvm-project/commit/2f2b931e1296aebe6c03fd969363683b637973e5
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M clang/lib/Headers/float.h
    M clang/test/Headers/float.c

  Log Message:
  -----------
  [C23] Correct the type for INFINITY and NAN in freestanding

This amends bcb7c38af7de59f3b2201734ee11987839cd7bbe to correct the
type use for the two macros to be float rather than double. Also adds
additional test coverage.

https://github.com/llvm/llvm-project/issues/98018 was filed to track
the duplicate diagnostic issue that was discovered.


  Commit: 854bbc50fc99ddf71c4c65193e06eb79ce1ef69f
      https://github.com/llvm/llvm-project/commit/854bbc50fc99ddf71c4c65193e06eb79ce1ef69f
  Author: Mahesh-Attarde <145317060+mahesh-attarde at users.noreply.github.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/lib/Target/X86/CMakeLists.txt
    M llvm/lib/Target/X86/X86.h
    M llvm/lib/Target/X86/X86TargetMachine.cpp
    A llvm/lib/Target/X86/X86WinFixupBufferSecurityCheck.cpp
    M llvm/test/CodeGen/X86/opt-pipeline.ll
    M llvm/test/CodeGen/X86/stack-protector-msvc.ll
    M llvm/test/CodeGen/X86/tailcc-ssp.ll

  Log Message:
  -----------
  [X86][CodeGen] security check cookie execute only when needed (#95904)

For windows __security_check_cookie call gets call everytime function is return without fixup. Since this function is defined in runtime library, it incures cost of call in dll which simply does comparison and returns most time. With Fixup, We selective move to call in DLL only if comparison fails.


  Commit: ba1d21c7d8613c90e424fa3e77d52184d531c302
      https://github.com/llvm/llvm-project/commit/ba1d21c7d8613c90e424fa3e77d52184d531c302
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    A clang/test/C/C2y/n3254.c
    M clang/www/c_status.html

  Log Message:
  -----------
  [C2y] Claim conformance to WG14 N3254 (#97581)

The test coverage for this has to lean on LLVM's test coverage for the
actual TBAA behavior, but this demonstrates that Clang emits reasonable
LLVM IR to support this construct. It would be surprising should LLVM
break this pattern given how ubiquitous the pattern is in the wild.

The paper can be found at:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3254.pdf


  Commit: f06cb3fbd6b6a03a3300fca5912a1176a4a2bf0b
      https://github.com/llvm/llvm-project/commit/f06cb3fbd6b6a03a3300fca5912a1176a4a2bf0b
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/lib/Target/X86/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 854bbc50fc99


  Commit: 7e01e64714eceedaf88c20f67d431a295950eed0
      https://github.com/llvm/llvm-project/commit/7e01e64714eceedaf88c20f67d431a295950eed0
  Author: Phoebe Wang <phoebe.wang at intel.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M clang/lib/CodeGen/Targets/X86.cpp
    M clang/test/CodeGen/stdcall-fastcall.c
    M clang/test/CodeGen/vectorcall.c

  Log Message:
  -----------
  [X86][vectorcall] Do not consume register for indirect return value (#97939)

This is how MSVC handles it. https://godbolt.org/z/Eav3vx7cd


  Commit: 5a5cd3f0bcdf37a32eadd85d6e57c642cb829402
      https://github.com/llvm/llvm-project/commit/5a5cd3f0bcdf37a32eadd85d6e57c642cb829402
  Author: chuongg3 <chuong.goh at arm.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-udiv.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/regbank-dup.mir
    M llvm/test/CodeGen/AArch64/aarch64-smull.ll
    M llvm/test/CodeGen/AArch64/neon-mov.ll

  Log Message:
  -----------
  [AArch64][GlobalISel] Make G_DUP immediate 32-bits or larger (#96780)

G_DUP's immediate operand gets extended in RegBankSelect to allow for
better pattern matching in TableGen for #96782


  Commit: 4c47b41771799cd630ee3e6b42593ac59d7593eb
      https://github.com/llvm/llvm-project/commit/4c47b41771799cd630ee3e6b42593ac59d7593eb
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/extractelement-single-use-many-nodes.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extractlements-gathered-first-node.ll

  Log Message:
  -----------
  [SLP]Allow matching and shuffling of extractelement vector operands with different VF.

Allows better codegen with the free resizing of small VF vector operands
and then regular shuffling of the operands of the same size and
simplifies the code.

Reviewers: RKSimon

Reviewed By: RKSimon

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


  Commit: 83b01aaf51072a07261ee2e5fc14102f71273bc0
      https://github.com/llvm/llvm-project/commit/83b01aaf51072a07261ee2e5fc14102f71273bc0
  Author: Hari Limaye <hari.limaye at arm.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
    A llvm/test/Transforms/LoopIdiom/AArch64/ctlz.ll

  Log Message:
  -----------
  [LoopIdiom] Support 'shift until less-than' idiom (#95002)

The current loop idiom code for recognising and inserting a CTLZ
intrinsic does not support loops where the loopback control is based on
an unsigned less-than condition. This patch adds support for recognising
these loops and inserting a CTLZ intrinsic.

Fixes the missed optimization cases in #51064

---------

Co-authored-by: David Sherwood <david.sherwood at arm.com>


  Commit: da827d0896e5e66fe9130f8f4479537d3bbee1da
      https://github.com/llvm/llvm-project/commit/da827d0896e5e66fe9130f8f4479537d3bbee1da
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/main.cpp

  Log Message:
  -----------
  [lldb][DataFormatter] Simplify std::unordered_map::iterator formatter (#97754)

Depends on https://github.com/llvm/llvm-project/pull/97752

This patch changes the way we retrieve the key/value pair in the
`std::unordered_map::iterator` formatter (similar to how we are changing
it for `std::map::iterator` in
https://github.com/llvm/llvm-project/pull/97713, the motivations being
the same).

The old logic was not very easy to follow, and encoded the libc++ layout
in non-obvious ways. But mainly it was also fragile to alignment
miscalculations (https://github.com/llvm/llvm-project/pull/97443); this
would break once the new layout of `std::unordered_map` landed as part
of https://github.com/llvm/llvm-project/issues/93069.

Instead, this patch simply casts the `__hash_iterator` to a
`__node_pointer` (which is what libc++ does too) and uses a
straightforward `GetChildMemberWithName("__value_")` to get to the
key/value we care about.

The `std::unordered_map` already does it this way, so we align the
iterator counterpart to do the same. We can eventually re-use the
core-part of the `std::unordered_map` and `std::unordered_map::iterator`
formatters. But it will be an easier to change to review once both
simplifications landed.


  Commit: f4f5e25467263adf60289ed0725d696368230b71
      https://github.com/llvm/llvm-project/commit/f4f5e25467263adf60289ed0725d696368230b71
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/ValueLattice.h

  Log Message:
  -----------
  [ValueLattice] Add missing const qualifier (NFC)


  Commit: 5c40e561bbc102f47553732fcebc0876b45d68b2
      https://github.com/llvm/llvm-project/commit/5c40e561bbc102f47553732fcebc0876b45d68b2
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M libc/include/llvm-libc-macros/math-macros.h
    M libc/src/math/amdgpu/CMakeLists.txt
    M libc/src/math/nvptx/CMakeLists.txt
    M libc/src/math/nvptx/llrint.cpp
    M libc/src/math/nvptx/llrintf.cpp
    M libc/src/math/nvptx/lrint.cpp

  Log Message:
  -----------
  [libc] Make GPU `libm` use generic implementations (#98014)

Summary:
This patch moves a lot of the old vendor implementations to the new
generic math functions. Previously a lot of these were done through the
vendor functions, but the long term goal is to completely phase these
out. In order to make the tests pass I had to disable exceptions so they
only perform functional tests.


  Commit: 7e054c33d42b0a6bc8f6b168dab688f8e7762ef0
      https://github.com/llvm/llvm-project/commit/7e054c33d42b0a6bc8f6b168dab688f8e7762ef0
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

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

  Log Message:
  -----------
  [VectorCombine] foldShuffleOfCastops - don't restrict to oneuse but compare total costs instead

Some casts (especially bitcasts but others as well) are incredibly cheap (or free), so don't limit the shuffle(cast(x),cast(y)) -> cast(shuffle(x,y)) to oneuse cases, but instead compare the total before/after costs of possibly repeating some casts.


  Commit: c9ee6b1977e7dc88e3bd89b5e361c703721711fd
      https://github.com/llvm/llvm-project/commit/c9ee6b1977e7dc88e3bd89b5e361c703721711fd
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M libc/config/darwin/arm/entrypoints.txt
    M libc/config/gpu/entrypoints.txt
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/arm/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/config/windows/entrypoints.txt
    M libc/docs/math/index.rst
    M libc/spec/stdc.td
    M libc/src/__support/FPUtil/CMakeLists.txt
    M libc/src/__support/FPUtil/FEnvImpl.h
    M libc/src/math/CMakeLists.txt
    A libc/src/math/cbrtf.h
    M libc/src/math/generic/CMakeLists.txt
    A libc/src/math/generic/cbrtf.cpp
    M libc/test/src/math/CMakeLists.txt
    A libc/test/src/math/cbrtf_test.cpp
    M libc/test/src/math/exhaustive/CMakeLists.txt
    A libc/test/src/math/exhaustive/cbrtf_test.cpp
    M libc/test/src/math/exhaustive/exhaustive_test.h
    M libc/test/src/math/smoke/CMakeLists.txt
    A libc/test/src/math/smoke/cbrtf_test.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.h

  Log Message:
  -----------
  [libc][math] Implement cbrtf function correctly rounded to all rounding modes. (#97936)

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

Algorithm: Let `x = (-1)^s * 2^e * (1 + m)`.
- Step 1: Range reduction: reduce the exponent with:
```
  y = cbrt(x) = (-1)^s * 2^(floor(e/3)) * 2^((e % 3)/3) * (1 + m)^(1/3)
```
- Step 2: Use the first 4 bit fractional bits of `m` to look up for a
degree-7 polynomial approximation to:
```
  (1 + m)^(1/3) ~ 1 + m * P(m).
```
- Step 3: Perform the multiplication:
```
  2^((e % 3)/3) * (1 + m)^(1/3).
```
- Step 4: Check for exact cases to prevent rounding and clear
`FE_INEXACT` floating point exception.
- Step 5: Combine with the exponent and sign before converting down to
`float` and return.


  Commit: d3a5589684baed14e82e57ca31fd4e988cb1436d
      https://github.com/llvm/llvm-project/commit/d3a5589684baed14e82e57ca31fd4e988cb1436d
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M libc/src/math/generic/tan.cpp

  Log Message:
  -----------
  [libc] Add maybe_unused for functions only used on slow path (#98024)

Summary:
When the fast math options are enabled these functions are uncalled,
which makes it error.


  Commit: 12d6832d86156904aecc10e8612bd77b66aeef51
      https://github.com/llvm/llvm-project/commit/12d6832d86156904aecc10e8612bd77b66aeef51
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Utils/SCCPSolver.cpp

  Log Message:
  -----------
  [SCCP] Skip bitcasts entirely

The only bitcasts the existing code might be able to handle are
bitcasts between iN and <1 x iN>. Don't bother.


  Commit: 727ecaf7d16d44ecf434284c60ad65b22d814092
      https://github.com/llvm/llvm-project/commit/727ecaf7d16d44ecf434284c60ad65b22d814092
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
    M flang/lib/Lower/ConvertCall.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp

  Log Message:
  -----------
  [flang] allow intrinsic module procedures to be implemented in Fortran (#97743)

Currently, all procedures from intrinsic modules that are not BIND(C)
are expected to be intercepted by the compiler in lowering and to have a
handler in IntrinsicCall.cpp.

As more "intrinsic" modules are being added (OpenMP, OpenACC, CUF, ...),
this requirement is preventing seamless implementation of intrinsic
modules in Fortran. Procedures from intrinsic modules are different from
generic intrinsics defined in section 16 of the standard. They are
declared in Fortran file seating in the intrinsic module directory and
inside the compiler they look like regular user call except for the
INTRINSIC attribute set on their module. So an easy implementation is
just to have the implementation done in Fortran and linked to the
runtime without any need for the compiler to necessarily understand and
handle these calls in special ways.

This patch splits the lookup and generation part of IntrinsicCall.cpp so
that it can be allowed to only intercept calls to procedure from
intrinsic module if they have a handler. Otherwise, the assumption is
that they should be implemented in Fortran.

Add explicit TODOs handler for the IEEE procedure that are known to not
yet been implemented and won't be implemented via Fortran code so that
this patch is an NFC for what is currently supported.

This patch also prevents doing two lookups in the intrinsic table (There
was one to get argument lowering rules, and another one to generate the
code).


  Commit: a5bfe20f6fd8957f870f8ffcf836d7737864e063
      https://github.com/llvm/llvm-project/commit/a5bfe20f6fd8957f870f8ffcf836d7737864e063
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/MIMGInstructions.td

  Log Message:
  -----------
  [AMDGPU] Comment MIMGEncGfx12


  Commit: 9dca3ac2efb180398ef8e84bfa9f0ef283d0e6fd
      https://github.com/llvm/llvm-project/commit/9dca3ac2efb180398ef8e84bfa9f0ef283d0e6fd
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py

  Log Message:
  -----------
  [lldb][DataFormatter] Simplify libc++ std::map::iterator formatter (#97713)

Depends on https://github.com/llvm/llvm-project/pull/97687

Similar to https://github.com/llvm/llvm-project/pull/97579, this patch
simplifies the way in which we retrieve the key/value pair of a
`std::map` (in this case of the `std::map::iterator`).

We do this for the same reason: not only was the old logic hard to
follow, and encoded the libc++ layout in non-obvious ways, it was also
fragile to alignment miscalculations
(https://github.com/llvm/llvm-project/pull/97443); this would break once
the new layout of std::map landed as part of
https://github.com/llvm/llvm-project/issues/93069.

Instead, this patch simply casts the `__iter_pointer` to the
`__node_pointer` and uses a straightforward
`GetChildMemberWithName("__value_")` to get to the key/value we care
about.

We can eventually re-use the core-part of the `std::map` and
`std::map::iterator` formatters. But it will be an easier to change to
review once both simplifications landed.


  Commit: 385118644ccabe27a634804c7db60734746c170f
      https://github.com/llvm/llvm-project/commit/385118644ccabe27a634804c7db60734746c170f
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/DebugInfo/Generic/assignment-tracking/slp-vectorizer/merge-scalars.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/spillcost-di.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-add-ssat.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-add-usat.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-add.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fix.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fshl-rot.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fshl.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fshr-rot.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fshr.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-mul.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-smax.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-smin.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-sub-ssat.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-sub-usat.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-sub.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-umax.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-umin.ll
    M llvm/test/Transforms/SLPVectorizer/X86/horizontal-list.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shift-ashr.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shift-lshr.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shift-shl.ll

  Log Message:
  -----------
  [SLP]Remove operands upon marking instruction for deletion.

If the instruction is marked for deletion, better to drop all its
operands and mark them for deletion too (if allowed). It allows to have
more vectorizable patterns and generate less useless extractelement
instructions.

Reviewers: RKSimon

Reviewed By: RKSimon

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


  Commit: f5b9e11eb8ada0e7cc292f9ecd29a220d1265084
      https://github.com/llvm/llvm-project/commit/f5b9e11eb8ada0e7cc292f9ecd29a220d1265084
  Author: Marco Elver <elver at google.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M clang/test/CodeGen/sanitize-metadata-ignorelist.c
    M clang/test/CodeGen/sanitize-metadata-nosanitize.c
    M clang/test/CodeGen/sanitize-metadata.c
    M llvm/lib/Transforms/Instrumentation/SanitizerBinaryMetadata.cpp
    M llvm/test/Instrumentation/SanitizerBinaryMetadata/atomics.ll
    M llvm/test/Instrumentation/SanitizerBinaryMetadata/ctor.ll

  Log Message:
  -----------
  [SanitizerBinaryMetadata] Fix multi-version sanitizer metadata (#97848)

It should be valid to combine TUs that have different versions of
sanitizer metadata. However, this had not been possible due to giving
sanitizer metadata sections, constructors, and destructors (that call
callbacks) the same name for different versions.

This would then result in the linker attempting to merge sections that
contain metadata of different versions, as well as picking any one of
the constructors or destructors due to having the same COMDAT key. The
end result is that consumers of this data would end up interpreting the
metadata incorrectly.

Although combining old and new versions is not recommended, more
realistic is combining TUs that have been compiled with different target
code models (which are also encoded in the sanitizer metadata version).

To fix, and properly support multi-version sanitizer metadata, attach
the version to section names and internal constructor and destructor
names. The ABI remains unchanged.


  Commit: 0577cdaa32b26c02e16822343e7039b999f43d58
      https://github.com/llvm/llvm-project/commit/0577cdaa32b26c02e16822343e7039b999f43d58
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
    M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-interleave.ll

  Log Message:
  -----------
  [LV] Split checking if tail-folding is possible, collecting masked ops. (#77612)

Introduce new canFoldTail helper which only checks if tail-folding is
possible, but without modifying MaskedOps.

Just because tail-folding is possible doesn't mean the tail will be
folded; that's up to the cost-model to decide. Separating the check if
tail-folding is possible and preparing for tail-folding makes sure that
MaskedOps is only populated when tail-folding is actually selected.

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


  Commit: 12e47aabd4e4c6cec15092183b91ec279a0a7ab4
      https://github.com/llvm/llvm-project/commit/12e47aabd4e4c6cec15092183b91ec279a0a7ab4
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
    M libc/config/config.json
    M libc/config/gpu/config.json
    M libc/docs/configure.rst
    M libc/src/math/generic/tan.cpp

  Log Message:
  -----------
  [libc] Add config option for fast math optimizations (#98029)

Summary:
This patch adds `LIBC_COPT_MATH_OPTIMIZATIONS` that allows users to
configure the
different math optimizations.


  Commit: 2f37a22f10a1128c695bc469871a9101edce853e
      https://github.com/llvm/llvm-project/commit/2f37a22f10a1128c695bc469871a9101edce853e
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Object/ELF.h
    M llvm/include/llvm/Object/ELFObjectFile.h
    M llvm/lib/Object/ELF.cpp
    M llvm/lib/Object/ELFObjectFile.cpp
    A llvm/test/tools/llvm-objdump/ELF/crel.test
    M llvm/test/tools/llvm-objdump/X86/elf-disassemble-relocs.test
    M llvm/tools/llvm-objdump/ELFDump.cpp
    M llvm/tools/llvm-objdump/llvm-objdump.cpp

  Log Message:
  -----------
  [llvm-objdump] -r: support CREL

Extract the llvm-readelf decoder to `decodeCrel` (#91280) and reuse it
for llvm-objdump.

Because the section representation of LLVMObject (`SectionRef`) is
64-bit, insufficient to hold all decoder states, `section_rel_begin` is
modified to decode CREL eagerly and hold the decoded relocations inside
ELFObjectFile<ELFT>.

The test is adapted from llvm/test/tools/llvm-readobj/ELF/crel.test.

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


  Commit: 3320036370ba3719471ab243f253237e88996495
      https://github.com/llvm/llvm-project/commit/3320036370ba3719471ab243f253237e88996495
  Author: Eleanor Bonnici <eleanor.bonnici at arm.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/docs/CommandGuide/llvm-objcopy.rst
    M llvm/include/llvm/ObjCopy/CommonConfig.h
    M llvm/lib/ObjCopy/ConfigManager.cpp
    M llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp
    A llvm/test/tools/llvm-objcopy/ELF/change-section-lma.test
    M llvm/tools/llvm-objcopy/ObjcopyOptions.cpp
    M llvm/tools/llvm-objcopy/ObjcopyOpts.td

  Log Message:
  -----------
  [llvm-objcopy] Add change-section-lma *+/-offset (#95431)

llvm-objcopy did not support change-section-lma argument.

This patch adds support for a use case of change-section-lma, that is
shifting load address of all sections by the same offset. This seems to
be the only practical use case of change-section-lma, found in other
software such as Zephyr RTOS's build system.

This is an option that could possibly be supported in some other than
ELF formats, however this change only implements it for ELF. When used
with other formats an error message is raised.

In comparison, the behavior of GNU objcopy is inconsistent. For some ELF
files it behaves the same as described above. For others, it copies the
file without modifying the p_paddr fields when it would be expected. In
some experiments it modifies arbitrary fields in section or program
headers. It is unclear what exactly determines this.
The executable file generated by yaml2obj in this test is not parsable
by GNU objcopy. With Machine set to EM_AARCH64, the file can be parsed
and the first test in the test file completes with 0 exit code. However,
the result is rather arbitrary. AArch64 GNU objcopy subtracts 0x1000
from p_filesz and p_memsz of the first LOAD section and 0x1000 from
p_offset of the second LOAD section. It does not look meaningful.


  Commit: 7776fba473a216b2d1a765491bdc5db710cdff8f
      https://github.com/llvm/llvm-project/commit/7776fba473a216b2d1a765491bdc5db710cdff8f
  Author: Mikhail R. Gadelha <mikhail at igalia.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M libc/src/__support/File/file.cpp
    M libc/src/__support/File/file.h
    M libc/src/__support/File/linux/file.cpp
    M libc/src/__support/File/linux/file.h
    M libc/src/stdio/fopencookie.cpp
    M libc/src/stdio/generic/ftell.cpp
    M libc/src/sys/mman/linux/mmap.cpp
    M libc/src/unistd/linux/pread.cpp
    M libc/src/unistd/linux/pwrite.cpp
    M libc/test/src/__support/File/file_test.cpp

  Log Message:
  -----------
  [libc][NFC] Adjust use of off_t internally (#68269)

This patch includes changes related to the use of off_t in libc,
targeted at 32-bit systems: in several places, the offset is used either
as a long or an off_t (64-bit signed int), but in 32-bit systems a long
type is only 32 bits long.

Fix a warning in mmap where a long offset is expected, but we were
passing an off_t. A static_cast and a comment were added to explain
that we know we are ignoring the upper 32-bit of the off_t in 32-bit
systems.
The code in pread and pwrite was slightly improved to remove a
#ifdef LIBC_TARGET_ARCH_IS_RISCV32; we are using an if constexpr now.
The Linux file operations were changed to use off_t instead of a long
where applicable. No changes were made to the standard API, e.g.,
ftell returns the offset as an int so we added a static_cast and a
comment explaining that this will cause a loss of integer precision
in 32-bit systems.


  Commit: fe8933ba211da094dc866b2bde64928c8121131b
      https://github.com/llvm/llvm-project/commit/fe8933ba211da094dc866b2bde64928c8121131b
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp

  Log Message:
  -----------
  [lldb][DataFormatter] Simplify std::map formatter  (#97579)

Depends on:
* https://github.com/llvm/llvm-project/pull/97544
* https://github.com/llvm/llvm-project/pull/97549
* https://github.com/llvm/llvm-project/pull/97551

This patch tries to simplify the way in which the `std::map` formatter
goes from the root `__tree` pointer to a specific key/value pair.

Previously we would:
1. synthesize a structure that mimicked what `__iter_pointer` looked
like in memory
2. call `GetChildCompilerTypeAtIndex` on it to find the byte offset at
which the pair was located in the synthesized structure
3. finally, use that offset through a call to
`GetSyntheticChildAtOffset` to retrieve the key/value pair

Not only was this logic hard to follow, and encoded the libc++ layout in
non-obvious ways, it was also fragile to alignment miscalculations
(https://github.com/llvm/llvm-project/pull/97443); this would break once
the new layout of std::map landed as part of
https://github.com/https://github.com/llvm/llvm-project/issues/93069.

Instead, this patch simply casts the `__iter_pointer` to the
`__node_pointer` and uses a straightforward
`GetChildMemberWithName("__value_")` to get to the key/value we care
about. This allows us to get rid of some support infrastructure/class
state.

Ideally we would fix the underlying alignment issue, but this unblocks
the libc++ refactor in the interim, while also benefitting the formatter
in terms of readability (in my opinion).


  Commit: 840e5075447fd2e7ae1f23c112e959b504d8ff42
      https://github.com/llvm/llvm-project/commit/840e5075447fd2e7ae1f23c112e959b504d8ff42
  Author: Daniel Rodríguez Troitiño <drodriguez at users.noreply.github.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M lld/MachO/InputFiles.cpp
    A lld/test/MachO/implicit-and-allowable-clients.test

  Log Message:
  -----------
  [lld] Do not implicitly link non "public" libraries (#97639)

The LC_SUB_CLIENT Mach-O command and the `allowable-clients` TBD entry
specify that the given framework (or library?) can only be linked
directly from the specified names, even if it is sitting in `/usr/lib`
or `/System/Library/Frameworks`.

Add a check for those conditions before checking if a library should be
implicitly linked, and link against their umbrella if they have
allowable clients. The code needs to be in both the binary libraries and
the interface libraries.

Add a test that reproduces the scenario in which a framework reexports a
private framework that sits in `/System/Library/Frameworks`, and check
for the symbols of the reexported framework to be associated with the
public framework, and not the private one.


  Commit: 0387a86f9a6d5bb0f178804784296e37fb34ca03
      https://github.com/llvm/llvm-project/commit/0387a86f9a6d5bb0f178804784296e37fb34ca03
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M clang/lib/Serialization/ASTWriter.cpp
    A clang/test/Modules/use-after-free-2.c

  Log Message:
  -----------
  [clang][modules] Fix use-after-free in header serialization (#96356)

With the pruning of unused module map files disabled
(`-fno-modules-prune-non-affecting-module-map-files`), `HeaderFileInfo`
no longer gets deserialized before `ASTWriter::WriteHeaderSearch()`.
This function then interleaves the stores of references to `KnownHeader`
with their lazy deserialization. Lazy deserialization may cause
reallocation of `ModuleMap::Headers` entries (including its
`SmallVector<KnownHeader, 1>` values) thus making previously-stored
`ArrayRef<KnownHeader>` dangling. This patch fixes that situation by
storing a copy instead.


  Commit: 1952dba49abdda848512d11fc68c031a0a21ec50
      https://github.com/llvm/llvm-project/commit/1952dba49abdda848512d11fc68c031a0a21ec50
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M llvm/include/llvm/BinaryFormat/ELF.h
    A llvm/include/llvm/MC/MCELFExtras.h
    M llvm/lib/MC/ELFObjectWriter.cpp

  Log Message:
  -----------
  [MC,ELF] Extract CREL encoder code

The extracted ELFObjectWriter.cpp code will be reused by llvm-objcopy
support (#97521).


  Commit: 15d05eaa53ab513938f8f00bdf18ed45aa26432e
      https://github.com/llvm/llvm-project/commit/15d05eaa53ab513938f8f00bdf18ed45aa26432e
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M bolt/include/bolt/Profile/YAMLProfileReader.h
    M bolt/lib/Core/BinaryFunction.cpp
    M bolt/lib/Profile/BoltAddressTranslation.cpp
    M bolt/lib/Profile/YAMLProfileReader.cpp
    M bolt/test/X86/register-fragments-bolt-symbols.s
    M clang-tools-extra/clang-doc/tool/CMakeLists.txt
    M clang-tools-extra/clangd/support/ThreadsafeFS.cpp
    M clang/cmake/caches/Fuchsia-stage2.cmake
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticCommonKinds.td
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/Basic/Targets/PPC.cpp
    M clang/lib/Basic/Targets/PPC.h
    M clang/lib/Basic/Targets/X86.cpp
    M clang/lib/Basic/Targets/X86.h
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/CodeGen/CodeGenModule.h
    M clang/lib/CodeGen/Targets/X86.cpp
    M clang/lib/Format/Format.cpp
    M clang/lib/Headers/float.h
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    A clang/test/C/C2y/n3254.c
    A clang/test/CodeGen/PowerPC/musttail-forward-declaration-inline.c
    A clang/test/CodeGen/PowerPC/musttail-forward-declaration-weak.c
    A clang/test/CodeGen/PowerPC/musttail-forward-declaration.c
    A clang/test/CodeGen/PowerPC/musttail-indirect.cpp
    A clang/test/CodeGen/PowerPC/musttail-inline.c
    A clang/test/CodeGen/PowerPC/musttail-undefined.c
    A clang/test/CodeGen/PowerPC/musttail-weak.c
    A clang/test/CodeGen/PowerPC/musttail.c
    M clang/test/CodeGen/sanitize-metadata-ignorelist.c
    M clang/test/CodeGen/sanitize-metadata-nosanitize.c
    M clang/test/CodeGen/sanitize-metadata.c
    M clang/test/CodeGen/stdcall-fastcall.c
    M clang/test/CodeGen/vectorcall.c
    M clang/test/Driver/aarch64-v81a.c
    M clang/test/Driver/aarch64-v82a.c
    M clang/test/Driver/aarch64-v83a.c
    M clang/test/Driver/aarch64-v84a.c
    M clang/test/Driver/aarch64-v85a.c
    M clang/test/Driver/aarch64-v86a.c
    M clang/test/Driver/aarch64-v87a.c
    M clang/test/Driver/aarch64-v88a.c
    M clang/test/Driver/aarch64-v89a.c
    M clang/test/Driver/aarch64-v8a.c
    M clang/test/Driver/aarch64-v91a.c
    M clang/test/Driver/aarch64-v92a.c
    M clang/test/Driver/aarch64-v93a.c
    M clang/test/Driver/aarch64-v94a.c
    M clang/test/Driver/aarch64-v95a.c
    M clang/test/Driver/aarch64-v9a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-a64fx.c
    A clang/test/Driver/print-enabled-extensions/aarch64-ampere1.c
    A clang/test/Driver/print-enabled-extensions/aarch64-ampere1a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-ampere1b.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-a10.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-a11.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-a12.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-a13.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-a14.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-a15.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-a16.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-a17.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-a7.c
    A clang/test/Driver/print-enabled-extensions/aarch64-apple-m4.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8-r.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8.1-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8.2-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8.3-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8.4-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8.5-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8.6-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8.7-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8.8-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv8.9-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv9-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv9.1-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv9.2-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv9.3-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv9.4-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-armv9.5-a.c
    A clang/test/Driver/print-enabled-extensions/aarch64-carmel.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a34.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a35.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a510.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a520.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a520ae.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a53.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a55.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a57.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a65.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a65ae.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a710.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a715.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a72.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a720.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a720ae.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a725.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a73.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a75.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a76.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a76ae.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a77.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a78.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a78ae.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-a78c.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-r82.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-r82ae.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-x1.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-x1c.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-x2.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-x3.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-x4.c
    A clang/test/Driver/print-enabled-extensions/aarch64-cortex-x925.c
    A clang/test/Driver/print-enabled-extensions/aarch64-exynos-m3.c
    A clang/test/Driver/print-enabled-extensions/aarch64-exynos-m4.c
    A clang/test/Driver/print-enabled-extensions/aarch64-exynos-m5.c
    A clang/test/Driver/print-enabled-extensions/aarch64-falkor.c
    A clang/test/Driver/print-enabled-extensions/aarch64-generic.c
    A clang/test/Driver/print-enabled-extensions/aarch64-kryo.c
    A clang/test/Driver/print-enabled-extensions/aarch64-neoverse-512tvb.c
    A clang/test/Driver/print-enabled-extensions/aarch64-neoverse-e1.c
    A clang/test/Driver/print-enabled-extensions/aarch64-neoverse-n1.c
    A clang/test/Driver/print-enabled-extensions/aarch64-neoverse-n2.c
    A clang/test/Driver/print-enabled-extensions/aarch64-neoverse-n3.c
    A clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v1.c
    A clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v2.c
    A clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v3.c
    A clang/test/Driver/print-enabled-extensions/aarch64-neoverse-v3ae.c
    A clang/test/Driver/print-enabled-extensions/aarch64-oryon-1.c
    A clang/test/Driver/print-enabled-extensions/aarch64-saphira.c
    A clang/test/Driver/print-enabled-extensions/aarch64-thunderx.c
    A clang/test/Driver/print-enabled-extensions/aarch64-thunderx2t99.c
    A clang/test/Driver/print-enabled-extensions/aarch64-thunderx3t110.c
    A clang/test/Driver/print-enabled-extensions/aarch64-thunderxt81.c
    A clang/test/Driver/print-enabled-extensions/aarch64-thunderxt83.c
    A clang/test/Driver/print-enabled-extensions/aarch64-thunderxt88.c
    A clang/test/Driver/print-enabled-extensions/aarch64-tsv110.c
    A clang/test/Driver/print-supported-extensions-aarch64.c
    A clang/test/Driver/print-supported-extensions-arm.c
    A clang/test/Driver/print-supported-extensions-riscv.c
    M clang/test/Driver/print-supported-extensions.c
    M clang/test/Headers/float.c
    A clang/test/Modules/use-after-free-2.c
    M clang/test/SemaCXX/eval-crashes.cpp
    M clang/test/SemaTemplate/generic-lambda.cpp
    M clang/unittests/Format/SortIncludesTest.cpp
    M clang/www/c_status.html
    M clang/www/cxx_status.html
    M compiler-rt/cmake/Modules/CompilerRTUtils.cmake
    M compiler-rt/include/orc_rt/c_api.h
    M compiler-rt/lib/orc/error.h
    M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
    M flang/lib/Lower/ConvertCall.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/test/Fir/convert-to-llvm-openmp-and-fir.fir
    M libc/benchmarks/gpu/LibcGpuBenchmark.cpp
    M libc/benchmarks/gpu/LibcGpuBenchmark.h
    M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
    M libc/config/baremetal/arm/entrypoints.txt
    M libc/config/baremetal/riscv/entrypoints.txt
    M libc/config/config.json
    M libc/config/darwin/arm/entrypoints.txt
    M libc/config/gpu/config.json
    M libc/config/gpu/entrypoints.txt
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/aarch64/headers.txt
    M libc/config/linux/arm/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/config/linux/x86_64/headers.txt
    M libc/config/windows/entrypoints.txt
    M libc/docs/configure.rst
    M libc/docs/dev/undefined_behavior.rst
    M libc/docs/math/index.rst
    M libc/hdr/CMakeLists.txt
    A libc/hdr/limits_macros.h
    M libc/hdr/math_macros.h
    A libc/hdr/sys_stat_macros.h
    A libc/hdr/unistd_macros.h
    M libc/include/CMakeLists.txt
    A libc/include/dlfcn.h.def
    M libc/include/llvm-libc-macros/CMakeLists.txt
    A libc/include/llvm-libc-macros/dlfcn-macros.h
    M libc/include/llvm-libc-macros/limits-macros.h
    M libc/include/llvm-libc-macros/linux/unistd-macros.h
    M libc/include/llvm-libc-macros/math-macros.h
    M libc/spec/linux.td
    M libc/spec/posix.td
    M libc/spec/stdc.td
    M libc/src/CMakeLists.txt
    M libc/src/__support/FPUtil/CMakeLists.txt
    M libc/src/__support/FPUtil/FEnvImpl.h
    M libc/src/__support/File/file.cpp
    M libc/src/__support/File/file.h
    M libc/src/__support/File/linux/CMakeLists.txt
    M libc/src/__support/File/linux/file.cpp
    M libc/src/__support/File/linux/file.h
    M libc/src/__support/threads/sleep.h
    A libc/src/dlfcn/CMakeLists.txt
    A libc/src/dlfcn/dlclose.cpp
    A libc/src/dlfcn/dlclose.h
    A libc/src/dlfcn/dlerror.cpp
    A libc/src/dlfcn/dlerror.h
    A libc/src/dlfcn/dlopen.cpp
    A libc/src/dlfcn/dlopen.h
    A libc/src/dlfcn/dlsym.cpp
    A libc/src/dlfcn/dlsym.h
    M libc/src/math/CMakeLists.txt
    M libc/src/math/amdgpu/CMakeLists.txt
    A libc/src/math/cbrtf.h
    A libc/src/math/cospif.h
    M libc/src/math/generic/CMakeLists.txt
    A libc/src/math/generic/cbrtf.cpp
    M libc/src/math/generic/cos.cpp
    A libc/src/math/generic/cospif.cpp
    M libc/src/math/generic/sin.cpp
    M libc/src/math/generic/sincos.cpp
    M libc/src/math/generic/sinpif.cpp
    M libc/src/math/generic/tan.cpp
    M libc/src/math/nvptx/CMakeLists.txt
    M libc/src/math/nvptx/llrint.cpp
    M libc/src/math/nvptx/llrintf.cpp
    M libc/src/math/nvptx/lrint.cpp
    M libc/src/search/hsearch.cpp
    M libc/src/stdio/fopencookie.cpp
    M libc/src/stdio/generic/ftell.cpp
    M libc/src/sys/mman/linux/mmap.cpp
    M libc/src/sys/statvfs/linux/CMakeLists.txt
    M libc/src/unistd/CMakeLists.txt
    A libc/src/unistd/fpathconf.h
    M libc/src/unistd/linux/CMakeLists.txt
    A libc/src/unistd/linux/fpathconf.cpp
    A libc/src/unistd/linux/pathconf.cpp
    A libc/src/unistd/linux/pathconf_utils.cpp
    A libc/src/unistd/linux/pathconf_utils.h
    M libc/src/unistd/linux/pread.cpp
    M libc/src/unistd/linux/pwrite.cpp
    A libc/src/unistd/pathconf.h
    M libc/startup/linux/aarch64/tls.cpp
    M libc/test/src/__support/File/file_test.cpp
    M libc/test/src/math/CMakeLists.txt
    A libc/test/src/math/cbrtf_test.cpp
    A libc/test/src/math/cospif_test.cpp
    M libc/test/src/math/exhaustive/CMakeLists.txt
    A libc/test/src/math/exhaustive/cbrtf_test.cpp
    A libc/test/src/math/exhaustive/cospif_test.cpp
    M libc/test/src/math/exhaustive/exhaustive_test.h
    M libc/test/src/math/smoke/CMakeLists.txt
    A libc/test/src/math/smoke/cbrtf_test.cpp
    A libc/test/src/math/smoke/cospif_test.cpp
    M libc/test/src/unistd/CMakeLists.txt
    A libc/test/src/unistd/fpathconf_test.cpp
    A libc/test/src/unistd/pathconf_test.cpp
    M libc/test/src/unistd/readlink_test.cpp
    M libc/test/src/unistd/readlinkat_test.cpp
    M libc/utils/HdrGen/CMakeLists.txt
    M libc/utils/LibcTableGenUtil/CMakeLists.txt
    M libc/utils/MPFRWrapper/MPFRUtils.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.h
    M libcxx/docs/index.rst
    M libcxx/include/__compare/synth_three_way.h
    M libcxx/include/__configuration/compiler.h
    M libcxx/include/__locale_dir/locale_base_api.h
    M libcxx/include/__locale_dir/locale_base_api/android.h
    M libcxx/include/__locale_dir/locale_base_api/fuchsia.h
    M libcxx/include/__locale_dir/locale_base_api/ibm.h
    M libcxx/include/__locale_dir/locale_base_api/musl.h
    M libcxx/include/__locale_dir/locale_base_api/newlib.h
    M libcxx/include/__locale_dir/locale_base_api/openbsd.h
    M libcxx/include/__locale_dir/locale_base_api/win32.h
    M libcxx/include/__string/char_traits.h
    M libcxx/include/__support/xlocale/__posix_l_fallback.h
    M libcxx/include/__support/xlocale/__strtonum_fallback.h
    M libcxx/include/array
    M libcxx/include/chrono
    M libcxx/include/deque
    M libcxx/include/forward_list
    M libcxx/include/list
    M libcxx/include/map
    M libcxx/include/set
    M libcxx/include/vector
    M libcxx/src/CMakeLists.txt
    R libcxx/src/chrono_exception.cpp
    A libcxx/src/experimental/chrono_exception.cpp
    A libcxx/src/experimental/include/tzdb/time_zone_private.h
    A libcxx/src/experimental/include/tzdb/types_private.h
    A libcxx/src/experimental/include/tzdb/tzdb_list_private.h
    A libcxx/src/experimental/include/tzdb/tzdb_private.h
    A libcxx/src/experimental/time_zone.cpp
    A libcxx/src/experimental/tzdb.cpp
    A libcxx/src/experimental/tzdb_list.cpp
    R libcxx/src/include/tzdb/time_zone_private.h
    R libcxx/src/include/tzdb/types_private.h
    R libcxx/src/include/tzdb/tzdb_list_private.h
    R libcxx/src/include/tzdb/tzdb_private.h
    R libcxx/src/time_zone.cpp
    R libcxx/src/tzdb.cpp
    R libcxx/src/tzdb_list.cpp
    M libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp
    M libcxx/test/libcxx/language.support/support.dynamic/libcpp_deallocate.sh.cpp
    M libcxx/test/libcxx/time/time.zone/time.zone.db/rules.pass.cpp
    M libcxx/test/libcxx/time/time.zone/time.zone.db/zones.pass.cpp
    M libcxx/test/std/algorithms/robust_against_adl.compile.pass.cpp
    M libcxx/test/std/containers/views/mdspan/mdspan/index_operator.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp
    M libcxx/test/std/time/time.zone/time.zone.leap/nonmembers/comparison.pass.cpp
    M libcxx/test/std/utilities/expected/expected.expected/monadic/transform.pass.cpp
    M libcxx/test/std/utilities/expected/expected.expected/monadic/transform_error.pass.cpp
    M libcxx/test/std/utilities/expected/expected.void/monadic/transform_error.pass.cpp
    M libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.char_array.pass.cpp
    M libcxx/test/std/utilities/utility/pairs/pairs.pair/ctor.pair_U_V_move.pass.cpp
    M libcxx/utils/libcxx/test/features.py
    M libcxxabi/test/catch_member_function_pointer_02.pass.cpp
    M lld/ELF/Driver.cpp
    M lld/MachO/Driver.cpp
    M lld/MachO/InputFiles.cpp
    M lld/MachO/Writer.cpp
    M lld/docs/ReleaseNotes.rst
    M lld/test/ELF/version.test
    A lld/test/MachO/implicit-and-allowable-clients.test
    M lld/test/MachO/init-offsets.s
    A lld/test/MachO/invalid/init-offsets.s
    M lldb/examples/synthetic/gnu_libstdcpp.py
    M lldb/include/lldb/Utility/Listener.h
    M lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py
    M lldb/source/API/SBAttachInfo.cpp
    M lldb/source/API/SBLaunchInfo.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxx.h
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
    M lldb/source/Utility/Listener.cpp
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/main.cpp
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/variant/TestDataFormatterLibStdcxxVariant.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/variant/main.cpp
    M lldb/test/API/functionalities/unwind/zeroth_frame/TestZerothFrame.py
    M llvm/CMakeLists.txt
    M llvm/docs/CommandGuide/llvm-objcopy.rst
    M llvm/include/llvm/ADT/APInt.h
    M llvm/include/llvm/ADT/DynamicAPInt.h
    M llvm/include/llvm/ADT/SlowDynamicAPInt.h
    M llvm/include/llvm/Analysis/BranchProbabilityInfo.h
    M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
    M llvm/include/llvm/Analysis/MLInlineAdvisor.h
    M llvm/include/llvm/Analysis/MemorySSA.h
    M llvm/include/llvm/Analysis/ValueLattice.h
    M llvm/include/llvm/BinaryFormat/ELF.h
    M llvm/include/llvm/CodeGen/TargetInstrInfo.h
    A llvm/include/llvm/CodeGenData/OutlinedHashTree.h
    A llvm/include/llvm/CodeGenData/OutlinedHashTreeRecord.h
    A llvm/include/llvm/IR/DbgVariableFragmentInfo.h
    M llvm/include/llvm/IR/DebugInfoMetadata.h
    M llvm/include/llvm/IR/DebugProgramInstruction.h
    M llvm/include/llvm/MC/MCAssembler.h
    M llvm/include/llvm/MC/MCDwarf.h
    A llvm/include/llvm/MC/MCELFExtras.h
    M llvm/include/llvm/MC/MCStreamer.h
    M llvm/include/llvm/ObjCopy/CommonConfig.h
    M llvm/include/llvm/ProfileData/SampleProfReader.h
    M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
    M llvm/lib/Analysis/LazyValueInfo.cpp
    M llvm/lib/Analysis/LoopAccessAnalysis.cpp
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/Bitcode/Reader/MetadataLoader.cpp
    M llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
    M llvm/lib/CMakeLists.txt
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    M llvm/lib/CodeGen/CFIInstrInserter.cpp
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/CodeGen/MIRPrintingPass.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    A llvm/lib/CodeGenData/CMakeLists.txt
    A llvm/lib/CodeGenData/OutlinedHashTree.cpp
    A llvm/lib/CodeGenData/OutlinedHashTreeRecord.cpp
    M llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp
    M llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp
    M llvm/lib/FileCheck/FileCheck.cpp
    M llvm/lib/IR/AsmWriter.cpp
    M llvm/lib/IR/AutoUpgrade.cpp
    M llvm/lib/IR/DebugInfoMetadata.cpp
    M llvm/lib/IR/DebugProgramInstruction.cpp
    M llvm/lib/IR/DiagnosticInfo.cpp
    M llvm/lib/IR/Module.cpp
    M llvm/lib/MC/ELFObjectWriter.cpp
    M llvm/lib/MC/MCAsmStreamer.cpp
    M llvm/lib/MC/MCAssembler.cpp
    M llvm/lib/MC/MCDwarf.cpp
    M llvm/lib/MC/MCParser/AsmParser.cpp
    M llvm/lib/MC/MCStreamer.cpp
    M llvm/lib/MC/MachObjectWriter.cpp
    M llvm/lib/MC/WinCOFFObjectWriter.cpp
    M llvm/lib/ObjCopy/ConfigManager.cpp
    M llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp
    M llvm/lib/ObjectYAML/XCOFFYAML.cpp
    M llvm/lib/Remarks/Remark.cpp
    M llvm/lib/Support/DivisionByConstantInfo.cpp
    M llvm/lib/Support/DynamicAPInt.cpp
    M llvm/lib/Support/TimeProfiler.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
    M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
    M llvm/lib/Target/AMDGPU/MIMGInstructions.td
    M llvm/lib/Target/AMDGPU/SIInstrInfo.h
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/X86/CMakeLists.txt
    M llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
    M llvm/lib/Target/X86/X86.h
    M llvm/lib/Target/X86/X86.td
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86MCInstLower.cpp
    M llvm/lib/Target/X86/X86TargetMachine.cpp
    A llvm/lib/Target/X86/X86WinFixupBufferSecurityCheck.cpp
    M llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp
    M llvm/lib/Transforms/Instrumentation/SanitizerBinaryMetadata.cpp
    M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
    M llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
    M llvm/lib/Transforms/Utils/SCCPSolver.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-udiv.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/regbank-dup.mir
    M llvm/test/CodeGen/AArch64/aarch64-smull.ll
    A llvm/test/CodeGen/AArch64/ctlz_zero_undef.ll
    M llvm/test/CodeGen/AArch64/neon-mov.ll
    A llvm/test/CodeGen/AArch64/sitofp-to-tbl.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/global-atomic-fadd.f32-no-rtn.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/global-atomic-fadd.f32-rtn.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ctlz-zero-undef.mir
    M llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
    M llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
    M llvm/test/CodeGen/AMDGPU/ctlz_zero_undef.ll
    M llvm/test/CodeGen/AMDGPU/global-atomic-fadd.f32-no-rtn.ll
    M llvm/test/CodeGen/AMDGPU/global-atomic-fadd.f32-rtn.ll
    M llvm/test/CodeGen/AMDGPU/global_atomic_optimizer_fp_rtn.ll
    M llvm/test/CodeGen/AMDGPU/global_atomics_iterative_scan_fp.ll
    M llvm/test/CodeGen/AMDGPU/global_atomics_optimizer_fp_no_rtn.ll
    M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fadd.ll
    M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fmax.ll
    M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fmin.ll
    M llvm/test/CodeGen/AMDGPU/global_atomics_scan_fsub.ll
    M llvm/test/CodeGen/ARM/GlobalISel/arm-legalize-bitcounts.mir
    A llvm/test/CodeGen/ARM/sdiv_shl.ll
    M llvm/test/CodeGen/Hexagon/bitmanip.ll
    M llvm/test/CodeGen/PowerPC/aix-available-externally-linkage-fun.ll
    M llvm/test/CodeGen/PowerPC/aix-extern-weak.ll
    M llvm/test/CodeGen/PowerPC/aix-extern.ll
    M llvm/test/CodeGen/PowerPC/aix-text-ref.ll
    M llvm/test/CodeGen/PowerPC/aix-xcoff-reloc.ll
    M llvm/test/CodeGen/PowerPC/aix-xcoff-visibility.ll
    M llvm/test/CodeGen/RISCV/ctlz-cttz-ctpop.ll
    M llvm/test/CodeGen/RISCV/rv64-legal-i32/rv64xtheadbb.ll
    M llvm/test/CodeGen/RISCV/rvv/ctlz-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-int.ll
    M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll
    M llvm/test/CodeGen/RISCV/rvv/vmadd-vp.ll
    M llvm/test/CodeGen/SystemZ/scalar-ctlz-01.ll
    M llvm/test/CodeGen/VE/Scalar/ctlz.ll
    A llvm/test/CodeGen/X86/branch-hint.ll
    M llvm/test/CodeGen/X86/ctlo.ll
    M llvm/test/CodeGen/X86/ctlz.ll
    M llvm/test/CodeGen/X86/lzcnt.ll
    M llvm/test/CodeGen/X86/opt-pipeline.ll
    M llvm/test/CodeGen/X86/pr38539.ll
    A llvm/test/CodeGen/X86/pr97968.ll
    M llvm/test/CodeGen/X86/stack-protector-msvc.ll
    M llvm/test/CodeGen/X86/tailcc-ssp.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/slp-vectorizer/merge-scalars.ll
    M llvm/test/Instrumentation/SanitizerBinaryMetadata/atomics.ll
    M llvm/test/Instrumentation/SanitizerBinaryMetadata/ctor.ll
    A llvm/test/MC/ELF/cfi-label.s
    A llvm/test/Transforms/LoopIdiom/AArch64/ctlz.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-interleave.ll
    M llvm/test/Transforms/LoopVectorize/SystemZ/zero_unroll.ll
    A llvm/test/Transforms/LoopVectorize/X86/ephemeral-recipes.ll
    M llvm/test/Transforms/LoopVectorize/X86/induction-costs.ll
    M llvm/test/Transforms/LoopVectorize/pr32859.ll
    M llvm/test/Transforms/LoopVectorize/vplan-incomplete-cases.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/spillcost-di.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-add-ssat.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-add-usat.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-add.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fix.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fshl-rot.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fshl.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fshr-rot.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fshr.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-mul.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-smax.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-smin.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-sub-ssat.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-sub-usat.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-sub.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-umax.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-umin.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extractelement-single-use-many-nodes.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extractlements-gathered-first-node.ll
    M llvm/test/Transforms/SLPVectorizer/X86/horizontal-list.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shift-ashr.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shift-lshr.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shift-shl.ll
    A llvm/test/Transforms/SpeculativeExecution/dropping-debugloc-hoist.ll
    M llvm/test/Transforms/VectorCombine/X86/shuffle-of-casts.ll
    A llvm/test/tools/llvm-objcopy/ELF/change-section-lma.test
    M llvm/tools/bugpoint/BugDriver.cpp
    M llvm/tools/bugpoint/CrashDebugger.cpp
    M llvm/tools/llvm-as/llvm-as.cpp
    M llvm/tools/llvm-extract/llvm-extract.cpp
    M llvm/tools/llvm-link/llvm-link.cpp
    M llvm/tools/llvm-objcopy/ObjcopyOptions.cpp
    M llvm/tools/llvm-objcopy/ObjcopyOpts.td
    M llvm/tools/llvm-objdump/MachODump.cpp
    M llvm/tools/llvm-opt-report/OptReport.cpp
    M llvm/tools/llvm-profgen/ProfiledBinary.cpp
    M llvm/tools/llvm-readobj/llvm-readobj.cpp
    M llvm/tools/verify-uselistorder/verify-uselistorder.cpp
    M llvm/unittests/CMakeLists.txt
    M llvm/unittests/CodeGen/GlobalISel/GISelMITest.h
    M llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
    A llvm/unittests/CodeGenData/CMakeLists.txt
    A llvm/unittests/CodeGenData/OutlinedHashTreeRecordTest.cpp
    A llvm/unittests/CodeGenData/OutlinedHashTreeTest.cpp
    M llvm/unittests/DebugInfo/BTF/BTFParserTest.cpp
    M llvm/unittests/DebugInfo/DWARF/DWARFExpressionCopyBytesTest.cpp
    M llvm/unittests/IR/MetadataTest.cpp
    M llvm/unittests/IR/VFABIDemanglerTest.cpp
    M llvm/unittests/Linker/LinkModulesTest.cpp
    M llvm/unittests/MC/AMDGPU/CMakeLists.txt
    A llvm/unittests/MC/AMDGPU/Disassembler.cpp
    M llvm/unittests/MC/DwarfLineTableHeaders.cpp
    M llvm/unittests/MIR/MachineMetadata.cpp
    M llvm/unittests/Target/X86/MachineSizeOptsTest.cpp
    M llvm/unittests/TargetParser/TargetParserTest.cpp
    M llvm/unittests/Transforms/Utils/SizeOptsTest.cpp
    M llvm/utils/TableGen/CompressInstEmitter.cpp
    M llvm/utils/TableGen/X86DisassemblerTables.cpp
    M llvm/utils/gn/secondary/libcxx/src/BUILD.gn
    A llvm/utils/gn/secondary/llvm/lib/CodeGenData/BUILD.gn
    M llvm/utils/gn/secondary/llvm/lib/Target/X86/BUILD.gn
    M llvm/utils/gn/secondary/llvm/unittests/BUILD.gn
    A llvm/utils/gn/secondary/llvm/unittests/CodeGenData/BUILD.gn
    M llvm/utils/gn/secondary/llvm/unittests/MC/AMDGPU/BUILD.gn
    M mlir/docs/DialectConversion.md
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOpsInterfaces.td
    M mlir/include/mlir/IR/DialectImplementation.h
    M mlir/include/mlir/Transforms/DialectConversion.h
    M mlir/lib/Analysis/Presburger/Utils.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseVectorization.cpp
    M mlir/test/Conversion/OpenMPToLLVM/convert-to-llvmir.mlir
    M mlir/test/Dialect/Linalg/invalid.mlir
    M mlir/test/Dialect/OpenMP/invalid.mlir
    M mlir/test/Dialect/OpenMP/ops.mlir
    M mlir/test/IR/parser.mlir
    A mlir/test/IR/parser_dialect_loading.mlir
    M mlir/test/Target/LLVMIR/openmp-llvm.mlir
    M mlir/test/lib/Dialect/Test/TestAttrDefs.td
    M mlir/test/lib/Dialect/Test/TestOps.td
    M mlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp
    M mlir/tools/mlir-tblgen/AttrOrTypeFormatGen.cpp
    M openmp/runtime/src/CMakeLists.txt
    M runtimes/CMakeLists.txt
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/math/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/utils/MPFRWrapper/BUILD.bazel
    M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel

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

Created using spr 1.3.5-bogner

[skip ci]


Compare: https://github.com/llvm/llvm-project/compare/2580b0fded8c...15d05eaa53ab

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