[all-commits] [llvm/llvm-project] c736ca: [clang-tidy] Ensure functions are anchored in the ...

Paul Kirth via All-commits all-commits at lists.llvm.org
Fri Jul 19 10:04:53 PDT 2024


  Branch: refs/heads/users/ilovepi/spr/libc-make-stdunique_lock-available-with-_libcpp_has_no_threads
  Home:   https://github.com/llvm/llvm-project
  Commit: c736ca85c38ce9c30a2286382d8023604f34f9e8
      https://github.com/llvm/llvm-project/commit/c736ca85c38ce9c30a2286382d8023604f34f9e8
  Author: matthew-f <551862+matthew-f at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp

  Log Message:
  -----------
  [clang-tidy] Ensure functions are anchored in the global namespace (#99084)

The regular expressions match functions that aren't anchored in the
global namespace. For example `::connect` matches `QObject::connect`
This change is to remove these false positives


  Commit: 86ef699060394c82dcda7e86ff70d8cabeabcc2a
      https://github.com/llvm/llvm-project/commit/86ef699060394c82dcda7e86ff70d8cabeabcc2a
  Author: Jason Molenda <jmolenda at apple.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M lldb/source/Core/DynamicLoader.cpp
    M lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
    M lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h
    M lldb/source/Target/Process.cpp

  Log Message:
  -----------
  [lldb] progressive progress reporting for darwin kernel/firmware (#98845)

When doing firmware/kernel debugging, it is frequent that binaries and
debug info need to be retrieved / downloaded, and the lack of progress
reports made for a poor experience, with lldb seemingly hung while
downloading things over the network. This PR adds progress reports to
the critical sites for these use cases.


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

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

  Log Message:
  -----------
  [lld-macho][test] Require "shell" feature for usage of `ln -s` (#99355)

The use of `ln -s` is not guaranteed to be supported on Windows.


  Commit: 6867e49fc80c8468f9a5a8376ce7d3b89fd4fb51
      https://github.com/llvm/llvm-project/commit/6867e49fc80c8468f9a5a8376ce7d3b89fd4fb51
  Author: Angel Zhang <angel.zhang at amd.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M mlir/include/mlir/Conversion/Passes.td
    M mlir/include/mlir/Dialect/SPIRV/Transforms/SPIRVConversion.h
    M mlir/lib/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.cpp
    M mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp
    M mlir/test/Conversion/ConvertToSPIRV/arith.mlir
    M mlir/test/Conversion/ConvertToSPIRV/combined.mlir
    A mlir/test/Conversion/ConvertToSPIRV/func-signature-vector-unroll.mlir
    M mlir/test/Conversion/ConvertToSPIRV/index.mlir
    M mlir/test/Conversion/ConvertToSPIRV/scf.mlir
    M mlir/test/Conversion/ConvertToSPIRV/simple.mlir
    M mlir/test/Conversion/ConvertToSPIRV/ub.mlir
    M mlir/test/Conversion/ConvertToSPIRV/vector.mlir
    M mlir/test/lib/Conversion/CMakeLists.txt
    A mlir/test/lib/Conversion/ConvertToSPIRV/CMakeLists.txt
    A mlir/test/lib/Conversion/ConvertToSPIRV/TestSPIRVFuncSignatureConversion.cpp
    M mlir/tools/mlir-opt/CMakeLists.txt
    M mlir/tools/mlir-opt/mlir-opt.cpp
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
    M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel

  Log Message:
  -----------
  [mlir][spirv] Implement vector type legalization for function signatures (#98337)

### Description
This PR implements a minimal version of function signature conversion to
unroll vectors into 1D and with a size supported by SPIR-V (2, 3 or 4
depending on the original dimension). This PR also includes new unit
tests that only check for function signature conversion.

### Future Plans
- Check for capabilities that support vectors of size 8 or 16.
- Set up `OneToNTypeConversion` and `DialectConversion` to replace the
current implementation that uses `GreedyPatternRewriteDriver`.
- Introduce other vector unrolling patterns to cancel out the
`vector.insert_strided_slice` and `vector.extract_strided_slice` ops and
fully legalize the vector types in the function body.
- Handle `func::CallOp` and declarations.
- Restructure the code in `SPIRVConversion.cpp`.
- Create test passes for testing sets of patterns in isolation.
- Optimize the way original shape is splitted into target shapes, e.g.
`vector<5xi32>` can be splitted into `vector<4xi32>` and
`vector<1xi32>`.

---------

Co-authored-by: Jakub Kuderski <kubakuderski at gmail.com>


  Commit: d748dab6010dfd4ddf63cd59c0a89487824aa038
      https://github.com/llvm/llvm-project/commit/d748dab6010dfd4ddf63cd59c0a89487824aa038
  Author: Keith Smiley <keithbsmiley at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [bazel] Port #98653 (#99356)


  Commit: 963e25ae60f43ea77b686bd506171ee7482f044a
      https://github.com/llvm/llvm-project/commit/963e25ae60f43ea77b686bd506171ee7482f044a
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libcxx/include/__type_traits/add_pointer.h

  Log Message:
  -----------
  [libc++][NFC] Remove a few unused includes (#98808)


  Commit: 81955da03bd4731b668fee401b3d6aca8b7d4da6
      https://github.com/llvm/llvm-project/commit/81955da03bd4731b668fee401b3d6aca8b7d4da6
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libcxx/CMakeLists.txt
    M libcxx/benchmarks/CMakeLists.txt
    M libcxx/benchmarks/lit.cfg.py
    M libcxx/docs/BuildingLibcxx.rst
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/TestingLibcxx.rst

  Log Message:
  -----------
  [libc++] Remove special handling of the native C++ library in benchmarks (#98529)

There were some ad-hoc settings that allowed running the benchmarks
against the native C++ Standard Library. While this ability is very
useful, it was done before the test suite was quite independent of
libc++ itself. Instead, it is better to streamline running the
benchmarks on the native standard library by using a custom Lit
configuration like we do with the test suite.

A follow-up patch will rework the integration of benchmarks with the Lit
configuration used for the test suite so that we can reuse the same
mechanism for both, making it easy to benchmark the native standard
library.

It will also make benchmarks way more user-friendly to run since we will
be able to run them like we run individual tests, which is a pain point
right now.


  Commit: 18cdfa72e046a40deeee4372ee98602fd1a65a94
      https://github.com/llvm/llvm-project/commit/18cdfa72e046a40deeee4372ee98602fd1a65a94
  Author: Lei Wang <wlei at fb.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/include/llvm/ProfileData/SampleProf.h
    M llvm/include/llvm/Transforms/IPO/SampleProfileMatcher.h
    M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
    M llvm/lib/ProfileData/SampleProf.cpp
    M llvm/lib/Transforms/IPO/SampleProfile.cpp
    M llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
    M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
    A llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-stale-profile-renaming-recursive.prof
    A llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-stale-profile-renaming.prof
    M llvm/test/Transforms/SampleProfile/non-probe-stale-profile-matching.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-matching-LCS.ll
    A llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-renaming-recursive.ll
    A llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-renaming.ll

  Log Message:
  -----------
  [SampleFDO] Stale profile call-graph matching (#95135)

Profile staleness could be due to function renaming. Given that sample
profile loader relies on exact string matching, a trivial change in the
function signature( such as `int foo()` --> `long foo()` ) can make the
mangled name different, the function profile(including all nested
children profile) becomes unavailable.

This patch introduces stale profile call-graph level matching, targeting
at identifying the trivial function renaming and reusing the old
function profile.

Some noteworthy details:

1. Extend the LCS based CFG level matching to identify new function. 
- Extend to match function and profile have different name instead of
the exact function name matching. This leverages LCS, i.e during the
finding of callsite anchor matching, when two function name are
different, try matching the functions instead of return.
- In LCS, the equal function check is replaced by
`functionMatchesProfile`.
- Only try matching functions that are new functions(neither appears on
each side). This reduces the matching scope as we don't need to match
the originally matched function.
2.  Determine the matching by call-site anchor similarity check.
- A new function `functionMatchesProfile(IRFunc, ProfFunc)` is used to
check the renaming for the possible <IRFunc, ProfFunc> pair, use the
LCS(diff) matching to compute the equal set and we define: `Similarity =
|equalSet * 2| / (|A| + |B|)`. The profile name is marked as renamed if
the similarity is above a
threshold(`-func-profile-similarity-threshold`)

3.  Process the matching in top-down function order 
- when a caller's is done matching, the new function names are saved for
later use, using top-down order will maximize the reused results.
- `ProfileNameToFuncMap` is used to save or cache the matching result.
4. Update the original profile at the end using `ProfileNameToFuncMap`.

5. Added a new switch --salvage-unused-profile to control this, default
is false.

Verified on one Meta's internal big service, confirmed 90%+ of the found
renaming pair is good. (There could be incorrect renaming pair if the
num of the anchor is small, but checked that those functions are simple
cold function)


  Commit: 0bb68b55715487447ffceaa1ab59f7a0bc8c7979
      https://github.com/llvm/llvm-project/commit/0bb68b55715487447ffceaa1ab59f7a0bc8c7979
  Author: Doug Wyatt <doug at sonosphere.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/include/clang/AST/ASTContext.h
    M clang/include/clang/AST/Type.h
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/Type.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaOverload.cpp

  Log Message:
  -----------
  Performance optimizations for function effects (nonblocking attribute etc.) (#96844)

- Put new FunctionProtoType trailing objects last.
- Inline FunctionEffectsRef::get()
- Manually inline FunctionEffectsRef::Profile().

---------

Co-authored-by: Doug Wyatt <dwyatt at apple.com>


  Commit: 0778f5c1f11da599b71d6c9f5990fd880ff7cb46
      https://github.com/llvm/llvm-project/commit/0778f5c1f11da599b71d6c9f5990fd880ff7cb46
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M lld/ELF/LinkerScript.h
    M lld/ELF/Relocations.cpp
    M lld/ELF/Relocations.h
    M lld/ELF/ScriptParser.cpp
    M lld/ELF/Writer.cpp
    M lld/docs/ReleaseNotes.rst
    A lld/test/ELF/linkerscript/nocrossrefs.test

  Log Message:
  -----------
  [ELF] Support NOCROSSREFS and NOCROSSERFS_TO

Implement the two commands described by
https://sourceware.org/binutils/docs/ld/Miscellaneous-Commands.html

After `outputSections` is available, check each output section described
by at least one `NOCROSSREFS`/`NOCROSSERFS_TO` command. For each checked
output section, scan relocations from its input sections.
This step is slow, therefore utilize `parallelForEach(isd->sections, ...)`.

To support non SHF_ALLOC sections, `InputSectionBase::relocations`
(empty) cannot be used. In addition, we may explore eliminating this
member to speed up relocation scanning.

Some parse code is adapted from #95714.

Close #41825

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


  Commit: 93d38d7f08864397f1e751c8cecde5ea302ecced
      https://github.com/llvm/llvm-project/commit/93d38d7f08864397f1e751c8cecde5ea302ecced
  Author: Leandro Lupori <leandro.lupori at linaro.org>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/unique_ptr/main.cpp

  Log Message:
  -----------
  [lldb][test] Fix simulator test for std::unique_ptr (#99357)

libcxx-simulators/unique_ptr/main.cpp uses __builtin_printf, that
maps to printf on Windows. Include stdio.h to avoid linker errors
on Windows.
See https://lab.llvm.org/buildbot/#/builders/141/builds/853


  Commit: 858147d0b88b50f6829834a059d95924ea8e5d4d
      https://github.com/llvm/llvm-project/commit/858147d0b88b50f6829834a059d95924ea8e5d4d
  Author: Petr Hosek <phosek at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/cmake/caches/Fuchsia-stage2.cmake

  Log Message:
  -----------
  [CMake][Fuchsia] Include new/delete in baremetal targets (#99279)

These don't include libcxxabi yet so we need new/delete in libcxx.


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

  Changed paths:
    M llvm/lib/Target/ARC/ARCISelLowering.cpp
    M llvm/lib/Target/CSKY/CSKYISelLowering.cpp

  Log Message:
  -----------
  [ARC,CSKY] Update getMemcpy after #98969


  Commit: 321a0c00425adeab84bce657cac85ae4634df910
      https://github.com/llvm/llvm-project/commit/321a0c00425adeab84bce657cac85ae4634df910
  Author: Zahira Ammarguellat <zahira.ammarguellat at intel.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/include/clang/AST/Expr.h
    M clang/include/clang/AST/Stmt.h
    M clang/lib/CodeGen/CGExprComplex.cpp
    M clang/test/CodeGen/pragma-cx-limited-range.c

  Log Message:
  -----------
  The pragma STDC CX_LIMITED_RANGE ON should have precedence. (#98520)

The `pragma STDC CX_LIMITED_RANGE` should have precedence over the
command line `-fcomplex-arithmetic`.


  Commit: ddbf5ea6d48d3fbf5300309ca009f9e4e67fb58a
      https://github.com/llvm/llvm-project/commit/ddbf5ea6d48d3fbf5300309ca009f9e4e67fb58a
  Author: vporpo <vporpodas at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [SandboxIR][NFC] Add some comments (#99359)


  Commit: 093f0a4770ec9bde9f7a21cfe9c5ec5b20a923a8
      https://github.com/llvm/llvm-project/commit/093f0a4770ec9bde9f7a21cfe9c5ec5b20a923a8
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/test/Transforms/InstCombine/vector-logical-reductions.ll

  Log Message:
  -----------
  [instcombine] Improve coverage for reductions of i1 types

In advance of an upcoming change to generalize some of this to scalable
vector types.


  Commit: ead486ca61ab06d46aa4b30c91d1f40e5e5e43e5
      https://github.com/llvm/llvm-project/commit/ead486ca61ab06d46aa4b30c91d1f40e5e5e43e5
  Author: Saiyedul Islam <Saiyedul.Islam at amd.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp

  Log Message:
  -----------
  [ClangLinkerWrapper] Fix intermediate file naming for multi-arch compilation (#99325)

When save-temps is enabled and the given offload-archs differ
only in target features with the same arch, the intermediate
postlink.bc and postopt.bc files were getting overwritten. This
fix, suffixes the intermediate file names with the complete
TargetID.

E.g. `helloworld.amdgcn-amd-amdhsa.gfx90a:xnack+.postlink.bc`
and `helloworld.amdgcn-amd-amdhsa.gfx90a:xnack+.postopt.bc`


  Commit: 130ef7375493b560df08546666338233bacf95e5
      https://github.com/llvm/llvm-project/commit/130ef7375493b560df08546666338233bacf95e5
  Author: Petr Hosek <phosek at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/cmake/caches/Fuchsia-stage2.cmake

  Log Message:
  -----------
  [CMake][Fuchsia] Install libc++ for baremetal targets (#99372)

We already build the library and want to install it also.


  Commit: 194f98c2210bf40d0490613fddbf83e04c18ad9b
      https://github.com/llvm/llvm-project/commit/194f98c2210bf40d0490613fddbf83e04c18ad9b
  Author: Xing Xue <xingxue at outlook.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libcxx/cmake/caches/AIX.cmake
    M libcxx/cmake/caches/s390x-ibm-zos-ascii.cmake
    M libcxx/cmake/caches/s390x-ibm-zos.cmake
    M libcxx/include/__configuration/abi.h
    M libcxx/include/ios
    A libcxx/test/std/input.output/iostream.format/std.manip/setfill_wchar_max.pass.cpp

  Log Message:
  -----------
  [libc++] basic_ios<wchar_t> cannot store fill character WCHAR_MAX (#89305)

`libcxx std::basic_ios` uses `WEOF` to indicate the `fill` value is
uninitialized. On some platforms (e.g AIX and zOS in 64-bit mode)
`wchar_t` is 4 bytes `unsigned` and `wint_t` is also 4 bytes which means
`WEOF` cannot be distinguished from `WCHAR_MAX` by
`std::char_traits<wchar_t>::eq_int_type()`, meaning this valid character
value cannot be stored on affected platforms (as the implementation
triggers reinitialization to `widen(’ ’)`).

This patch introduces a new helper class `_FillHelper` uses a boolean
variable to indicate whether the fill character has been initialized,
which is used by default in libcxx ABI version 2. The patch does not
affect ABI version 1 except for targets AIX in 32- and 64-bit and z/OS
in 64-bit (so that the layout of the implementation is compatible with
the current IBM system provided libc++)

This is a continuation of Phabricator patch
[D124555](https://reviews.llvm.org/D124555). This patch uses a modified
version of the [approach](https://reviews.llvm.org/D124555#3566746)
suggested by @ldionne .

---------

Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
Co-authored-by: David Tenty <daltenty.dev at gmail.com>


  Commit: da5264efa3ae50d61a4fc584f8c4f60a51539a96
      https://github.com/llvm/llvm-project/commit/da5264efa3ae50d61a4fc584f8c4f60a51539a96
  Author: Angel Zhang <angel.zhang at amd.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M utils/bazel/README.md

  Log Message:
  -----------
  [bazel][docs] Update build documentation (#99339)

This PR updates the Quick Start section to provide more detailed build
instructions.


  Commit: 21e6777957457451196084cd48ebc42bce9619f0
      https://github.com/llvm/llvm-project/commit/21e6777957457451196084cd48ebc42bce9619f0
  Author: Jordan Rupprecht <rupprecht at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M mlir/include/mlir/CAPI/Rewrite.h

  Log Message:
  -----------
  [mlir][NFC] Add rewrite header to fix standalone header compile (#99370)

This uses `MlirRewriterBase` from from `mlir-c/Rewrite.h` without
including it.


  Commit: ff0821583eab1651ff126bbf4f881e6163b67435
      https://github.com/llvm/llvm-project/commit/ff0821583eab1651ff126bbf4f881e6163b67435
  Author: Thurston Dang <thurston at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    A llvm/test/Instrumentation/MemorySanitizer/AArch64/neon_vst.ll

  Log Message:
  -----------
  [msan] Precommit MSan Arm NEON vst tests (#98247)

These tests show that MSan currently does not handle vst (or vld)
correctly.


  Commit: 51122fb4469b56b207bcae0c39182f961e4276fd
      https://github.com/llvm/llvm-project/commit/51122fb4469b56b207bcae0c39182f961e4276fd
  Author: Vladislav Khmelevsky <och95 at yandex.ru>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M bolt/lib/Rewrite/RewriteInstance.cpp

  Log Message:
  -----------
  [BOLT][NFC] Fix build (#99361)

On clang 14 the build is failing with:
reference to local binding 'ParentName' declared in enclosing function
'llvm::bolt::RewriteInstance::registerFragments'


  Commit: a51f343b433120e45f186e5507e8a522d4d7192f
      https://github.com/llvm/llvm-project/commit/a51f343b433120e45f186e5507e8a522d4d7192f
  Author: AtariDreams <gfunni234 at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-udiv.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-udiv.mir
    A llvm/test/CodeGen/X86/udiv-exact.ll

  Log Message:
  -----------
  [CodeGen] Emit more efficient magic numbers for exact udivs (#87161)

Have simpler lowering for exact udivs in both SelectionDAG and
GlobalISel.

The algorithm is the same between unsigned exact divs and signed divs
save for arithmetic vs logical shift for even divisors, according to
Hacker's Delight, 2nd Edition, page 242.


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

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/ctlz-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/cttz-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctlz.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-cttz.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-rotate.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vrol.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vror.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwadd.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwmul.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsll.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsub.ll
    M llvm/test/CodeGen/RISCV/rvv/vrol-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vror-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vwadd-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vwsll-sdnode.ll

  Log Message:
  -----------
  [RISCV] Teach fillUpExtensionSupportForSplat to handle nxvXi64 VMV_V_X_VL on RV32. (#99251)

A nxvXi64 VMV_V_X_VL on RV32 sign extends its 32 bit input to 64 bits.
If that input is positive, the sign extend can also be considered as a
zero extend.


  Commit: b5e4d323badbd24324bfab4366b670977b16df07
      https://github.com/llvm/llvm-project/commit/b5e4d323badbd24324bfab4366b670977b16df07
  Author: Jordan Rupprecht <rupprecht at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [bazel][mlir] Add MathToROCDL to fix layering check (#99377)


  Commit: 8044a863518166db1a1e05df5c76e26d53dbbcb9
      https://github.com/llvm/llvm-project/commit/8044a863518166db1a1e05df5c76e26d53dbbcb9
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M compiler-rt/www/index.html

  Log Message:
  -----------
  [compiler-rt][www] Update standalone build instruction (#98707)

Follow up to #71500


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

  Changed paths:
    M llvm/lib/CodeGen/MachineSink.cpp
    A llvm/test/CodeGen/RISCV/sink-and-fold-crash.mir

  Log Message:
  -----------
  [MachineSink][RISCV] Only call isConstantPhysReg or isIgnorableUse for uses. (#99363)

The included test case contains X0 as a def register. X0 is considered a
constant register when it is a use. When its a def, it means to throw
away the result value.

If we treat it as a constant register here, we will execute the continue
and not assign `DefReg` to any register. This will cause a crash when
trying to get the register class for `DefReg` after the loop.

By only checking isConstantPhysReg for uses, we will reach the `return
false` a little further down and stop processing this instruction.


  Commit: 63fae3ed656241a1d6a19c3e773ecc9bfff3e182
      https://github.com/llvm/llvm-project/commit/63fae3ed656241a1d6a19c3e773ecc9bfff3e182
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
    M llvm/lib/Target/AMDGPU/GCNILPSched.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCCodeEmitter.cpp
    M llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp
    M llvm/lib/Target/AMDGPU/R600ISelDAGToDAG.cpp
    M llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
    M llvm/lib/Target/AMDGPU/R600InstrInfo.cpp
    M llvm/lib/Target/AMDGPU/R600MachineCFGStructurizer.cpp
    M llvm/lib/Target/AMDGPU/R600MachineScheduler.cpp
    M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
    M llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
    M llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp
    M llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp

  Log Message:
  -----------
  [AMDGPU] clang-tidy: no else after return etc. NFC. (#99298)


  Commit: 2bb65660ae8b9b2e1896b07b881505a4ffc0393b
      https://github.com/llvm/llvm-project/commit/2bb65660ae8b9b2e1896b07b881505a4ffc0393b
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/X86/interleave-cost.ll

  Log Message:
  -----------
  [LV] Allow re-processing of operands of instrs feeding interleave group

Follow up to d216615518 to update dead interleave group pointer detection
to allow re-processing of operands of instructions determined to only feed
interleave groups.

This is needed because instructions feeding interleave group pointers
can become dead in any order, as per the newly added test case.


  Commit: a742693f6104055ec026852a70a68275fb82f7a0
      https://github.com/llvm/llvm-project/commit/a742693f6104055ec026852a70a68275fb82f7a0
  Author: Mircea Trofin <mtrofin at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/unittests/ProfileData/PGOCtxProfReaderWriterTest.cpp

  Log Message:
  -----------
  [ctx_prof] Add missing test for `PGOContextualProfile::getContainedGuids`


  Commit: 33cb29cc3e38990173688aee353d6cbeeb187728
      https://github.com/llvm/llvm-project/commit/33cb29cc3e38990173688aee353d6cbeeb187728
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M flang/include/flang/Semantics/tools.h
    M flang/lib/Lower/ConvertVariable.cpp
    M flang/lib/Optimizer/Dialect/CUF/CUFOps.cpp
    M flang/test/Fir/cuf-invalid.fir
    M flang/test/Lower/CUDA/cuda-allocatable.cuf

  Log Message:
  -----------
  [flang][cuda] Use cuf.alloc/cuf.free for local descriptor  (#98518)

Local descriptor for cuda allocatable need to be handled on host and
device. One solution is to duplicate the descriptor (one on the host and
one on the device) and keep them in sync or have the descriptor in
managed/unified memory so we don't to take care of any sync.
The second solution is probably the one we will implement. In order to
have more flexibility on how descriptor representing cuda allocatable
are allocated, this patch updates the lowering to use the cuf operations
alloc and free to managed them.


  Commit: fffe2728534a238ff0024e11a18280f85094dcde
      https://github.com/llvm/llvm-project/commit/fffe2728534a238ff0024e11a18280f85094dcde
  Author: Teresa Johnson <tejohnson at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [ADT] Make set_subtract more efficient when subtrahend is larger (NFC) (#98702)

If the subtrahend is larger, iterate the minuend set instead.

Noticed when subtracting a large set from a number of other smaller
sets for an upcoming MemProf change, this change makes that much faster.

I subsequently found a couple of callsites in one file that were calling
set_subtract with a vector subtrahend, which doesn't have the "count()"
interface. Add a separate helper for subtracting a vector.


  Commit: 306196349f7e7a92156ca733f876d503049696e7
      https://github.com/llvm/llvm-project/commit/306196349f7e7a92156ca733f876d503049696e7
  Author: Teresa Johnson <tejohnson at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  Revert "[ADT] Make set_subtract more efficient when subtrahend is larger (NFC)" (#99386)

Reverts llvm/llvm-project#98702

This broke some mlir code and needs investigation.


  Commit: 1ecffdaf27cb456aecc5a1c0272d3994d26bf645
      https://github.com/llvm/llvm-project/commit/1ecffdaf27cb456aecc5a1c0272d3994d26bf645
  Author: jameshu15869 <55058507+jameshu15869 at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/benchmarks/gpu/CMakeLists.txt
    M libc/cmake/modules/LLVMLibCTestRules.cmake
    M libc/utils/gpu/loader/Loader.h
    M libc/utils/gpu/loader/Main.cpp
    M libc/utils/gpu/loader/amdgpu/Loader.cpp
    M libc/utils/gpu/loader/nvptx/Loader.cpp

  Log Message:
  -----------
  [libc] Add Kernel Resource Usage to nvptx-loader (#97503)

This PR allows `nvptx-loader` to read the resource usage of `_start`,
`_begin`, and `_end` when executing CUDA binaries.

Example output:
```
$ nvptx-loader --print-resource-usage libc/benchmarks/gpu/src/ctype/libc.benchmarks.gpu.src.ctype.isalnum_benchmark.__build__
[ RUN      ] LlvmLibcIsAlNumGpuBenchmark.IsAlnumWrapper
[       OK ] LlvmLibcIsAlNumGpuBenchmark.IsAlnumWrapper: 93 cycles, 76 min, 470 max, 23 iterations, 78000 ns, 80 stddev
_begin registers: 25
_start registers: 80
_end registers: 62
  ```

---------

Co-authored-by: Joseph Huber <huberjn at outlook.com>


  Commit: 82b800ecb35fb46881aa52000fa40b1b99aa654e
      https://github.com/llvm/llvm-project/commit/82b800ecb35fb46881aa52000fa40b1b99aa654e
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [SLP][NFC]Limit number of the external uses analysis, NFC.

BoUpSLP::buildExternalUses runs through all the users of the vectorized
scalars, which may require significant amount of time, if there are too
many users. Limited the analysis, if there are too many users, all of
them are replaced, not individually.


  Commit: 10b4834b76e0473eee3eb70490dd39366589534d
      https://github.com/llvm/llvm-project/commit/10b4834b76e0473eee3eb70490dd39366589534d
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/utils/gpu/loader/amdgpu/Loader.cpp

  Log Message:
  -----------
  [libc] Fix wrong printf usage in AMDGPU loader


  Commit: f6add66b720f85bf1092af7d6702b7397da57349
      https://github.com/llvm/llvm-project/commit/f6add66b720f85bf1092af7d6702b7397da57349
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/test/Transforms/InstCombine/vector-logical-reductions.ll

  Log Message:
  -----------
  [instcombine] Extend logical reduction canonicalization to scalable vectors (#99366)

These transformations do not depend on the type being fixed in size, so
enable them for scalable vectors too. Unlike for fixed vectors, these
are only a canonicalization - the bitcast lowering for and/or/add is not
legal on a scalable vector type.


  Commit: d08527ee3ee2dc1e90d2afcc6e5982d0997dad20
      https://github.com/llvm/llvm-project/commit/d08527ee3ee2dc1e90d2afcc6e5982d0997dad20
  Author: Joshua Baehring <98630690+JoshuaMBa at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/string_utils.h
    M compiler-rt/lib/scudo/standalone/tests/vector_test.cpp
    M compiler-rt/lib/scudo/standalone/vector.h

  Log Message:
  -----------
  [scudo] Add static vector functionality. (#98986)

The scudo vector implementation maintains static local data before 
switching to dynamically allocated data as the array size grows.
Users of the vector must now specify the size of the static local data 
through the vector template (the default size has been removed). 
If 0 is specified for the size of the static local data, an assertion
will
be triggered.


  Commit: 07f8a65d09608d67bfd6adbd62bb0999c7363456
      https://github.com/llvm/llvm-project/commit/07f8a65d09608d67bfd6adbd62bb0999c7363456
  Author: Oliver Hunt <oliver at apple.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/lib/CodeGen/CGDeclCXX.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/lib/CodeGen/ItaniumCXXABI.cpp
    A clang/test/CodeGenCXX/ptrauth-static-destructors.cpp
    A clang/test/CodeGenCXX/ptrauth-throw.cpp

  Log Message:
  -----------
  [clang] Ensure pointers passed to runtime support functions are correctly signed (#98276)

Updates codegen for global destructors and raising exceptions to ensure
that the function pointers being passed are signed using the correct
schema.

Notably this requires that CodeGenFunction::createAtExitStub to return
an opaque Constant* rather than a Function* as the value being emitted
is no longer necessarily a raw function pointer depending on the
configured ABI.

Co-Authored-By: Akira Hatanaka <ahatanaka at apple.com>
Co-Authored-By: John McCall <rjmccall at apple.com>


  Commit: 7647174738bf1b8e58c854c488183a849403d5db
      https://github.com/llvm/llvm-project/commit/7647174738bf1b8e58c854c488183a849403d5db
  Author: David Truby <david.truby at arm.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M flang/test/Driver/linker-flags.f90

  Log Message:
  -----------
  [flang] Add -rtlib flag (#99058)

This patch allows the -rtlib flag with flang-new to select between the
libgcc_s and compiler-rt runtimes. The behaviour is identical to the
same flag with clang.


  Commit: 83251a22f623df8d27b6184d19b24c18d314f2bd
      https://github.com/llvm/llvm-project/commit/83251a22f623df8d27b6184d19b24c18d314f2bd
  Author: Scallop Ye <yescallop at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M compiler-rt/lib/fuzzer/FuzzerFork.cpp

  Log Message:
  -----------
  [libFuzzer] Fix incorrect coverage number in fork mode (#82335)

Closes #82307.

I built LLVM with the changes and tested fuzzing in fork mode. The
coverage number was correct:
```
[ye at ye-arch ~]$ /home/ye/work/llvm-project/build/bin/clang++ -fsanitize=fuzzer test_fuzzer.cc
[ye at ye-arch ~]$ ./a.out corpus -fork=4
INFO: Running with entropic power schedule (0xFF, 100).
INFO: Seed: 3152497917
INFO: Loaded 1 modules   (40 inline 8-bit counters): 40 [0x5aa6f7b310d0, 0x5aa6f7b310f8), 
INFO: Loaded 1 PC tables (40 PCs): 40 [0x5aa6f7b310f8,0x5aa6f7b31378), 
INFO: -fork=4: fuzzing in separate process(s)
INFO: -fork=4: 56 seed inputs, starting to fuzz in /tmp/libFuzzerTemp.FuzzWithFork54465.dir
#600649: cov: 36 ft: 224 corp: 56 exec/s: 300324 oom/timeout/crash: 0/0/0 time: 2s job: 1 dft_time: 0
#1548208: cov: 36 ft: 224 corp: 56 exec/s: 315853 oom/timeout/crash: 0/0/0 time: 3s job: 2 dft_time: 0
#2465991: cov: 36 ft: 224 corp: 56 exec/s: 229445 oom/timeout/crash: 0/0/0 time: 4s job: 3 dft_time: 0
#3887877: cov: 36 ft: 224 corp: 56 exec/s: 284377 oom/timeout/crash: 0/0/0 time: 5s job: 4 dft_time: 0
```


  Commit: 884772fdd6213c1bc16316b1e57fe08d85bdbc2d
      https://github.com/llvm/llvm-project/commit/884772fdd6213c1bc16316b1e57fe08d85bdbc2d
  Author: Akira Hatanaka <ahatanak at gmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/SemaDecl.cpp
    M clang/test/Sema/attr-weak.c
    M clang/test/SemaCXX/attr-weak.cpp

  Log Message:
  -----------
  [Sema] Don't drop weak_import from a declaration if its definition isn't seen (#85886)

I believe this is what the original commit (33e022650adee965c65f9aea086ee74f3fd1bad5) was trying to do.

This fixes a bug where clang removes the attribute from a declaration that follows a declaration directly contained in a linkage-specification.

rdar://61865848


  Commit: 83fbd79319a4d997520c85ab41997692a58cd958
      https://github.com/llvm/llvm-project/commit/83fbd79319a4d997520c85ab41997692a58cd958
  Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/CMakeLists.txt
    M libc/cmake/modules/LLVMLibCHeaderRules.cmake
    M libc/include/CMakeLists.txt
    M libc/newhdrgen/class_implementation/classes/function.py
    M libc/newhdrgen/header.py

  Log Message:
  -----------
  [libc] newheadergen: configured cmake (#98828)

- all headers in the build system are generated by newheadergen
- tested on gpu-build

---------

Co-authored-by: Rose Zhang <rosezhang at google.com>


  Commit: 9ce5b38dc32a5f023e9824afe246978130b9080e
      https://github.com/llvm/llvm-project/commit/9ce5b38dc32a5f023e9824afe246978130b9080e
  Author: RoseZhang03 <rosezhang at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/config/linux/x86_64/headers.txt
    A libc/newhdrgen/yaml/arpa/arpa_inet.yaml
    R libc/newhdrgen/yaml/arpa_inet.yaml
    M libc/newhdrgen/yaml/assert.yaml
    A libc/newhdrgen/yaml/gpu/gpu_rpc.yaml
    M libc/newhdrgen/yaml/math.yaml
    M libc/newhdrgen/yaml/pthread.yaml
    R libc/newhdrgen/yaml/rpc.yaml
    M libc/newhdrgen/yaml/search.yaml
    M libc/newhdrgen/yaml/sys/sys_time.yaml
    M libc/newhdrgen/yaml/wchar.yaml

  Log Message:
  -----------
  [libc] final edits to newheadergen yaml files (#98983)

- final run of integration tests to deal with incorrect YAML input
(finished sys headers, will finish the rest today)
- add any new functions made in recent PRs


  Commit: e0f3484874964ed749355d5a652e876efe3a05de
      https://github.com/llvm/llvm-project/commit/e0f3484874964ed749355d5a652e876efe3a05de
  Author: Jason Molenda <jmolenda at apple.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M .git-blame-ignore-revs

  Log Message:
  -----------
  [lldb][nfc] add an nfc entry to the .git-blame-ignore-revs.


  Commit: 90cbb1ec4ff9c687f7ebca505845388655ed5582
      https://github.com/llvm/llvm-project/commit/90cbb1ec4ff9c687f7ebca505845388655ed5582
  Author: Michael Jones <michaelrj at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/config/linux/x86_64/headers.txt

  Log Message:
  -----------
  [libc] Temporarily disable statvfs header (#99405)

The statfvs header was not generating for a while. Patch #98983 added it
to the list of headers, but it's apparently broken right now so this
patch comments it out until it can be fixed.


  Commit: ad023a844ab19f37ea0abd2130ec81ea2663937b
      https://github.com/llvm/llvm-project/commit/ad023a844ab19f37ea0abd2130ec81ea2663937b
  Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/include/CMakeLists.txt

  Log Message:
  -----------
  [libc] newheadergen: cmakelist file changes (#99404)


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

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

  Log Message:
  -----------
  [ADT] Make set_subtract more efficient when subtrahend is larger (NFC) (#99401)

This patch is based on:

  commit fffe2728534a238ff0024e11a18280f85094dcde
  Author: Teresa Johnson <tejohnson at google.com>
  Date:   Wed Jul 17 13:53:10 2024 -0700

This iteration comes with a couple of improvements:

- We now accommodate S2Ty being SmallPtrSet, which has remove_if(pred)
  but not erase(iterator).  (Lack of this code path broke the mlir
  build.)

- The code path for erase(iterator) now pre-increments the iterator to
  avoid problems with iterator invalidation.


  Commit: 21c8c22a93086794c9023bfdbf2fc8f6ff99f90e
      https://github.com/llvm/llvm-project/commit/21c8c22a93086794c9023bfdbf2fc8f6ff99f90e
  Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/newhdrgen/yaml/wchar.yaml

  Log Message:
  -----------
  [libc] newheadergen: removing extra .h (#99408)


  Commit: ab142c635e5edeb381fb3bd0222501cd2108c176
      https://github.com/llvm/llvm-project/commit/ab142c635e5edeb381fb3bd0222501cd2108c176
  Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/include/CMakeLists.txt

  Log Message:
  -----------
  [libc] newheadergen: quick fix to fuchsia build (#99410)


  Commit: d5fe73515a609639c63013478236bd81978db6b7
      https://github.com/llvm/llvm-project/commit/d5fe73515a609639c63013478236bd81978db6b7
  Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/include/CMakeLists.txt

  Log Message:
  -----------
  Revert "[libc] newheadergen: quick fix to fuchsia build" (#99412)

Reverts llvm/llvm-project#99410


  Commit: ad4da8304cd75aecbdbe6d235ec70af8fa9e7bcb
      https://github.com/llvm/llvm-project/commit/ad4da8304cd75aecbdbe6d235ec70af8fa9e7bcb
  Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/include/CMakeLists.txt

  Log Message:
  -----------
  Revert "[libc] newheadergen: cmakelist file changes" (#99413)

Reverts llvm/llvm-project#99404


  Commit: 58d4ca06bdc5e2f8f9bf8bfd22ebd0577557a4fe
      https://github.com/llvm/llvm-project/commit/58d4ca06bdc5e2f8f9bf8bfd22ebd0577557a4fe
  Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libc/CMakeLists.txt
    M libc/cmake/modules/LLVMLibCHeaderRules.cmake
    M libc/include/CMakeLists.txt
    M libc/newhdrgen/class_implementation/classes/function.py
    M libc/newhdrgen/header.py

  Log Message:
  -----------
  Revert "[libc] newheadergen: configured cmake" (#99414)

Reverts llvm/llvm-project#98828


  Commit: 4283f1ad18db9878b98f98e7a36b4f94ab674d29
      https://github.com/llvm/llvm-project/commit/4283f1ad18db9878b98f98e7a36b4f94ab674d29
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M compiler-rt/test/fuzzer/lit.cfg.py

  Log Message:
  -----------
  [NFC][fuzzer] Remove unhelpful lit notes

They are not actionable.


  Commit: 888b130bdfd98bda71e14fb10893113cbbd15733
      https://github.com/llvm/llvm-project/commit/888b130bdfd98bda71e14fb10893113cbbd15733
  Author: Sam Clegg <sbc at chromium.org>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M lld/wasm/Options.td

  Log Message:
  -----------
  [lld][WebAssembly] Consolidate --fatal-warnings and --no-fatal-warnings options. NFC (#99374)

Also document defaults for boolean options.

See https://reviews.llvm.org/D42859


  Commit: c41fa0fdd7e14019fc48bece2a2b0b00c88c8518
      https://github.com/llvm/llvm-project/commit/c41fa0fdd7e14019fc48bece2a2b0b00c88c8518
  Author: hev <wangrui at loongson.cn>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    M llvm/test/CodeGen/LoongArch/andn-icmp.ll

  Log Message:
  -----------
  [LoongArch] Remove spurious mask operations from andn->icmp on 16 and 8 bit values (#99272)


  Commit: fe6c24000f2d7316899d4ec4c12273892326ed47
      https://github.com/llvm/llvm-project/commit/fe6c24000f2d7316899d4ec4c12273892326ed47
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang-tools-extra/clangd/CMakeLists.txt
    M clang-tools-extra/clangd/ClangdLSPServer.cpp
    M clang-tools-extra/clangd/ClangdLSPServer.h
    M clang-tools-extra/clangd/ClangdServer.cpp
    M clang-tools-extra/clangd/ClangdServer.h
    M clang-tools-extra/clangd/Compiler.h
    M clang-tools-extra/clangd/GlobalCompilationDatabase.cpp
    M clang-tools-extra/clangd/GlobalCompilationDatabase.h
    A clang-tools-extra/clangd/ModulesBuilder.cpp
    A clang-tools-extra/clangd/ModulesBuilder.h
    M clang-tools-extra/clangd/ParsedAST.cpp
    M clang-tools-extra/clangd/Preamble.cpp
    M clang-tools-extra/clangd/Preamble.h
    A clang-tools-extra/clangd/ProjectModules.h
    A clang-tools-extra/clangd/ScanningProjectModules.cpp
    A clang-tools-extra/clangd/ScanningProjectModules.h
    M clang-tools-extra/clangd/test/CMakeLists.txt
    A clang-tools-extra/clangd/test/modules.test
    M clang-tools-extra/clangd/tool/Check.cpp
    M clang-tools-extra/clangd/tool/ClangdMain.cpp
    M clang-tools-extra/clangd/unittests/CMakeLists.txt
    A clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
    M clang-tools-extra/clangd/unittests/TestFS.h
    M clang-tools-extra/docs/ReleaseNotes.rst

  Log Message:
  -----------
  [clangd] [C++20] [Modules] Introduce initial support for C++20 Modules (#66462)

Alternatives to https://reviews.llvm.org/D153114.

Try to address https://github.com/clangd/clangd/issues/1293.

See the links for design ideas and the consensus so far. We want to have
some initial support in clang18.

This is the initial support for C++20 Modules in clangd.
As suggested by sammccall in https://reviews.llvm.org/D153114,
we should minimize the scope of the initial patch to make it easier
 to review and understand so that every one are in the same page:

> Don't attempt any cross-file or cross-version coordination: i.e. don't
    > try to reuse BMIs between different files, don't try to reuse BMIs
> between (preamble) reparses of the same file, don't try to persist the
> module graph. Instead, when building a preamble, synchronously scan
> for the module graph, build the required PCMs on the single preamble
> thread with filenames private to that preamble, and then proceed to
    > build the preamble.

This patch reflects the above opinions.

# Testing in real-world project

I tested this with a modularized library:
https://github.com/alibaba/async_simple/tree/CXX20Modules. This library
has 3 modules (async_simple, std and asio) and 65 module units. (Note
that a module consists of multiple module units). Both `std` module and
`asio` module have 100k+ lines of code (maybe more, I didn't count). And
async_simple itself has 8k lines of code. This is the scale of the
project.

The result shows that it works pretty well, ..., well, except I need to
wait roughly 10s after opening/editing any file. And this falls in our
expectations. We know it is hard to make it perfect in the first move.

# What this patch does in detail

- Introduced an option `--experimental-modules-support` for the support
for C++20 Modules. So that no matter how bad this is, it wouldn't affect
current users. Following off the page, we'll assume the option is
enabled.
- Introduced two classes `ModuleFilesInfo` and
`ModuleDependencyScanner`. Now `ModuleDependencyScanner` is only used by
`ModuleFilesInfo`.
- The class `ModuleFilesInfo` records the built module files for
specific single source file. The module files can only be built by the
static member function `ModuleFilesInfo::buildModuleFilesInfoFor(PathRef
File, ...)`.
- The class `PreambleData` adds a new member variable with type
`ModuleFilesInfo`. This refers to the needed module files for the
current file. It means the module files info is part of the preamble,
which is suggested in the first patch too.
- In `isPreambleCompatible()`, we add a call to
`ModuleFilesInfo::CanReuse()` to check if the built module files are
still up to date.
- When we build the AST for a source file, we will load the built module
files from ModuleFilesInfo.

# What we need to do next

Let's split the TODOs into clang part and clangd part to make things
more clear.

The TODOs in the clangd part include:
1. Enable reusing module files across source files. The may require us
to bring a ModulesManager like thing which need to handle `scheduling`,
`the possibility of BMI version conflicts` and `various events that can
invalidate the module graph`.
2. Get a more efficient method to get the `<module-name> ->
<module-unit-source>` map. Currently we always scan the whole project
during `ModuleFilesInfo::buildModuleFilesInfoFor(PathRef File, ...)`.
This is clearly inefficient even if the scanning process is pretty fast.
I think the potential solutions include:
- Make a global scanner to monitor the state of every source file like I
did in the first patch. The pain point is that we need to take care of
the data races.
- Ask the build systems to provide the map just like we ask them to
provide the compilation database.
3. Persist the module files. So that we can reuse module files across
clangd invocations or even across clangd instances.

TODOs in the clang part include:
1. Clang should offer an option/mode to skip writing/reading the bodies
of the functions. Or even if we can requrie the parser to skip parsing
the function bodies.

And it looks like we can say the support for C++20 Modules is initially
workable after we made (1) and (2) (or even without (2)).


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

  Changed paths:
    M llvm/lib/Target/ARM/ARMFrameLowering.cpp
    M llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
    M llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp
    M llvm/lib/Target/Hexagon/HexagonGenInsert.cpp
    M llvm/lib/Target/Mips/MipsFastISel.cpp
    M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
    M llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp
    M llvm/lib/Target/PowerPC/PPCFastISel.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp
    M llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp

  Log Message:
  -----------
  Rapply "[Target] Use range-based for loops (NFC) (#98844)"

This iteration drops hunks where the loop body adds more elements.


  Commit: ad154281230d83ee551e12d5be48bb956ef47ed3
      https://github.com/llvm/llvm-project/commit/ad154281230d83ee551e12d5be48bb956ef47ed3
  Author: David Tenty <daltenty at ibm.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M libcxx/test/std/input.output/iostream.format/std.manip/setfill_wchar_max.pass.cpp

  Log Message:
  -----------
  [NFC][libc++][test] loosen XFAIL condition for setfill_wchar_max.pass.cpp

So we can also match aarch64 triples which have four components instead of three when disabling the test, which the case on some buildbots.

Follow on to #89305


  Commit: edfe25064e13c9cabf1cf3398f7760bf0991ae3e
      https://github.com/llvm/llvm-project/commit/edfe25064e13c9cabf1cf3398f7760bf0991ae3e
  Author: Teresa Johnson <tejohnson at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

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

  Log Message:
  -----------
  [MemProf] Consolidate increments in callee matching code (#99385)

To facilitate some follow on changes, consolidate the incrementing of
the edge iterator used during callee matching to the for loop statement.
This requires an additional adjustment in the case of tail call
handling.


  Commit: c184b94ff6546c8ba8ac54b5127189427567978f
      https://github.com/llvm/llvm-project/commit/c184b94ff6546c8ba8ac54b5127189427567978f
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp

  Log Message:
  -----------
  [C++20] [Modules] Write ODRHash for decls in GMF

Previously, we skipped calculating ODRHash for decls in GMF when writing
them to .pcm files as an optimization. But actually, it is not
true that this will be a pure optimization. Whether or not it is
beneficial depends on the use cases. For example, if we're writing a
function `a` in module and there are 10 consumers of `a` in other TUs,
then the other TUs will pay for the cost to calculate the ODR hash for
`a` ten times. Then this optimization doesn't work. However, if all the
consumers of the module didn't touch `a`, then we can save the cost to
calculate the ODR hash of `a` for 1 times.

And the assumption to make it was: generally, the consumers of a module
may only consume a small part of the imported module. This is the reason
why we tried to load declarations, types and identifiers lazily. Then it
looks good to do the similar thing for calculating ODR hashs.

It works fine for a long time, until we started to look into the support
of modules in clangd. Then we meet multiple issue reports complaining
we're calculating ODR hash in the wrong place. To workaround these issue
reports, I decided to always write the ODRhash for decls in GMF. In my
local test, I only observed less than 1% compile time regression after
doing this. So it should be fine.


  Commit: 464d321ee8dde1eaf14b5537eaf030e6df513849
      https://github.com/llvm/llvm-project/commit/464d321ee8dde1eaf14b5537eaf030e6df513849
  Author: Kareem Ergawy <kareem.ergawy at amd.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M flang/lib/Optimizer/Transforms/StackArrays.cpp
    A flang/test/Transforms/stack-arrays-hlfir.f90
    M flang/test/Transforms/stack-arrays.fir

  Log Message:
  -----------
  [flang][stack-arrays] Extend pass to work on declare ops and within omp regions (#98810)

Extends the stack-arrays pass to support `fir.declare` ops. Before that,
we did not recognize malloc-free pairs for which `fir.declare` is used
to declare the allocated entity. This is because the `free` op was
invoked on the result of the `fir.declare` op and did not directly use
the allocated memory SSA value.

This also extends the pass to collect the analysis results within OpenMP
regions.


  Commit: 5338bd3c8ac5e313a09fffbe84aacc51a16e17f8
      https://github.com/llvm/llvm-project/commit/5338bd3c8ac5e313a09fffbe84aacc51a16e17f8
  Author: vporpo <vporpodas at google.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/docs/SandboxIR.md
    M llvm/include/llvm/SandboxIR/SandboxIR.h
    A llvm/include/llvm/SandboxIR/Tracker.h
    M llvm/include/llvm/SandboxIR/Use.h
    M llvm/lib/SandboxIR/CMakeLists.txt
    M llvm/lib/SandboxIR/SandboxIR.cpp
    A llvm/lib/SandboxIR/Tracker.cpp
    M llvm/unittests/SandboxIR/CMakeLists.txt
    A llvm/unittests/SandboxIR/TrackerTest.cpp

  Log Message:
  -----------
  [SandboxIR] IR Tracker (#99238)

This is the first patch in a series of patches for the IR change
tracking component of SandboxIR.
The tracker collects changes in a vector of `IRChangeBase` objects and
provides a `save()`/`accept()`/`revert()` API.

Each type of IR changing event is captured by a dedicated subclass of
`IRChangeBase`. This patch implements only one of them, that for
updating a `sandboxir::Use` source value, named `UseSet`.


  Commit: 27ee33d1368b9772f75285932c00479a0fae82ee
      https://github.com/llvm/llvm-project/commit/27ee33d1368b9772f75285932c00479a0fae82ee
  Author: Hsiangkai Wang <hsiangkai.wang at arm.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/lib/Dialect/Linalg/Transforms/WinogradConv2D.cpp
    A mlir/test/Dialect/Linalg/winograd-conv2d-rewrite.mlir
    M mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp

  Log Message:
  -----------
  [mlir][linalg] Decompose winograd operators (#96183)

Convert Linalg winograd_filter_transform, winograd_input_transform, and
winograd_output_transform into nested loops with matrix multiplication
with constant transform matrices.

Support several configurations of Winograd Conv2D, including F(2, 3),
F(4, 3) and F(2, 5). These configurations show that the implementation
can support different kernel size (3 and 5) and different output size
(2 and 4). Besides symetric kernel size 3x3 and 5x5, this patch also
supports 1x3, 3x1, 1x5, and 5x1 kernels.

The implementation is based on the paper, Fast Algorithm for
Convolutional Neural Networks. (https://arxiv.org/abs/1509.09308)

Reviewers: ftynse, Max191, GeorgeARM, nicolasvasilache, MaheshRavishankar, dcaballe, rengolin

Reviewed By: ftynse, Max191

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


  Commit: 4782a4ab0ad43b2f47f20afbe025b841d7f0ac04
      https://github.com/llvm/llvm-project/commit/4782a4ab0ad43b2f47f20afbe025b841d7f0ac04
  Author: Joachim <jenke at itc.rwth-aachen.de>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp
    M clang/test/OpenMP/depend_iterator_bug.c
    M clang/test/OpenMP/task_codegen.c

  Log Message:
  -----------
  [OpenMP] Fix calculation of dependencies for multi-dimensional iteration space (#99347)

The expectation for multiple iterators used in a single depend clause
(`depend(iterator(i=0:5,j=0:5), in:x[i][j])`) is that the iterator space
is the product of the iteration vectors (25 in that case). The current
codeGen only works correctly, if `numIterators() = 1`. For more
iterators, the execution results in runtime assertions or segfaults.
The modified codeGen first calculates the iteration space, then
multiplies to the number of dependencies in the depend clause and
finally adds to the total number of iterator dependencies.


  Commit: 810adbaa0236eed10ecfd9f96837b6d23d308a7d
      https://github.com/llvm/llvm-project/commit/810adbaa0236eed10ecfd9f96837b6d23d308a7d
  Author: Tristan Ross <rosscomputerguy at protonmail.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.h

  Log Message:
  -----------
  [RISCV] Remove unused include in RISCVMCTargetDesc.h (#98790)

Goes in hand with #97130, split out to figure out CI fails. Should just
build whatever subprojects utilize the `RISCVMCTargetDesc.h` header and
it should build & test just like normal.

Co-authored-by: pca006132 <john.lck40 at gmail.com>


  Commit: fbf8b82cd02818c0888805bb39abbf550333bea6
      https://github.com/llvm/llvm-project/commit/fbf8b82cd02818c0888805bb39abbf550333bea6
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/AST/Interp/InterpBlock.cpp
    M clang/lib/AST/Interp/InterpState.cpp

  Log Message:
  -----------
  [clang][Interp][NFC] Be more cautious about Block initialization state

... when moving a Block to a DeadBlock. Only invoke the MoveFn if the
old block was initialized at all.


  Commit: 0e986e395f9cd759b859ba0c934c0d73de4554c8
      https://github.com/llvm/llvm-project/commit/0e986e395f9cd759b859ba0c934c0d73de4554c8
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/utils/mlgo-utils/pyproject.toml

  Log Message:
  -----------
  [MLGO] Fix MLGO executable scripts

The MLGO executable scripts were previously set up incorrectly with the
entrypoints. This patch corrects the entrypoints so that the scripts
work as expected rather than throwing import errors in the wrapper.


  Commit: 1e6672af2497042d5dad0236c2ad9e61f879ac07
      https://github.com/llvm/llvm-project/commit/1e6672af2497042d5dad0236c2ad9e61f879ac07
  Author: serge-sans-paille <sguelton at mozilla.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M flang/runtime/command.cpp

  Log Message:
  -----------
  [Flang][Runtime] Simplify StringLength implementation

This implementation relies on arithmetic conversion, let's see what
happens when we do

    std::size_t length{std::strlen(string)};
    if (length <= std::numeric_limits<std::int64_t>::max())
        return static_cast<std::int64_t>(length);

1) if size_t == uint32_t (or lower), then the comparison operator
   invokes integral promotion to uint64_t, the comparison happens, it's
   fine.

2) if size_t == uint64_t, then the comparison is done between unsigned
   types, which implies a conversion of
   std::numeric_limits<std::int64_t>::max() to uint64_t, which happens
   without accuracy loss, fine

3) if size_t == uint128_t (or higher), then we invoke integral promotion
   of std::int64_t, it's also fine.

So this snippet has the same behavior as the existing one, while being
easier to read.


  Commit: f36331770267501e157ac34afc3ca7d7a0bfb52c
      https://github.com/llvm/llvm-project/commit/f36331770267501e157ac34afc3ca7d7a0bfb52c
  Author: Alexander Pivovarov <pivovaa at amazon.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M clang/include/clang/AST/Stmt.h
    M clang/lib/AST/MicrosoftMangle.cpp
    M llvm/include/llvm/ADT/APFloat.h
    M llvm/lib/Support/APFloat.cpp
    M llvm/unittests/ADT/APFloatTest.cpp

  Log Message:
  -----------
  [APFloat] Add support for f8E4M3 IEEE 754 type (#97179)

This PR adds `f8E4M3` type to APFloat.

`f8E4M3` type  follows IEEE 754 convention

```c
f8E4M3 (IEEE 754)
- Exponent bias: 7
- Maximum stored exponent value: 14 (binary 1110)
- Maximum unbiased exponent value: 14 - 7 = 7
- Minimum stored exponent value: 1 (binary 0001)
- Minimum unbiased exponent value: 1 − 7 = −6
- Precision specifies the total number of bits used for the significand (mantisa), 
    including implicit leading integer bit = 3 + 1 = 4
- Follows IEEE 754 conventions for representation of special values
- Has Positive and Negative zero
- Has Positive and Negative infinity
- Has NaNs

Additional details:
- Max exp (unbiased): 7
- Min exp (unbiased): -6
- Infinities (+/-): S.1111.000
- Zeros (+/-): S.0000.000
- NaNs: S.1111.{001, 010, 011, 100, 101, 110, 111}
- Max normal number: S.1110.111 = +/-2^(7) x (1 + 0.875) = +/-240
- Min normal number: S.0001.000 = +/-2^(-6)
- Max subnormal number: S.0000.111 = +/-2^(-6) x 0.875 = +/-2^(-9) x 7
- Min subnormal number: S.0000.001 = +/-2^(-6) x 0.125 = +/-2^(-9)
```

Related PRs:
- [PR-97118](https://github.com/llvm/llvm-project/pull/97118) Add f8E4M3
IEEE 754 type to mlir


  Commit: 7b08c2774ca7350b372f70f63135eacc04d739c5
      https://github.com/llvm/llvm-project/commit/7b08c2774ca7350b372f70f63135eacc04d739c5
  Author: Adrian Kuegel <akuegel at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M mlir/lib/Dialect/Linalg/Transforms/WinogradConv2D.cpp

  Log Message:
  -----------
  [mlir][Linalg] Remove unused header include.

There seems to be no direct usage of any tosa utils.


  Commit: 0ce3ea1bfffcbd62195cf07e34477cc7cc5c5009
      https://github.com/llvm/llvm-project/commit/0ce3ea1bfffcbd62195cf07e34477cc7cc5c5009
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/AMDGPU/SIInstructions.td

  Log Message:
  -----------
  [AMDGPU] Simplify selection of llvm.amdgcn.inverse.ballot. NFCI. (#99345)


  Commit: 14c323cfd66454c65324c4d5b9d9b6a9c5651eca
      https://github.com/llvm/llvm-project/commit/14c323cfd66454c65324c4d5b9d9b6a9c5651eca
  Author: Dominik Adamski <dominik.adamski at amd.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/CodeGen/CodeGenModule.h
    M clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
    M clang/test/Driver/amdgpu-openmp-toolchain.c

  Log Message:
  -----------
  [OpenMP][AMDGPU] Do not attach -fcuda-is-device (#99002)

-fcuda-is-device flag is not used for OpenMP offloading for AMD GPUs and
it does not need to be added as clang cc1 option for OpenMP code.

This PR has the same functionality as
https://github.com/llvm/llvm-project/pull/96909 but it doesn't introduce
regression for virtual function support.


  Commit: 7aabdb8776eb11b90d43162254db47df46806ec9
      https://github.com/llvm/llvm-project/commit/7aabdb8776eb11b90d43162254db47df46806ec9
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeEmitter.cpp

  Log Message:
  -----------
  [clang][Interp][NFC] Protect ByteCodeEmitter against unfinished fns

This is similar to a check in TextNodeDumper.cpp. Without this, we will
crash later when trying to iterate over FuncDecl->params().


  Commit: 4b9bcabdf05346fd72db0d1ad88faa9b969a8f13
      https://github.com/llvm/llvm-project/commit/4b9bcabdf05346fd72db0d1ad88faa9b969a8f13
  Author: David Green <david.green at arm.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  [AArch64] Add streaming-mode stack hazards. (#98956)

Under some SME contexts, a coprocessor with its own separate cache will
be used for FPR operations. This can create hazards if the CPU and the
SME unit try to access the same area of memory, including if the access
is to an area of the stack.

To try to alleviate that, this patch attempts to introduce extra padding
into the stack frame between FP and GPR accesses, controlled by the
StackHazardSize option. Without changing the layout of the stack frame,
a stack object of the right size is added between GPR and FPR CSRs.
Another is added to the stack objects section, and stack objects are
sorted so that FPR > Hazard padding slot > GPRs (where possible).

Unfortunately some things are not handled well (VLA area, FPR arguments
on the stack, object with both GPR and FPR accesses), but if those are
controlled by the user then the entire stack frame becomes GPR at the
start/end with FPR in the middle, surrounded by Hazard padding. This can
greatly help reduce something that can be difficult for the user to
control themselves.

The current implementation is opt-in through an
-aarch64-stack-hazard-size flag, and should have no effect if the option
is unset. In the long run the implementation might change (for example
using more base pointers to separate in more cases, re-enabling ldp/stp
using an extra register, etc), but this gets at least something for
people to use in llvm-19 if they need it. The only change whilst the
option is unset will be a fix for making sure the stack increment is
added at the right place when it cannot be converted to postinc
(++MBBI). I believe without extra padding that can not normally be
reached.


  Commit: 8afb395aeef5335554c623f92f48cbdc9ffe927d
      https://github.com/llvm/llvm-project/commit/8afb395aeef5335554c623f92f48cbdc9ffe927d
  Author: Ilya Leoshkevich <iii at linux.ibm.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    R compiler-rt/test/sanitizer_common/TestCases/Posix/sanitizer_bad_report_path_test.cpp
    M compiler-rt/test/sanitizer_common/TestCases/Posix/sanitizer_set_report_path_test.cpp

  Log Message:
  -----------
  [sanitizer] Fix running sanitizer_bad_report_path_test on Linux as root (#97732)

Running tests as root is not the greatest idea, however, there is one
valid use case - running them in a container in order to verify LLVM on
different distros. There is no reason to configure unprivileged users
in a container, so one works as root.
    
sanitizer_bad_report_path_test assumes that creating a file in a
non-writable directory would fail, which is not the always case. For
example, when we are on Linux and CAP_DAC_OVERRIDE, which root has, is
in effect. Therefore, one solution is to drop it. However, that would
be Linux-specific.
    
Instead, use argv[0] as if it were a directory. mkdir() on top of a
file should be prohibited by all supported Posix operating systems.
Combine this with a partial revert of commit f4214e1469ad ("[sanitizer]
Skip test on Android where chmod is not working"), since we shouldn't
need to exclude Android anymore.


  Commit: a19e5aedd9b15ecf0b05bafb7d20e13c952b4531
      https://github.com/llvm/llvm-project/commit/a19e5aedd9b15ecf0b05bafb7d20e13c952b4531
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M flang/lib/Lower/ConvertCall.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/test/Lower/Intrinsics/second.f90

  Log Message:
  -----------
  [flang] load SECOND result in genSecond (#99342)

Until genSecond, all intrinsic `genXXX` returning scalar intrinsic
(except NULL) were returning them as value.

The code calling genIntrinsicCall is using that assumption when
generation the asExprOp because hflir.expr<> of scalar are badly
supported in tools (I should likely just forbid them all together), the
type is meant for "non trivial" values: arrays, character, and derived
type. For instance, the added tests crashed with error: `'arith.subf' op
operand #0 must be floating-point-like, but got '!hlfir.expr<f32>'`

Load the result in genSecond and add an assert after genIntrinsicCall to
better enforce this.


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

  Changed paths:
    M llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
    M llvm/lib/DebugInfo/DWARF/DWARFDie.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFTypePrinter.cpp
    M llvm/test/tools/llvm-dwarfdump/X86/prettyprint_type_units.s

  Log Message:
  -----------
  [llvm/DWARF] Recursively resolve DW_AT_signature references (#97423)

findRecursively follows DW_AT_specification and DW_AT_abstract_origin
references, but not DW_AT_signature. As far as I can tell, there is no
fundamental difference between these attributes that would make this
behavior desirable, and this just seems like a consequence of the fact
that this attribute is newer. This patch aims to change that.

The motivation is some code in lldb, which assumes that it can construct
a qualified name of a type by just walking the parent chain and looking
at the name attribute. This works for "regular" debug info, even when
some of the DIEs are just forward declarations, but it breaks in the
presence of type units, because of the need to explicitly resolve the
signature reference.

While LLDB does not use the llvm's DWARFDie class (yet?), this seems
like a very important change in the overall API, and any divergence here
would complicate eventual reunification, which is why I am making the
change in the llvm API first. However, putting lldb aside, I think this
change is beneficial in llvm on its own, as it allows us to remove the
explicit DW_AT_signature resolution in the DWARFTypePrinter.


  Commit: 09cbb45edd149d30766c87be4628e4df13f3496d
      https://github.com/llvm/llvm-project/commit/09cbb45edd149d30766c87be4628e4df13f3496d
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M bolt/include/bolt/Core/DIEBuilder.h
    M bolt/lib/Core/DIEBuilder.cpp

  Log Message:
  -----------
  [BOLT][DWARF][NFC] A better DIEBuilder for the llvm API change in #98905 (#99324)

The caller (cloneAttribute) already switches on the reference type. By
aligning the cases with the retrieval functions, we can avoid branching
twice.


  Commit: 2ef7cbf71c98246d6f3a9c63dea75b76c7b5e928
      https://github.com/llvm/llvm-project/commit/2ef7cbf71c98246d6f3a9c63dea75b76c7b5e928
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/docs/CommandGuide/clang.rst
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/test/Driver/Ofast.c

  Log Message:
  -----------
  [clang] Add deprecation warning for `-Ofast` driver option (#98736)

This patch implements consensus on the corresponding RFC documented
here: https://discourse.llvm.org/t/rfc-deprecate-ofast/78687/72
Specifically, I added a deprecation warning for `-Ofast`, that suggests
to use `-O3` or `-O3` with `-ffast-math`, and a new diagnostic group for
aforementioned warning.
Deprecation period is going to be lengthy, so I hope this PR can be
merged in time for Clang 19.


  Commit: cf66cec7c4481ff39525232d64a4d5215cca3ac5
      https://github.com/llvm/llvm-project/commit/cf66cec7c4481ff39525232d64a4d5215cca3ac5
  Author: goldsteinn <35538541+goldsteinn at users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/include/llvm/IR/PatternMatch.h
    M llvm/unittests/IR/PatternMatch.cpp

  Log Message:
  -----------
  Recommit "[PatternMatch] Fix issue of stale reference in new `m_{I,F,}Cmp` matchers" (3rd Try) (#99292)

The first fix forgot to fixup the commutative matchers...


  Commit: 94cd18b7fcf239b85698ad70f145ca5fa5edd516
      https://github.com/llvm/llvm-project/commit/94cd18b7fcf239b85698ad70f145ca5fa5edd516
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/test/Transforms/CorrelatedValuePropagation/vectors.ll

  Log Message:
  -----------
  [CVP] Add test for phi merging of vectors (NFC)


  Commit: 3eba28d1fd3347a1658f68b63285148b0bb25fab
      https://github.com/llvm/llvm-project/commit/3eba28d1fd3347a1658f68b63285148b0bb25fab
  Author: Haojian Wu <hokein.wu at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/CheckExprLifetime.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/test/Sema/warn-lifetime-analysis-nocfg-disabled.cpp
    M clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
    M clang/test/SemaCXX/warn-dangling-local.cpp

  Log Message:
  -----------
  [clang] Extend lifetime analysis to support assignments for pointer-like objects. (#99032)

This is a follow-up patch to #96475 to detect dangling assignments for
C++ pointer-like objects (classes annotated with the
`[[gsl::Pointer]]`). Fixes #63310.

Similar to the behavior for built-in pointer types, if a temporary owner
(`[[gsl::Owner]]`) object is assigned to a pointer-like class object,
and this temporary object is destroyed at the end of the full assignment
expression, the assignee pointer is considered dangling. In such cases,
clang will emit a warning:

```
/tmp/t.cpp:7:20: warning: object backing the pointer my_string_view will be destroyed at the end of the full-expression [-Wdangling-assignment-gsl]
    7 |   my_string_view = CreateString();
      |                    ^~~~~~~~~~~~~~
1 warning generated.
```

This new warning is `-Wdangling-assignment-gsl`. It is initially
disabled, but I intend to enable it by default in clang 20.

I have initially tested this patch on our internal codebase, and it has
identified many use-after-free bugs, primarily related to `string_view`.


  Commit: 26af44b3985c762b2cbaf348f8012a30af09151f
      https://github.com/llvm/llvm-project/commit/26af44b3985c762b2cbaf348f8012a30af09151f
  Author: Sudharsan Veeravalli <quic_svs at quicinc.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Utils/SCCPSolver.cpp
    A llvm/test/Transforms/SCCP/preserving-debugloc-signedinst-branch-feasible-succ.ll

  Log Message:
  -----------
  [DebugInfo][SCCPSolver] Fix missing debug locations (#98876)

Fixes #98875


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

  Changed paths:
    M llvm/lib/Transforms/Scalar/SROA.cpp
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/var-sized-fragment.ll
    A llvm/test/DebugInfo/Generic/sroa-alloca-offset.ll

  Log Message:
  -----------
  [SROA] Fix debug locations for variables with non-zero offsets  (#97750)

Fixes issue #61981 by adjusting variable location offsets (in the DIExpression)
when splitting allocas.

Patch [4/4] to fix structured bindings in SROA.

NOTE: There's still a bug in mem2reg which generates incorrect locations in some
situations: if the variable fragment has an offset into the new (split) alloca,
mem2reg will fail to convert that into a bit shift (the location contains a
garbage offset). That's not addressed here.

insertNewDbgInst - Now takes the address-expression and FragmentInfo as
  separate parameters because unlike dbg_declares dbg_assigns want those to go
  to different places. dbg_assign records put the variable fragment info in the
  value expression only (whereas dbg_declare has only one expression so puts it
  there - ideally this information wouldn't live in DIExpression, but that's
  another issue).

MigrateOne - Modified to correctly compute the necessary offsets and fragment
  adjustments. The previous implementation produced bogus locations for variables
  with non-zero offsets. The changes replace most of the body of this lambda, so
  it might be easier to review in a split-diff view and focus on the change as a
  whole than to compare it to the old implementation.

  This uses calculateFragmentIntersect and extractLeadingOffset added in previous
  patches in this series, and createOrReplaceFragment described below.

createOrReplaceFragment - Similar to DIExpression::createFragmentExpression
  except for 3 important distinctions:

    1. The new fragment isn't relative to an existing fragment.
    2. There are no checks on the the operation types because it is assumed
       the location this expression is computing is not implicit (i.e., it's
       always safe to create a fragment because arithmetic operations apply
       to the address computation, not to an implicit value computation).
    3. Existing extract_bits are modified independetly of fragment changes
       using \p BitExtractOffset. A change to the fragment offset or size
       may affect a bit extract. But a bit extract offset can change
       independently of the fragment dimensions.

  Returns the new expression, or nullptr if one couldn't be created.  Ideally
  this is only used to signal that a bit-extract has become zero-sized (and thus
  the new debug record has no size and can be dropped), however, it fails for
  other reasons too - see the FIXME below.

  FIXME: To keep the scope of this change focused on non-bitfield structured
  bindings the function bails in situations that
  DIExpression::createFragmentExpression fails. E.g. when fragment and bit
  extract sizes differ. These limitations can be removed in the future.


  Commit: cbd255942b52c3576aa0dca444811512fff43714
      https://github.com/llvm/llvm-project/commit/cbd255942b52c3576aa0dca444811512fff43714
  Author: dlav-sc <daniil.avdeev at syntacore.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  [lldb] add RISCV target specific info in API tests (#99039)

Add information about RISCV first register in python API testsuite, that
is used to check register readability in tests.

Fixed tests on RISCV target:

TestBreakpointByFileColonLine.BreakpointByLineAndColumnTestCase
TestAddressBreakpoints.AddressBreakpointTestCase
TestBreakpointAutoContinue.BreakpointAutoContinue
TestInterruptBacktrace.TestInterruptingBacktrace
TestBadAddressBreakpoints.BadAddressBreakpointTestCase
TestScriptedResolver.TestScriptedResolver
TestStopHookScripted.TestStopHooks
TestBreakpointConditions.BreakpointConditionsTestCase
TestLocalVariables.LocalVariablesTestCase
TestFindLineEntry.FindLineEntry
TestScriptedResolver.TestScriptedResolver
TestInlineSourceFiles.InlineSourceFilesTestCase
TestModuleAndSection.ModuleAndSectionAPIsTestCase
TestFrameVar.TestFrameVar
TestInferiorAssert.AssertingInferiorTestCase
TestInferiorCrashing.CrashingInferiorTestCase
TestInferiorCrashingStep.CrashingInferiorStepTestCase
TestRegistersIterator.RegistersIteratorTestCase
TestCoroutineHandle.TestCoroutineHandle
TestWithLimitDebugInfo.TestWithLimitDebugInfo
TestLLDBIterator.LLDBIteratorTestCase
TestMemoryWrite.MemoryWriteTestCase
TestNestedTemplate.NestedTemplateTestCase
TestParrayVrsCharArrayChild.TestParrayVrsCharArrayChild
TestRecursiveInferior.CrashingRecursiveInferiorTestCase
TestRecursiveInferiorStep.CrashingRecursiveInferiorStepTestCase
TestRunLocker.TestRunLocker
TestSampleTest.RenameThisSampleTestTestCase
TestUniqueTypes3.UniqueTypesTestCase3
TestPrintStackTraces.ThreadsStackTracesTestCase
TestUnicodeSymbols.TestUnicodeSymbols
TestUnusedInlinedParameters.TestUnusedInlinedParameters
TestValueVarUpdate.ValueVarUpdateTestCase
TestPtrRef2Typedef.PtrRef2TypedefTestCase
TestDataFormatterStdIterator.StdIteratorDataFormatterTestCase
TestDataFormatterStdString.StdStringDataFormatterTestCase
TestDataFormatterStdVBool.StdVBoolDataFormatterTestCase


  Commit: 26cb88e3210af24942310a192431c8d7c3544e21
      https://github.com/llvm/llvm-project/commit/26cb88e3210af24942310a192431c8d7c3544e21
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
    M llvm/lib/DebugInfo/DWARF/DWARFDie.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFTypePrinter.cpp
    M llvm/test/tools/llvm-dwarfdump/X86/prettyprint_type_units.s

  Log Message:
  -----------
  Revert "[llvm/DWARF] Recursively resolve DW_AT_signature references" (#99444)

Reverts llvm/llvm-project#97423 due to a failure in the
cross-project-tests.


  Commit: 80865c01e1b8d3a6bea308fda7bbc53047dcc2e7
      https://github.com/llvm/llvm-project/commit/80865c01e1b8d3a6bea308fda7bbc53047dcc2e7
  Author: Michael Kruse <llvm-project at meinersbur.de>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/include/clang-c/Index.h
    M clang/include/clang/AST/RecursiveASTVisitor.h
    M clang/include/clang/AST/StmtOpenMP.h
    M clang/include/clang/Basic/StmtNodes.td
    M clang/include/clang/Sema/SemaOpenMP.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/lib/AST/StmtOpenMP.cpp
    M clang/lib/AST/StmtPrinter.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/lib/Basic/OpenMPKinds.cpp
    M clang/lib/CodeGen/CGStmt.cpp
    M clang/lib/CodeGen/CGStmtOpenMP.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/lib/Parse/ParseOpenMP.cpp
    M clang/lib/Sema/SemaExceptionSpec.cpp
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/lib/Serialization/ASTReaderStmt.cpp
    M clang/lib/Serialization/ASTWriterStmt.cpp
    A clang/test/OpenMP/reverse_ast_print.cpp
    A clang/test/OpenMP/reverse_codegen.cpp
    A clang/test/OpenMP/reverse_messages.cpp
    M clang/tools/libclang/CIndex.cpp
    M clang/tools/libclang/CXCursor.cpp
    M llvm/include/llvm/Frontend/OpenMP/OMP.td
    A openmp/runtime/test/transform/reverse/foreach.cpp
    A openmp/runtime/test/transform/reverse/intfor.c
    A openmp/runtime/test/transform/reverse/iterfor.cpp
    A openmp/runtime/test/transform/reverse/parallel-wsloop-collapse-foreach.cpp
    A openmp/runtime/test/transform/reverse/parallel-wsloop-collapse-intfor.cpp

  Log Message:
  -----------
  [Clang][OpenMP] Add reverse directive (#92916)

Add the reverse directive which will be introduced in the upcoming
OpenMP 6.0 specification. A preview has been published in [Technical
Report 12](https://www.openmp.org/wp-content/uploads/openmp-TR12.pdf).

---------

Co-authored-by: Alexey Bataev <a.bataev at outlook.com>


  Commit: 1dfbd07255f50ab3920d397dda5f8f9c05020f76
      https://github.com/llvm/llvm-project/commit/1dfbd07255f50ab3920d397dda5f8f9c05020f76
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/test/Analysis/ValueTracking/known-bits.ll
    M llvm/test/Analysis/ValueTracking/known-fpclass.ll
    M llvm/test/Analysis/ValueTracking/known-non-zero.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for `llvm.vector.reverse` with `DemandedElts`; NFC


  Commit: 6ef970b65f93b0f7fbcd8ffc44fb9b9af58cc097
      https://github.com/llvm/llvm-project/commit/6ef970b65f93b0f7fbcd8ffc44fb9b9af58cc097
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Analysis/ValueTracking/known-bits.ll

  Log Message:
  -----------
  [ValueTracking] Consistently propagate `DemandedElts` is `computeKnownBits`


  Commit: 72ff0499bba72eecc1b3d19833027b6c04337041
      https://github.com/llvm/llvm-project/commit/72ff0499bba72eecc1b3d19833027b6c04337041
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Analysis/ValueTracking/known-non-zero.ll

  Log Message:
  -----------
  [ValueTracking] Consistently propagate `DemandedElts` is `isKnownNonZero`


  Commit: e8eeda8e4dc581ae744bc64a2683b5533fec8922
      https://github.com/llvm/llvm-project/commit/e8eeda8e4dc581ae744bc64a2683b5533fec8922
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp

  Log Message:
  -----------
  [ValueTracking] Consistently propagate `DemandedElts` is `ComputeNumSignBits`


  Commit: 0589762e4e42a21796ca74eeb356cdfc50eaa232
      https://github.com/llvm/llvm-project/commit/0589762e4e42a21796ca74eeb356cdfc50eaa232
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/ValueTracking.h
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Analysis/ValueTracking/known-fpclass.ll

  Log Message:
  -----------
  [ValueTracking] Consistently propagate `DemandedElts` is `computeKnownFPClass`

Closes #99080


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

  Changed paths:
    M llvm/test/Transforms/SCCP/phis.ll

  Log Message:
  -----------
  [SCCP] Add tests for vectors ins phis (NFC)


  Commit: 474d35f238d46010d12485734e62de91cb469404
      https://github.com/llvm/llvm-project/commit/474d35f238d46010d12485734e62de91cb469404
  Author: Rainer Orth <ro at gcc.gnu.org>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
    M compiler-rt/lib/safestack/safestack.cpp
    M compiler-rt/lib/safestack/safestack_platform.h
    M compiler-rt/test/safestack/lit.cfg.py

  Log Message:
  -----------
  [safestack] Various Solaris fixes (#99290)

Even with the `-u __safestack_init` link order fixed on Solaris, there
are still several safestack test issues left:

- While 540fd42c755f20f7b79c6c79493ec36d8cb9b3d3 enabled safestack on
Solaris in the driver unconditionally, it ignored that Solaris also
exists on SPARC and forgot to enable SPARC support for the runtime lib.
This patch fixes that.

- The tests fail to link with undefined references to
`__sanitizer_internal_memset` etc in `safestack.cpp.o` and
`interception_linux.cpp.o`. These are from indirectly including
`sanitizer_redefine_builtins.h`. Instead of using the implementations
from `sanitizer_common` as was done in [[safestack] Various Solaris
fixes](https://github.com/llvm/llvm-project/pull/98469), this patch
disables the interception as discussed in [Revert "[safestack] Various
Solaris fixes"](https://github.com/llvm/llvm-project/pull/98541). A
similar issue affects 32-bit Linux/sparc where compiling `safestack.cpp`
with `-ftrivial-auto-var-init=pattern` causes the compiler to generate
calls to `memset` to initialize a `pthread_attr_t` which is larger than
can be handled inline. This is avoided by defining
`SANITIZER_COMMON_NO_REDEFINE_BUILTINS` in `safestack.cpp` and also
adding definitions of the interceptors that just forward to `libc` for
the benefit of `interception_linux.cpp`.

- The `pthread*.c` tests `FAIL` with

``` safestack CHECK failed:
/vol/llvm/src/llvm-project/local/compiler-rt/lib/safestack/safestack.cpp:227
size ```

The problem is that `pthread_attr_init` initializes the `stacksize`
attribute to 0, signifying the default. Unless explicitly overridded, it
stays that way. I think this is allowed by XPG7. Since safestack cannot
deal with this, I set `size` to the defaults documented in
`pthread_create(3C)`. Unfortunately, there's no macro for those values
outside of private `libc` headers.

- The Solaris `syscall` interface isn't stable. This is not just a
theoretical concern, but the syscalls have changed incompatibly several
times in the past. Therefore this patch switches the implementations of
`TgKill` (where `SYS_lwp_kill` doesn't exist on Solaris 11.4 anyway),
`Mmap`, `Munmap`, and `Mprotect` to the same `_REAL*` solution already
used in `sanitizer_solaris.cpp`.

With those changes, safestack compiles and all tests `PASS`, so the
tests are re-enabled for good.

Tested on `amd64-pc-solaris2.11`, `sparcv9-sun-solaris2.11`,
`x86_64-pc-linux-gnu`, and `sparc64-unknown-linux-gnu`.


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

  Changed paths:
    M lld/MachO/Config.h
    M lld/MachO/Driver.cpp
    M lld/MachO/Options.td
    M lld/test/MachO/link-search-at-rpath.s
    M lld/test/MachO/rpath.s

  Log Message:
  -----------
  [lld-macho] Ignore duplicate `-rpath` entries (#99289)

Starting with Xcode 16 (dyld-1122), Apple's binary utilities, e.g.
`dyld_info` (but not dyld itself), will refuse to load binaries built
against the macOS 15 SDK or newer that contain the same `LC_RPATH`
entry multiple times:

https://github.com/apple-oss-distributions/dyld/blob/rel/dyld-1122/mach_o/Policy.cpp#L246-L249

`ld-prime` deduplicates entries (regardless of the deployment target),
we now do the same. We also match `ld-prime`'s and `ld64`'s behavior by
warning on duplicate `-rpath` arguments. This can be disabled by the
LLD-specific `--no-warn-duplicate-rpath` flag.


  Commit: 1ce89899ad33a0d2976859d8d278dba4342cbb6b
      https://github.com/llvm/llvm-project/commit/1ce89899ad33a0d2976859d8d278dba4342cbb6b
  Author: Dmitry Polukhin <34227995+dmpolukhin at users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/performance/unnecessary-value-param.cpp
    M clang/lib/Analysis/ExprMutationAnalyzer.cpp

  Log Message:
  -----------
  [clang-tidy] Fix false in unnecessary-value-param inside templates (#98488)

Summary:
If callExpr is type dependent, there is no way to analyze individual
arguments until template specialization. Before this diff only calls
with dependent callees were skipped so unnecessary-value-param was
processing arguments that had non-dependent type that gave false
positives because the call was not fully resolved till specialization.
So now instead of checking type dependent callee, the whole expression
will be checked for type dependent.

Test Plan: check-clang-tools


  Commit: dfddc0c4843baaf9605aeb1c4f82eac185e90265
      https://github.com/llvm/llvm-project/commit/dfddc0c4843baaf9605aeb1c4f82eac185e90265
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libcxx/include/__type_traits/make_signed.h
    M libcxx/include/atomic
    M libcxx/include/expected
    M libcxx/include/filesystem
    M libcxx/include/format
    M libcxx/include/forward_list
    M libcxx/include/functional
    M libcxx/include/iterator
    M libcxx/include/mdspan
    M libcxx/include/memory
    M libcxx/include/memory_resource
    M libcxx/include/module.modulemap
    M libcxx/include/numeric
    M libcxx/include/ostream
    M libcxx/include/random
    M libcxx/include/ranges
    M libcxx/include/stop_token
    M libcxx/include/string_view
    M libcxx/include/type_traits
    M libcxx/include/utility
    M libcxx/test/libcxx/containers/sequences/deque/abi.compile.pass.cpp
    M libcxx/test/libcxx/containers/sequences/list/abi.compile.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/arithmetic.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/comparison.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/dereference.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/pointer_traits.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/types.compile.pass.cpp
    M libcxx/test/libcxx/memory/allocation_guard.pass.cpp
    M libcxx/test/libcxx/memory/compressed_pair/compressed_pair.pass.cpp
    M libcxx/test/libcxx/numerics/clamp_to_integral.pass.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.adaptor.helpers/as-lvalue.lifetimebound.verify.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.adaptor.helpers/as-lvalue.pass.cpp
    M libcxx/test/libcxx/transitive_includes/cxx03.csv
    M libcxx/test/libcxx/transitive_includes/cxx11.csv
    M libcxx/test/libcxx/transitive_includes/cxx14.csv
    M libcxx/test/libcxx/transitive_includes/cxx17.csv
    M libcxx/test/libcxx/transitive_includes/cxx20.csv
    M libcxx/test/libcxx/transitive_includes/cxx23.csv
    M libcxx/test/libcxx/transitive_includes/cxx26.csv
    M libcxx/test/libcxx/type_traits/is_callable.compile.pass.cpp
    M libcxx/test/libcxx/type_traits/is_constant_evaluated.pass.cpp
    M libcxx/test/libcxx/type_traits/is_implicitly_default_constructible.pass.cpp
    M libcxx/test/libcxx/type_traits/is_specialization.compile.pass.cpp
    M libcxx/test/libcxx/type_traits/is_specialization.verify.cpp
    M libcxx/test/libcxx/type_traits/lazy_metafunctions.pass.cpp
    M libcxx/test/libcxx/utilities/exception_guard.no_exceptions.pass.cpp
    M libcxx/test/libcxx/utilities/exception_guard.pass.cpp
    M libcxx/test/libcxx/utilities/function.objects/func.bind.partial/compose.pass.cpp
    M libcxx/test/libcxx/utilities/meta/meta_base.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/make.heap/ranges_make_heap.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/ranges_pop_heap.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/push.heap/ranges_push_heap.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.all/range.owning.view/begin_end.pass.cpp
    M libcxx/test/std/ranges/range.factories/range.repeat.view/iterator/plus_eq.pass.cpp
    M libcxx/test/support/test_iterators.h

  Log Message:
  -----------
  [libc++] Include the rest of the detail headers by version in the umbrella headers (#96032)

This is a follow-up to #83740.


  Commit: c6144cb0de35013e19ddd4d9fbc86367bb1ba223
      https://github.com/llvm/llvm-project/commit/c6144cb0de35013e19ddd4d9fbc86367bb1ba223
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp

  Log Message:
  -----------
  [ValueTracking] Remove unnecessary `m_ElementWiseBitCast` from `isKnownNonZeroFromOperator`; NFC


  Commit: d097f430a172a5d798a39b416b1af84f4ec572e1
      https://github.com/llvm/llvm-project/commit/d097f430a172a5d798a39b416b1af84f4ec572e1
  Author: Dmitry Vasilyev <dvassiliev at accesssoftek.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
    M lldb/tools/lldb-server/lldb-platform.cpp

  Log Message:
  -----------
  [lldb] Fixed the error `unable to launch a GDB server` in API tests (#98833)

TestPlatformLaunchGDBServer.py runs `ldb-server` w/o parameters
`--min-gdbserver-port`, `--max-gdbserver-port` or `--gdbserver-port`. So
`gdbserver_portmap` is empty and
`gdbserver_portmap.GetNextAvailablePort()` will return 0. Do not call
`portmap_for_child.AllowPort(0)` in this case. Otherwise
`portmap_for_child.GetNextAvailablePort()` will allocate and never free
the port 0 and next call `portmap_for_child.GetNextAvailablePort()` will
fail.

Added few asserts in `GDBRemoteCommunicationServerPlatform::PortMap` to
avoid such issue in the future.

This patch fixes a bug added in #88845. The behaviour is very close to
#97537 w/o parameters `--min-gdbserver-port`, `--max-gdbserver-port` and
`--gdbserver-port`.


  Commit: ba8e4920ca57518f429bcf0a68ed3d48195fb1e6
      https://github.com/llvm/llvm-project/commit/ba8e4920ca57518f429bcf0a68ed3d48195fb1e6
  Author: Uday Bondhugula <uday at polymagelabs.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp

  Log Message:
  -----------
  [MLIR] NFC. Remove anti-patterns given the default null init for Value (#99457)

Remove anti-patterns given the default null init for Value. Drop some
extra includes while on this file. NFC.

Co-authored-by: GitHub runner <github-runner at polymagelabs.com>


  Commit: e4a2d74e0917d481ecda8e8ff0c0af3c683c9441
      https://github.com/llvm/llvm-project/commit/e4a2d74e0917d481ecda8e8ff0c0af3c683c9441
  Author: Him188 <tguan at nvidia.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/load-addressing-modes.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/store-addressing-modes.mir
    M llvm/test/CodeGen/AArch64/aarch64-fold-lslfast.ll

  Log Message:
  -----------
  [AArch64][GISel] Always fold G_SHL into addressing mode where possible, unless the subtarget has addr-lsl-slow-14 (#96603)

Before this patch, we fold G_SHL into addressing mode lsl only when
there is exactly one usage, or all the usages are memory ops, or we are
optimizing for size. However, lsl is free on all aarch64 targets except
those with FeatureAddrLSLSlow14.

This patch uses this fact and always folds G_SHL into lsl for memory
ops, with exceptions for FeatureAddrLSLSlow14.


This patch also fixes GISel 15% regression in TSVC kernel s482, and
brings regression in s291 from 20% to 10%.


  Commit: c661422db04d86b83c1bfeed18e31745a3725357
      https://github.com/llvm/llvm-project/commit/c661422db04d86b83c1bfeed18e31745a3725357
  Author: Michael Kruse <llvm-project at meinersbur.de>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  [Clang] Handle OMPReverseDirectiveClass in switch


  Commit: 783e07f3a4f4684613ffb4a442c97f25c83f309b
      https://github.com/llvm/llvm-project/commit/783e07f3a4f4684613ffb4a442c97f25c83f309b
  Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/test/Transforms/InstCombine/ashr-demand.ll

  Log Message:
  -----------
  [InstCombine] Add tests cases related to demanded use bits for ashr

When trying to improve value tracking in
   https://github.com/llvm/llvm-project/pull/97693
some regressions was found due to a "weirdness" in simplify demanded
use bits for ashr. Normally an ashr is replaced by lshr when the
shifted in bits aren't demanded. Some years ago (see commit
22178dd33b346020) there was a test case motivating to keep the ashr
when any sign bit (besides the shifted in bits) was demanded. The
weird part about it is that the better we get at analysing known sign
bits, the less likely it is that we canonicalize from ashr to lshr.
That makes it hard to tune other combines to work based on the
canonicalization, as well as possibly resulting in unexpected
regressions when improving value tracking.

This patch adds a test case for which it would be better to
canonicalize ashr into lshr when possible. Worth mentioning is also
that reverting 22178dd33b346020 doesn't seem to cause regressions
in any other lit tests (not even the one added in 22178dd33b346020).


  Commit: b8c4c58ecf186dd91f40bdff4d1bdad403435789
      https://github.com/llvm/llvm-project/commit/b8c4c58ecf186dd91f40bdff4d1bdad403435789
  Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
    M llvm/test/Transforms/InstCombine/ashr-demand.ll

  Log Message:
  -----------
  [InstCombine] Turn AShr into LShr more often in SimplifyDemandedUseBits (#99155)

The functional change here is to undo "llvm-svn: 311773", aka D36936,
aka commit 22178dd33b3460207b8. That patch avoided to convert AShr
into LShr in SimplifyDemandedUseBits based on known sign bits
analysis. Even if it would be legal to turn the shift into a
logical shift (given by the fact that the shifted in bits wasn't
demanded), that patch prevented converting the shift into LShr when
any of the original sign bits were demanded.
One side effect of the reverted functionalty was that the better we
were at computing number of sign bits, the less likely it was that
we would replace AShr by LShr during SimplifyDemandedUseBits. This
was seen in https://github.com/llvm/llvm-project/pull/97693/ when
an improvement of ComputeNumSignBits resulted in regressions due
to no longer rewriting AShr to LShr.
The test case from D36936 still passes after this commit. So it seems
like at least the compiler has been taught how to optimize that
scenario even if we do the AShr->LShr transform more aggressively.


  Commit: c68c289984d161d220b9434be5dbbfc387981e23
      https://github.com/llvm/llvm-project/commit/c68c289984d161d220b9434be5dbbfc387981e23
  Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M flang/lib/Parser/openmp-parsers.cpp
    A flang/test/Parser/OpenMP/proc-bind.f90

  Log Message:
  -----------
  [Flang][OpenMP] Add support for proc_bind=primary (#99319)

The support was missing only in the parser, all other phases handle the
primary option for proc_bind.

Fixes one of the issues in parsing for gomp/affinity-1.f90.
(https://discourse.llvm.org/t/proposal-rename-flang-new-to-flang/69462/60)


  Commit: da0c8b275564f814a53a5c19497669ae2d99538d
      https://github.com/llvm/llvm-project/commit/da0c8b275564f814a53a5c19497669ae2d99538d
  Author: Hau Hsu <hau.hsu at sifive.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M compiler-rt/lib/asan/asan_mapping.h
    M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_platform.h
    M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  Log Message:
  -----------
  [RISCV][sanitizer] Fix sanitizer support for different virtual memory layout (#66743)

This PR combines the following reviews from Phabricator:
* https://reviews.llvm.org/D139823
* https://reviews.llvm.org/D139827

Other related (and merged) reviews are:
* https://reviews.llvm.org/D152895
* https://reviews.llvm.org/D152991
* https://reviews.llvm.org/D152990

---------

Co-authored-by: Kito Cheng <kito.cheng at gmail.com>


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

  Changed paths:
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/include/string
    M libcxx/include/version
    M libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
    A libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  [libc++][strings] P2591R5: Concatenation of strings and string views (#88389)

Implemented: https://wg21.link/P2591R5
- https://eel.is/c++draft/string.syn
- https://eel.is/c++draft/string.op.plus

---------

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


  Commit: b7a6cca218aef4e18ce03a58561555ef0dee7231
      https://github.com/llvm/llvm-project/commit/b7a6cca218aef4e18ce03a58561555ef0dee7231
  Author: Xing Xue <xingxue at outlook.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    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] XFAIL sized deallocation tests for AIX, z/OS, and MinGW (#98960)

The sized deallocation test cases fail on AIX, z/OS, and MinGW because
they default to `-fno-sized-deallocation`. This patch XFAILs these test
cases for the affected targets. Once they change the default, we will
get `unexpectedly pass`.


  Commit: 6838c7afb2d2fa5eb642a4b5922ae55d97f7b344
      https://github.com/llvm/llvm-project/commit/6838c7afb2d2fa5eb642a4b5922ae55d97f7b344
  Author: Michael Kruse <llvm-project at meinersbur.de>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libclc/CMakeLists.txt
    M libclc/cmake/modules/AddLibclc.cmake

  Log Message:
  -----------
  [libclc] Revise IDE folder structure (#89746)

Reviewers of #89153 suggested to break up the patch into per-subproject
patches. This is the libclc part. See #89153 for the entire series and
motivation.

Update the folder titles for targets in the monorepository that have not
seen taken care of for some time. These are the folders that targets are
organized in Visual Studio and XCode
(`set_property(TARGET <target> PROPERTY FOLDER "<title>")`)
when using the respective CMake's IDE generator.

 * Ensure that every target is in a folder
 * Use a folder hierarchy with each LLVM subproject as a top-level folder
 * Use consistent folder names between subprojects
 * When using target-creating functions from AddLLVM.cmake, automatically
deduce the folder. This reduces the number of
`set_property`/`set_target_property`, but are still necessary when
`add_custom_target`, `add_executable`, `add_library`, etc. are used. A
LLVM_SUBPROJECT_TITLE definition is used for that in each subproject's
root CMakeLists.txt.


  Commit: c0084c36ed55ce78331aca7d0d10781a9f00b256
      https://github.com/llvm/llvm-project/commit/c0084c36ed55ce78331aca7d0d10781a9f00b256
  Author: Hideto Ueno <uenoku.tokotoko at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M mlir/lib/Bytecode/Reader/BytecodeReader.cpp

  Log Message:
  -----------
  [mlir][BytecodeReader] Const qualify *SectionReader, NFC (#99376)

`StringSectionReader`, `ResourceSectionReader` and
`PropertiesSectionReader` are immutable after `initialize` so this PR
adds const to their parsing functions and references in `AttrTypeReader`
and `DialectReader`.


  Commit: 7e6a73959ae97b1f9476a90290a492ba90cb950d
      https://github.com/llvm/llvm-project/commit/7e6a73959ae97b1f9476a90290a492ba90cb950d
  Author: Romaric Jodin <rjodin at chromium.org>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libclc/clspv/lib/math/fma.cl
    M libclc/generic/include/clc/convert.h
    M libclc/generic/include/math/clc_ldexp.h
    M libclc/generic/lib/clcmacro.h
    M libclc/generic/lib/gen_convert.py
    M libclc/generic/lib/math/acos.cl
    M libclc/generic/lib/math/acosh.cl
    M libclc/generic/lib/math/acospi.cl
    M libclc/generic/lib/math/asinh.cl
    M libclc/generic/lib/math/atan.cl
    M libclc/generic/lib/math/atan2.cl
    M libclc/generic/lib/math/atan2pi.cl
    M libclc/generic/lib/math/atanh.cl
    M libclc/generic/lib/math/atanpi.cl
    M libclc/generic/lib/math/cbrt.cl
    M libclc/generic/lib/math/clc_ldexp.cl
    M libclc/generic/lib/math/clc_pown.cl
    M libclc/generic/lib/math/clc_remquo.cl
    M libclc/generic/lib/math/clc_rootn.cl
    M libclc/generic/lib/math/clc_sw_binary.inc
    M libclc/generic/lib/math/clc_sw_unary.inc
    M libclc/generic/lib/math/cos.cl
    M libclc/generic/lib/math/cosh.cl
    M libclc/generic/lib/math/cospi.cl
    M libclc/generic/lib/math/exp.cl
    M libclc/generic/lib/math/expm1.cl
    M libclc/generic/lib/math/fdim.inc
    M libclc/generic/lib/math/frexp.inc
    M libclc/generic/lib/math/ilogb.cl
    M libclc/generic/lib/math/lgamma.cl
    M libclc/generic/lib/math/lgamma_r.cl
    M libclc/generic/lib/math/lgamma_r.inc
    M libclc/generic/lib/math/log10.cl
    M libclc/generic/lib/math/log1p.cl
    M libclc/generic/lib/math/log2.cl
    M libclc/generic/lib/math/log_base.h
    M libclc/generic/lib/math/logb.cl
    M libclc/generic/lib/math/pown.inc
    M libclc/generic/lib/math/remquo.inc
    M libclc/generic/lib/math/rootn.inc
    M libclc/generic/lib/math/sin.cl
    M libclc/generic/lib/math/sincos.inc
    M libclc/generic/lib/math/sinh.cl
    M libclc/generic/lib/math/sinpi.cl
    M libclc/generic/lib/math/tanh.cl

  Log Message:
  -----------
  libclc: increase fp16 support (#98149)

Increase fp16 support to allow clspv to continue to be OpenCL compliant
following the update of the OpenCL-CTS adding more testing on math
functions and conversions with half.

Math functions are implemented by upscaling to fp32 and using the fp32
implementation. It garantees the accuracy required for half-precision
float-point by the CTS.


  Commit: 61a58633d541780e34e6d459af2631b3539d415f
      https://github.com/llvm/llvm-project/commit/61a58633d541780e34e6d459af2631b3539d415f
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/utils/gn/secondary/clang-tools-extra/clangd/BUILD.gn
    M llvm/utils/gn/secondary/clang-tools-extra/clangd/test/BUILD.gn
    M llvm/utils/gn/secondary/clang-tools-extra/clangd/unittests/BUILD.gn

  Log Message:
  -----------
  [gn build] Port fe6c24000f2d (clangd modules)


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

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

  Log Message:
  -----------
  [gn build] Port 5338bd3c8ac5


  Commit: 38f1dd2e45b854c1d682dd1d4481ef471e61fa10
      https://github.com/llvm/llvm-project/commit/38f1dd2e45b854c1d682dd1d4481ef471e61fa10
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libc/config/gpu/entrypoints.txt
    M libc/docs/gpu/support.rst

  Log Message:
  -----------
  [libc] Remove `strerror_r` on the GPU for now

Summary:
This function has conflicting definitions, which makes it difficult to
use in an offloading setting. Disable it for now.


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

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx2c.rst
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/include/__iterator/concepts.h
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_binary_predicate.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_equivalence_relation.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_strict_weak_order.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_unary_predicate.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirectly_regular_unary_invocable.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirectly_unary_invocable.compile.pass.cpp
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  [libc++][iterator][ranges] P2997R1: Removing the common reference requirement from the indirectly invocable concepts (#98817)

Implements as DR against C++20: https://wg21.link/P2997R1

References:
- https://eel.is/c++draft/indirectcallable.indirectinvocable
- https://eel.is/c++draft/version.syn#header:%3cversion%3e

---------

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


  Commit: b634e057ddecc41dce046887d0f0854fed305374
      https://github.com/llvm/llvm-project/commit/b634e057ddecc41dce046887d0f0854fed305374
  Author: Han-Kuan Chen <hankuan.chen at sifive.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/revec-fix-99411.ll

  Log Message:
  -----------
  [SLP][REVEC] Fix false assumption of the source for castToScalarTyElem. (#99424)

The argument V may come from adjustExtracts, which is the vector operand
of ExtractElementInst. In addition, it is not existed in getTreeEntry.

The vector operand of ExtractElementInst may have a type of <1 x Ty>,
ensuring that the number of elements in ScalarTy and VecTy are equal.

reference: https://github.com/llvm/llvm-project/issues/99411


  Commit: 68cb903594cd03dd708ef70c85c10807a6deefb5
      https://github.com/llvm/llvm-project/commit/68cb903594cd03dd708ef70c85c10807a6deefb5
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/vselect-avx.ll

  Log Message:
  -----------
  Revert d43ec97de081755990264049eba09cb7c83cb321 "[X86] combineConcatVectorOps - IsConcatFree - peek through bitcasts to find inplace subvectors."

I've been given reports of this causing infinite loops downstream - I'm going to revert for now while I investigate.


  Commit: 8badfccefeaff2c05ef71a8d2fd6d803a1b4e129
      https://github.com/llvm/llvm-project/commit/8badfccefeaff2c05ef71a8d2fd6d803a1b4e129
  Author: jameshu15869 <55058507+jameshu15869 at users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libc/benchmarks/gpu/CMakeLists.txt
    M libc/benchmarks/gpu/LibcGpuBenchmark.cpp
    M libc/benchmarks/gpu/LibcGpuBenchmark.h
    M libc/benchmarks/gpu/src/ctype/CMakeLists.txt
    M libc/benchmarks/gpu/src/ctype/isalnum_benchmark.cpp

  Log Message:
  -----------
  [libc] Add Multithreaded GPU Benchmarks (#98964)

This PR runs benchmarks on a 32 threads (A single warp on NVPTX) by
default, adding the option for single threaded benchmarks. We can
specify that a benchmark should be run on a single thread using the
`SINGLE_THREADED_BENCHMARK()` macro.

I chose to use a flag here so that other options could be added in the
future.


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

  Changed paths:
    M clang/lib/Sema/ParsedAttr.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/test/C/C2y/n3254.c
    M clang/test/Sema/alignas.c

  Log Message:
  -----------
  Fix a regression with alignas on structure members in C (#98642)

This was a 19.x regression and thus has no release note.

Fixes #95032


  Commit: c5f402f95d9617882b26d5799f503383b895c2e4
      https://github.com/llvm/llvm-project/commit/c5f402f95d9617882b26d5799f503383b895c2e4
  Author: Egor Zhdan <e_zhdan at apple.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/APINotes/APINotesFormat.h
    M clang/lib/APINotes/APINotesReader.cpp
    M clang/lib/APINotes/APINotesWriter.cpp

  Log Message:
  -----------
  [APINotes] Reduce memory footprint for Obj-C/C++ contexts

We were storing extraneous data for certain Objective-C/C++ entities.
Specifically, for declarations that can be nested in another context
(such as functions) we were storing the kind of the parent context in
addition to its ID. The ID is always sufficient.

This removes the logically incorrect usages of `ContextTableKey` that
don't actually describe a context, but rather describe a single
declaration. This introduces `SingleDeclTableKey` to store that kind of
entities in a more compact and reasonable way.


  Commit: 39bb244a16e59cb8f2080f96e9de599007762635
      https://github.com/llvm/llvm-project/commit/39bb244a16e59cb8f2080f96e9de599007762635
  Author: Han-Kuan Chen <hankuan.chen at sifive.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  [SLP][REVEC] Make Instruction::Call support vector instructions. (#99317)


  Commit: 27ec379f636ceac655faa290e78735ea98e02cbf
      https://github.com/llvm/llvm-project/commit/27ec379f636ceac655faa290e78735ea98e02cbf
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIInstructions.td
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.inverse.ballot.i32.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.inverse.ballot.i64.ll

  Log Message:
  -----------
  [AMDGPU] Do not select llvm.amdgcn.inverse.ballot with wrong wave size (#99470)

This produces a "cannot select" error, instead of failing later with an
illegal vgpr to sgpr copy.


  Commit: 7f2bd53b142ec147da9f8bd98775be1d14457ba1
      https://github.com/llvm/llvm-project/commit/7f2bd53b142ec147da9f8bd98775be1d14457ba1
  Author: Robin Caloudis <robin.caloudis at gmx.de>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libcxx/include/__math/traits.h
    M libcxx/test/std/numerics/c.math/isfinite.pass.cpp

  Log Message:
  -----------
  [libc++] Fix acceptance of convertible-to-{float,double,long double} in std::isfinite() (#98841)

Closes https://github.com/llvm/llvm-project/issues/98816.


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

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [X86] Add getGFNICtrlMask helper for the constant creation and bitcasting. NFC.


  Commit: fde51e24b593087a15494203ef68a77bb4f12115
      https://github.com/llvm/llvm-project/commit/fde51e24b593087a15494203ef68a77bb4f12115
  Author: Janet Cobb <jason.e.cobb at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  [libc++][test] Raise a useful error when no -std=c++NN flag is found to work (#99423)

Recently ran into an issue with symptoms very similar to
https://github.com/llvm/llvm-project/issues/56816 while attempting to
build and test libc++ on NixOS. The error message is cryptic (just
`StopIteration`), which was very annoying to track down. The error at
least saying "hey your compiler's bad" would have saved me quite a bit
of time figuring out the issue.


  Commit: 3eb666e292baf87c969be733de858b0cb7ead13f
      https://github.com/llvm/llvm-project/commit/3eb666e292baf87c969be733de858b0cb7ead13f
  Author: Krasimir Georgiev <krasimir at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  update bazel for a6d2da8b9d7be19816dd4c76b02016c19618c1be


  Commit: fc65a9603bf16ed1fe98fbee6933bca9e2083384
      https://github.com/llvm/llvm-project/commit/fc65a9603bf16ed1fe98fbee6933bca9e2083384
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/AST/Interp/Interp.cpp
    M clang/lib/AST/Interp/Interp.h
    M clang/test/AST/Interp/new-delete.cpp

  Log Message:
  -----------
  [clang][Interp] Run record destructors when deallocating dynamic memory


  Commit: 4dfa75c663e53be1d548b340e562dd5c4e87fe65
      https://github.com/llvm/llvm-project/commit/4dfa75c663e53be1d548b340e562dd5c4e87fe65
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__type_traits/is_enum.h
    R libcxx/include/__type_traits/is_scoped_enum.h
    M libcxx/include/module.modulemap
    M libcxx/include/type_traits

  Log Message:
  -----------
  [libc++] Merge is_scoped_enum.h into is_enum.h (#99458)


  Commit: 561246e90282a72b5b0c437cbbdae171526aad8f
      https://github.com/llvm/llvm-project/commit/561246e90282a72b5b0c437cbbdae171526aad8f
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libcxx/include/__type_traits/remove_cv.h

  Log Message:
  -----------
  [libc++][NFC] Remove wrong #endif comment


  Commit: 15495b8cd4051d05c1b88c919e7c509a8ea4056a
      https://github.com/llvm/llvm-project/commit/15495b8cd4051d05c1b88c919e7c509a8ea4056a
  Author: Johannes Reifferscheid <jreiffers at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M mlir/test/CAPI/rewrite.c

  Log Message:
  -----------
  [mlir] Fix unused-variable warning w/o assertions. (#99489)


  Commit: d00b35534d068510025d22e5bd9c4fdac45757fb
      https://github.com/llvm/llvm-project/commit/d00b35534d068510025d22e5bd9c4fdac45757fb
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/AST/Interp/Interp.cpp
    M clang/lib/AST/Interp/Interp.h
    A clang/test/AST/Interp/cxx2a.cpp

  Log Message:
  -----------
  [clang][Interp] Fix CheckCallable for undefined-and-not-constexpr fns


  Commit: d9cb65ff483a2f79d0d3f0239796abe829372e52
      https://github.com/llvm/llvm-project/commit/d9cb65ff483a2f79d0d3f0239796abe829372e52
  Author: Romaric Jodin <rjodin at chromium.org>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libclc/generic/include/clc/convert.h
    M libclc/generic/lib/gen_convert.py

  Log Message:
  -----------
  libclc: fix convert with half (#99481)

Fix following update of libclc introducing more fp16 support:
https://github.com/llvm/llvm-project/commit/7e6a73959ae97b1f9476a90290a492ba90cb950d


  Commit: ad7aeb0ff58ebd29f68adb85c64e8010639e2a76
      https://github.com/llvm/llvm-project/commit/ad7aeb0ff58ebd29f68adb85c64e8010639e2a76
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/AST/Interp/Interp.cpp
    M clang/lib/AST/Interp/Interp.h
    R clang/test/AST/Interp/cxx2a.cpp

  Log Message:
  -----------
  Revert "[clang][Interp] Fix CheckCallable for undefined-and-not-constexpr fns"

This reverts commit d00b35534d068510025d22e5bd9c4fdac45757fb.

This breaks the ms-constexpr test:
https://lab.llvm.org/buildbot/#/builders/144/builds/2605


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

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

  Log Message:
  -----------
  [gn build] Port 4dfa75c663e5


  Commit: 684a61506a3ddc943b8baef1d14c96bbf82e6c04
      https://github.com/llvm/llvm-project/commit/684a61506a3ddc943b8baef1d14c96bbf82e6c04
  Author: A. Jiang <de34 at live.cn>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/ReleaseNotes/20.rst
    M libcxx/include/__chrono/weekday.h
    M libcxx/test/std/time/time.cal/time.cal.weekday/time.cal.weekday.nonmembers/comparisons.pass.cpp

  Log Message:
  -----------
  [libc++][chrono] Remove non-standard relational operators for `std::chrono::weekday` (#98730)

These operators are absent in https://eel.is/c++draft/time.syn and a note in
https://eel.is/c++draft/time.cal.wd.overview#1 indicates that the absence is 
intended.

This patch removes the undocumented extension, while providing a migration path
for vendors by providing the `_LIBCPP_ENABLE_REMOVED_WEEKDAY_RELATIONAL_OPERATORS`
macro. This macro will be honored for the LLVM 19 release and will be removed after 
that, at which point allocator will be removed unconditionally.


  Commit: 078198f310d55925ccd9e1aa5b6ff4af3b36bbc7
      https://github.com/llvm/llvm-project/commit/078198f310d55925ccd9e1aa5b6ff4af3b36bbc7
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
    M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h
    M llvm/test/DebugInfo/MIR/X86/live-debug-values-fragments.mir
    M llvm/unittests/CodeGen/InstrRefLDVTest.cpp

  Log Message:
  -----------
  [DebugInfo][InstrRef] Index DebugVariables and some DILocations (#99318)

A lot of time in LiveDebugValues is spent computing DenseMap keys for
DebugVariables, and they're made up of three pointers, so are large.
This patch installs an index for them: for the SSA and value-to-location
mapping parts of InstrRefBasedLDV we don't need to access things like
the variable declaration or the inlining site, so just use a uint32_t
identifier for each variable fragment that's tracked. The compile-time
performance improvements are substantial (almost 0.4% on the tracker).

About 80% of this patch is just replacing DebugVariable references with
DebugVariableIDs instead, however there are some larger consequences. We
spend lots of time fetching DILocations when emitting DBG_VALUE
instructions, so index those with the DebugVariables: this means all
DILocations on all new DBG_VALUE instructions will normalise to the
first-seen DILocation for the variable (which should be fine).

We also used to keep an ordering of when each variable was seen first in
a DBG_* instruction, in the AllVarsNumbering collection, so that we can
emit new DBG_* instructions in a stable order. We can hang this off the
DebugVariable index instead, so AllVarsNumbering is deleted.

Finally, rather than ordering by AllVarsNumbering just before DBG_*
instructions are linked into the output MIR, store instructions along
with their DebugVariableID, so that they can be sorted by that instead.


  Commit: 50b657c8f655a86826e94131729b0f13a58acbca
      https://github.com/llvm/llvm-project/commit/50b657c8f655a86826e94131729b0f13a58acbca
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
    M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h
    M llvm/test/DebugInfo/MIR/X86/live-debug-values-fragments.mir
    M llvm/unittests/CodeGen/InstrRefLDVTest.cpp

  Log Message:
  -----------
  Revert "[DebugInfo][InstrRef] Index DebugVariables and some DILocations (#99318)"

This reverts commit 078198f310d55925ccd9e1aa5b6ff4af3b36bbc7.

Buildbots unhappy, I must have fluffed it


  Commit: 1a80153ba91f1e623c042fa0ae1ee5ab67087c0e
      https://github.com/llvm/llvm-project/commit/1a80153ba91f1e623c042fa0ae1ee5ab67087c0e
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  [LV][NFC]Simplify the structure and improve message of safe distance analysis for scalable vectorization. (#99487)


  Commit: 92f9f014015554c5dd18df4699765cc42853a04d
      https://github.com/llvm/llvm-project/commit/92f9f014015554c5dd18df4699765cc42853a04d
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/bitreverse.ll
    M llvm/test/CodeGen/X86/gfni-funnel-shifts.ll
    M llvm/test/CodeGen/X86/gfni-rotates.ll
    M llvm/test/CodeGen/X86/gfni-shifts.ll
    M llvm/test/CodeGen/X86/vector-bitreverse.ll

  Log Message:
  -----------
  [X86] getGFNICtrlMask - create a vXi8 mask instead of a bitcasted vXi64 mask.

Helps avoid some missed load-folds by stripping away bitcasts and make it easier to grok the GF2P8AFFINEQB masks.


  Commit: 9fae0c6f9c05915a5daac5b368258a40e1fab237
      https://github.com/llvm/llvm-project/commit/9fae0c6f9c05915a5daac5b368258a40e1fab237
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/AST/Interp/Interp.cpp
    M clang/lib/AST/Interp/Interp.h
    A clang/test/AST/Interp/cxx2a.cpp

  Log Message:
  -----------
  Reapply "[clang][Interp] Fix CheckCallable for undefined-and-not-constexpr fns"

This reverts commit ad7aeb0ff58ebd29f68adb85c64e8010639e2a76.


  Commit: cd495d2cdd84a22026a115c7e9923c27b196732e
      https://github.com/llvm/llvm-project/commit/cd495d2cdd84a22026a115c7e9923c27b196732e
  Author: Utkarsh Saxena <usx at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    A a-abfdec1d.o.tmp
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Driver/Options.td
    M clang/include/clang/Frontend/FrontendOptions.h
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Sema/SemaTemplateInstantiate.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/test/Driver/ftime-trace-sections.cpp
    M clang/test/Driver/ftime-trace.cpp
    M clang/tools/driver/cc1_main.cpp
    M clang/unittests/Support/TimeProfilerTest.cpp
    M llvm/include/llvm/Support/TimeProfiler.h
    M llvm/lib/Support/TimeProfiler.cpp

  Log Message:
  -----------
  Add source file name for template instantiations in -ftime-trace (#98320)

This is helpful in identifying file and location which contain the particular template declaration.


  Commit: 1cc107234969c33a7036b9694da57f4223e3e4d7
      https://github.com/llvm/llvm-project/commit/1cc107234969c33a7036b9694da57f4223e3e4d7
  Author: Thorsten Schütt <schuett at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/docs/GlobalISel/GenericOpcode.rst
    M llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
    M llvm/include/llvm/Support/TargetOpcodes.def
    M llvm/include/llvm/Target/GenericOpcodes.td
    M llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
    M llvm/lib/CodeGen/MachineVerifier.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
    A llvm/test/MachineVerifier/test_uscmp.mir
    M llvm/test/TableGen/GlobalISelCombinerEmitter/match-table-cxx.td
    M llvm/test/TableGen/GlobalISelEmitter.td

  Log Message:
  -----------
  [GlobalIsel] Add G_SCMP and G_UCMP instructions (#98894)

https://github.com/llvm/llvm-project/pull/83227


  Commit: 47b63cd508f993d9fab2acfbf0dcf86cdc8c5335
      https://github.com/llvm/llvm-project/commit/47b63cd508f993d9fab2acfbf0dcf86cdc8c5335
  Author: Daniel Bertalan <dani at danielbertalan.dev>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M lld/MachO/Config.h
    M lld/MachO/Driver.cpp
    M lld/MachO/InputFiles.cpp
    M lld/MachO/Options.td
    A lld/test/MachO/reproduce-thin-archive-objc.s
    M lld/test/MachO/reproduce-thin-archives.s

  Log Message:
  -----------
  [lld-macho] Save all thin archive members in repro tarball (#97169)

Previously, we only saved those members of thin archives into a repro
file that were actually used during linking. However, -ObjC handling
requires us to inspect all members, even those that don't end up being
loaded.

We weren't handling missing members correctly and crashed with an
"unhandled `Error`" failure in LLVM_ENABLE_ABI_BREAKING_CHECKS builds.

To fix this, we now eagerly load all object files and warn when
encountering missing members (in the instances where it wasn't a hard
error before). To avoid having to patch out the checks when dealing
with older repro files, the `--no-warn-thin-archive-missing-members`
flag is added as an escape hatch.


  Commit: c0c4ad5d9a6e05e0b1f5f98ce2e08d479b281be8
      https://github.com/llvm/llvm-project/commit/c0c4ad5d9a6e05e0b1f5f98ce2e08d479b281be8
  Author: Jon Roelofs <jonathan_roelofs at apple.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/test/Preprocessor/aarch64-target-features.c

  Log Message:
  -----------
  [clang][test] Split AArch64 target feature checks across multiple lines. NFC (#99365)

Whenever these tests change, it's difficult to see why they don't match,
and the diff after you've fixed them isn't easy to grok. By splitting
them with a sed pipe, we fix both issues simultaneously.


  Commit: 257a0d535ac052a4eb1bb847605eff1eb169087d
      https://github.com/llvm/llvm-project/commit/257a0d535ac052a4eb1bb847605eff1eb169087d
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/AST/Interp/Compiler.cpp
    M clang/lib/AST/Interp/Interp.cpp
    M clang/lib/AST/Interp/Interp.h
    M clang/lib/AST/Interp/Opcodes.td
    M clang/test/AST/Interp/cxx11.cpp

  Log Message:
  -----------
  [clang][Interp] Diagnose out-of-range casts to enum types


  Commit: 7d74ca9513a3fa53b482230c20b1977a1f3d121b
      https://github.com/llvm/llvm-project/commit/7d74ca9513a3fa53b482230c20b1977a1f3d121b
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/ValueLattice.h
    M llvm/test/Transforms/CorrelatedValuePropagation/vectors.ll
    M llvm/test/Transforms/SCCP/phis.ll

  Log Message:
  -----------
  [ValueLattice] Support constant vectors in mergeIn() (#99466)

This is a followup to vector support in LVI/CVP/SCCP. In mergeIn(), if
one of the operands is a vector of integer constant, we should try to
convert it into a constant range, in case that allows performing a range
union to something better than overdefined.


  Commit: 9711f6bda1363eb3b8850ee67958ab90357db006
      https://github.com/llvm/llvm-project/commit/9711f6bda1363eb3b8850ee67958ab90357db006
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/test/Transforms/GVN/condprop.ll

  Log Message:
  -----------
  [GVN] Add additional tests for pointer replacement (NFC)


  Commit: f6b06b42a3f4f59ff33da20d42358f2768eaf726
      https://github.com/llvm/llvm-project/commit/f6b06b42a3f4f59ff33da20d42358f2768eaf726
  Author: Akira Hatanaka <ahatanak at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/CodeGen/Address.h
    M clang/lib/CodeGen/CGBuilder.h
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CGExprScalar.cpp
    M clang/lib/CodeGen/CGPointerAuth.cpp
    M clang/lib/CodeGen/CGValue.h
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/lib/Headers/ptrauth.h
    A clang/test/CodeGen/ptrauth-function-lvalue-cast-disc.c
    A clang/test/CodeGen/ptrauth-function-type-discriminator-cast.c

  Log Message:
  -----------
  [PAC] Implement function pointer re-signing (#98847)

Re-signing occurs when function type discrimination is enabled and a
function pointer is converted to another function pointer type that
requires signing using a different discriminator. A function pointer is
re-signed using discriminator zero when it's converted to a pointer to a
non-function type such as `void*`.

---------

Co-authored-by: Ahmed Bougacha <ahmed at bougacha.org>
Co-authored-by: John McCall <rjmccall at apple.com>


  Commit: 676efd0ffb717215c752f200fe14163732290dcc
      https://github.com/llvm/llvm-project/commit/676efd0ffb717215c752f200fe14163732290dcc
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
    M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h
    M llvm/test/DebugInfo/MIR/X86/live-debug-values-fragments.mir
    M llvm/unittests/CodeGen/InstrRefLDVTest.cpp

  Log Message:
  -----------
  Reapply 078198f310d5 "Index DebugVariables and some DILocations"

Now revised to actually make the unit test compile, which I'd been
ignoring. No actual functional change, it's a type difference.
Original commit message follows.

[DebugInfo][InstrRef] Index DebugVariables and some DILocations (#99318)

A lot of time in LiveDebugValues is spent computing DenseMap keys for
DebugVariables, and they're made up of three pointers, so are large.
This patch installs an index for them: for the SSA and value-to-location
mapping parts of InstrRefBasedLDV we don't need to access things like
the variable declaration or the inlining site, so just use a uint32_t
identifier for each variable fragment that's tracked. The compile-time
performance improvements are substantial (almost 0.4% on the tracker).

About 80% of this patch is just replacing DebugVariable references with
DebugVariableIDs instead, however there are some larger consequences. We
spend lots of time fetching DILocations when emitting DBG_VALUE
instructions, so index those with the DebugVariables: this means all
DILocations on all new DBG_VALUE instructions will normalise to the
first-seen DILocation for the variable (which should be fine).

We also used to keep an ordering of when each variable was seen first in
a DBG_* instruction, in the AllVarsNumbering collection, so that we can
emit new DBG_* instructions in a stable order. We can hang this off the
DebugVariable index instead, so AllVarsNumbering is deleted.

Finally, rather than ordering by AllVarsNumbering just before DBG_*
instructions are linked into the output MIR, store instructions along
with their DebugVariableID, so that they can be sorted by that instead.


  Commit: 497ea1d84951626dea5bf644fef2d99e145e21ac
      https://github.com/llvm/llvm-project/commit/497ea1d84951626dea5bf644fef2d99e145e21ac
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  [DAG] tryToFoldExtendSelectLoad - reuse existing SDLoc. NFC.


  Commit: 2bdcfbe62cb9a08df4b58a17d44be0a3082df053
      https://github.com/llvm/llvm-project/commit/2bdcfbe62cb9a08df4b58a17d44be0a3082df053
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/test/CXX/drs/cwg24xx.cpp
    M clang/test/SemaCXX/cxx-deprecated.cpp

  Log Message:
  -----------
  [clang] Fix crash in concept deprecation (#98622)

There is a gap between `getAs<AutoType>()` and
`getConstrainedAutoType()` that the original patch #92295 was not aware
of.

Fixes #98164


  Commit: a2d309912a2863dfe7286ffde67b968e8c720b07
      https://github.com/llvm/llvm-project/commit/a2d309912a2863dfe7286ffde67b968e8c720b07
  Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/CodeGen/CodeGenModule.cpp
    A clang/test/CodeGen/aarch64-fmv-resolver-emission.c
    M clang/test/CodeGen/aarch64-mixed-target-attributes.c
    M clang/test/CodeGen/attr-target-clones-aarch64.c
    M clang/test/CodeGen/attr-target-version.c
    A clang/test/CodeGenCXX/aarch64-fmv-resolver-emission.cpp
    M clang/test/CodeGenCXX/attr-target-clones-aarch64.cpp
    M clang/test/CodeGenCXX/attr-target-version.cpp
    M clang/test/CodeGenCXX/fmv-namespace.cpp

  Log Message:
  -----------
  [FMV][AArch64] Do not emit ifunc resolver on use. (#97761)

It was raised in https://github.com/llvm/llvm-project/issues/81494 that
we are not generating correct code when there is no TU-local caller.

The suggestion was to emit a resolver:
* Whenever there is a use in the TU.
* When the TU has a definition of the default version.

See the comment for more details:

https://github.com/llvm/llvm-project/issues/81494#issuecomment-1985963497

This got addressed with https://github.com/llvm/llvm-project/pull/84405.

Generating a resolver on use means that we may end up with multiple
resolvers across different translation units. Those resolvers may not be
the same because each translation unit may contain different version
declarations (user's fault). Therefore the order of linking the final
image determines which of these weak symbols gets selected, resulting in
non consisted behavior. I am proposing to stop emitting a resolver on
use and only do so in the translation unit which contains the default
definition. This way we guarantee the existence of a single resolver.
Now, when a versioned function is used we want to emit a declaration of
the function symbol omitting the multiversion mangling.

I have added a requirement to ACLE mandating that all the function
versions are declared in the translation unit which contains the default
definition: https://github.com/ARM-software/acle/pull/328


  Commit: 9af3628ce7400a96205a4c4468867c3c11dd4b2f
      https://github.com/llvm/llvm-project/commit/9af3628ce7400a96205a4c4468867c3c11dd4b2f
  Author: Ulrich Weigand <ulrich.weigand at de.ibm.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/CodeGen/Targets/SystemZ.cpp
    M clang/test/CodeGen/SystemZ/systemz-abi.c

  Log Message:
  -----------
  [SystemZ] Fix transparent_union calling convention

The SystemZ ABI code was missing code to handle the transparent_union
extension.  Arguments of such types are specified to be passed like
the first member of the union, instead of according to the usual
ABI calling convention for aggregates.

This did not make much difference in practice as the SystemZ ABI
already specifies that 1-, 2-, 4- or 8-byte aggregates are passed
in registers.  However, there *is* a difference if the first member
of the transparent union is a scalar integer type smaller than word
size - if passed as a scalar, it needs to be zero- or sign-extended
to word size, while if passed as aggregate, it is not.

Fixed by adding code to handle transparent_union similar to what
is done on other targets.


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

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

  Log Message:
  -----------
  [RISCV] Use Root instead of N throughout the worklist loop in combineBinOp_VLToVWBinOp_VL. (#99416)

We were only checking that the node from the worklist is a supported
root. We weren't checking the strategy or any of its operands unless it
was the original node. For any other node, we just rechecked the
original node's strategy and operands.

The effect of this is that we don't do all of the transformations at
once. Instead, when there were multiple possible nodes to transform we
would only do them as each node was visited by the main DAG combine
worklist.

The test shows a case where we widened an instruction without removing
all of the uses of the vsext. The sext is shared by one node that shares
another sext node with the root another node that doesn't share anything
with the root.


  Commit: 342bd4b89355c27203b5f1abd8c43de6b01aba14
      https://github.com/llvm/llvm-project/commit/342bd4b89355c27203b5f1abd8c43de6b01aba14
  Author: Ben Langmuir <blangmuir at apple.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
    M llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp
    A llvm/test/ExecutionEngine/JITLink/x86-64/MachO_archive_two_objects_same_name.s

  Log Message:
  -----------
  [orc] Add the name of static archives to the name of their member objects (#99407)

Changes "MyObj.o" to "/path/to/libMyLib.a(MyObj.o)".

This allows us to differentiate between objects that have the same
basename but came from different archives. It also fixes a bug where if
two such objects were both linked and both have initializer sections
their initializer symbol would cause a duplicate symbol error.

rdar://131782514


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

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

  Log Message:
  -----------
  Revert "[RISCV] Use Root instead of N throughout the worklist loop in combineBinOp_VLToVWBinOp_VL. (#99416)"

This reverts commit 0c4023ae3b64c54ff51947e9776aee0e963c5635.

I messed up re-generating the test after the change.


  Commit: 0ce11a1a763d46e4afe678f3f94a1932c1dcfe5d
      https://github.com/llvm/llvm-project/commit/0ce11a1a763d46e4afe678f3f94a1932c1dcfe5d
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst

  Log Message:
  -----------
  [libc++] Add a release note about C++03 being frozen after LLVM 21 (#95894)

Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>


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

  Changed paths:
    M libcxx/include/string

  Log Message:
  -----------
  [libc++] Use char_traits::copy while inserting when possible (#97201)

This reduces the number of asm lines from 707 to 519 for this snippet:
```c++
auto test(std::string& str, const char* begin, const char* end) {
  str.insert(str.begin(), begin, end);
}
```
While that's not a performance metric, I've never seen a use of `memcpy`
result in a performance regression for any realistic usage.


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

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

  Log Message:
  -----------
  Re-commit "[RISCV] Use Root instead of N throughout the worklist loop in combineBinOp_VLToVWBinOp_VL. (#99416)"

With correct test update.

Original message:

We were only checking that the node from the worklist is a supported
root. We weren't checking the strategy or any of its operands unless it
was the original node. For any other node, we just rechecked the
original node's strategy and operands.

The effect of this is that we don't do all of the transformations at
once. Instead, when there were multiple possible nodes to transform we
would only do them as each node was visited by the main DAG combine
worklist.

The test shows a case where we widened an instruction without removing
all of the uses of the vsext. The sext is shared by one node that shares
another sext node with the root another node that doesn't share anything
with the root.


  Commit: c0c157a51832a2c7bbd09a449e33cc94d7747abf
      https://github.com/llvm/llvm-project/commit/c0c157a51832a2c7bbd09a449e33cc94d7747abf
  Author: Sayhaan Siddiqui <49014204+sayhaan at users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M bolt/include/bolt/Rewrite/DWARFRewriter.h
    M bolt/lib/Rewrite/DWARFRewriter.cpp

  Log Message:
  -----------
  [BOLT][DWARF][NFC] Remove DWO ranges base (#99284)

Removes getters and setters for DWO ranges base due to it not being
used.


  Commit: 8c8e0ddae96882247717b8ae1739abcf09726eab
      https://github.com/llvm/llvm-project/commit/8c8e0ddae96882247717b8ae1739abcf09726eab
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/test/AST/Interp/cxx11.cpp

  Log Message:
  -----------
  [clang][Interp][test] Use fixed triple in cxx11 test

This uses 'long', which has a different size on Windows. The test
I copied this from also uses x86_64-linux.

This should fix the bot:
https://lab.llvm.org/buildbot/#/builders/81/builds/853


  Commit: fe04aafe6c27f32ad4ba38e552d06d14431cb2de
      https://github.com/llvm/llvm-project/commit/fe04aafe6c27f32ad4ba38e552d06d14431cb2de
  Author: Uday Bondhugula <uday at polymagelabs.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Affine/Analysis/LoopAnalysis.h
    M mlir/lib/Dialect/Affine/Analysis/LoopAnalysis.cpp
    M mlir/lib/Dialect/Affine/Transforms/LoopTiling.cpp
    M mlir/test/Dialect/Affine/loop-tiling-validity.mlir

  Log Message:
  -----------
  [MLIR][Affine] NFC. Expose affine loop tiling validity utility (#99459)

Move the utility to check for the validity of tiling affine loop nests
to affine loop utils and expose for users outside the loop tiling pass
or downstream users.


  Commit: 06ab30b57450694818dbb649dec2a687f44df7f4
      https://github.com/llvm/llvm-project/commit/06ab30b57450694818dbb649dec2a687f44df7f4
  Author: Changpeng Fang <changpeng.fang at amd.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
    M llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll

  Log Message:
  -----------
  [AMDGPU] Constant folding of llvm.amdgcn.trig.preop (#98562)

If the parameters(the input and segment select) coming in to
amdgcn.trig.preop intrinsic are compile time constants, we pre-compute
the output of amdgcn.trig.preop on the CPU and replaces the uses with
the computed constant.

This work extends the patch https://reviews.llvm.org/D120150 to make it
a complete coverage.

For the segment select, only src1[4:0] are used. A segment select is
invalid if we are selecting the 53-bit segment beyond the [1200:0] range
of the 2/PI table. 0 is returned when a segment select is not valid.


  Commit: 371777695fe1b5407753ef2232d1b73014d3e501
      https://github.com/llvm/llvm-project/commit/371777695fe1b5407753ef2232d1b73014d3e501
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  [LV] Assert uniform recipes don't get predicated for when vectorizing.

Add assertion ensuring invariant on construction, split off as suggested
from https://github.com/llvm/llvm-project/pull/98892.


  Commit: d06b55e7934635049d55efff2dc9e745f911240c
      https://github.com/llvm/llvm-project/commit/d06b55e7934635049d55efff2dc9e745f911240c
  Author: Michael Klemm <michael.klemm at amd.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M flang/runtime/misc-intrinsic.cpp

  Log Message:
  -----------
  [Flang][Runtime] Improve runtime implementation of the RENAME intrinsic (#99445)

The RENAME implementation in the Fortran runtime had a few glitches that
had to be addressed:

- Wrong usage of RTDECL (fixed)
- Issue fatal error when trying to use RENAME on a target device (fixed)


  Commit: 3d69bbc35158822c9e1371b5c37a24213a8a81fc
      https://github.com/llvm/llvm-project/commit/3d69bbc35158822c9e1371b5c37a24213a8a81fc
  Author: Dominik Steenken <dost at de.ibm.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Target/SystemZ/SystemZInstrHFP.td
    M llvm/test/MC/SystemZ/insn-bad.s
    M llvm/test/MC/SystemZ/insn-good.s

  Log Message:
  -----------
  Allow MAY(R)? to accept the high components of register pairs (#98606)

The HFP instructions `MAY` and `MAYR`, unlike any other floating point
instructions, allow the specification of a 128bit register pair by
either the lower-numbered or the higher-numbered component register. In
order to support this, but change as little about codegen as possible,
the existing `MAY(R)?` definition is made `CodeGenOnly`, while a copy is
provided for the assembler and disassembler, which simply accepts a
64bit floating point register in place of the 128bit one. This copy is
stripped of its pattern to prevent codegen from using it.
The corresponding assembly tests that checked the register specification
rule that this commit removes from `MAY(R)?` have also been removed.


  Commit: 574dbe3e9cdaf94b390015a53b76f87bdaf68aae
      https://github.com/llvm/llvm-project/commit/574dbe3e9cdaf94b390015a53b76f87bdaf68aae
  Author: Christopher Di Bella <cjdb at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp

  Log Message:
  -----------
  suppresses unused variable warning (#99526)


  Commit: 74e51e3efe1d4c79c1b7914c3ead19832e8cc1fb
      https://github.com/llvm/llvm-project/commit/74e51e3efe1d4c79c1b7914c3ead19832e8cc1fb
  Author: Han-Kuan Chen <hankuan.chen at sifive.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    A llvm/test/Transforms/SLPVectorizer/X86/revec-fix-99411.ll
    R llvm/test/Transforms/SLPVectorizer/revec-fix-99411.ll

  Log Message:
  -----------
  Move the test to the correct folder. A test specified for a target
should remain in its designated folder.


  Commit: 13a8f8d51962b59949496c460ea0b8ad22ae908a
      https://github.com/llvm/llvm-project/commit/13a8f8d51962b59949496c460ea0b8ad22ae908a
  Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Utils/BuildLibCalls.cpp
    M llvm/test/Transforms/InferFunctionAttrs/annotate.ll

  Log Message:
  -----------
  [InferAttrs] Set attributes for `remainder` (#99521)

Fixes one of the issues in
https://github.com/llvm/llvm-project/issues/99497.


  Commit: 1c55586e9a475a09b7d769e7fc9a254e7150c972
      https://github.com/llvm/llvm-project/commit/1c55586e9a475a09b7d769e7fc9a254e7150c972
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/Lex/Preprocessor.cpp

  Log Message:
  -----------
  [clang] Fix typo in comments


  Commit: ce8c43fe274f3f090cad2342af6032176efb846f
      https://github.com/llvm/llvm-project/commit/ce8c43fe274f3f090cad2342af6032176efb846f
  Author: Lei Wang <wlei at fb.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  Fix assertion of null pointer samples in inline replay mode (#99378)

Fix https://github.com/llvm/llvm-project/issues/97108. In inline replay
mode, `CalleeSamples` may be null and the order doesn't matter.


  Commit: b2dcf62c514d3c9c143c85bd029d22098b92c38d
      https://github.com/llvm/llvm-project/commit/b2dcf62c514d3c9c143c85bd029d22098b92c38d
  Author: Meredith Julian <35236176+mjulian31 at users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
    A llvm/test/CodeGen/NVPTX/i1-ext-load.ll
    A llvm/test/CodeGen/NVPTX/i1-load-lower.ll

  Log Message:
  -----------
  [NVPTX] fix emission for i1 load and extload (#99392)

Currently, an illegal 2-byte load from a 1-byte global variable is being
generated. This change instead generates a 1-byte load and zero-extends
it to i16 register. This was always the intended behavior of the
function.

In addition, an i1 ext load of any kind needs to be promoted. A missing
setLoadExtAction for ISD::EXTLOAD was causing an "Unhandled source type"
unreachable due to an illegal i1 ext load during ISelDAGtoDAG (see below
bug).

Bug https://github.com/llvm/llvm-project/issues/98033.


  Commit: 04bcd74df73af6fed16bfd0d6784fc0aec582bc0
      https://github.com/llvm/llvm-project/commit/04bcd74df73af6fed16bfd0d6784fc0aec582bc0
  Author: Utkarsh Saxena <usx at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    R a-abfdec1d.o.tmp
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Driver/Options.td
    M clang/include/clang/Frontend/FrontendOptions.h
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Sema/SemaTemplateInstantiate.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/test/Driver/ftime-trace-sections.cpp
    M clang/test/Driver/ftime-trace.cpp
    M clang/tools/driver/cc1_main.cpp
    M clang/unittests/Support/TimeProfilerTest.cpp
    M llvm/include/llvm/Support/TimeProfiler.h
    M llvm/lib/Support/TimeProfiler.cpp

  Log Message:
  -----------
  Revert "Add source file name for template instantiations in -ftime-trace" (#99534)

Reverts llvm/llvm-project#98320

Breaks windows tests:

```
Step 8 (test-build-unified-tree-check-clang-unit) failure: test (failure)
******************** TEST 'Clang-Unit :: Support/./ClangSupportTests.exe/1/3' FAILED ********************
Script(shard):
--
GTEST_OUTPUT=json:C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\build\tools\clang\unittests\Support\.\ClangSupportTests.exe-Clang-Unit-4296-1-3.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=3 GTEST_SHARD_INDEX=1 C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\build\tools\clang\unittests\Support\.\ClangSupportTests.exe
--

Script:
--
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\build\tools\clang\unittests\Support\.\ClangSupportTests.exe --gtest_filter=TimeProfilerTest.TemplateInstantiations
--
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Support\TimeProfilerTest.cpp(278): error: Expected equality of these values:
  R"(
Frontend
| ParseFunctionDefinition (fooB)
| ParseFunctionDefinition (fooMTA)
| ParseFunctionDefinition (fooA)
| ParseDeclarationOrFunctionDefinition (test.cc:3:5)
| | ParseFunctionDefinition (user)
| PerformPendingInstantiations
| | InstantiateFunction (fooA<int>, ./a.h:7)
| | | InstantiateFunction (fooB<int>, ./b.h:3)
| | | InstantiateFunction (fooMTA<int>, ./a.h:4)
)"
    Which is: "\nFrontend\n| ParseFunctionDefinition (fooB)\n| ParseFunctionDefinition (fooMTA)\n| ParseFunctionDefinition (fooA)\n| ParseDeclarationOrFunctionDefinition (test.cc:3:5)\n| | ParseFunctionDefinition (user)\n| PerformPendingInstantiations\n| | InstantiateFunction (fooA<int>, ./a.h:7)\n| | | InstantiateFunction (fooB<int>, ./b.h:3)\n| | | InstantiateFunction (fooMTA<int>, ./a.h:4)\n"
  buildTraceGraph(Json)
    Which is: "\nFrontend\n| ParseFunctionDefinition (fooB)\n| ParseFunctionDefinition (fooMTA)\n| ParseFunctionDefinition (fooA)\n| ParseDeclarationOrFunctionDefinition (test.cc:3:5)\n| | ParseFunctionDefinition (user)\n| PerformPendingInstantiations\n| | InstantiateFunction (fooA<int>, .\\a.h:7)\n| | | InstantiateFunction (fooB<int>, .\\b.h:3)\n| | | InstantiateFunction (fooMTA<int>, .\\a.h:4)\n"
With diff:
@@ -7,5 +7,5 @@
 | | ParseFunctionDefinition (user)
 | PerformPendingInstantiations
-| | InstantiateFunction (fooA<int>, ./a.h:7)
-| | | InstantiateFunction (fooB<int>, ./b.h:3)
-| | | InstantiateFunction (fooMTA<int>, ./a.h:4)\n
+| | InstantiateFunction (fooA<int>, .\\a.h:7)
+| | | InstantiateFunction (fooB<int>, .\\b.h:3)
+| | | InstantiateFunction (fooMTA<int>, .\\a.h:4)\n



C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Support\TimeProfilerTest.cpp:278
Expected equality of these values:
  R"(
Frontend
| ParseFunctionDefinition (fooB)
| ParseFunctionDefinition (fooMTA)
| ParseFunctionDefinition (fooA)
| ParseDeclarationOrFunctionDefinition (test.cc:3:5)
| | ParseFunctionDefinition (user)
| PerformPendingInstantiations
| | InstantiateFunction (fooA<int>, ./a.h:7)

```


  Commit: 9fb049c8c6a77026fa75a8d36b386a7f5a60613a
      https://github.com/llvm/llvm-project/commit/9fb049c8c6a77026fa75a8d36b386a7f5a60613a
  Author: OverMighty <its.overmighty at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/docs/math/index.rst
    M libc/spec/llvm_libc_ext.td
    M libc/spec/stdc.td
    M libc/src/__support/FPUtil/generic/CMakeLists.txt
    A libc/src/__support/FPUtil/generic/mul.h
    M libc/src/math/CMakeLists.txt
    A libc/src/math/dmulf128.h
    A libc/src/math/dmull.h
    A libc/src/math/f16mul.h
    A libc/src/math/f16mulf.h
    A libc/src/math/f16mulf128.h
    A libc/src/math/f16mull.h
    A libc/src/math/fmulf128.h
    A libc/src/math/fmull.h
    M libc/src/math/generic/CMakeLists.txt
    A libc/src/math/generic/dmulf128.cpp
    A libc/src/math/generic/dmull.cpp
    A libc/src/math/generic/f16mul.cpp
    A libc/src/math/generic/f16mulf.cpp
    A libc/src/math/generic/f16mulf128.cpp
    A libc/src/math/generic/f16mull.cpp
    M libc/src/math/generic/fmul.cpp
    A libc/src/math/generic/fmulf128.cpp
    A libc/src/math/generic/fmull.cpp
    M libc/test/src/math/CMakeLists.txt
    R libc/test/src/math/FMulTest.h
    A libc/test/src/math/MulTest.h
    A libc/test/src/math/dmull_test.cpp
    A libc/test/src/math/f16mul_test.cpp
    A libc/test/src/math/f16mulf_test.cpp
    A libc/test/src/math/f16mull_test.cpp
    M libc/test/src/math/fmul_test.cpp
    A libc/test/src/math/fmull_test.cpp
    M libc/test/src/math/smoke/CMakeLists.txt
    R libc/test/src/math/smoke/FMulTest.h
    A libc/test/src/math/smoke/MulTest.h
    A libc/test/src/math/smoke/dmulf128_test.cpp
    A libc/test/src/math/smoke/dmull_test.cpp
    A libc/test/src/math/smoke/f16mul_test.cpp
    A libc/test/src/math/smoke/f16mulf128_test.cpp
    A libc/test/src/math/smoke/f16mulf_test.cpp
    A libc/test/src/math/smoke/f16mull_test.cpp
    M libc/test/src/math/smoke/fmul_test.cpp
    A libc/test/src/math/smoke/fmulf128_test.cpp
    A libc/test/src/math/smoke/fmull_test.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.h

  Log Message:
  -----------
  [libc][math][c23] Add {f,d}mul{l,f128} and f16mul{,f,l,f128} C23 math functions (#98972)

Part of #93566.
                
Fixes #94833.


  Commit: b37bdadbe784339e455915368a4893d3bd4a1193
      https://github.com/llvm/llvm-project/commit/b37bdadbe784339e455915368a4893d3bd4a1193
  Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libc/newhdrgen/class_implementation/classes/function.py
    M libc/newhdrgen/header.py
    R libc/newhdrgen/tests/output/test_small.h
    M libc/newhdrgen/tests/test_integration.py

  Log Message:
  -----------
  [libc] newheadergen: adding h_def_file arg to test (#99397)

- spacing with _NOEXCEPT


  Commit: 78e3bfc120c8a23e246f544a5e9fb122828a21a7
      https://github.com/llvm/llvm-project/commit/78e3bfc120c8a23e246f544a5e9fb122828a21a7
  Author: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/make/Makefile.rules

  Log Message:
  -----------
  [LLDB][test] Drop OS/HOST_OS detection code from Makefile.rules (#99535)

Remove commands for OS/HOST_OS detection from Makefile.rules to simplify
it, since logic for these variables has been implemented in
`lldb/packages/Python/lldbsuite/test/lldbplatformutil.py`
(7021e44b2f0e11717c0d82456bad0fed4a0b48f9).


  Commit: c5432d31cb339262451215f6cf9c356a514a1770
      https://github.com/llvm/llvm-project/commit/c5432d31cb339262451215f6cf9c356a514a1770
  Author: vporpo <vporpodas at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/include/llvm/SandboxIR/SandboxIR.h
    M llvm/include/llvm/SandboxIR/Tracker.h
    M llvm/lib/SandboxIR/SandboxIR.cpp
    M llvm/lib/SandboxIR/Tracker.cpp
    M llvm/unittests/SandboxIR/TrackerTest.cpp

  Log Message:
  -----------
  [SandboxIR][Tracker] Track eraseFromParent() (#99431)

This patch adds tracking support for Instruction::eraseFromParent(). The
Instruction is not actually being erased, but instead it is detached
from the instruction list and drops its Use edges. The original
instruction position and Use edges are saved in the `EraseFromParent`
change object, and are being used during `revert()` to restore the
original state.


  Commit: 507c18b445ef88d985d95181db8107f669aed998
      https://github.com/llvm/llvm-project/commit/507c18b445ef88d985d95181db8107f669aed998
  Author: Piotr Zegar <me at piotrzegar.pl>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp
    M clang-tools-extra/docs/clang-tidy/checks/bugprone/unused-return-value.rst

  Log Message:
  -----------
  [clang-tidy] Few tiny fixes after #99084

Update documentation, and correct configuration


  Commit: 5431a31f87387763cca8d014e7c07394bab7a1ad
      https://github.com/llvm/llvm-project/commit/5431a31f87387763cca8d014e7c07394bab7a1ad
  Author: Rafael Stahl <dummdoof-doof at web.de>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-const-or-ref-data-members.rst
    M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-const-or-ref-data-members.cpp

  Log Message:
  -----------
  [clang-tidy][NFC] Fix gsl::not_null template parameter (#99472)

`T` is expected to be a pointer type.

https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rf-nullptr


  Commit: 280d90d0fdb2734af6c071064c6f87a8fe8d06d0
      https://github.com/llvm/llvm-project/commit/280d90d0fdb2734af6c071064c6f87a8fe8d06d0
  Author: Changpeng Fang <changpeng.fang at amd.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsAMDGPU.def
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-gfx11-err.cl
    M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-gfx12-w32-err.cl
    M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-gfx12-w64-err.cl
    M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-w32.cl
    M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-w64.cl
    M llvm/lib/Target/AMDGPU/FLATInstructions.td
    M llvm/test/Analysis/UniformityAnalysis/AMDGPU/intrinsics.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.tr-w32.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.tr-w64.ll

  Log Message:
  -----------
  AMDGPU: Add back half and bfloat support for global_load_tr16 pats (#99540)

half and bfloat are common types for 16-bit elements. The support of
them was original there and dropped due to some reasons. This work adds
the support of the float types back.


  Commit: 9527d77aefcf214944a4c8bd284dde3ffe9dff60
      https://github.com/llvm/llvm-project/commit/9527d77aefcf214944a4c8bd284dde3ffe9dff60
  Author: Angel Zhang <angel.zhang at amd.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp

  Log Message:
  -----------
  [mlir][spirv] Restructure code in `SPIRVConversion.cpp`. NFC. (#99393)


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

  Changed paths:
    M llvm/cmake/modules/LLVMExternalProjectUtils.cmake

  Log Message:
  -----------
  [LLVM] Silence compiler-rt warning in runtimes build (#99525)

Summary:
The `compiler-rt` project wants `LLVM_CMAKE_DIR` but the
`llvm_ExternalProject_add` interface sets the `LLVM_CONFIG_PATH`. This
patch just makes the utility pass that as well.


  Commit: 5e8cd29d62a72ed18e7bc782554d7f14eccec0ee
      https://github.com/llvm/llvm-project/commit/5e8cd29d62a72ed18e7bc782554d7f14eccec0ee
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    A llvm/test/Transforms/VectorCombine/RISCV/vecreduce-of-cast.ll

  Log Message:
  -----------
  [RISCV] Add coverage for vector combine reduce(cast x) transformation

This covers both the existing trunc transform - basically checking
that it performs sanely with the RISCV cost model - and a planned
change to handle sext/zext as well.


  Commit: eed72d4381261bfe1acb693fb8751c05765c4831
      https://github.com/llvm/llvm-project/commit/eed72d4381261bfe1acb693fb8751c05765c4831
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp
    M mlir/test/Dialect/ArmSME/tile-allocation-liveness.mlir

  Log Message:
  -----------
  [mlir][ArmSME] Support filling liveness 'holes' in the tile allocator (#98350)

Holes in a live range are points where the corresponding value does not
need to be in a tile/register. If the tile allocator keeps track of
these holes it can reuse tiles for more values (avoiding spills).

Take this simple example:

```mlir
func.func @example(%cond: i1) {
  %tileA = arm_sme.get_tile : vector<[4]x[4]xf32>
  cf.cond_br %cond, ^bb2, ^bb1
^bb1:
  // If we end up here we never use %tileA again!
  "test.some_use"(%tileB) : (vector<[4]x[4]xf32>) -> ()
  cf.br ^bb3
^bb2:
  "test.some_use"(%tileA) : (vector<[4]x[4]xf32>) -> ()
  cf.br ^bb3
^bb3:
  return
}
```

If you were to calculate the liveness of %tileA and %tileB. You'd see
there is a hole in the liveness of %tileA in bb1:

```
      %tileA  %tileB
^bb0:  Live
^bb1:          Live
^bb2:  Live
```

The tile allocator can make use of that hole and reuse the tile ID it
assigned to %tileA for %tileB.


  Commit: e2c3cd7f3d0cd40bd8506ab305573d61a1ae25d9
      https://github.com/llvm/llvm-project/commit/e2c3cd7f3d0cd40bd8506ab305573d61a1ae25d9
  Author: Changpeng Fang <changpeng.fang at amd.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  AMDGPU: Loop over the types for global_load_tr16 pats (NFC) (#99551)


  Commit: 82cca0c77e935b4972c31745d94edef616970b6c
      https://github.com/llvm/llvm-project/commit/82cca0c77e935b4972c31745d94edef616970b6c
  Author: Eli Friedman <efriedma at quicinc.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetCallingConv.h
    M llvm/lib/IR/Verifier.cpp
    A llvm/test/Verifier/byval-size-limit.ll
    M llvm/test/Verifier/param-align.ll
    M llvm/test/Verifier/param-attr-align.ll
    M llvm/test/Verifier/param-ret-align.ll

  Log Message:
  -----------
  [IR] Unify max alignment for arguments with generic max align. (#99257)

The 2^14 limit was completely arbitrary; the generic limit is still
arbitrary, but at least it's the same arbitrary limit as everything
else.

While I'm here, also add a verifier check for the ByValOrByRefSize.


  Commit: 892c58cf7490c219ff8fc4dc0d2497e062a9c665
      https://github.com/llvm/llvm-project/commit/892c58cf7490c219ff8fc4dc0d2497e062a9c665
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsAMDGPU.def
    M clang/lib/CodeGen/CGBuiltin.cpp
    A clang/test/CodeGenOpenCL/builtins-amdgcn-raw-buffer-load.cl
    A clang/test/SemaOpenCL/builtins-amdgcn-raw-buffer-load-error.cl

  Log Message:
  -----------
  [Clang][AMDGPU] Add builtins for instrinsic `llvm.amdgcn.raw.ptr.buffer.load` (#99258)


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

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

  Log Message:
  -----------
  [LV] Remove unnecessary variable from InnerLoopVectorizer::createBitOrPointerCast. NFC

DstVTy is already a VectorType, we don't need to cast it again. This
used to be a cast to FixedVectorType that was changed to support
scalable vectors.


  Commit: eb7d54a84bd6b8f85ceb94d96d09b50b494a3f9c
      https://github.com/llvm/llvm-project/commit/eb7d54a84bd6b8f85ceb94d96d09b50b494a3f9c
  Author: Thurston Dang <thurston at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    A llvm/test/Instrumentation/MemorySanitizer/AArch64/neon_vst_origins.ll

  Log Message:
  -----------
  [msan] Precommit MSan Arm NEON vst tests with origin-tracking (#99555)

This adds an abridged copy of neon_vst.ll (from
https://github.com/llvm/llvm-project/commit/ff0821583eab1651ff126bbf4f881e6163b67435),
but with origin tracking enabled.

The test will be updated when MSan's Arm NEON support is improved (e.g.,
https://github.com/llvm/llvm-project/pull/99360).


  Commit: a0662176a9b40462aafbb17cd8eb8cf6a65e940e
      https://github.com/llvm/llvm-project/commit/a0662176a9b40462aafbb17cd8eb8cf6a65e940e
  Author: Iuri Chaer <iuri.chaer at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libcxx/benchmarks/CMakeLists.txt
    A libcxx/benchmarks/algorithms/set_intersection.bench.cpp
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/include/__algorithm/iterator_operations.h
    M libcxx/include/__algorithm/lower_bound.h
    M libcxx/include/__algorithm/set_intersection.h
    M libcxx/test/std/algorithms/alg.sorting/alg.set.operations/set.intersection/ranges_set_intersection.pass.cpp
    A libcxx/test/std/algorithms/alg.sorting/alg.set.operations/set.intersection/set_intersection_complexity.pass.cpp
    M libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count.pass.cpp
    M libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp
    M libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_sentinel.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.drop/begin.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.drop/types.h
    M libcxx/test/std/ranges/range.adaptors/range.transform/types.h
    M libcxx/test/support/test_iterators.h

  Log Message:
  -----------
   [libc++] Speed up set_intersection() by fast-forwarding over ranges of non-matching elements with one-sided binary search. (#75230)

One-sided binary search, aka meta binary search, has been in the public
domain for decades, and has the general advantage of being constant time
in the best case, with the downside of executing at most 2*log(N)
comparisons vs classic binary search's exact log(N). There are two
scenarios in which it really shines: the first one is when operating
over non-random-access iterators, because the classic algorithm requires
knowing the container's size upfront, which adds N iterator increments
to the complexity. The second one is when traversing the container in
order, trying to fast-forward to the next value: in that case the
classic algorithm requires at least O(N*log(N)) comparisons and, for
non-random-access iterators, O(N^2) iterator increments, whereas the
one-sided version will yield O(N) operations on both counts, with a
best-case of O(log(N)) comparisons which is very common in practice.


  Commit: b1fd6f0996a9d6e6ebfa0cc3df0fe499c5ccdf65
      https://github.com/llvm/llvm-project/commit/b1fd6f0996a9d6e6ebfa0cc3df0fe499c5ccdf65
  Author: aaryanshukla <53713108+aaryanshukla at users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libc/CMakeLists.txt
    M libc/cmake/modules/LLVMLibCHeaderRules.cmake
    M libc/include/CMakeLists.txt

  Log Message:
  -----------
  [libc] newheadergen: cmake config newhdrgen (#99543)

- revert to revert for patch
https://github.com/llvm/llvm-project/pull/98828
- revert to revert https://github.com/llvm/llvm-project/pull/99410
- revert to revert https://github.com/llvm/llvm-project/pull/99413


  Commit: 05275b05ca58e4d015eea1503f120e6967ef1b91
      https://github.com/llvm/llvm-project/commit/05275b05ca58e4d015eea1503f120e6967ef1b91
  Author: Jon Roelofs <jonathan_roelofs at apple.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/test/Preprocessor/aarch64-target-features.c

  Log Message:
  -----------
  fixup! [clang][test] Split AArch64 target feature checks across multiple lines. NFC (#99365)

Looks like sed on the ppc64-aix bot does not support the '\n' literal. Let's
try using `tr` to perform that substitution. Failing that, we can revert.


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

  Changed paths:
    M libc/config/config.json
    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/configure.rst
    M libc/docs/dev/undefined_behavior.rst
    M libc/spec/posix.td
    M libc/src/__support/OSUtil/CMakeLists.txt
    M libc/src/__support/OSUtil/linux/CMakeLists.txt
    A libc/src/__support/OSUtil/linux/pid.cpp
    A libc/src/__support/OSUtil/pid.h
    M libc/src/__support/threads/CMakeLists.txt
    M libc/src/__support/threads/linux/CMakeLists.txt
    M libc/src/__support/threads/linux/rwlock.h
    M libc/src/__support/threads/linux/thread.cpp
    M libc/src/__support/threads/thread.h
    A libc/src/__support/threads/tid.h
    M libc/src/unistd/CMakeLists.txt
    M libc/src/unistd/getpid.h
    A libc/src/unistd/gettid.cpp
    A libc/src/unistd/gettid.h
    M libc/src/unistd/linux/CMakeLists.txt
    M libc/src/unistd/linux/fork.cpp
    M libc/src/unistd/linux/getpid.cpp
    M libc/startup/linux/CMakeLists.txt
    M libc/startup/linux/do_start.cpp
    M libc/test/integration/src/unistd/CMakeLists.txt
    M libc/test/integration/src/unistd/fork_test.cpp
    M libc/test/src/unistd/CMakeLists.txt
    A libc/test/src/unistd/gettid_test.cpp

  Log Message:
  -----------
  [libc] implement cached process/thread identity (#98989)

migrated from https://github.com/llvm/llvm-project/pull/95965 due to
corrupted git history


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

  Changed paths:
    M libc/config/config.json
    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/configure.rst
    M libc/docs/dev/undefined_behavior.rst
    M libc/spec/posix.td
    M libc/src/__support/OSUtil/CMakeLists.txt
    M libc/src/__support/OSUtil/linux/CMakeLists.txt
    R libc/src/__support/OSUtil/linux/pid.cpp
    R libc/src/__support/OSUtil/pid.h
    M libc/src/__support/threads/CMakeLists.txt
    M libc/src/__support/threads/linux/CMakeLists.txt
    M libc/src/__support/threads/linux/rwlock.h
    M libc/src/__support/threads/linux/thread.cpp
    M libc/src/__support/threads/thread.h
    R libc/src/__support/threads/tid.h
    M libc/src/unistd/CMakeLists.txt
    M libc/src/unistd/getpid.h
    R libc/src/unistd/gettid.cpp
    R libc/src/unistd/gettid.h
    M libc/src/unistd/linux/CMakeLists.txt
    M libc/src/unistd/linux/fork.cpp
    M libc/src/unistd/linux/getpid.cpp
    M libc/startup/linux/CMakeLists.txt
    M libc/startup/linux/do_start.cpp
    M libc/test/integration/src/unistd/CMakeLists.txt
    M libc/test/integration/src/unistd/fork_test.cpp
    M libc/test/src/unistd/CMakeLists.txt
    R libc/test/src/unistd/gettid_test.cpp

  Log Message:
  -----------
  Revert "[libc] implement cached process/thread identity" (#99559)

Reverts llvm/llvm-project#98989


  Commit: af5352fe8e66e71ae381498745c0e52ca56478c6
      https://github.com/llvm/llvm-project/commit/af5352fe8e66e71ae381498745c0e52ca56478c6
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsAMDGPU.def
    M clang/test/CodeGenOpenCL/builtins-amdgcn-raw-buffer-store.cl
    M clang/test/SemaOpenCL/builtins-amdgcn-raw-buffer-store-error.cl

  Log Message:
  -----------
  [Clang][AMDGPU] Use unsigned data type for `__builtin_amdgcn_raw_buffer_store_*` (#99546)


  Commit: 4272847546225bcf2e83e09e3a620bf286c058fd
      https://github.com/llvm/llvm-project/commit/4272847546225bcf2e83e09e3a620bf286c058fd
  Author: Michael Spencer <bigcheesegs at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/Lex/DependencyDirectivesScanner.cpp
    M clang/unittests/Lex/DependencyDirectivesScannerTest.cpp

  Log Message:
  -----------
  [clang][deps] Don't treat ObjC method args as module directives (#97654)

`import:(type)name` is a method argument decl in ObjC, but the C++20
preprocessing rules say this is a preprocessing line.

Because the dependency directive scanner is not language dependent, this
patch extends the C++20 rule to exclude `module :` (which is never a
valid module decl anyway), and `import :` that is not followed by an
identifier.

This is ok to do because in C++20 mode the compiler will later error on
lines like this anyway, and the dependencies the scanner returns are
still correct.


  Commit: 06518cea3905556d8d1eea4088132ebb234bfdab
      https://github.com/llvm/llvm-project/commit/06518cea3905556d8d1eea4088132ebb234bfdab
  Author: Jon Roelofs <jonathan_roelofs at apple.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/test/Preprocessor/aarch64-target-features.c

  Log Message:
  -----------
  Revert "[clang][test] Split AArch64 target feature checks across multiple lines. NFC (#99365)"

This reverts commit c0c4ad5d9a6e05e0b1f5f98ce2e08d479b281be8.

And the fixup broke another bot. Darn.

https://lab.llvm.org/buildbot/#/builders/46/builds/1896


  Commit: 719b2ac42e42807c9282052718cbc91e0cac930c
      https://github.com/llvm/llvm-project/commit/719b2ac42e42807c9282052718cbc91e0cac930c
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libcxx/cmake/caches/Apple.cmake
    A libcxx/test/configs/apple-libc++-shared.cfg.in
    M libcxx/utils/ci/apple-install-libcxx.sh
    A libcxxabi/src/vendor/apple/shims.cpp
    A libcxxabi/test/configs/apple-libc++abi-shared.cfg.in

  Log Message:
  -----------
  [libc++] Allow testing Apple's system library as it is installed (#99086)

In order to test libc++ under the "Apple System Library" configuration,
we need to run the tests using DYLD_LIBRARY_PATH. This is required
because libc++ gets an install_name of /usr/lib when built as a system
library, which means that we must override the copy of libc++ used by
the whole process. This effectively reverts 2cf2f1b, which was the wrong
solution for the problem I was having.

Of course, this assumes that the just-built libc++ is sufficient to
replace the system library, which is not actually the case
out-of-the-box. Indeed, the system library contains a few symbols that
are not provided by the upstream library, leading to undefined symbols
when replacing the system library by the just-built one.

To solve this problem, we separately build shims that provide those
missing symbols and we manually link against them when we build
executables in the tests. While this is somewhat brittle, it provides a
localized and unintrusive way to allow testing the Apple system
configuration in an upstream environment, which has been a frequent
request.


  Commit: 50b5bb717ca5d2ec78587551bc90a8ddd0cc8983
      https://github.com/llvm/llvm-project/commit/50b5bb717ca5d2ec78587551bc90a8ddd0cc8983
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libcxx/utils/ci/apple-install-libcxx.sh

  Log Message:
  -----------
  [libc++] Add comment about matching standard version in apple-install-libcxx

This was forgotten when I landed #99086


  Commit: 4f786c6823956f72ef0b9eee57bf0c462842b609
      https://github.com/llvm/llvm-project/commit/4f786c6823956f72ef0b9eee57bf0c462842b609
  Author: vporpo <vporpodas at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/include/llvm/SandboxIR/Tracker.h
    M llvm/lib/SandboxIR/SandboxIR.cpp
    M llvm/lib/SandboxIR/Tracker.cpp
    M llvm/unittests/SandboxIR/TrackerTest.cpp

  Log Message:
  -----------
  [SandboxIR][Tracker] Track Instruction::removeFromParent() (#99541)

This patch adds the necessary functionality to the Tracker and to the
Sandbox IR API functions for tracking calls to removeFromParent().


  Commit: ded35c0c3ad371287e80872d6bd104ce3f7d2864
      https://github.com/llvm/llvm-project/commit/ded35c0c3ad371287e80872d6bd104ce3f7d2864
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/test/Transforms/VectorCombine/RISCV/vecreduce-of-cast.ll

  Log Message:
  -----------
  [vectorcombine] Pull sext/zext through reduce.or/and/xor (#99548)

This extends the existing foldTruncFromReductions transform to handle
sext and zext as well. This is only legal for the bitwise reductions
(and/or/xor) and not the arithmetic ones (add, mul). Use the same
costing decision to drive whether we do the transform.


  Commit: 19c9a1c2fd2c3849439bca2ba5084dada4d1f47f
      https://github.com/llvm/llvm-project/commit/19c9a1c2fd2c3849439bca2ba5084dada4d1f47f
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  [LAA] Include IndirectUnsafe in ::isPossiblyBackward.

Similarly to Unknown, IndirectUnsafe should also be considered possibly
backward, as it may be a backwards dependency e.g. via loading
different base pointers.

This also brings isPossiblyBackward in line with
Dependence::isSafeForVectorization. At the moment this can't be tested,
as it is not possible to write a test with an AddRec that is based on a
loop varying value. But this may change in the future and may cause
mis-compiles in the future.


  Commit: 2ec1a39bcb1ab893f4b6cde7fc9e24cfdff0aeb6
      https://github.com/llvm/llvm-project/commit/2ec1a39bcb1ab893f4b6cde7fc9e24cfdff0aeb6
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M flang/lib/Parser/prescan.cpp
    M flang/test/Preprocessing/directive-contin-with-pp.F90

  Log Message:
  -----------
  [flang][preprocessor] Handle initial "MACRO&" with no space (#98684)

The prescanner checks lines that begin with a keyword macro name to see
whether they should be treated as a comment or compiler directive
instead of a source line. This fails when the potential keyword macro
name is extended with identifier characters via Fortran line
continuation. Disable line continuation during this check.


  Commit: f61c9a9485cc359cdd0262e66840e095dbc246c2
      https://github.com/llvm/llvm-project/commit/f61c9a9485cc359cdd0262e66840e095dbc246c2
  Author: OverMighty <its.overmighty at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libc/utils/MPFRWrapper/CMakeLists.txt

  Log Message:
  -----------
  [libc][CMake] Set library type of libcMPFRWrapper to STATIC (#99527)

Fixes linker errors due to hidden symbols when running CMake with
-DBUILD_SHARED_LIBS=ON.


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

  Changed paths:
    M llvm/test/MC/AArch64/elf-reloc-ptrauth.s

  Log Message:
  -----------
  [AArch64,test] Remove over reliance on section offsets and symbol indexes


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

  Changed paths:
    M mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp

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

This patch fixes:

  mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp:621:16: error:
  unused variable 'removed' [-Werror,-Wunused-variable]


  Commit: 6c6baf019a25710cdc3c3971b09cd6332d0379c0
      https://github.com/llvm/llvm-project/commit/6c6baf019a25710cdc3c3971b09cd6332d0379c0
  Author: Jon Roelofs <jonathan_roelofs at apple.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/test/Preprocessor/aarch64-target-features.c

  Log Message:
  -----------
  Revert "[clang][test] Split AArch64 target feature checks across multiple lines. NFC (#99365)"

This reverts commit 06518cea3905556d8d1eea4088132ebb234bfdab.
This reverts commit 05275b05ca58e4d015eea1503f120e6967ef1b91.
This reverts commit c0c4ad5d9a6e05e0b1f5f98ce2e08d479b281be8.


  Commit: 05bce3f079b677edd0efd28e3923f4776ffb8b59
      https://github.com/llvm/llvm-project/commit/05bce3f079b677edd0efd28e3923f4776ffb8b59
  Author: Chenguang Wang <w3cing at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp

  Log Message:
  -----------
  [mlir][ArmSME] Suppress potential unused warning (#99573)

When building in release mode, the assert will be dropped, making
`remove` unused.


  Commit: a41a4b8feda789529e4e927d9d6a04b7be8e9664
      https://github.com/llvm/llvm-project/commit/a41a4b8feda789529e4e927d9d6a04b7be8e9664
  Author: Chenguang Wang <w3cing at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp

  Log Message:
  -----------
  Revert "[mlir][ArmSME] Suppress potential unused warning (#99573)" (#99578)

This reverts commit 05bce3f079b677edd0efd28e3923f4776ffb8b59.

The work was already done in 99faa03.


  Commit: 8be714b6724f1f2f57442f2cdd3a0625c053d872
      https://github.com/llvm/llvm-project/commit/8be714b6724f1f2f57442f2cdd3a0625c053d872
  Author: Ilya Leoshkevich <iii at linux.ibm.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M compiler-rt/test/sanitizer_common/TestCases/Posix/sanitizer_set_report_path_test.cpp

  Log Message:
  -----------
  [sanitizer] Fix running sanitizer_set_report_path_test on Android (#99469)

sanitizer_set_report_path_test outputs the following on an Android
builder [1]:

ERROR: Can't create directory:
/data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_arm/test/sanitizer_common/asan-arm-Android/Posix/Output/sanitizer_set_report_path_test.cpp.tmp
Path
/data/local/tmp/Output/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/compiler_rt_build_android_arm/test/sanitizer_common/asan-arm-Android/Posix/Output/sanitizer_set_report_path_test.cpp.tmp.report_path/report.24954

The order of messages is reversed. 

The test can use strcmp+assert instead of CHECK for `__sanitizer_get_report_path` output.

[1]
https://lab.llvm.org/buildbot/#/builders/186/builds/703/steps/26/logs/stdio

---------

Co-authored-by: Vitaly Buka <vitalybuka at gmail.com>


  Commit: 1f6f97e2b64a9c4c51712d32b53e07d2a20e0cc0
      https://github.com/llvm/llvm-project/commit/1f6f97e2b64a9c4c51712d32b53e07d2a20e0cc0
  Author: Bill Wendling <5993918+bwendling at users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/test/CodeGen/attr-counted-by.c

  Log Message:
  -----------
  [Clang] Loop over FieldDecls instead of all Decls (#99574)

Only FieldDecls are important when determining GEP indices. A struct
defined within another struct has the same semantics as if it were
defined outside of the struct. So there's no need to look into
RecordDecls that aren't a field.

See commit 5bcf31ebfad8 ("[Clang] Loop over FieldDecls instead of all
Decls (#89453)")

Fixes 2039.


  Commit: f1a8db1a1f93a7e921e10c362a659712a4be2a33
      https://github.com/llvm/llvm-project/commit/f1a8db1a1f93a7e921e10c362a659712a4be2a33
  Author: Michael Jones <michaelrj at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libc/include/CMakeLists.txt
    R libc/newhdrgen/yaml/arpa/arpa_inet.yaml
    A libc/newhdrgen/yaml/arpa/inet.yaml
    R libc/newhdrgen/yaml/gpu/gpu_rpc.yaml
    A libc/newhdrgen/yaml/gpu/rpc.yaml
    A libc/newhdrgen/yaml/sys/auxv.yaml
    A libc/newhdrgen/yaml/sys/epoll.yaml
    A libc/newhdrgen/yaml/sys/ioctl.yaml
    A libc/newhdrgen/yaml/sys/mman.yaml
    A libc/newhdrgen/yaml/sys/prctl.yaml
    A libc/newhdrgen/yaml/sys/random.yaml
    A libc/newhdrgen/yaml/sys/resource.yaml
    A libc/newhdrgen/yaml/sys/select.yaml
    A libc/newhdrgen/yaml/sys/sendfile.yaml
    A libc/newhdrgen/yaml/sys/socket.yaml
    A libc/newhdrgen/yaml/sys/stat.yaml
    A libc/newhdrgen/yaml/sys/statvfs.yaml
    R libc/newhdrgen/yaml/sys/sys_auxv.yaml
    R libc/newhdrgen/yaml/sys/sys_epoll.yaml
    R libc/newhdrgen/yaml/sys/sys_ioctl.yaml
    R libc/newhdrgen/yaml/sys/sys_mman.yaml
    R libc/newhdrgen/yaml/sys/sys_prctl.yaml
    R libc/newhdrgen/yaml/sys/sys_random.yaml
    R libc/newhdrgen/yaml/sys/sys_resource.yaml
    R libc/newhdrgen/yaml/sys/sys_select.yaml
    R libc/newhdrgen/yaml/sys/sys_sendfile.yaml
    R libc/newhdrgen/yaml/sys/sys_socket.yaml
    R libc/newhdrgen/yaml/sys/sys_stat.yaml
    R libc/newhdrgen/yaml/sys/sys_statvfs.yaml
    R libc/newhdrgen/yaml/sys/sys_syscall.yaml
    R libc/newhdrgen/yaml/sys/sys_time.yaml
    R libc/newhdrgen/yaml/sys/sys_types.yaml
    R libc/newhdrgen/yaml/sys/sys_utsname.yaml
    R libc/newhdrgen/yaml/sys/sys_wait.yaml
    A libc/newhdrgen/yaml/sys/syscall.yaml
    A libc/newhdrgen/yaml/sys/time.yaml
    A libc/newhdrgen/yaml/sys/types.yaml
    A libc/newhdrgen/yaml/sys/utsname.yaml
    A libc/newhdrgen/yaml/sys/wait.yaml

  Log Message:
  -----------
  [libc][newhdrgen] Remove redundant yaml prefixes (#99581)

Since the yaml files are already organized into folders, the name of the
file doesn't also need to be prefixed by what folder it's in.


  Commit: 202785708ed0ff11770f8ae8603514d2c9a54bd9
      https://github.com/llvm/llvm-project/commit/202785708ed0ff11770f8ae8603514d2c9a54bd9
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M flang/runtime/unit.cpp

  Log Message:
  -----------
  [flang][runtime] Clear leftTabLimit at in FinishReadingRecord (#98822)

ExternalFileUnit::FinishReadingRecord() is called at the end of a READ
statement, unless the read is non-advancing and there was no error. In
the event of an erroneous non-advancing read, however,
FinishReadingRecord() leaves ConnectionState::leftTabLimit inhabited by
a value, leaving the impression that the *next* record is undergoing a
non-advancing operation, and this cause the next operation to fail. In
the test case in the reported bug, the next operation is a BACKSPACE,
and it ends up doing nothing. The fix is to always reset leftTabLimit in
FinishReadingRecord.

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


  Commit: ef94732b4fa0512a3a635766b872c1574a1aade4
      https://github.com/llvm/llvm-project/commit/ef94732b4fa0512a3a635766b872c1574a1aade4
  Author: Connie <60797237+connieyzhu at users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/utils/lit/lit/builtin_commands/cat.py

  Log Message:
  -----------
  [llvm-lit] Resolve TypeError in built-in cat -v implementation (#98363)

When using -v in lit's internal implementation of cat, there is a
TypeError when the file data is passed into convertToCaretAndMNotation()
as a str, because bytearray() requires an encoded string. This patch
encodes the str before passing it through bytearray().


  Commit: 6c09a9bf6c6247299b53833602e6bb312dfda555
      https://github.com/llvm/llvm-project/commit/6c09a9bf6c6247299b53833602e6bb312dfda555
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M flang/lib/Semantics/expression.cpp
    M flang/test/Semantics/array-constr-values.f90
    M flang/test/Semantics/assign10.f90

  Log Message:
  -----------
  [flang] Check assignment conformance for derived types (#99059)

Derived type assignment checking needs to account for the possibility of
derived assignment. The implementation was checking compile-time
conformance errors only on the path for assignments of intrinsic types.
Add a static array conformance check in the derived type flow once it
has been established that no defined assignment exists.

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


  Commit: 0004ca670a960d3573137679b3c67a7b3932530a
      https://github.com/llvm/llvm-project/commit/0004ca670a960d3573137679b3c67a7b3932530a
  Author: RoseZhang03 <rosezhang at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libc/config/linux/api.td
    M libc/config/linux/x86_64/headers.txt
    M libc/newhdrgen/yaml/math.yaml
    M libc/newhdrgen/yaml/sys/statvfs.yaml
    M libc/src/sys/statvfs/linux/CMakeLists.txt

  Log Message:
  -----------
  [libc] Removed __LIBC_CONST_ATTR attribute and updated math.yaml with the new math functions (#99571)

- deleted attribute from fabs function
- added math functions from #98972
- also updated statvfs files so that it can be generated


  Commit: 40ed6ba016ea59106e18e610cc17df43e0192ee4
      https://github.com/llvm/llvm-project/commit/40ed6ba016ea59106e18e610cc17df43e0192ee4
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M flang/docs/Extensions.md
    A flang/test/Semantics/parent-comp-name.f90

  Log Message:
  -----------
  [flang][NFC] Document an intentional violation of the standard (#99073)

The Fortran standard committees passed an "interp" request at their June
2024 meetings that is distinct from nearly every other Fortran compiler
that I tried (6) in an an ambiguous case (parent component naming when
the base type has been renamed via USE association). Document this case
in flang/docs/Extensions.md as an intentional instance of
non-conformance chosen for portability and better usability.


  Commit: adacb5010f5ca6e923b3cf2d8ea47cbaab96099d
      https://github.com/llvm/llvm-project/commit/adacb5010f5ca6e923b3cf2d8ea47cbaab96099d
  Author: Michael Jones <michaelrj at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M libc/cmake/modules/LLVMLibCHeaderRules.cmake

  Log Message:
  -----------
  [libc] Restore DECLS_FILE_PATH property (#99583)

The DECLS_FILE_PATH property is supposed to be set on the targets for
the generated headers for the GPU build installation. It got missed when
creating the cmake rule for new headergen.


  Commit: c675a9be63b67682477e5cbdc01c450f66bbc59a
      https://github.com/llvm/llvm-project/commit/c675a9be63b67682477e5cbdc01c450f66bbc59a
  Author: pcc <peter at pcc.me.uk>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Object/ArchiveWriter.h
    M llvm/lib/Object/ArchiveWriter.cpp
    M llvm/test/Object/archive-malformed-object.test

  Log Message:
  -----------
  Object: Don't error out on malformed bitcode files.

An error reading a bitcode file most likely indicates that the file
was created by a compiler from the future. Normally we don't try to
implement forwards compatibility for bitcode files, but when creating
an archive we can implement best-effort forwards compatibility by
treating the file as a blob and not creating symbol index entries for
it. lld and mold ignore the archive symbol index, so provided that
you use one of these linkers, LTO will work as long as lld or the
gold plugin is newer than the compiler. We only ignore errors if the
archive format is one that is supported by a linker that is known to
ignore the index, otherwise there's no chance of this working so we
may as well error out. We print a warning on read failure so that
users of linkers that rely on the symbol index can diagnose the issue.

This is the same behavior as GNU ar when the linker plugin returns
an error when reading the input file. If the bitcode file is actually
malformed, it will be diagnosed at link time.

Reviewers: MaskRay, dwblaikie, jh7370

Reviewed By: MaskRay, dwblaikie, jh7370

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


  Commit: 433e09cf257526a24afc98326bd60fbf09923359
      https://github.com/llvm/llvm-project/commit/433e09cf257526a24afc98326bd60fbf09923359
  Author: Keith Smiley <keithbsmiley at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  [bazel] Add filegroups for MLIR bindings sources (#98396)

This can be useful if downstream projects configure their pybind
differently, similar to how local_config_python isn't defined here.


  Commit: e73d51d3c8ea61fa34658f22147e65f95411eca2
      https://github.com/llvm/llvm-project/commit/e73d51d3c8ea61fa34658f22147e65f95411eca2
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M flang/lib/Semantics/definable.cpp
    A flang/test/Semantics/associate03.f90

  Log Message:
  -----------
  [flang] ASSOCIATE/SELECT TYPE entities aren't pointer/allocatable (#99364)

Fix what seems to be a regression in semantics in definability checking:
the construct entities of ASSOCIATE and SELECT TYPE constructs are never
pointers or allocatables, even when their selectors are so. SELECT RANK
construct entities, however, can be pointers or allocatables.


  Commit: 043aca3990e3d47a25777f83569260aa4d822ae5
      https://github.com/llvm/llvm-project/commit/043aca3990e3d47a25777f83569260aa4d822ae5
  Author: RoseZhang03 <rosezhang at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    R libc/newhdrgen/class_implementation/classes/include.py
    M libc/newhdrgen/gpu_headers.py
    M libc/newhdrgen/header.py
    M libc/newhdrgen/yaml_to_classes.py

  Log Message:
  -----------
  [libc] newhdrgen: removed Include class (#99584)

Include class is not used (includes are made through Macro class, Type
class, and imports from .h.def files).


  Commit: 0684db30a1e3226a0bfe4c5d839d1355a66ea4ba
      https://github.com/llvm/llvm-project/commit/0684db30a1e3226a0bfe4c5d839d1355a66ea4ba
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M flang/lib/Parser/Fortran-parsers.cpp
    A flang/test/Semantics/struct03.f90

  Log Message:
  -----------
  [flang] A nested STRUCTURE must declare entities (#99379)

When a DEC legacy STRUCTURE definition appears within another, its
STRUCTURE statement must also declare some components of the enclosing
structure.

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


  Commit: bda1893a62b2081780fe1c000d6447b73d42aa2c
      https://github.com/llvm/llvm-project/commit/bda1893a62b2081780fe1c000d6447b73d42aa2c
  Author: Dmitriy Chestnykh <dm.chestnykh at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
    A compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_i386.cpp
    A compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_x86_64.cpp

  Log Message:
  -----------
  [compiler-rt] Add `DumpAllRegisters` impl (#99049)

- Add implementation for x86_64 and linux
- Add test

The output is like

==XXYYZZ==Register values:
rax = 0x...  rbx = 0x...  rcx = 0x...  rdx = 0x...
rdi = 0x...  rsi = 0x...  rbp = 0x...  rsp = 0x...
 r8 = 0x...   r9 = 0x...  r10 = 0x...  r11 = 0x...
r12 = 0x...  r13 = 0x...  r14 = 0x...  r15 = 0x...


  Commit: 996d31c7ba841fdc3bd375f3fed4d8324618425b
      https://github.com/llvm/llvm-project/commit/996d31c7ba841fdc3bd375f3fed4d8324618425b
  Author: Sam James <sam at gentoo.org>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

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

  Log Message:
  -----------
  [msan] Fix goo.gl link in comment for Valgrind paper

goo.gl is going away: https://developers.googleblog.com/en/google-url-shortener-links-will-no-longer-be-available/

Fix goo.gl link from:
- http://goo.gl/QKbem
+ https://static.usenix.org/event/usenix05/tech/general/full_papers/seward/seward_html/usenix2005.html
and reflow the comment a bit to make it look a bit better after the URL change,
although it's not perfect now.

Committed as obvious.

Bug: https://github.com/llvm/llvm-project/issues/99586


  Commit: 4120570dc408a6ccc7133b4bdbaf5cf6c4af9db7
      https://github.com/llvm/llvm-project/commit/4120570dc408a6ccc7133b4bdbaf5cf6c4af9db7
  Author: Jacob Lalonde <jalalonde at fb.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M lldb/bindings/headers.swig
    A lldb/bindings/interface/SBSaveCoreOptionsDocstrings.i
    M lldb/bindings/interfaces.swig
    M lldb/include/lldb/API/LLDB.h
    M lldb/include/lldb/API/SBDefines.h
    M lldb/include/lldb/API/SBError.h
    M lldb/include/lldb/API/SBFileSpec.h
    M lldb/include/lldb/API/SBProcess.h
    A lldb/include/lldb/API/SBSaveCoreOptions.h
    M lldb/include/lldb/Core/PluginManager.h
    A lldb/include/lldb/Symbol/SaveCoreOptions.h
    M lldb/include/lldb/lldb-private-interfaces.h
    M lldb/source/API/CMakeLists.txt
    M lldb/source/API/SBProcess.cpp
    A lldb/source/API/SBSaveCoreOptions.cpp
    M lldb/source/Commands/CommandObjectProcess.cpp
    M lldb/source/Core/PluginManager.cpp
    M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
    M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.h
    M lldb/source/Plugins/ObjectFile/Minidump/ObjectFileMinidump.cpp
    M lldb/source/Plugins/ObjectFile/Minidump/ObjectFileMinidump.h
    M lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
    M lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h
    M lldb/source/Plugins/ObjectFile/PECOFF/WindowsMiniDump.cpp
    M lldb/source/Plugins/ObjectFile/PECOFF/WindowsMiniDump.h
    M lldb/source/Symbol/CMakeLists.txt
    A lldb/source/Symbol/SaveCoreOptions.cpp
    M lldb/test/API/functionalities/process_save_core/TestProcessSaveCore.py
    M lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump.py
    A lldb/test/API/python_api/sbsavecoreoptions/TestSBSaveCoreOptions.py

  Log Message:
  -----------
  [LLDB][SaveCore] Add SBSaveCoreOptions Object, and SBProcess::SaveCore() overload (#98403)

This PR adds `SBSaveCoreOptions`, which is a container class for options
when LLDB is taking coredumps. For this first iteration this container
just keeps parity with the extant API of `file, style, plugin`. In the
future this options object can be extended to allow users to take a
subset of their core dumps.


  Commit: 9e4c236650ac8220c4121ceb335de7df6ec4cb36
      https://github.com/llvm/llvm-project/commit/9e4c236650ac8220c4121ceb335de7df6ec4cb36
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/utils/gn/secondary/lldb/source/API/BUILD.gn
    M llvm/utils/gn/secondary/lldb/source/Symbol/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 4120570dc408


  Commit: 71ab0dc6f02b7fd07de272dfcd67ccdb2399ab4f
      https://github.com/llvm/llvm-project/commit/71ab0dc6f02b7fd07de272dfcd67ccdb2399ab4f
  Author: Sam James <sam at gentoo.org>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/docs/CompileCudaWithLLVM.rst

  Log Message:
  -----------
  [docs] Fix goo.gl link in comment for 'Straight-line scalar optimizations' paper

goo.gl is going away: https://developers.googleblog.com/en/google-url-shortener-links-will-no-longer-be-available/

Fix goo.gl link from:
- https://goo.gl/4Rb9As
+ https://docs.google.com/document/d/1momWzKFf4D6h8H3YlfgKQ3qeZy5ayvMRh6yR-Xn2hUE

Committed as obvious.

Bug: https://github.com/llvm/llvm-project/issues/99586


  Commit: 59441f29323c37c7d0b21bcdd3db96506d1b24d2
      https://github.com/llvm/llvm-project/commit/59441f29323c37c7d0b21bcdd3db96506d1b24d2
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_i386.cpp
    M compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_x86_64.cpp

  Log Message:
  -----------
  [sanitizer] Use strict-whitespace in tests


  Commit: 914a00a9c94bf1a0b857abdc5a06857914cc46c7
      https://github.com/llvm/llvm-project/commit/914a00a9c94bf1a0b857abdc5a06857914cc46c7
  Author: Keith Smiley <keithbsmiley at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M utils/bazel/WORKSPACE
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
    A utils/bazel/third_party_build/pybind.BUILD

  Log Message:
  -----------
  [bazel] Add support for pybind (#98398)

Previously these targets were disabled, but with a relatively new
rules_python we can build these pointing at a hermetic python, which
allows us to build these safely. Users can still access the files
directly if they need to customize how these are built.


  Commit: f304b883730785a204a5197dd407305b5b1dfaaa
      https://github.com/llvm/llvm-project/commit/f304b883730785a204a5197dd407305b5b1dfaaa
  Author: Keith Smiley <keithbsmiley at gmail.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  [bazel] Port #98403 (#99592)


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

  Changed paths:
    M llvm/unittests/ADT/SetOperationsTest.cpp

  Log Message:
  -----------
  [ADT] Add unit tests for set_subtract (#99561)

This patch adds a couple of unit tests:

- SetSubtractSmallPtrSet exercises the code path involving remove_if,
  added in d772cdd6279de1e578dfdfca7432327a1806c659.  Note that
  SmallPtrSet supports remove_if.

- SetSubtractSmallVector exercises the code path involving
  S1.erase(*SI) and ensures that set_subtract continues to accept S2
  being a vector, which does not have contains.


  Commit: bf4347b3da31625ce1ae2dd4ffb5c557072e03c0
      https://github.com/llvm/llvm-project/commit/bf4347b3da31625ce1ae2dd4ffb5c557072e03c0
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h
    M compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_posix.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_win.cpp
    M compiler-rt/lib/sanitizer_common/tests/sanitizer_stackdepot_test.cpp
    M compiler-rt/lib/sanitizer_common/tests/sanitizer_stacktrace_printer_test.cpp
    M compiler-rt/lib/sanitizer_common/tests/sanitizer_stacktrace_test.cpp

  Log Message:
  -----------
  [sanitizer_common] Use %p to print addresses (#98578)

Pointers print more leading zeroes for better alignment.


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

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cpp

  Log Message:
  -----------
  [compiler-rt] Fix a warning

This patch fixes:

  compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cpp:126:72:
  error: format specifies type 'void *' but the argument has type
  'uptr *' (aka 'unsigned long *') [-Werror,-Wformat-pedantic]


  Commit: d4b28fb7516c5a5ecded4154c207288da1949a6b
      https://github.com/llvm/llvm-project/commit/d4b28fb7516c5a5ecded4154c207288da1949a6b
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M compiler-rt/cmake/base-config-ix.cmake
    M compiler-rt/test/CMakeLists.txt
    M compiler-rt/test/asan/CMakeLists.txt
    M compiler-rt/test/ctx_profile/CMakeLists.txt
    M compiler-rt/test/fuzzer/CMakeLists.txt
    M compiler-rt/test/gwp_asan/CMakeLists.txt
    M compiler-rt/test/interception/CMakeLists.txt
    M compiler-rt/test/memprof/CMakeLists.txt
    M compiler-rt/test/msan/CMakeLists.txt
    M compiler-rt/test/nsan/CMakeLists.txt
    M compiler-rt/test/rtsan/CMakeLists.txt
    M compiler-rt/test/sanitizer_common/CMakeLists.txt
    M compiler-rt/test/scudo/standalone/CMakeLists.txt
    M compiler-rt/test/tsan/CMakeLists.txt

  Log Message:
  -----------
  [compiler-rt] Cleanup use of COMPILER_RT_INCLUDE_TESTS (#98246)

1. Move checks into parent test/CMakeLists.txt
2. COMPILER_RT_INCLUDE_TESTS disable both lit and
   gtests. Before it was very inconsistent between
   sanitizers.


  Commit: 98ebdd0ca9a72c072a1dbe1af2fa7f1adcbb09ae
      https://github.com/llvm/llvm-project/commit/98ebdd0ca9a72c072a1dbe1af2fa7f1adcbb09ae
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp

  Log Message:
  -----------
  [NFC][sanitizer] Fix `unused variable 'RegName'` warning


  Commit: cbbd15323469a70bf7d5f1d6e1177bb7f531ea2d
      https://github.com/llvm/llvm-project/commit/cbbd15323469a70bf7d5f1d6e1177bb7f531ea2d
  Author: vporpo <vporpodas at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/include/llvm/SandboxIR/Tracker.h
    M llvm/lib/SandboxIR/SandboxIR.cpp
    M llvm/lib/SandboxIR/Tracker.cpp
    M llvm/unittests/SandboxIR/TrackerTest.cpp

  Log Message:
  -----------
  [SandboxIR][Tracker] Track Instruction::moveBefore() (#99568)

This implements tracking of moving instrs with `moveBefore()`.


  Commit: 962d018234cb8c94e387fe3950cd030658850541
      https://github.com/llvm/llvm-project/commit/962d018234cb8c94e387fe3950cd030658850541
  Author: Brian Cain <bcain at quicinc.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/lib/Driver/ToolChains/Hexagon.cpp
    M clang/test/Driver/hexagon-toolchain-linux.c

  Log Message:
  -----------
  [clang] [hexagon] handle --unwindlib arg (#99552)

Signed-off-by: Brian Cain <bcain at quicinc.com>


  Commit: e1d0913a85d4034e875cd93ab531c2001afe6620
      https://github.com/llvm/llvm-project/commit/e1d0913a85d4034e875cd93ab531c2001afe6620
  Author: Jordan Rupprecht <rupprecht at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M utils/bazel/WORKSPACE

  Log Message:
  -----------
  [bazel] Replace git_repository with http_archive. (#99422)

The current git_repository usage points to tags, which leads to warnings
that the build may not be reproducable due to not using a git sha.

The docs for
[git_repository](https://bazel.build/rules/lib/repo/git#git_repository)
recommend using `http_archive`, so switch to that instead. Also bump to
newer versions for these two repos.


  Commit: 1df2e0c344f0ddf7e09a9c89eba6bbee52142344
      https://github.com/llvm/llvm-project/commit/1df2e0c344f0ddf7e09a9c89eba6bbee52142344
  Author: Allen <zhongyunde at huawei.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/test/CodeGen/math-libcalls-tbaa.cpp

  Log Message:
  -----------
  [clang codegen] Emit int TBAA metadata on FP math libcall expf (#96025)

Base on the discussion
https://discourse.llvm.org/t/fp-can-we-add-pure-attribute-for-math-library-functions-default/79459,
math libcalls set errno, so it should emit "int" TBAA metadata on FP
libcalls to solve the alias issue.

Note: Only add support for expf in this PR

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


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

  Changed paths:
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx23Issues.csv
    M libcxx/docs/Status/Cxx23Papers.csv
    M libcxx/docs/Status/Cxx2cIssues.csv
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__memory/allocator_traits.h
    A libcxx/include/__memory/inout_ptr.h
    A libcxx/include/__memory/out_ptr.h
    M libcxx/include/__memory/pointer_traits.h
    M libcxx/include/memory
    M libcxx/include/module.modulemap
    M libcxx/include/version
    M libcxx/modules/std/memory.inc
    M libcxx/test/std/language.support/support.limits/support.limits.general/memory.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
    A libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr.general.pass.cpp
    A libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr.verify.cpp
    A libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr_t.convert.pass.cpp
    A libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr_t.ctor.pass.cpp
    A libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr_t.verify.cpp
    A libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr.general.pass.cpp
    A libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr.verify.cpp
    A libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr_t.convert.pass.cpp
    A libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr_t.ctor.pass.cpp
    A libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr_t.verify.cpp
    A libcxx/test/std/utilities/smartptr/adapt/types.h
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  [libc++][memory] P1132R8: `out_ptr` - a scalable output pointer abstraction (#73618)

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

Implements:
- https://wg21.link/P1132R8 - `out_ptr` - a scalable output pointer
abstraction
- https://eel.is/c++draft/smartptr.adapt - 20.3.4 Smart pointer adaptors
- https://wg21.link/LWG3734 - Inconsistency in `inout_ptr` and `out_ptr`
for empty case
- https://wg21.link/LWG3897- `inout_ptr` will not update raw pointer to
0

---------

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


  Commit: 401d7bcabc0affc38a6e52ffad782eedf0a5ec5a
      https://github.com/llvm/llvm-project/commit/401d7bcabc0affc38a6e52ffad782eedf0a5ec5a
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

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

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


  Commit: 3023b15fb1ec00dbe6a1cb630236125f500978ef
      https://github.com/llvm/llvm-project/commit/3023b15fb1ec00dbe6a1cb630236125f500978ef
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M bolt/include/bolt/Core/BinaryContext.h
    M bolt/include/bolt/Core/MCPlusBuilder.h
    M bolt/lib/Core/BinaryContext.cpp
    M bolt/lib/Core/BinaryFunction.cpp
    M bolt/lib/Passes/IndirectCallPromotion.cpp
    M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
    M bolt/lib/Target/RISCV/RISCVMCPlusBuilder.cpp
    M bolt/lib/Target/X86/X86MCPlusBuilder.cpp
    M bolt/test/X86/Inputs/jump-table-fixed-ref-pic.s
    M bolt/test/X86/jump-table-fixed-ref-pic.test

  Log Message:
  -----------
  [BOLT] Support POSSIBLE_PIC_FIXED_BRANCH

Detect and support fixed PIC indirect jumps of the following form:
```
movslq  En(%rip), %r1
leaq  PIC_JUMP_TABLE(%rip), %r2
addq  %r2, %r1
jmpq  *%r1
```

with PIC_JUMP_TABLE that looks like following:

```
  JT:  ----------
   E1:| L1 - JT  |
      |----------|
   E2:| L2 - JT  |
      |----------|
      |          |
         ......
   En:| Ln - JT  |
       ----------
```

The code could be produced by compilers, see
https://github.com/llvm/llvm-project/issues/91648.

Test Plan: updated jump-table-fixed-ref-pic.test

Reviewers: maksfb, ayermolo, dcci, rafaelauler

Reviewed By: rafaelauler

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


  Commit: 9b007a199d650f47072fe112b8315f3b3bebb27d
      https://github.com/llvm/llvm-project/commit/9b007a199d650f47072fe112b8315f3b3bebb27d
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M bolt/include/bolt/Core/BinaryContext.h
    M bolt/include/bolt/Core/BinaryFunction.h
    M bolt/include/bolt/Profile/ProfileYAMLMapping.h
    M bolt/lib/Profile/DataAggregator.cpp
    M bolt/lib/Profile/YAMLProfileWriter.cpp
    M bolt/lib/Rewrite/PseudoProbeRewriter.cpp
    M bolt/lib/Rewrite/RewriteInstance.cpp
    M bolt/test/X86/pseudoprobe-decoding-inline.test

  Log Message:
  -----------
  [BOLT] Expose pseudo probe function checksum and GUID (#99389)

Add a BinaryFunction field for pseudo probe function GUID.
Populate it during pseudo probe section parsing, and emit it in YAML
profile (both regular and BAT), along with function checksum.

To be used for stale function matching.

Test Plan: update pseudoprobe-decoding-inline.test


  Commit: 6c3aa626b28d60411b14c593f3e0443cf37fc84d
      https://github.com/llvm/llvm-project/commit/6c3aa626b28d60411b14c593f3e0443cf37fc84d
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

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

  Log Message:
  -----------
  [MC][NFC] Use std::map for AddressProbesMap

AddressProbesMap is keyed by binary addresses, and it makes sense to
treat them as ordered. This also enables slicing by binary function/
binary basic block, to be used in BOLT
(https://github.com/llvm/llvm-project/pull/99554).

Test Plan: NFC

Reviewers: wlei-llvm

Reviewed By: wlei-llvm

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


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

  Changed paths:
    M bolt/include/bolt/Profile/ProfileYAMLMapping.h
    M bolt/lib/Profile/DataAggregator.cpp
    M bolt/lib/Profile/YAMLProfileWriter.cpp
    M bolt/test/X86/pseudoprobe-decoding-inline.test

  Log Message:
  -----------
  [BOLT] Attach pseudo probes to blocks in YAML profile

Read pseudo probes in regular and BAT YAML profile generation, and
attach them to YAML profile basic blocks. This exposes GUID, probe id,
and probe type in profile for future use in stale profile matching.

Test Plan: updated pseudoprobe-decoding-inline.test

Reviewers: dcci, rafaelauler, ayermolo, maksfb

Reviewed By: rafaelauler

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


  Commit: 871740761f15df9436fc5e31c0c0ef17b9294891
      https://github.com/llvm/llvm-project/commit/871740761f15df9436fc5e31c0c0ef17b9294891
  Author: AtariDreams <gfunni234 at gmail.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/test/CodeGen/X86/combine-udiv.ll
    M llvm/test/CodeGen/X86/omit-urem-of-power-of-two-or-zero-when-comparing-with-zero.ll

  Log Message:
  -----------
  [CodeGen] Remove checks for vectors in unsigned division prior to computing leading zeros (#99524)

It turns out we can safely use
DAG.computeKnownBits(N0).countMinLeadingZeros() with constant legal
vectors, so remove the check for it.


  Commit: f554dd7e7690f96ecc130065972c306cf0decd7b
      https://github.com/llvm/llvm-project/commit/f554dd7e7690f96ecc130065972c306cf0decd7b
  Author: Thorsten Schütt <schuett at gmail.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    A llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-sucmp.ll

  Log Message:
  -----------
  [GlobalIsel] import G_SCMP and G_UCMP (#99518)

See https://github.com/llvm/llvm-project/pull/98894


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

  Changed paths:
    M llvm/unittests/ADT/SetOperationsTest.cpp

  Log Message:
  -----------
  [ADT] Use UnorderedElementsAre in SetOperationsTest.cpp (NFC) (#99596)


  Commit: 88e9bd822fe088eff74f49081b890071538fa40c
      https://github.com/llvm/llvm-project/commit/88e9bd822fe088eff74f49081b890071538fa40c
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/Basic/Targets/X86.cpp
    M clang/test/Driver/x86-target-features.c
    M clang/test/Preprocessor/x86_target_features.c

  Log Message:
  -----------
  [X86][Driver] Enable feature zu for -mapxf

This is follow-up for #78901 after validation.
Drop the comments for stability since zu is the last feature for cpuid APX_F.


  Commit: 592233a962fc870b5270d4e55aab5fe8941ac676
      https://github.com/llvm/llvm-project/commit/592233a962fc870b5270d4e55aab5fe8941ac676
  Author: Brandon Wu <brandon.wu at sifive.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/utils/TableGen/Common/DAGISelMatcher.cpp
    M llvm/utils/TableGen/Common/DAGISelMatcher.h
    M llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
    M llvm/utils/TableGen/DAGISelMatcherGen.cpp

  Log Message:
  -----------
  [TableGen][SelectionDAG] Make CheckValueTypeMatcher use MVT::SimpleValueType (#99537)

The original `CheckValueTypeMatcher` stores StringRef as the member
variable type, however it's more efficient to use use
MVT::SimpleValueType since it prevents string comparison in isEqualImpl,
it also reduce the memory consumption in each object.


  Commit: 79a0b665934a3de1113d1df90a9d677f39d9389a
      https://github.com/llvm/llvm-project/commit/79a0b665934a3de1113d1df90a9d677f39d9389a
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M bolt/lib/Profile/CMakeLists.txt

  Log Message:
  -----------
  [BOLT] Add MC dependency for Profile


  Commit: 82af008d9891bc109ba218fb546170d83c5de9a2
      https://github.com/llvm/llvm-project/commit/82af008d9891bc109ba218fb546170d83c5de9a2
  Author: Rainer Orth <ro at gcc.gnu.org>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M compiler-rt/lib/safestack/safestack_platform.h
    M compiler-rt/lib/safestack/safestack_util.h

  Log Message:
  -----------
  [safestack] Various 32-bit Linux fixes (#99455)

When enabling 32-bit testing on Linux/i386 and Linux/sparc, many tests
`FAIL`:

- All Linux/i386 tests `FAIL` with ``` safestack CHECK failed:
/vol/llvm/src/llvm-project/local/compiler-rt/lib/safestack/safestack.cpp:95
MAP_FAILED != addr ``` because the safestack `mmap` implementation
doesn't work there. This patch adjusts it to match the
`sanitizer_linux.cpp.c` one.
- On 32-bit Linux/sparc, the `pthread*.c` tests `FAIL` because a `tid_t`
(`uint64_t`) `tid` arg was passed to `syscall(SYS_tgkill)` while `tid`
is actually a `pid_t` (`int`). Fixed by adding a cast.

Tested on `x86_64-pc-linux-gnu` (32 and 64-bit) and
`sparc64-unknown-linux-gnu` (32 and 64-bit).


  Commit: 2e5b4516b70be9b8d45d4ecd0bd72c41e91ce6fb
      https://github.com/llvm/llvm-project/commit/2e5b4516b70be9b8d45d4ecd0bd72c41e91ce6fb
  Author: Shan Huang <52285902006 at stu.ecnu.edu.cn>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
    A llvm/test/Transforms/SimpleLoopUnswitch/preserving-debugloc-trivial-terminators.ll

  Log Message:
  -----------
  [DebugInfo][SimpleLoopUnswitch] Fix missing debug location updates for new terminators (#98789)

Fix #98787 .


  Commit: 3b78dfa10c4b77581cc29c4510aefe919ae660ba
      https://github.com/llvm/llvm-project/commit/3b78dfa10c4b77581cc29c4510aefe919ae660ba
  Author: Petr Hosek <phosek at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M clang/cmake/caches/Fuchsia-stage2.cmake
    M libcxx/CMakeLists.txt
    A libcxx/cmake/Modules/HandleLibC.cmake
    M libcxx/cmake/config-ix.cmake
    M libcxx/include/CMakeLists.txt
    M libcxx/src/CMakeLists.txt

  Log Message:
  -----------
  [libc][libcxx] Support for building libc++ against LLVM libc (#99287)

Provide an option to build libc++ against LLVM libc and set the CMake
compile and link options appropriately when the option is enabled.


  Commit: 2f0910d2d74419ef1ebf814b471af721ee78b464
      https://github.com/llvm/llvm-project/commit/2f0910d2d74419ef1ebf814b471af721ee78b464
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    A clang/test/Modules/pch-in-module-units.cppm

  Log Message:
  -----------
  [C++20] [Modules] Skip ODR checks if either declaration comes from GMF

This patch tries to workaround the case that:
- in a module unit that imports another module unit
- both the module units including overlapped headers
- the compiler emits false positive ODR violation diagnostics for the
  overlapped headers if ODR check is enabled
- the current module units enables PCH

For the third point, we disabled ODR check if the declarations comes
from GMF. However, due to the forth point, the check whether the
declaration comes from GMF failed. Then we still going to check it and
then the users get false positive checks.

What's worse is that, this always happens in clangd, where will generate
the PCH automatically before parsing the input files.

The root cause of the problem we mixed the modules in the semantical
level and the module in the serialization level.

The problem is pretty fundamental and we need time to fix that. But 19.x
is going to be branched and I hope to give clangd better user
experience. So I decided to land this workaround even if it is pretyy
niche and may only work for the case of clangd's pattern.


  Commit: 377e1ebdd4ed64c996566b8cede857c7e4c1fc0f
      https://github.com/llvm/llvm-project/commit/377e1ebdd4ed64c996566b8cede857c7e4c1fc0f
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M compiler-rt/test/asan/TestCases/debug_stacks.cpp

  Log Message:
  -----------
  [asan] Consume leading zeroes in a test


  Commit: 55a7be55a5fcf1c0837d62660157a45f8a52eb4f
      https://github.com/llvm/llvm-project/commit/55a7be55a5fcf1c0837d62660157a45f8a52eb4f
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
    M llvm/test/MC/AArch64/mapping-across-sections.s

  Log Message:
  -----------
  [AArch64,ELF] Use getCurrentSection().first in changeSection

Similar to the NVPTX change 4ae23bcca144b542f16d45acc8f270e156e2fa4e.
And improve the tests.


  Commit: 6f710fef838185cbbe11193b30d6adc354b08b28
      https://github.com/llvm/llvm-project/commit/6f710fef838185cbbe11193b30d6adc354b08b28
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/docs/StandardCPlusPlusModules.rst

  Log Message:
  -----------
  [Doc] Update documentation for no-transitive-change (#96453)

(Some backgrounds, not required to read:
https://discourse.llvm.org/t/rfc-c-20-modules-introduce-thin-bmi-and-decls-hash/74755)

This is the document part for the no-transitive-change
(https://github.com/llvm/llvm-project/pull/86912,
https://github.com/llvm/llvm-project/pull/92083,
https://github.com/llvm/llvm-project/pull/92085,
https://github.com/llvm/llvm-project/pull/92511) to provide the ability
for build system to skip some unnecessary recompilations.

See the patch for examples.


  Commit: 90668d240417422827d0468aa32b6aaa88105859
      https://github.com/llvm/llvm-project/commit/90668d240417422827d0468aa32b6aaa88105859
  Author: Rajat Bajpai <rbajpai at nvidia.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

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

  Log Message:
  -----------
  [CVP][LVI] Add support for InsertElementInst in LVI (#99368)

Currently, the LVI analysis pass doesn't support InsertElementInst
vector instruction. Due to this, some optimization opportunities are
missed. For example, in the below example, ICMP instruction can be
folded but it doesn't.

```
...
%ie1 = insertelement <2 x i32> poison, i32 10, i64 0
%ie2 = insertelement <2 x i32> %ie1, i32 20, i64 1
%icmp = icmp <2 x i1> %ie2, <i32 40, i32 40>
...
```

This change adds InsertElementInst support in the LVI analysis pass to
fix the motivating example.


  Commit: a1d77caaabbb5279b734c061dab36b2138ec476d
      https://github.com/llvm/llvm-project/commit/a1d77caaabbb5279b734c061dab36b2138ec476d
  Author: Daniil Kovalev <dkovalev at accesssoftek.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/test/CodeGen/ptrauth-function-lvalue-cast-disc.c
    M clang/test/CodeGen/ptrauth-function-type-discriminator-cast.c
    M clang/test/CodeGen/ptrauth-function-type-discriminator.c
    M clang/test/CodeGen/ptrauth-ubsan-vptr.cpp
    M clang/test/CodeGenCXX/ptrauth-explicit-vtable-pointer-control.cpp
    M clang/test/CodeGenCXX/ptrauth-rtti-layout.cpp
    M clang/test/CodeGenCXX/ptrauth-static-destructors.cpp
    M clang/test/CodeGenCXX/ptrauth-throw.cpp
    M clang/test/CodeGenCXX/ptrauth-thunks.cpp
    M clang/test/CodeGenCXX/ptrauth-virtual-function.cpp
    M clang/test/CodeGenCXX/ptrauth-vtable-virtual-inheritance-thunk.cpp
    M clang/test/CodeGenCXX/ubsan-vtable-checks.cpp
    M clang/test/SemaCXX/ptrauth-incomplete-virtual-member-function-return-arg-type.cpp
    M clang/test/SemaCXX/vtable_pointer_authentication_attribute.cpp

  Log Message:
  -----------
  [test][PAC][clang] Add missing tests against linux triples (#99482)

Enhance tests introduced in #94056, #96992, #98276 and #98847 by adding
RUN and CHECK lines against linux triples.


  Commit: 2df9fd7edb73c1c2b27bda433ae0795bc8076dd3
      https://github.com/llvm/llvm-project/commit/2df9fd7edb73c1c2b27bda433ae0795bc8076dd3
  Author: Haowei <haowei at google.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/test/InstallAPI/diagnostics-dsym.test

  Log Message:
  -----------
  Fix diagnostics-dsym.test on mac-arm64 (#99399)

The check ordering of diagnostics-dsym.test is wrong and it causes
test failure when running on mac-arm64 machine. This patch fixes it.


  Commit: cfe043cf99f76980ff91dc1cd4026e852556fba1
      https://github.com/llvm/llvm-project/commit/cfe043cf99f76980ff91dc1cd4026e852556fba1
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
    M mlir/test/Dialect/Linalg/vectorization-unsupported.mlir

  Log Message:
  -----------
  [mlir][linalg] Restrict scalable vectorisation (#98639)

Updates `vectorizeScalableVectorPrecondition` so that scalable
vectorisation is only applied in well understood and tested scenarios.

It's unlikely that we would ever want an arbitrary dimension to be
scalable. While the Linalg vectoriser should be flexible enough to
handle all possibilities:
  * in more "exotic" cases, we are likely to struggle with lowerings
    further down the compilation stack,
  * it would be impractical given the limitations of LLVM (which usually
    reflect the limitations of actual hardware) - e.g. no support for
    "scalable" arrays of scalable or fixed width vectors (*).

Ultimately, the goal of this patch is to better document what's
currently supported. While this PR adds some new restrictions, no
existing tests are affected.

(*) At MLIR vector level that would correspond to e.g.
`vector<[4]x8xf32>`.


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

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

  Log Message:
  -----------
  [ADT] Use range-based for loops (NFC) (#99605)


  Commit: e6668b1be8acbabeea0704bdc224637059aaa2af
      https://github.com/llvm/llvm-project/commit/e6668b1be8acbabeea0704bdc224637059aaa2af
  Author: Corentin Ferry <corentin.ferry at amd.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp
    M mlir/test/Dialect/Tosa/constant-op-fold.mlir

  Log Message:
  -----------
  [mlir][tosa] Use roundeven in TOSA cast splat constant op folding (#99484)

The behavior of TOSA Cast operation for floating-point to integers is to round to the nearest even. This commit aligns the behavior of folding a TOSA Cast of a float splat to int, so it also uses roundeven.


  Commit: 5c93a94f5adaa304922a936842162cba91785211
      https://github.com/llvm/llvm-project/commit/5c93a94f5adaa304922a936842162cba91785211
  Author: Michael Kruse <llvm-project at meinersbur.de>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/include/clang-c/Index.h
    M clang/include/clang/AST/RecursiveASTVisitor.h
    M clang/include/clang/AST/StmtOpenMP.h
    M clang/include/clang/Basic/StmtNodes.td
    M clang/include/clang/Sema/SemaOpenMP.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/lib/AST/StmtOpenMP.cpp
    M clang/lib/AST/StmtPrinter.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/lib/Basic/OpenMPKinds.cpp
    M clang/lib/CodeGen/CGStmt.cpp
    M clang/lib/CodeGen/CGStmtOpenMP.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/lib/Parse/ParseOpenMP.cpp
    M clang/lib/Sema/SemaExceptionSpec.cpp
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/lib/Serialization/ASTReaderStmt.cpp
    M clang/lib/Serialization/ASTWriterStmt.cpp
    M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
    A clang/test/OpenMP/interchange_ast_print.cpp
    A clang/test/OpenMP/interchange_codegen.cpp
    A clang/test/OpenMP/interchange_messages.cpp
    M clang/tools/libclang/CIndex.cpp
    M clang/tools/libclang/CXCursor.cpp
    M llvm/include/llvm/Frontend/OpenMP/OMP.td
    A openmp/runtime/test/transform/interchange/foreach.cpp
    A openmp/runtime/test/transform/interchange/intfor.c
    A openmp/runtime/test/transform/interchange/iterfor.cpp
    A openmp/runtime/test/transform/interchange/parallel-wsloop-collapse-foreach.cpp
    A openmp/runtime/test/transform/interchange/parallel-wsloop-collapse-intfor.cpp

  Log Message:
  -----------
  [Clang][OpenMP] Add interchange directive (#93022)

Add the interchange directive which will be introduced in the upcoming
OpenMP 6.0 specification. A preview has been published in [Technical
Report 12](https://www.openmp.org/wp-content/uploads/openmp-TR12.pdf).


  Commit: c248d05c6807baba34ff4fb254176e300922ea72
      https://github.com/llvm/llvm-project/commit/c248d05c6807baba34ff4fb254176e300922ea72
  Author: Emanuele Rocca <emanuele.rocca at arm.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/test/PCH/aarch64-sve-types.c

  Log Message:
  -----------
  [Clang] make SVE types known to device targets too (#99446)

For the purpose of preprocessing and declarations in header files,
ensure clang accepts SVE types for both device and host targets.

Co-authored-by: Sander De Smalen <sander.desmalen at arm.com>


  Commit: c81366709574bb95bad86011a44e80a7f97f2c56
      https://github.com/llvm/llvm-project/commit/c81366709574bb95bad86011a44e80a7f97f2c56
  Author: Mariya Podchishchaeva <mariya.podchishchaeva at intel.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/include/clang/Lex/PPEmbedParameters.h
    M clang/lib/Lex/PPDirectives.cpp
    A clang/test/Preprocessor/embed_search_paths.c

  Log Message:
  -----------
  [clang] Fix static analyzer concerns in #embed code (#99331)

1. Dead code in `LookupEmbedFile`. The loop always exited on the first
iteration. This was also causing a bug of not checking all directories
provided by `--embed-dir`.

2. Use of uninitialized variable `CurTok` in `LexEmbedParameters`. It
was used to initialize the field which seems to be unused. Removed
unused field, this way `CurTok` should be initialized by Lex method.


  Commit: 25f4bd8872b2c15c641c8e915afb54b39d119d8a
      https://github.com/llvm/llvm-project/commit/25f4bd8872b2c15c641c8e915afb54b39d119d8a
  Author: Changpeng Fang <changpeng.fang at amd.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
    A llvm/test/CodeGen/AMDGPU/fold-zero-high-bits-clear-kill-flags.mir

  Log Message:
  -----------
  AMDGPU: Clear kill flags after FoldZeroHighBits (#99582)

After folding, all uses of the result register are going to be replaced
by the operand register. The kill flags on the uses of the result and
operand registers are no longer valid after the replacement, and need to
be cleared.
The only exception is, however, if the kill flag is set for the operand
register, we are sure the last use of the result register is the new
last use of the operand register, and thus we are safe to keep the kill
flags.


  Commit: 3a7c187031ea4999e426565fa53282cf536158dd
      https://github.com/llvm/llvm-project/commit/3a7c187031ea4999e426565fa53282cf536158dd
  Author: Rainer Orth <ro at gcc.gnu.org>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M compiler-rt/test/safestack/CMakeLists.txt
    M compiler-rt/test/safestack/lit.cfg.py
    M compiler-rt/test/safestack/lit.site.cfg.py.in

  Log Message:
  -----------
  [safestack] Support multilib testing (#98002)

While working on my safestack patches, I noticed that only the default
multilib was tested even though all multilib versions of
`libclang_rt.safestack.a` were built.

This patch fixes this, patterned after the ubsan testing support.

Tested on `amd64-pc-solaris2.11` (`amd64` and `i386`),
`sparcv9-sun-solaris2.11` (`sparcv9` and `sparc`), `x86_64-pc-linux-gnu`
(`x86_64` and `i386`), and `sparc64-unknown-linux-gnu` (`sparcv9` and
`sparc`).


  Commit: ae2e66b03b7a793642d6291ccd8de2252637416a
      https://github.com/llvm/llvm-project/commit/ae2e66b03b7a793642d6291ccd8de2252637416a
  Author: David Green <david.green at arm.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

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

  Log Message:
  -----------
  [AArch64] Use TargetStackID::ScalableVector instead of hard-coded values. NFC


  Commit: a6b204b82745764e1460aa1dc26e69ff73195c60
      https://github.com/llvm/llvm-project/commit/a6b204b82745764e1460aa1dc26e69ff73195c60
  Author: Simon Tatham <simon.tatham at arm.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M lld/ELF/Arch/AArch64.cpp
    M lld/test/ELF/aarch64-reloc-implicit-addend.test

  Log Message:
  -----------
  [lld][AArch64] Fix handling of SHT_REL relocation addends. (#98291)

Normally, AArch64 ELF objects use the SHT_RELA type of relocation
section, with addends stored in each relocation. But some legacy AArch64
object producers still use SHT_REL in some situations, storing the
addend in the initial value of the data item or instruction immediate
field that the relocation will modify. LLD was mishandling relocations
of this type in multiple ways.

Firstly, many of the cases in the `getImplicitAddend` switch statement
were apparently based on a misunderstanding. The relocation types that
operate on instructions should be expecting to find an instruction of
the appropriate type, and should extract its immediate field. But many
of them were instead behaving as if they expected to find a raw 64-, 32-
or 16-bit value, and wanted to extract the right range of bits. For
example, the relocation for R_AARCH64_ADD_ABS_LO12_NC read a 16-bit word
and extracted its bottom 12 bits, presumably on the thinking that the
relocation writes the low 12 bits of the value it computes. But the
input addend for SHT_REL purposes occupies the immediate field of an
AArch64 ADD instruction, which meant it should have been reading a
32-bit AArch64 instruction encoding, and extracting bits 10-21 where the
immediate field lives. Worse, the R_AARCH64_MOVW_UABS_G2 relocation was
reading 64 bits from the input section, and since it's only relocating a
32-bit instruction, the second half of those bits would have been
completely unrelated!

Adding to that confusion, most of the values being read were first
sign-extended, and _then_ had a range of bits extracted, which doesn't
make much sense. They should have first extracted some bits from the
instruction encoding, and then sign-extended that 12-, 19-, or 21-bit
result (or whatever else) to a full 64-bit value.

Secondly, after the relocated value was computed, in most cases it was
being written into the target instruction field via a bitwise OR
operation. This meant that if the instruction field didn't initially
contain all zeroes, the wrong result would end up in it. That's not even
a 100% reliable strategy for SHT_RELA, which in some situations is used
for its repeatability (in the sense that applying the relocation twice
should cause the second answer to overwrite the first, so you can
relocate an image in advance to its most likely address, and then do it
again at load time if that turns out not to be available). But for
SHT_REL, when you expect nonzero immediate fields in normal use, it
couldn't possibly work. You could see the effect of this in the existing
test, which had a lot of FFFFFF in the expected output which there
wasn't any plausible justification for.

Finally, one relocation type was actually missing: there was no support
for R_AARCH64_ADR_PREL_LO21 at all.

So I've rewritten most of the cases in `getImplicitAddend`; replaced the
bitwise ORs with overwrites; and replaced the previous test with a much
more thorough one, obtained by writing an input assembly file with
explicitly specified relocations on instructions that also have
carefully selected immediate fields, and then doing some yaml2obj
seddery to turn the RELA relocation section into a REL one.


  Commit: 270f5e42b8daab586ffcd2b46ff41486199f6626
      https://github.com/llvm/llvm-project/commit/270f5e42b8daab586ffcd2b46ff41486199f6626
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    A llvm/test/Transforms/LoopVectorize/AArch64/divs-with-scalable-vfs.ll

  Log Message:
  -----------
  [LV] Add tests where uniform recipe gets predicated for scalable VFs.

Currently the tests crash, due to a VPReplicateRecipe getting predicated
for scalable vectors.

Precommits tests for https://github.com/llvm/llvm-project/pull/98892.

Test cases for
 * https://github.com/llvm/llvm-project/issues/80416 and
 * https://github.com/llvm/llvm-project/issues/94328


  Commit: e8fbefe15b101d7d30366cbe2ac068449923f5e2
      https://github.com/llvm/llvm-project/commit/e8fbefe15b101d7d30366cbe2ac068449923f5e2
  Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/TargetLibraryInfo.def
    M llvm/lib/Analysis/TargetLibraryInfo.cpp
    M llvm/lib/Transforms/Utils/BuildLibCalls.cpp
    M llvm/test/Transforms/InferFunctionAttrs/annotate.ll
    M llvm/test/tools/llvm-tli-checker/ps4-tli-check.yaml
    M llvm/unittests/Analysis/TargetLibraryInfoTest.cpp

  Log Message:
  -----------
  [TLI] Add basic support for remquo libcall (#99611)

This patch adds basic support for `remquo`. Constant folding support
will be submitted in a subsequent patch.

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


  Commit: 39185da16228efb4a09a30d6825a6f508c4755a3
      https://github.com/llvm/llvm-project/commit/39185da16228efb4a09a30d6825a6f508c4755a3
  Author: SpencerAbson <Spencer.Abson at arm.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/lib/Basic/Targets/AArch64.cpp
    M clang/lib/Basic/Targets/AArch64.h
    M clang/test/Preprocessor/aarch64-target-features.c

  Log Message:
  -----------
  [Clang][AArch64] Add missing SME/SVE2.1 feature macros (#98285)

The 2022 SME2.1and SVE2.1 feature macros are missing from Clang. Passing
'-target-feature +sve2p1' and 'target-feature +sme2p1' should prompt
Clang to define __ARM_FEATURE_SVE2p1 and __ARM_FEATURE_SME2p1
respectively, including their prerequisits..

This patch includes __ARM_FEATURE_SVE2p1 and __ARM_FEATURE_SME2p1, plus
a clang preprocessor test for each. It also ensures that the Clang macro
builder is used in a consistent fashion across Targets/AArch64.cpp.

The specification for SVE2.1 is documented in the latest (2024 Q1) ACLE
release: https://github.com/ARM-software/acle/releases . SME2p1 is not
yet featured in ACLE documentation but its features are described under
https://developer.arm.com/documentation/ddi0487/latest/


  Commit: f0617d2def86192c15c9194281ef3f843effed55
      https://github.com/llvm/llvm-project/commit/f0617d2def86192c15c9194281ef3f843effed55
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M libcxx/test/std/time/time.clock/time.clock.file/now.pass.cpp

  Log Message:
  -----------
  [libcxx][test] Remove picolib UNSUPPORTED for now.pass.cpp (#99503)

This ARM semihosting call was implemented in QEMU by
https://gitlab.com/qemu-project/qemu/-/commit/4d834039c2107cb86931cb3f22ca3de6e4e42b06
and is present in the qemu-system-arm v8.1.3 used by the builders.


  Commit: e5df657bbf38f8fcd9dd8c9e79262ca184f2598b
      https://github.com/llvm/llvm-project/commit/e5df657bbf38f8fcd9dd8c9e79262ca184f2598b
  Author: Alejandro Álvarez Ayllón <alejandro.alvarez at sonarsource.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    A clang/test/SemaCXX/instantiate-template-broken-nontype-default.cpp

  Log Message:
  -----------
  [Sema] Fix assertion error in Sema::FindInstantiatedDecl (#96509)

...when looking for a template instantiation with a non-type parameter of
unknown type and with a default value.

This can happen when a template non-type parameter has a broken
expression that gets replaced by a `RecoveryExpr`.


  Commit: 092dd9ca2d5149e3252098610c73e4fa42d831b9
      https://github.com/llvm/llvm-project/commit/092dd9ca2d5149e3252098610c73e4fa42d831b9
  Author: SpencerAbson <Spencer.Abson at arm.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/test/CodeGen/AArch64/arm64-neon-copy.ll
    M llvm/test/CodeGen/AArch64/fixed-point-conv-vec-pat.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-int-to-fp.ll

  Log Message:
  -----------
  [AArch64] Remove redundant instructions in int-to-fp of lowest vector… (#98602)

… element. 
When converting the lowest element (that in lane 0) of a vector from an
integer to a floating-point value, LLVM should select the SIMD scalar
variant of CVTF
(https://developer.arm.com/documentation/dui0801/g/A64-SIMD-Scalar-Instructions/SCVTF--scalar--integer-)
to avoid the FPR to GPR register transfers that are required to use the
general floating-point variant
(https://developer.arm.com/documentation/dui0801/g/A64-Floating-point-Instructions/SCVTF--scalar--integer-).
This is possible as the lowest element can be referred to by the
corresponding scalar sub-register with the width of the vector's
constituent elements.

This patch adds new TableGen patterns to remove these redundant
instructions for AArch64, as well as back-end tests to ensure the new
preferred instruction selection result is produced. Existing tests that
relied on the previous selection result have also been updated.


  Commit: ac6061e084250a377baa552842261797aa6da6a8
      https://github.com/llvm/llvm-project/commit/ac6061e084250a377baa552842261797aa6da6a8
  Author: David Sherwood <david.sherwood at arm.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/Loads.h
    M llvm/lib/Analysis/Loads.cpp
    M llvm/unittests/Analysis/LoadsTest.cpp

  Log Message:
  -----------
  [Analysis] Add new function isDereferenceableReadOnlyLoop (#97292)

I created this patch due to a reviewer request on PR #88385 to split off
the analysis changes, however without the other code in that PR I can
only test the new function with unit tests.


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

  Changed paths:
    M llvm/test/Transforms/CorrelatedValuePropagation/ashr.ll

  Log Message:
  -----------
  [CVP] Regenerate test checks (NFC)


  Commit: 6235698f47828747d3b1b0418e547e2e4ff9138f
      https://github.com/llvm/llvm-project/commit/6235698f47828747d3b1b0418e547e2e4ff9138f
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/test/Transforms/CorrelatedValuePropagation/basic.ll

  Log Message:
  -----------
  [CVP] Add tests for range return attributes (NFC)


  Commit: b7b0071680e60c60da9d4d858f944fd95d76fd42
      https://github.com/llvm/llvm-project/commit/b7b0071680e60c60da9d4d858f944fd95d76fd42
  Author: Dinar Temirbulatov <Dinar.Temirbulatov at arm.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/double_reduct.ll
    M llvm/test/CodeGen/AArch64/sve-doublereduct.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-vector-zext.ll
    M llvm/test/CodeGen/AArch64/sve-int-reduce.ll
    A llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-reductions.ll
    M llvm/test/CodeGen/AArch64/vecreduce-add.ll

  Log Message:
  -----------
  [AArch64][SVE] Improve code quality of vector unsigned/signed add reductions. (#97339)

For SVE we don't have to zero extend and sum part of the result before
issuing UADDV instruction. Also this change allows to handle bigger than
a legal vector type more efficiently and lower a fixed-length vector
type to SVE's UADDV where appropriate.


  Commit: 17f98baf704f90dbf892fe0b0150715f09252499
      https://github.com/llvm/llvm-project/commit/17f98baf704f90dbf892fe0b0150715f09252499
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    A llvm/test/Transforms/LoopVectorize/SystemZ/scalar-steps-with-users-demanding-all-lanes-and-first-lane-only.ll

  Log Message:
  -----------
  [LV] Add test with users both demanding all lanes and first-lane-only.

Add a test case where scalar steps are used by both a VPReplicateRecipe
(demands all scalar lanes) and a VPInstruction that only demands the
first lane.

Test case for https://github.com/llvm/llvm-project/issues/88849.


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

  Changed paths:
    M lldb/include/lldb/API/SBSaveCoreOptions.h
    M lldb/include/lldb/lldb-forward.h

  Log Message:
  -----------
  [lldb] Forward-declare lldb-private::SaveCoreOptions

to avoid including private headers from the API headers.

This fixes API tests which link against the lldb library.


  Commit: 7f763b162ff0f72bbd98e73da9b10d5d3941247b
      https://github.com/llvm/llvm-project/commit/7f763b162ff0f72bbd98e73da9b10d5d3941247b
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/OpenMP/OpenMPClauses.td

  Log Message:
  -----------
  [MLIR][OpenMP] NFC: Sort clause definitions (#99504)

This patch moves the `filter` clause definition to keep alphabetical
sorting of OpenMPClauses.td.


  Commit: 6cc8774228a4162ebadfa636086a171f82e51a8c
      https://github.com/llvm/llvm-project/commit/6cc8774228a4162ebadfa636086a171f82e51a8c
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Bitcode/LLVMBitCodes.h
    M llvm/include/llvm/CodeGen/AsmPrinter.h
    M llvm/include/llvm/IR/Attributes.td
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    M llvm/lib/Target/AArch64/AArch64Arm64ECCallLowering.cpp
    M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
    M llvm/lib/Target/AArch64/AArch64CallingConvention.td
    M llvm/lib/Transforms/Utils/CodeExtractor.cpp
    A llvm/test/CodeGen/AArch64/arm64ec-hybrid-patchable.ll

  Log Message:
  -----------
  [CodeGen][ARM64EC] Add support for hybrid_patchable attribute. (#92965)


  Commit: 5a45fed188dce2ae6c4da23ba61c9b8df87f08f4
      https://github.com/llvm/llvm-project/commit/5a45fed188dce2ae6c4da23ba61c9b8df87f08f4
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Driver/Options.td
    M clang/test/Driver/Ofast.c

  Log Message:
  -----------
  [clang][NFC] Fix typo in `-Ofast` deprecation warning

A follow-up for #98736


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

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

  Log Message:
  -----------
  [ADT] Teach set_intersect to erase with iterators (#99569)

Without this patch, we erase an element in S1 by value even though we
have an interator pointing to it.  This patch tries to use erase(iter)
to avoid redundant lookups.


  Commit: 0f231567719c99caa99164d8f91bad50883dab03
      https://github.com/llvm/llvm-project/commit/0f231567719c99caa99164d8f91bad50883dab03
  Author: wanglei <wanglei at loongson.cn>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
    M llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchFixupKinds.h
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.cpp
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.cpp
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.h
    M llvm/test/MC/LoongArch/Relocations/relocations.s

  Log Message:
  -----------
  [LoongArch] Support parsing the `%le_{hi20,add,lo12}_r` modifiers

Reviewed By: SixWeining

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


  Commit: 6b98ab95f0d36705b5a1fc1e755c992ba2329c89
      https://github.com/llvm/llvm-project/commit/6b98ab95f0d36705b5a1fc1e755c992ba2329c89
  Author: wanglei <wanglei at loongson.cn>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M lld/ELF/Arch/LoongArch.cpp
    M lld/test/ELF/loongarch-tls-le.s

  Log Message:
  -----------
  [lld][ELF][LoongArch] Add support for R_LARCH_LE_{HI20,ADD,LO12}_R relocations

Reviewed By: SixWeining

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


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlan.cpp
    M llvm/test/Transforms/LoopVectorize/SystemZ/scalar-steps-with-users-demanding-all-lanes-and-first-lane-only.ll

  Log Message:
  -----------
  [VPlan] Relax assertion retrieving a scalar from VPTransformState::get.

The current assertion VPTransformState::get when retrieving a single
scalar only does not account for cases where a def has multiple users,
some demanding all scalar lanes, some demanding only a single scalar.

For an example, see the modified test case. Relax the assertion by also
allowing requesting scalar lanes only when the Def doesn't have only its
first lane used.

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


  Commit: 812694c449b222e960a39ccb517a074c08db4a71
      https://github.com/llvm/llvm-project/commit/812694c449b222e960a39ccb517a074c08db4a71
  Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    A llvm/test/Analysis/ValueTracking/numsignbits-shl.ll

  Log Message:
  -----------
  [ValueTracking] Pre-commit ComputeNumSignBits test for (shl (zext X), C)

Adding a test case for potential simplifications of
  (shl (zext X), C)
based on number of known sign bits in X.


  Commit: 098bd842a7e50853fa231f8b73c24ec5006fe063
      https://github.com/llvm/llvm-project/commit/098bd842a7e50853fa231f8b73c24ec5006fe063
  Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Analysis/ValueTracking/numsignbits-shl.ll

  Log Message:
  -----------
  [ValueTracking] Let ComputeKnownSignBits handle (shl (zext X), C) (#97693)

Add simple support for looking through a zext when doing
ComputeKnownSignBits for shl. This is valid for the case when
all extended bits are shifted out, because then the number of sign
bits can be found by analysing the zext operand.

The solution here is simple as it only handle a single zext (not
passing remaining left shift amount during recursion). It could be
possible to generalize this in the future by for example passing an
'OffsetFromMSB' parameter to ComputeNumSignBitsImpl, telling it to
calculate number of sign bits starting at some offset from the most
significant bit.


  Commit: 008df3cf85e9bb1532c079bfd7a7a00e90e0a3c6
      https://github.com/llvm/llvm-project/commit/008df3cf85e9bb1532c079bfd7a7a00e90e0a3c6
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/divs-with-scalable-vfs.ll
    M llvm/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll

  Log Message:
  -----------
  [LV] Check isPredInst instead of isScalarWithPred in uniform analysis. (#98892)

Any instruction marked as uniform will result in a uniform
VPReplicateRecipe. If it requires predication, it will be placed in a
replicate region, even if isScalarWithPredication returns false.

Check isPredicatedInst instead of isScalarWithPredication to avoid
generating uniform VPReplicateRecipes placed inside a replicate region.
This fixes an assertion when using scalable VFs.

Fixes https://github.com/llvm/llvm-project/issues/80416. 
Fixes https://github.com/llvm/llvm-project/issues/94328.
Fixes https://github.com/llvm/llvm-project/issues/99625.

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


  Commit: 42a7c424b65050c5522e7055ab1486b572d86b69
      https://github.com/llvm/llvm-project/commit/42a7c424b65050c5522e7055ab1486b572d86b69
  Author: Haojian Wu <hokein.wu at gmail.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

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

  Log Message:
  -----------
  [clang] Add `std::span` to the default gsl pointer annotation list. (#99622)


  Commit: 243af2ff217f65ef291232faa60779b86e01a967
      https://github.com/llvm/llvm-project/commit/243af2ff217f65ef291232faa60779b86e01a967
  Author: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/make/Makefile.rules

  Log Message:
  -----------
  [LLDB][test] Improve SHELL detection on Windows in Makefile.rules (#99532)

In MinGW make, the `%windir%` variable has a lowercase name `$(windir)`
when launched from cmd.exe, and `$(WINDIR)` name when launched from
MSYS2, since MSYS2 represents standard Windows environment variables
names in upper case.

This commit makes Makefile.rules consider both run variants.


  Commit: e404eed24bebd5e3e04fc153eb330bae7d92107f
      https://github.com/llvm/llvm-project/commit/e404eed24bebd5e3e04fc153eb330bae7d92107f
  Author: Haojian Wu <hokein.wu at gmail.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

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

  Log Message:
  -----------
  [clang] Add the `const` to all default lists in SemaAttr.cpp, NFC

Address the comment in https://github.com/llvm/llvm-project/pull/99622#issuecomment-2238800532


  Commit: fdfc49186318727653cf6b13686bb77cfed60e33
      https://github.com/llvm/llvm-project/commit/fdfc49186318727653cf6b13686bb77cfed60e33
  Author: dlav-sc <daniil.avdeev at syntacore.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp

  Log Message:
  -----------
  [lldb] SHT_NOBITS sections type (#99044)

.sbss section was recognized as eSectionTypeOther, but has to be
eSectionTypeZeroFill.

Fixed tests for RISCV target:

TestClassLoadingViaMemberTypedef.TestCase

TestClassTemplateNonTypeParameterPack.TestCaseClassTemplateNonTypeParameterPack
TestThreadSelectionBug.TestThreadSelectionBug
lldbsuite.test.lldbtest.TestOffsetof
lldbsuite.test.lldbtest.TestOffsetofCpp
TestTargetDumpTypeSystem.TestCase
TestCPP11EnumTypes.CPP11EnumTypesTestCase
TestCppIsTypeComplete.TestCase
TestExprCrash.ExprCrashTestCase
TestDebugIndexCache.DebugIndexCacheTestcase


  Commit: 6da23b647ea0c7961a31742e3daac80f4c08e99c
      https://github.com/llvm/llvm-project/commit/6da23b647ea0c7961a31742e3daac80f4c08e99c
  Author: Dan Liew <dan at su-root.co.uk>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/include/clang/Basic/LangOptions.def
    M clang/include/clang/Driver/Options.td
    M clang/lib/Sema/SemaDeclAttr.cpp
    A clang/test/Sema/attr-counted-by-bounds-safety-vlas.c

  Log Message:
  -----------
  [BoundsSafety] Add `-fexperimental-bounds-safety` CC1 and language option and use it to tweak `counted_by`'s semantics (#92623)

This adds the `-fexperimental-bounds-safety` cc1 and corresponding
language option. This language option enables "-fbounds-safety" which is
a bounds-safety extension for C that is being incrementally upstreamed.

This cc1 flag is not exposed as a driver flag yet because most of the
implementation isn't upstream yet.

The language option is used to make a small semantic change to how the
`counted_by` attribute is treated. Without
`-fexperimental-bounds-safety` the attribute is allowed (but emits a
warning) on a flexible array member where the element type is a struct
with a flexible array member. With the flag this situation is an error.

E.g.

```
struct has_unannotated_FAM {
  int count;
  char buffer[];
};

struct buffer_of_structs_with_unnannotated_FAM {
  int count;
  // Forbidden with `-fexperimental-bounds-safety`
  struct has_unannotated_FAM Arr[] __counted_by(count);
};
```

rdar://125400392


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

  Changed paths:
    M libc/benchmarks/gpu/timing/CMakeLists.txt

  Log Message:
  -----------
  [libc] Add AMDGPU Timing to CMake (#99603)

`libc/benchmarks/gpu/timing/CMakeLists.txt` did not correctly build
`amdgpu` utils. This PR fixes that issue by adding `amdgpu` to the loop
that adds the correct sub directories.


  Commit: 123c036bd361de9ed6baa0090e5942105764e8db
      https://github.com/llvm/llvm-project/commit/123c036bd361de9ed6baa0090e5942105764e8db
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/CodeGenOptions.def
    M clang/include/clang/Driver/Options.td
    M clang/lib/CodeGen/CodeGenTBAA.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/test/CodeGen/sanitize-metadata-nosanitize.c
    M clang/test/CodeGen/tbaa-pointers.c
    M clang/test/CodeGenCXX/attr-likelihood-iteration-stmt.cpp
    M clang/test/OpenMP/nvptx_target_parallel_reduction_codegen_tbaa_PR46146.cpp

  Log Message:
  -----------
  Recommit "[TBAA] Emit distinct TBAA tags for pointers with different depths,types. (#76612)"

This reverts the revert commit bee240367cc48bbc93fe5eb57d537968dfe4419f.

This version includes updates to the tests to use patterns when matching
the pointer argument.

Original commit message:

    This patch extends Clang's TBAA generation code to emit distinct tags
    for incompatible pointer types.

    Pointers with different element types are incompatible if the pointee
    types are also incompatible (modulo sugar/modifiers).

    Express this in TBAA by generating different tags for pointers based on
    the pointer depth and pointee type. To get the TBAA tag for the pointee
    type it uses getTypeInfoHelper on the pointee type.

    (Moved from https://reviews.llvm.org/D122573)

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


  Commit: 176bf50cd244505e38f8838a55568060dd3913e8
      https://github.com/llvm/llvm-project/commit/176bf50cd244505e38f8838a55568060dd3913e8
  Author: Dan Liew <dan at su-root.co.uk>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Sema/CMakeLists.txt
    A clang/lib/Sema/SemaBoundsSafety.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp

  Log Message:
  -----------
  [clang][NFC] Move Bounds Safety Sema code to `SemaBoundsSafety.cpp` (#99330)

This patch adds a new `SemaBoundsSafety.cpp` source file and moves the
existing `CheckCountedByAttrOnField` function and related helper
functions and types from `SemaDeclAttr.cpp` into the new source file.
The `CheckCountedByAttrOnField` function is now a method on the Sema
class and now has doxygen comments.

The goal behind this refactor is to clearly separate the
`-fbounds-safety` Sema code from everything else.

Although `counted_by(_or_null)` and `sized_by(_or_null)` attributes have
a meaning outside of `-fbounds-safety` it seems reasonable to also have
the Sema logic live in `SemaBoundsSafety.cpp` since the intention is
that the attributes will have the same semantics (but not necessarily
the same enforcement).

As `-fbounds-safety` is upstreamed additional Sema checks will be added
to `SemaBoundsSafety.cpp`.

rdar://131777237


  Commit: 7b60f2dcfbe11ddb62f7a6f2d374c1a3ff556eb0
      https://github.com/llvm/llvm-project/commit/7b60f2dcfbe11ddb62f7a6f2d374c1a3ff556eb0
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

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

  Log Message:
  -----------
  [gn build] Port 176bf50cd244


  Commit: 7122b70cfc8e23a069410215c363da76d842bda4
      https://github.com/llvm/llvm-project/commit/7122b70cfc8e23a069410215c363da76d842bda4
  Author: Mariya Podchishchaeva <mariya.podchishchaeva at intel.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/lib/AST/Expr.cpp
    M clang/lib/Sema/SemaInit.cpp
    A clang/test/Preprocessor/Inputs/big_char.txt
    M clang/test/Preprocessor/embed_codegen.cpp
    M clang/test/Preprocessor/embed_weird.cpp

  Log Message:
  -----------
  [clang] Fix underlying type of EmbedExpr (#99050)

This patch makes remaining cases of #embed to emit int type since there
is an agreement to do that for C. C++ is being discussed, but in general
we don't want to produce different types for C and C++.


  Commit: 7d8375b86ee490acafb4254603ccd4edc2a58256
      https://github.com/llvm/llvm-project/commit/7d8375b86ee490acafb4254603ccd4edc2a58256
  Author: Gábor Horváth <xazax.hun at gmail.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/include/clang/Driver/Driver.h
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/ToolChains/Darwin.cpp
    M clang/lib/Driver/ToolChains/Darwin.h
    A clang/test/Driver/darwin-print-libgcc-file-name.c

  Log Message:
  -----------
  [clang][driver] Fix -print-libgcc-file-name on Darwin platforms (#98325)

On Darwin, -print-libgcc-file-name was returning a nonsensical result.
It would return the name of the library that would be used by the
default toolchain implementation, but that was something that didn't
exist on Darwin.

Fixing this requires initializing the Darwin toolchain before processing
`-print-libgcc-file-name`. Previously, the Darwin toolchain would only
be initialized when building the jobs for this compilation, which is too
late since `-print-libgcc-file-name` requires the toolchain to be
initialized in order to provide the right results.

rdar://90633749

Co-authored-by: Gabor Horvath <gaborh at apple.com>


  Commit: 007aa6d1b274baf0b4d1c02a8d7d56f219e5f127
      https://github.com/llvm/llvm-project/commit/007aa6d1b274baf0b4d1c02a8d7d56f219e5f127
  Author: Yangyu Chen <cyy at cyyself.name>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

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

  Log Message:
  -----------
  [SLP] Increase UsesLimit to 64 (#99467)

Since commit 82b800ecb35fb46881aa52000fa40b1b99aa654e addressed the
issue #99327 , we see some performance regression (13%) on some
verilator generated C++ code. This is because the UsesLimit is set to 8,
which is too small for the verilator generated code. I have analyzed the
need for the UsesLimit from [1] and found that the UsesLimit should be
at least 64 to cover most of these cases. Thus, This patch increases the
UsesLimit to 64.

Link:
https://github.com/llvm/llvm-project/issues/99327#issuecomment-2236052879
[1]

Signed-off-by: Yangyu Chen <cyy at cyyself.name>


  Commit: 8a79dc7e6f765f3f49c5dd9330fc0826d3362858
      https://github.com/llvm/llvm-project/commit/8a79dc7e6f765f3f49c5dd9330fc0826d3362858
  Author: Egor Zhdan <e_zhdan at apple.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/include/clang/APINotes/APINotesReader.h
    M clang/include/clang/APINotes/APINotesWriter.h
    M clang/include/clang/APINotes/Types.h
    M clang/lib/APINotes/APINotesFormat.h
    M clang/lib/APINotes/APINotesReader.cpp
    M clang/lib/APINotes/APINotesWriter.cpp
    M clang/lib/APINotes/APINotesYAMLCompiler.cpp
    M clang/lib/Sema/SemaAPINotes.cpp
    A clang/test/APINotes/Inputs/Headers/Methods.apinotes
    A clang/test/APINotes/Inputs/Headers/Methods.h
    M clang/test/APINotes/Inputs/Headers/Namespaces.apinotes
    M clang/test/APINotes/Inputs/Headers/Namespaces.h
    M clang/test/APINotes/Inputs/Headers/module.modulemap
    A clang/test/APINotes/methods.cpp
    M clang/test/APINotes/namespaces.cpp

  Log Message:
  -----------
  [APINotes] Support annotating C++ methods

This adds support for adding Clang attributes to C++ methods declared
within C++ records by using API Notes.

For instance:
```
Tags:
- Name: IntWrapper
  Methods:
  - Name: getIncremented
    Availability: none
```

This is the first instance of something within a C++ record being
annotated with API Notes, so it adds the necessary infra to make a C++
record an "API Notes context".

Notably this does not add support for nested C++ tags. That will be
added in a follow-up patch.

rdar://131387880


  Commit: d31603eefc2d8becfd1f41327b6a8db3e0e91a27
      https://github.com/llvm/llvm-project/commit/d31603eefc2d8becfd1f41327b6a8db3e0e91a27
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/lib/AST/Interp/Compiler.cpp
    M clang/lib/AST/Interp/Compiler.h

  Log Message:
  -----------
  [clang][Interp] Control InitStack activity state in visitInitList

This doesn't change anything about the current tests, but helps
once those tests change because of #97308


  Commit: 47c08fb8d79ec1bf85cc542be6ca2591ebf2d361
      https://github.com/llvm/llvm-project/commit/47c08fb8d79ec1bf85cc542be6ca2591ebf2d361
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/test/CodeGen/tbaa-pointers.c

  Log Message:
  -----------
  [TBAA] Remove references to entry BB in check lines for tbaa-pointers.c

Follow-up to 123c036bd361d to remove references to entry BB name from
checks, to fix tests for builds that do not generate block names.


  Commit: 9145ffa134ed57c25ec62879c1aeff50595d08be
      https://github.com/llvm/llvm-project/commit/9145ffa134ed57c25ec62879c1aeff50595d08be
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/lib/AST/Interp/Compiler.cpp
    M clang/test/Sema/switch.c

  Log Message:
  -----------
  [clang][Interp] Only diagnose out of bounds enum values in C++


  Commit: 38d0b2d174efe05504a18988299b4d78d37999b7
      https://github.com/llvm/llvm-project/commit/38d0b2d174efe05504a18988299b4d78d37999b7
  Author: Rafael Ubal <rubal at mathworks.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M mlir/lib/Dialect/Shape/IR/Shape.cpp
    M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
    M mlir/test/Dialect/Shape/canonicalize.mlir
    A mlir/test/Dialect/Shape/unranked-tensor-lowering.mlir
    M mlir/test/Dialect/Tensor/canonicalize.mlir

  Log Message:
  -----------
  [mlir] New canonicalization patterns for shape.shape_of and tensor.reshape (#98531)

This PR includes 3 new canonicalization patterns:

- Operation `shape.shape_of`: shape of reshape

```
// Before
func.func @f(%arg0: tensor<*xf32>, %arg1: tensor<?xindex>) -> tensor<?xindex> {
  %reshape = tensor.reshape %arg0(%arg1) : (tensor<*xf32>, tensor<?xindex>) -> tensor<*xf32>
  %0 = shape.shape_of %reshape : tensor<*xf32> -> tensor<?xindex>
  return %0 : tensor<?xindex>
}

// After
func.func @f(%arg0: tensor<*xf32>, %arg1: tensor<?xindex>) -> tensor<?xindex> {
  return %arg1 : tensor<?xindex>
}
```

- Operation `tensor.reshape`: reshape of reshape

```
// Before
func.func @fold_tensor_reshape(%arg0: tensor<*xf32>, %arg1: tensor<?xindex>, %arg2: tensor<?xindex>) -> tensor<*xf32> {
  %0 = tensor.reshape %arg0(%arg1) : (tensor<*xf32>, tensor<?xindex>) -> tensor<*xf32>
  %1 = tensor.reshape %0(%arg2) : (tensor<*xf32>, tensor<?xindex>) -> tensor<*xf32>
  return %1 : tensor<*xf32>
}

// After
func.func @fold_tensor_reshape(%arg0: tensor<*xf32>, %arg1: tensor<?xindex>, %arg2: tensor<?xindex>) -> tensor<*xf32> {
  %reshape = tensor.reshape %arg0(%arg2) : (tensor<*xf32>, tensor<?xindex>) -> tensor<*xf32>
  return %reshape : tensor<*xf32>
}
```

- Operation `tensor.reshape`: reshape 1D to 1D

```
// Before
func.func @fold_reshape_1d(%input: tensor<?xf32>, %shape: tensor<1xindex>) -> tensor<?xf32> {
  %0 = tensor.reshape %input(%shape) : (tensor<?xf32>, tensor<1xindex>) -> tensor<?xf32>
  return %0 : tensor<?xf32>
}

// After
func.func @fold_reshape_1d(%arg0: tensor<?xf32>, %arg1: tensor<1xindex>) -> tensor<?xf32> {
  return %arg0 : tensor<?xf32>
}
```

These three canonicalization patterns cooperate to simplify the IR
structure emerging from the lowering of certain element-wise ops with
unranked tensor inputs. See file `unranked-tensor-lowering.mlir` in the
proposed change list for a detailed example and description.

For context, this PR is meant to enable code optimizations for the code
generated while lowering ops `quant.qcast` and `quant.dcast` with
unranked tensors, as proposed in
https://discourse.llvm.org/t/rfc-improvements-in-the-quant-dialect/79942
(implementation currently in progress).


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

  Changed paths:
    A llvm/test/Transforms/SLPVectorizer/RISCV/trunc-bv-multi-uses.ll

  Log Message:
  -----------
  [SLP][NFC]Add a test for incorrect minbitwidth analysis for trunc'ed bv, NFC.


  Commit: c719d7b390481b095c7498fe75a0bcf60a24bad9
      https://github.com/llvm/llvm-project/commit/c719d7b390481b095c7498fe75a0bcf60a24bad9
  Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/test/CodeGen/attr-target-clones-aarch64.c
    M clang/test/CodeGen/attr-target-version.c

  Log Message:
  -----------
  [FMV][AArch64] Do not optimize away runtime checks for implied features (#99522)

When generating the body of the ifunc resolver, clang skips runtime
checks for features that are implied from the command line. We bend this
rule for certain features (memtag, bti, dgh), but this happens quite
arbitrarily in my opinion. The reasoning is that some features are in
the HINT instruction space, meaning they operate as NOPs if the hardware
does not support them. Still the user wants to detect their presence
with runtime checks. See #90928 for details.

I think we should always perform runtime checks regardless of the
feature and then try to statically resolve calls whenever a function is
compiled with a sufficiently high set of architecture features (so
including target/target_version/target_clones attributes, and command
line options). This is what GCC does. We have an open PR in LLVM
GlobalOpt since it was suggested not to perform such codegen
optimizations in clang anyway. See #87939.


  Commit: e2f463b5b64a3574e90be7375b2d2c87fa7e92c1
      https://github.com/llvm/llvm-project/commit/e2f463b5b64a3574e90be7375b2d2c87fa7e92c1
  Author: Farzon Lotfi <1802579+farzonl at users.noreply.github.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/VecFuncs.def
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
    A llvm/test/CodeGen/AArch64/GlobalISel/legalize-acos.mir
    A llvm/test/CodeGen/AArch64/GlobalISel/legalize-asin.mir
    A llvm/test/CodeGen/AArch64/GlobalISel/legalize-atan.mir
    A llvm/test/CodeGen/AArch64/GlobalISel/legalize-cosh.mir
    A llvm/test/CodeGen/AArch64/GlobalISel/legalize-sinh.mir
    A llvm/test/CodeGen/AArch64/GlobalISel/legalize-tanh.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
    M llvm/test/CodeGen/AArch64/f16-instructions.ll
    M llvm/test/CodeGen/AArch64/fp-intrinsics-fp16.ll
    M llvm/test/CodeGen/AArch64/fp-intrinsics.ll
    M llvm/test/CodeGen/AArch64/illegal-float-ops.ll
    M llvm/test/CodeGen/AArch64/replace-with-veclib-armpl.ll
    M llvm/test/CodeGen/AArch64/replace-with-veclib-sleef-scalable.ll
    M llvm/test/CodeGen/AArch64/replace-with-veclib-sleef.ll
    M llvm/test/CodeGen/AArch64/vec-libcalls.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/veclib-calls-libsystem-darwin.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/veclib-intrinsic-calls.ll

  Log Message:
  -----------
  [aarch64] Add hyperbolic and arc trig intrinsic lowering (#98937)

## The change(s)
- `VecFuncs.def`: define intrinsic to  sleef/armpl mapping
- `LegalizerHelper.cpp`: add missing `fewerElementsVector` handling for
the new trig intrinsics
- `AArch64ISelLowering.cpp`: Add arch64 specializations for lowering
like neon instructions
- `AArch64LegalizerInfo.cpp`: Legalize the new trig intrinsics. aarch64
has specail legalization requirments in `AArch64LegalizerInfo.cpp`. If
we redirect the clang builtin without handling this we will break the
aarch64 compiler

## History
This change is part of an implementation of
https://github.com/llvm/llvm-project/issues/87367's investigation on
supporting IEEE math operations as intrinsics.
Which was discussed in this RFC:
https://discourse.llvm.org/t/rfc-all-the-math-intrinsics/78294

This change adds wasm lowering cases for `acos`, `asin`, `atan`, `cosh`,
`sinh`, and `tanh`.

https://github.com/llvm/llvm-project/issues/70079
https://github.com/llvm/llvm-project/issues/70080
https://github.com/llvm/llvm-project/issues/70081
https://github.com/llvm/llvm-project/issues/70083
https://github.com/llvm/llvm-project/issues/70084
https://github.com/llvm/llvm-project/issues/95966

## Why is aarch64 needed
The last step is to redirect the `acos`, `asin`, `atan`, `cosh`, `sinh`,
and `tanh` to emit the intrinsic. We can't emit the intrinsic without
the intrinsics becoming legal for aarch64 in `AArch64LegalizerInfo.cpp`


  Commit: def3944df822687fa04626a6750ccdea156b3870
      https://github.com/llvm/llvm-project/commit/def3944df822687fa04626a6750ccdea156b3870
  Author: Farzon Lotfi <1802579+farzonl at users.noreply.github.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp
    A llvm/test/CodeGen/WebAssembly/libcalls-trig.ll

  Log Message:
  -----------
  [WebAssembly] Add Support for Arc and Hyperbolic trig llvm intrinsics (#98755)

## Change:
- WebAssemblyRuntimeLibcallSignatures.cpp: Expose the RTLIB's for use by
WASM
-  Add trig specific test cases

## History
This change is part of an implementation of
https://github.com/llvm/llvm-project/issues/87367's investigation on
supporting IEEE math operations as intrinsics.
Which was discussed in this RFC:
https://discourse.llvm.org/t/rfc-all-the-math-intrinsics/78294

This change adds wasm lowering cases for `acos`, `asin`, `atan`, `cosh`,
`sinh`, and `tanh`.

https://github.com/llvm/llvm-project/issues/70079
https://github.com/llvm/llvm-project/issues/70080
https://github.com/llvm/llvm-project/issues/70081
https://github.com/llvm/llvm-project/issues/70083
https://github.com/llvm/llvm-project/issues/70084
https://github.com/llvm/llvm-project/issues/95966

## Why Web Assembly?
>From past changes to try and support constraint intrinsics the changes
to the trig builtins to emit intrinsics\constraint intrinsics broke the
WASM build. This is an attempt to preempt any such build break.

- https://github.com/llvm/llvm-project/pull/95082
-
https://github.com/llvm/llvm-project/pull/94559#issuecomment-2159923215


  Commit: a14baec0f33ec495e7d96e2ef99ed238f0d2069e
      https://github.com/llvm/llvm-project/commit/a14baec0f33ec495e7d96e2ef99ed238f0d2069e
  Author: Farzon Lotfi <1802579+farzonl at users.noreply.github.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/include/clang/Basic/Builtins.td
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/test/CodeGen/X86/math-builtins.c
    M clang/test/CodeGen/constrained-math-builtins.c
    M clang/test/CodeGen/libcalls.c
    M clang/test/CodeGen/math-libcalls.c
    M clang/test/CodeGenOpenCL/builtins-f16.cl

  Log Message:
  -----------
  [clang] Emit constraint intrinsics for arc and hyperbolic trig clang builtins (#98949)

## Change(s)
- `Builtins.td` - Add f16 support for libm arc and hyperbolic trig
functions
- `CGBuiltin.cpp` - Emit constraint intrinsics for trig clang builtins

## History
This change is part of an implementation of
https://github.com/llvm/llvm-project/issues/87367's investigation on
supporting IEEE math operations as intrinsics. Which was discussed in
this RFC:
https://discourse.llvm.org/t/rfc-all-the-math-intrinsics/78294

This change adds wasm lowering cases for `acos`, `asin`, `atan`, `cosh`,
`sinh`, and `tanh`.

https://github.com/llvm/llvm-project/issues/70079
https://github.com/llvm/llvm-project/issues/70080
https://github.com/llvm/llvm-project/issues/70081
https://github.com/llvm/llvm-project/issues/70083
https://github.com/llvm/llvm-project/issues/70084
https://github.com/llvm/llvm-project/issues/95966

## Precursor PR(s)

Note this PR needs Merge after:
- #98937
- #98755


  Commit: 7e37d021022b0786a704a89abae2014692158b2f
      https://github.com/llvm/llvm-project/commit/7e37d021022b0786a704a89abae2014692158b2f
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M libc/include/llvm-libc-types/struct_statvfs.h
    M libc/src/sys/statvfs/fstatvfs.h
    M libc/src/sys/statvfs/linux/statfs_utils.h
    M libc/src/sys/statvfs/statvfs.h

  Log Message:
  -----------
  [libc] Fix headers for statvfs implementation

Summry:
@lntue


  Commit: f6e01b9ece1e73f6eda6e1dbff3aa72e917f4007
      https://github.com/llvm/llvm-project/commit/f6e01b9ece1e73f6eda6e1dbff3aa72e917f4007
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/RISCV/trunc-bv-multi-uses.ll

  Log Message:
  -----------
  [SLP]Do not trunc bv nodes, if the user is vectorized an requires wider type.

If at least a single user of the gathered trunc'ed instruction is
vectorized and requires wider type, than the trunc node, such
gathers/buildvectors should not be optimized for better bitwidth.


  Commit: f1c27a9b269ead54d348e19b78b608c961c9e647
      https://github.com/llvm/llvm-project/commit/f1c27a9b269ead54d348e19b78b608c961c9e647
  Author: Utkarsh Saxena <usx at google.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    A a-abfdec1d.o.tmp
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Driver/Options.td
    M clang/include/clang/Frontend/FrontendOptions.h
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Sema/SemaTemplateInstantiate.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/test/Driver/ftime-trace-sections.cpp
    M clang/test/Driver/ftime-trace.cpp
    M clang/tools/driver/cc1_main.cpp
    M clang/unittests/Support/TimeProfilerTest.cpp
    M llvm/include/llvm/Support/TimeProfiler.h
    M llvm/lib/Support/TimeProfiler.cpp

  Log Message:
  -----------
  Reapply "Add source file name for template instantiations in -ftime-trace" (#99545)

Fix the Windows test.


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

  Changed paths:
    M libc/src/__support/FPUtil/Hypot.h
    M libc/src/math/generic/CMakeLists.txt
    M libc/src/math/generic/hypotf.cpp
    M libc/test/src/math/smoke/CMakeLists.txt
    M libc/test/src/math/smoke/HypotTest.h
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [libc][math] Fix signaling nan handling of hypot(f) and improve hypotf performance. (#99432)

The errors were reported by Paul Zimmermann with the CORE-MATH project's
test suites:
```
zimmerma at tartine:/tmp/core-math$ CORE_MATH_CHECK_STD=true LIBM=$L ./check.sh hypot
Running worst cases check in --rndn mode...
FAIL x=snan y=inf ref=qnan z=inf
Running worst cases check in --rndz mode...
FAIL x=snan y=inf ref=qnan z=inf
Running worst cases check in --rndu mode...
FAIL x=snan y=inf ref=qnan z=inf
Running worst cases check in --rndd mode...
Spurious inexact exception for x=0x1.ffffffffffffep+24 y=0x1p+0 (z=0x1.0000000000001p+25)
```


  Commit: 71e2b8df30ad78f5f86bf0d6729296282e061a5c
      https://github.com/llvm/llvm-project/commit/71e2b8df30ad78f5f86bf0d6729296282e061a5c
  Author: Haojian Wu <hokein.wu at gmail.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

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

  Log Message:
  -----------
  [clang] NFC, simplify the code in CheckExprLifetime.cpp (#99637)

No need to get the Owner/Pointer attr via the type. The Decl has this
attr information.


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

  Changed paths:
    M clang/test/CodeGen/tbaa-pointers.c

  Log Message:
  -----------
  [TBAA] Remove remaining entry BB in check lines for tbaa-pointers.c (2)

Missed out of 47c08fb8d79ec.


  Commit: 4b9fab591916eec9fd1942f37afe3b137b564089
      https://github.com/llvm/llvm-project/commit/4b9fab591916eec9fd1942f37afe3b137b564089
  Author: David Truby <david.truby at arm.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
    M flang/lib/Lower/OpenMP/DataSharingProcessor.h
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    A flang/test/Lower/OpenMP/parallel-wsloop-lastpriv.f90

  Log Message:
  -----------
  [flang][OpenMP] Implement lastprivate with collapse (#99500)

This patch enables the lastprivate clause to be used in the presence of
the collapse clause.

Note: the way we currently implement lastprivate means that this adds a
large number of compare instructions to the end of every iteration of
the loop. This is a clearly non-optimal thing to do, but lastprivate in
general will need re-implementing to prevent this. This is planned as
part of the delayed privatization work. This current implementation is
just a stop-gap measure as generating sub-optimal but working code is
better than crashing out.


  Commit: 9d86722eeecbb1dd6a53c10f7c44fdc317de6809
      https://github.com/llvm/llvm-project/commit/9d86722eeecbb1dd6a53c10f7c44fdc317de6809
  Author: Dhruv Chauhan <dhruv.chauhan at arm.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir

  Log Message:
  -----------
  [TOSA] Add lowering for `tosa.sin` and `tosa.cos` (#99651)

Lower tosa ops to `mlir::math::SinOp` and `mlir::math::CosOp` as part of
the tosa to linalg conversion.
Added lit tests for conversion.


  Commit: ac11430983d0d89b7ccd8e10a1a3d02ad7e2208d
      https://github.com/llvm/llvm-project/commit/ac11430983d0d89b7ccd8e10a1a3d02ad7e2208d
  Author: Mikhail R. Gadelha <mikhail at igalia.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
    M libc/src/time/linux/nanosleep.cpp

  Log Message:
  -----------
  [libc] Fix missing sysroot path for kernel headers when crosscompiling (#99588)

When crosscompiling, we need to search for the linux kernel headers in the sysroot but since #97486 the linux kernel headers were always searched in /usr/include.

This patch fixes this behaviour by prepending a '=' to where we search for the kernel headers. As per the gcc/clang's documentation a '=' before the path is replaced by the sysroot.

This patch also includes a fix for rv32, that fails to compile due to a missing definition of CLOCK_REALTIME after this change.


  Commit: cf50a84dc0327c1ff732011d74d2c126a2b93af6
      https://github.com/llvm/llvm-project/commit/cf50a84dc0327c1ff732011d74d2c126a2b93af6
  Author: Akira Hatanaka <ahatanak at gmail.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/lib/CodeGen/Address.h
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CGPointerAuth.cpp
    M clang/test/CodeGen/ubsan-function.cpp

  Log Message:
  -----------
  [PAC] Authenticate function pointers in UBSan type checks (#99590)

The function pointer needs to be authenticated before doing the type
checks.


  Commit: d463617d7772c5e3275cf8c4a8a21d17b3d03d86
      https://github.com/llvm/llvm-project/commit/d463617d7772c5e3275cf8c4a8a21d17b3d03d86
  Author: Akira Hatanaka <ahatanak at gmail.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/lib/AST/ASTContext.cpp
    M clang/test/CodeGen/ptrauth-function-type-discriminator.c

  Log Message:
  -----------
  [PAC] Fix a crash when signing a pointer to a function with an incomplete enum parameter (#99595)

Use int as the underlying type when the enum type is incomplete.


  Commit: 2d69c3628bb23a33e5fa36c6ec02fdc57c622dde
      https://github.com/llvm/llvm-project/commit/2d69c3628bb23a33e5fa36c6ec02fdc57c622dde
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M compiler-rt/test/tsan/debug_alloc_stack.cpp

  Log Message:
  -----------
  [tsan] Consume leading zeroes in a test

Follow up to #98578


  Commit: d1ca1d017fe2712dd53adb6072fe1c1e5e1c7cb1
      https://github.com/llvm/llvm-project/commit/d1ca1d017fe2712dd53adb6072fe1c1e5e1c7cb1
  Author: Guillermo Callaghan <guillermo.callaghan at huawei.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Transform/IR/TransformOps.td
    M mlir/lib/Dialect/Transform/IR/TransformOps.cpp
    M mlir/test/Dialect/Linalg/continuous-tiling-full.mlir

  Log Message:
  -----------
  [mlir] Makes `zip_shortest` an optional keyword in `transform.foreach` (#98492)

This PR addresses a [comment] made by @ftynse about the syntax for
`ForeachOp`. The syntax was modified by @muneebkhan85 in #82792, where
the attribute dictionary was moved to the middle.
This patch moves it back to its original place at the end. And
introduces an optional keyword for `zip_shortest`.

[comment]:
https://github.com/llvm/llvm-project/pull/82792#pullrequestreview-2132814144


  Commit: da44c0695c0c0a0865687b8c4b6fad7d786a7e40
      https://github.com/llvm/llvm-project/commit/da44c0695c0c0a0865687b8c4b6fad7d786a7e40
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M libcxx/docs/TestingLibcxx.rst

  Log Message:
  -----------
  [libc++][docs] Add tip for developers running the test suite on macOS (#99544)


  Commit: 2f8c786846972f85a1967502050675c724a2904d
      https://github.com/llvm/llvm-project/commit/2f8c786846972f85a1967502050675c724a2904d
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M libcxx/utils/ci/buildkite-pipeline.yml

  Log Message:
  -----------
  [libc++] Refactor buildkite-pipeline.yml (#99483)

This patch removes unused stuff from the Buildkite pipeline definition.


  Commit: 600d4937521210eb8c5fd3e1107e50ec5cb246f2
      https://github.com/llvm/llvm-project/commit/600d4937521210eb8c5fd3e1107e50ec5cb246f2
  Author: David Green <david.green at arm.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp
    A llvm/lib/Target/AArch64/peephole-sxtw.mir
    M llvm/test/CodeGen/AArch64/aarch64-mull-masks.ll

  Log Message:
  -----------
  [AArch64] Remove superfluous sxtw in peephole opt (#96293)

Across a basic-block we might have an i32 extract from a value that only
operates on upper bits (for example a sxtw). We can replace the COPY
with a new version skipping the sxtw.

This is a re-commit of 7f2a5dfe35f8bbaca2819644c7aa844f938befd6, with a fix for
removing all the intermediate COPY nodes (and some extra debug logging).


  Commit: 1bdd761c4c12d016c90db82b36d93b09869703ae
      https://github.com/llvm/llvm-project/commit/1bdd761c4c12d016c90db82b36d93b09869703ae
  Author: David Green <david.green at arm.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    R llvm/test/CodeGen/AArch64/arm64-sqxtn2-combine.ll
    M llvm/test/CodeGen/AArch64/qmovn.ll

  Log Message:
  -----------
  [AArch64] Additional sqxtn and uqxtn tests. NFC

There are also some sqxtun2 tests if I got them correct. The
arm64-sqxtn2-combine.ll test was moved to qmovn to keep them
in the same place.


  Commit: 6e68b75e6634e9809e2af5d68c87a4eb4282217e
      https://github.com/llvm/llvm-project/commit/6e68b75e6634e9809e2af5d68c87a4eb4282217e
  Author: Jeffrey Byrnes <Jeffrey.Byrnes at amd.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp
    M llvm/test/CodeGen/AMDGPU/vni8-live-reg-opt.ll

  Log Message:
  -----------
  [AMDGPU] Reland: Do not use original PHIs in coercion chains

Change-Id: I579b5c69a85997f168ed35354b326524b6f84ef7


  Commit: 09fec4688234d899c82a5526874177c734dcc91b
      https://github.com/llvm/llvm-project/commit/09fec4688234d899c82a5526874177c734dcc91b
  Author: Ivan Kosarev <ivan.kosarev at amd.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M llvm/test/MC/AMDGPU/gfx12_asm_vop1.s
    M llvm/test/MC/AMDGPU/lit.local.cfg
    R llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop1.txt

  Log Message:
  -----------
  [AMDGPU][RFC] Combine asm and disasm tests. (#92895)

Eliminates the need to replicate the same instructions in MC and
MC/Disassembler tests and synchronize changes in them. Also highlights
differences between disassembled, reassembled and original instructions.


  Commit: 04760bfadb399cc4ded9b32bd523ec7703aa7462
      https://github.com/llvm/llvm-project/commit/04760bfadb399cc4ded9b32bd523ec7703aa7462
  Author: nicole mazzuca <nicole at strega-nil.co>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx23Papers.csv
    M libcxx/docs/Status/RangesAlgorithms.csv
    M libcxx/include/CMakeLists.txt
    A libcxx/include/__algorithm/ranges_find_last.h
    M libcxx/include/algorithm
    M libcxx/include/module.modulemap
    M libcxx/include/version
    M libcxx/modules/std/algorithm.inc
    M libcxx/test/libcxx/algorithms/ranges_robust_against_copying_comparators.pass.cpp
    M libcxx/test/libcxx/algorithms/ranges_robust_against_copying_projections.pass.cpp
    M libcxx/test/libcxx/diagnostics/algorithm.nodiscard.verify.cpp
    A libcxx/test/std/algorithms/alg.nonmodifying/alg.find.last/ranges.find_last.pass.cpp
    A libcxx/test/std/algorithms/alg.nonmodifying/alg.find.last/ranges.find_last_if.pass.cpp
    A libcxx/test/std/algorithms/alg.nonmodifying/alg.find.last/ranges.find_last_if_not.pass.cpp
    M libcxx/test/std/algorithms/ranges_robust_against_dangling.pass.cpp
    M libcxx/test/std/algorithms/ranges_robust_against_nonbool.compile.pass.cpp
    M libcxx/test/std/algorithms/ranges_robust_against_proxy_iterators.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
    M libcxx/test/std/library/description/conventions/customization.point.object/niebloid.compile.pass.cpp
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  [libc++][ranges] P1223R5: `find_last` (#99312)

Implements [P1223R5][] completely.

Includes an implementation of `find_last`, `find_last_if`, and
`find_last_if_not`.

[P1223R5]: https://wg21.link/p1223r5


  Commit: 22eb290a9696e2a3fd042096c61e35eca2fcce0c
      https://github.com/llvm/llvm-project/commit/22eb290a9696e2a3fd042096c61e35eca2fcce0c
  Author: Edd Dawson <edd.dawson at sony.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Driver/ToolChains/PS4CPU.cpp
    M clang/test/Driver/debug-options.c
    M clang/test/Driver/lto-jobs.c
    M clang/test/Driver/ps4-linker.c
    M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
    M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
    A llvm/test/DebugInfo/X86/debug-aranges-sce-tuning.ll

  Log Message:
  -----------
  [PS4/PS5][Driver][DWARF] Always emit .debug_aranges for SCE tuning (#99629)

Some of SIE's post-mortem analysis infrastructure currently makes use of
.debug_aranges, so we'd like to ensure the section's presence in
PlayStation binaries. The simplest way to do this is force emission when
the debugger tuning is set to SCE (which is in turn typically
initialized from the target triple). This also simplifies the driver.

SIE tracker: TOOLCHAIN-16951


  Commit: 348ded7a6c68d998b8d6048e71e7d2ce15756f50
      https://github.com/llvm/llvm-project/commit/348ded7a6c68d998b8d6048e71e7d2ce15756f50
  Author: Paul Kirth <paulkirth at google.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M .git-blame-ignore-revs
    A a-abfdec1d.o.tmp
    M bolt/include/bolt/Core/BinaryContext.h
    M bolt/include/bolt/Core/BinaryFunction.h
    M bolt/include/bolt/Core/DIEBuilder.h
    M bolt/include/bolt/Core/MCPlusBuilder.h
    M bolt/include/bolt/Profile/ProfileYAMLMapping.h
    M bolt/include/bolt/Rewrite/DWARFRewriter.h
    M bolt/lib/Core/BinaryContext.cpp
    M bolt/lib/Core/BinaryFunction.cpp
    M bolt/lib/Core/DIEBuilder.cpp
    M bolt/lib/Passes/IndirectCallPromotion.cpp
    M bolt/lib/Profile/CMakeLists.txt
    M bolt/lib/Profile/DataAggregator.cpp
    M bolt/lib/Profile/YAMLProfileWriter.cpp
    M bolt/lib/Rewrite/DWARFRewriter.cpp
    M bolt/lib/Rewrite/PseudoProbeRewriter.cpp
    M bolt/lib/Rewrite/RewriteInstance.cpp
    M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
    M bolt/lib/Target/RISCV/RISCVMCPlusBuilder.cpp
    M bolt/lib/Target/X86/X86MCPlusBuilder.cpp
    M bolt/test/X86/Inputs/jump-table-fixed-ref-pic.s
    M bolt/test/X86/jump-table-fixed-ref-pic.test
    M bolt/test/X86/pseudoprobe-decoding-inline.test
    M clang-tools-extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp
    M clang-tools-extra/clangd/CMakeLists.txt
    M clang-tools-extra/clangd/ClangdLSPServer.cpp
    M clang-tools-extra/clangd/ClangdLSPServer.h
    M clang-tools-extra/clangd/ClangdServer.cpp
    M clang-tools-extra/clangd/ClangdServer.h
    M clang-tools-extra/clangd/Compiler.h
    M clang-tools-extra/clangd/GlobalCompilationDatabase.cpp
    M clang-tools-extra/clangd/GlobalCompilationDatabase.h
    A clang-tools-extra/clangd/ModulesBuilder.cpp
    A clang-tools-extra/clangd/ModulesBuilder.h
    M clang-tools-extra/clangd/ParsedAST.cpp
    M clang-tools-extra/clangd/Preamble.cpp
    M clang-tools-extra/clangd/Preamble.h
    A clang-tools-extra/clangd/ProjectModules.h
    A clang-tools-extra/clangd/ScanningProjectModules.cpp
    A clang-tools-extra/clangd/ScanningProjectModules.h
    M clang-tools-extra/clangd/test/CMakeLists.txt
    A clang-tools-extra/clangd/test/modules.test
    M clang-tools-extra/clangd/tool/Check.cpp
    M clang-tools-extra/clangd/tool/ClangdMain.cpp
    M clang-tools-extra/clangd/unittests/CMakeLists.txt
    A clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
    M clang-tools-extra/clangd/unittests/TestFS.h
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/docs/clang-tidy/checks/bugprone/unused-return-value.rst
    M clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/avoid-const-or-ref-data-members.rst
    M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-const-or-ref-data-members.cpp
    M clang-tools-extra/test/clang-tidy/checkers/performance/unnecessary-value-param.cpp
    M clang/cmake/caches/Fuchsia-stage2.cmake
    M clang/docs/CommandGuide/clang.rst
    M clang/docs/ReleaseNotes.rst
    M clang/docs/StandardCPlusPlusModules.rst
    M clang/include/clang-c/Index.h
    M clang/include/clang/APINotes/APINotesReader.h
    M clang/include/clang/APINotes/APINotesWriter.h
    M clang/include/clang/APINotes/Types.h
    M clang/include/clang/AST/ASTContext.h
    M clang/include/clang/AST/Expr.h
    M clang/include/clang/AST/RecursiveASTVisitor.h
    M clang/include/clang/AST/Stmt.h
    M clang/include/clang/AST/StmtOpenMP.h
    M clang/include/clang/AST/Type.h
    M clang/include/clang/Basic/Builtins.td
    M clang/include/clang/Basic/BuiltinsAMDGPU.def
    M clang/include/clang/Basic/CodeGenOptions.def
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Basic/LangOptions.def
    M clang/include/clang/Basic/StmtNodes.td
    M clang/include/clang/Driver/Driver.h
    M clang/include/clang/Driver/Options.td
    M clang/include/clang/Frontend/FrontendOptions.h
    M clang/include/clang/Lex/PPEmbedParameters.h
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Sema/SemaOpenMP.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/lib/APINotes/APINotesFormat.h
    M clang/lib/APINotes/APINotesReader.cpp
    M clang/lib/APINotes/APINotesWriter.cpp
    M clang/lib/APINotes/APINotesYAMLCompiler.cpp
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/Expr.cpp
    M clang/lib/AST/Interp/ByteCodeEmitter.cpp
    M clang/lib/AST/Interp/Compiler.cpp
    M clang/lib/AST/Interp/Compiler.h
    M clang/lib/AST/Interp/Interp.cpp
    M clang/lib/AST/Interp/Interp.h
    M clang/lib/AST/Interp/InterpBlock.cpp
    M clang/lib/AST/Interp/InterpState.cpp
    M clang/lib/AST/Interp/Opcodes.td
    M clang/lib/AST/MicrosoftMangle.cpp
    M clang/lib/AST/StmtOpenMP.cpp
    M clang/lib/AST/StmtPrinter.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/lib/AST/Type.cpp
    M clang/lib/Analysis/ExprMutationAnalyzer.cpp
    M clang/lib/Basic/OpenMPKinds.cpp
    M clang/lib/Basic/Targets/AArch64.cpp
    M clang/lib/Basic/Targets/AArch64.h
    M clang/lib/Basic/Targets/X86.cpp
    M clang/lib/CodeGen/Address.h
    M clang/lib/CodeGen/CGBuilder.h
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CGDeclCXX.cpp
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CGExprComplex.cpp
    M clang/lib/CodeGen/CGExprScalar.cpp
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp
    M clang/lib/CodeGen/CGPointerAuth.cpp
    M clang/lib/CodeGen/CGStmt.cpp
    M clang/lib/CodeGen/CGStmtOpenMP.cpp
    M clang/lib/CodeGen/CGValue.h
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/CodeGen/CodeGenModule.h
    M clang/lib/CodeGen/CodeGenTBAA.cpp
    M clang/lib/CodeGen/ItaniumCXXABI.cpp
    M clang/lib/CodeGen/Targets/SystemZ.cpp
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Driver/ToolChains/Darwin.cpp
    M clang/lib/Driver/ToolChains/Darwin.h
    M clang/lib/Driver/ToolChains/Hexagon.cpp
    M clang/lib/Driver/ToolChains/PS4CPU.cpp
    M clang/lib/Headers/ptrauth.h
    M clang/lib/Lex/DependencyDirectivesScanner.cpp
    M clang/lib/Lex/PPDirectives.cpp
    M clang/lib/Lex/Preprocessor.cpp
    M clang/lib/Parse/ParseOpenMP.cpp
    M clang/lib/Sema/CMakeLists.txt
    M clang/lib/Sema/CheckExprLifetime.cpp
    M clang/lib/Sema/ParsedAttr.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaAPINotes.cpp
    M clang/lib/Sema/SemaAttr.cpp
    A clang/lib/Sema/SemaBoundsSafety.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaExceptionSpec.cpp
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/SemaTemplateInstantiate.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTReaderStmt.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/lib/Serialization/ASTWriterStmt.cpp
    M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
    A clang/test/APINotes/Inputs/Headers/Methods.apinotes
    A clang/test/APINotes/Inputs/Headers/Methods.h
    M clang/test/APINotes/Inputs/Headers/Namespaces.apinotes
    M clang/test/APINotes/Inputs/Headers/Namespaces.h
    M clang/test/APINotes/Inputs/Headers/module.modulemap
    A clang/test/APINotes/methods.cpp
    M clang/test/APINotes/namespaces.cpp
    M clang/test/AST/Interp/cxx11.cpp
    A clang/test/AST/Interp/cxx2a.cpp
    M clang/test/AST/Interp/new-delete.cpp
    M clang/test/C/C2y/n3254.c
    M clang/test/CXX/drs/cwg24xx.cpp
    M clang/test/CodeGen/SystemZ/systemz-abi.c
    M clang/test/CodeGen/X86/math-builtins.c
    A clang/test/CodeGen/aarch64-fmv-resolver-emission.c
    M clang/test/CodeGen/aarch64-mixed-target-attributes.c
    M clang/test/CodeGen/attr-counted-by.c
    M clang/test/CodeGen/attr-target-clones-aarch64.c
    M clang/test/CodeGen/attr-target-version.c
    M clang/test/CodeGen/constrained-math-builtins.c
    M clang/test/CodeGen/libcalls.c
    M clang/test/CodeGen/math-libcalls-tbaa.cpp
    M clang/test/CodeGen/math-libcalls.c
    M clang/test/CodeGen/pragma-cx-limited-range.c
    A clang/test/CodeGen/ptrauth-function-lvalue-cast-disc.c
    A clang/test/CodeGen/ptrauth-function-type-discriminator-cast.c
    M clang/test/CodeGen/ptrauth-function-type-discriminator.c
    M clang/test/CodeGen/ptrauth-ubsan-vptr.cpp
    M clang/test/CodeGen/sanitize-metadata-nosanitize.c
    M clang/test/CodeGen/tbaa-pointers.c
    M clang/test/CodeGen/ubsan-function.cpp
    A clang/test/CodeGenCXX/aarch64-fmv-resolver-emission.cpp
    M clang/test/CodeGenCXX/attr-likelihood-iteration-stmt.cpp
    M clang/test/CodeGenCXX/attr-target-clones-aarch64.cpp
    M clang/test/CodeGenCXX/attr-target-version.cpp
    M clang/test/CodeGenCXX/fmv-namespace.cpp
    M clang/test/CodeGenCXX/ptrauth-explicit-vtable-pointer-control.cpp
    M clang/test/CodeGenCXX/ptrauth-rtti-layout.cpp
    A clang/test/CodeGenCXX/ptrauth-static-destructors.cpp
    A clang/test/CodeGenCXX/ptrauth-throw.cpp
    M clang/test/CodeGenCXX/ptrauth-thunks.cpp
    M clang/test/CodeGenCXX/ptrauth-virtual-function.cpp
    M clang/test/CodeGenCXX/ptrauth-vtable-virtual-inheritance-thunk.cpp
    M clang/test/CodeGenCXX/ubsan-vtable-checks.cpp
    M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-gfx11-err.cl
    M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-gfx12-w32-err.cl
    M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-gfx12-w64-err.cl
    M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-w32.cl
    M clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-tr-w64.cl
    A clang/test/CodeGenOpenCL/builtins-amdgcn-raw-buffer-load.cl
    M clang/test/CodeGenOpenCL/builtins-amdgcn-raw-buffer-store.cl
    M clang/test/CodeGenOpenCL/builtins-f16.cl
    M clang/test/Driver/Ofast.c
    M clang/test/Driver/amdgpu-openmp-toolchain.c
    A clang/test/Driver/darwin-print-libgcc-file-name.c
    M clang/test/Driver/debug-options.c
    M clang/test/Driver/ftime-trace-sections.cpp
    M clang/test/Driver/ftime-trace.cpp
    M clang/test/Driver/hexagon-toolchain-linux.c
    M clang/test/Driver/lto-jobs.c
    M clang/test/Driver/ps4-linker.c
    M clang/test/Driver/x86-target-features.c
    M clang/test/InstallAPI/diagnostics-dsym.test
    A clang/test/Modules/pch-in-module-units.cppm
    M clang/test/OpenMP/depend_iterator_bug.c
    A clang/test/OpenMP/interchange_ast_print.cpp
    A clang/test/OpenMP/interchange_codegen.cpp
    A clang/test/OpenMP/interchange_messages.cpp
    M clang/test/OpenMP/nvptx_target_parallel_reduction_codegen_tbaa_PR46146.cpp
    A clang/test/OpenMP/reverse_ast_print.cpp
    A clang/test/OpenMP/reverse_codegen.cpp
    A clang/test/OpenMP/reverse_messages.cpp
    M clang/test/OpenMP/task_codegen.c
    M clang/test/PCH/aarch64-sve-types.c
    A clang/test/Preprocessor/Inputs/big_char.txt
    M clang/test/Preprocessor/aarch64-target-features.c
    M clang/test/Preprocessor/embed_codegen.cpp
    A clang/test/Preprocessor/embed_search_paths.c
    M clang/test/Preprocessor/embed_weird.cpp
    M clang/test/Preprocessor/x86_target_features.c
    M clang/test/Sema/alignas.c
    A clang/test/Sema/attr-counted-by-bounds-safety-vlas.c
    M clang/test/Sema/attr-weak.c
    M clang/test/Sema/switch.c
    M clang/test/Sema/warn-lifetime-analysis-nocfg-disabled.cpp
    M clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
    M clang/test/SemaCXX/attr-weak.cpp
    M clang/test/SemaCXX/cxx-deprecated.cpp
    A clang/test/SemaCXX/instantiate-template-broken-nontype-default.cpp
    M clang/test/SemaCXX/ptrauth-incomplete-virtual-member-function-return-arg-type.cpp
    M clang/test/SemaCXX/vtable_pointer_authentication_attribute.cpp
    M clang/test/SemaCXX/warn-dangling-local.cpp
    A clang/test/SemaOpenCL/builtins-amdgcn-raw-buffer-load-error.cl
    M clang/test/SemaOpenCL/builtins-amdgcn-raw-buffer-store-error.cl
    M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
    M clang/tools/driver/cc1_main.cpp
    M clang/tools/libclang/CIndex.cpp
    M clang/tools/libclang/CXCursor.cpp
    M clang/unittests/Lex/DependencyDirectivesScannerTest.cpp
    M clang/unittests/Support/TimeProfilerTest.cpp
    M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
    M compiler-rt/cmake/base-config-ix.cmake
    M compiler-rt/lib/asan/asan_mapping.h
    M compiler-rt/lib/fuzzer/FuzzerFork.cpp
    M compiler-rt/lib/safestack/safestack.cpp
    M compiler-rt/lib/safestack/safestack_platform.h
    M compiler-rt/lib/safestack/safestack_util.h
    M compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h
    M compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_platform.h
    M compiler-rt/lib/sanitizer_common/sanitizer_posix.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_win.cpp
    M compiler-rt/lib/sanitizer_common/tests/sanitizer_stackdepot_test.cpp
    M compiler-rt/lib/sanitizer_common/tests/sanitizer_stacktrace_printer_test.cpp
    M compiler-rt/lib/sanitizer_common/tests/sanitizer_stacktrace_test.cpp
    M compiler-rt/lib/scudo/standalone/string_utils.h
    M compiler-rt/lib/scudo/standalone/tests/vector_test.cpp
    M compiler-rt/lib/scudo/standalone/vector.h
    M compiler-rt/test/CMakeLists.txt
    M compiler-rt/test/asan/CMakeLists.txt
    M compiler-rt/test/asan/TestCases/debug_stacks.cpp
    M compiler-rt/test/ctx_profile/CMakeLists.txt
    M compiler-rt/test/fuzzer/CMakeLists.txt
    M compiler-rt/test/fuzzer/lit.cfg.py
    M compiler-rt/test/gwp_asan/CMakeLists.txt
    M compiler-rt/test/interception/CMakeLists.txt
    M compiler-rt/test/memprof/CMakeLists.txt
    M compiler-rt/test/msan/CMakeLists.txt
    M compiler-rt/test/nsan/CMakeLists.txt
    M compiler-rt/test/rtsan/CMakeLists.txt
    M compiler-rt/test/safestack/CMakeLists.txt
    M compiler-rt/test/safestack/lit.cfg.py
    M compiler-rt/test/safestack/lit.site.cfg.py.in
    M compiler-rt/test/sanitizer_common/CMakeLists.txt
    A compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_i386.cpp
    A compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_x86_64.cpp
    R compiler-rt/test/sanitizer_common/TestCases/Posix/sanitizer_bad_report_path_test.cpp
    M compiler-rt/test/sanitizer_common/TestCases/Posix/sanitizer_set_report_path_test.cpp
    M compiler-rt/test/scudo/standalone/CMakeLists.txt
    M compiler-rt/test/tsan/CMakeLists.txt
    M compiler-rt/test/tsan/debug_alloc_stack.cpp
    M compiler-rt/www/index.html
    M flang/docs/Extensions.md
    M flang/include/flang/Semantics/tools.h
    M flang/lib/Lower/ConvertCall.cpp
    M flang/lib/Lower/ConvertVariable.cpp
    M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
    M flang/lib/Lower/OpenMP/DataSharingProcessor.h
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/Dialect/CUF/CUFOps.cpp
    M flang/lib/Optimizer/Transforms/StackArrays.cpp
    M flang/lib/Parser/Fortran-parsers.cpp
    M flang/lib/Parser/openmp-parsers.cpp
    M flang/lib/Parser/prescan.cpp
    M flang/lib/Semantics/definable.cpp
    M flang/lib/Semantics/expression.cpp
    M flang/runtime/command.cpp
    M flang/runtime/misc-intrinsic.cpp
    M flang/runtime/unit.cpp
    M flang/test/Driver/linker-flags.f90
    M flang/test/Fir/cuf-invalid.fir
    M flang/test/Lower/CUDA/cuda-allocatable.cuf
    M flang/test/Lower/Intrinsics/second.f90
    A flang/test/Lower/OpenMP/parallel-wsloop-lastpriv.f90
    A flang/test/Parser/OpenMP/proc-bind.f90
    M flang/test/Preprocessing/directive-contin-with-pp.F90
    M flang/test/Semantics/array-constr-values.f90
    M flang/test/Semantics/assign10.f90
    A flang/test/Semantics/associate03.f90
    A flang/test/Semantics/parent-comp-name.f90
    A flang/test/Semantics/struct03.f90
    A flang/test/Transforms/stack-arrays-hlfir.f90
    M flang/test/Transforms/stack-arrays.fir
    M libc/CMakeLists.txt
    M libc/benchmarks/gpu/CMakeLists.txt
    M libc/benchmarks/gpu/LibcGpuBenchmark.cpp
    M libc/benchmarks/gpu/LibcGpuBenchmark.h
    M libc/benchmarks/gpu/src/ctype/CMakeLists.txt
    M libc/benchmarks/gpu/src/ctype/isalnum_benchmark.cpp
    M libc/benchmarks/gpu/timing/CMakeLists.txt
    M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
    M libc/cmake/modules/LLVMLibCHeaderRules.cmake
    M libc/cmake/modules/LLVMLibCTestRules.cmake
    M libc/config/gpu/entrypoints.txt
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/api.td
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/config/linux/x86_64/headers.txt
    M libc/docs/gpu/support.rst
    M libc/docs/math/index.rst
    M libc/include/CMakeLists.txt
    M libc/include/llvm-libc-types/struct_statvfs.h
    M libc/newhdrgen/class_implementation/classes/function.py
    R libc/newhdrgen/class_implementation/classes/include.py
    M libc/newhdrgen/gpu_headers.py
    M libc/newhdrgen/header.py
    R libc/newhdrgen/tests/output/test_small.h
    M libc/newhdrgen/tests/test_integration.py
    A libc/newhdrgen/yaml/arpa/inet.yaml
    R libc/newhdrgen/yaml/arpa_inet.yaml
    M libc/newhdrgen/yaml/assert.yaml
    A libc/newhdrgen/yaml/gpu/rpc.yaml
    M libc/newhdrgen/yaml/math.yaml
    M libc/newhdrgen/yaml/pthread.yaml
    R libc/newhdrgen/yaml/rpc.yaml
    M libc/newhdrgen/yaml/search.yaml
    A libc/newhdrgen/yaml/sys/auxv.yaml
    A libc/newhdrgen/yaml/sys/epoll.yaml
    A libc/newhdrgen/yaml/sys/ioctl.yaml
    A libc/newhdrgen/yaml/sys/mman.yaml
    A libc/newhdrgen/yaml/sys/prctl.yaml
    A libc/newhdrgen/yaml/sys/random.yaml
    A libc/newhdrgen/yaml/sys/resource.yaml
    A libc/newhdrgen/yaml/sys/select.yaml
    A libc/newhdrgen/yaml/sys/sendfile.yaml
    A libc/newhdrgen/yaml/sys/socket.yaml
    A libc/newhdrgen/yaml/sys/stat.yaml
    A libc/newhdrgen/yaml/sys/statvfs.yaml
    R libc/newhdrgen/yaml/sys/sys_auxv.yaml
    R libc/newhdrgen/yaml/sys/sys_epoll.yaml
    R libc/newhdrgen/yaml/sys/sys_ioctl.yaml
    R libc/newhdrgen/yaml/sys/sys_mman.yaml
    R libc/newhdrgen/yaml/sys/sys_prctl.yaml
    R libc/newhdrgen/yaml/sys/sys_random.yaml
    R libc/newhdrgen/yaml/sys/sys_resource.yaml
    R libc/newhdrgen/yaml/sys/sys_select.yaml
    R libc/newhdrgen/yaml/sys/sys_sendfile.yaml
    R libc/newhdrgen/yaml/sys/sys_socket.yaml
    R libc/newhdrgen/yaml/sys/sys_stat.yaml
    R libc/newhdrgen/yaml/sys/sys_statvfs.yaml
    R libc/newhdrgen/yaml/sys/sys_syscall.yaml
    R libc/newhdrgen/yaml/sys/sys_time.yaml
    R libc/newhdrgen/yaml/sys/sys_types.yaml
    R libc/newhdrgen/yaml/sys/sys_utsname.yaml
    R libc/newhdrgen/yaml/sys/sys_wait.yaml
    A libc/newhdrgen/yaml/sys/syscall.yaml
    A libc/newhdrgen/yaml/sys/time.yaml
    A libc/newhdrgen/yaml/sys/types.yaml
    A libc/newhdrgen/yaml/sys/utsname.yaml
    A libc/newhdrgen/yaml/sys/wait.yaml
    M libc/newhdrgen/yaml/wchar.yaml
    M libc/newhdrgen/yaml_to_classes.py
    M libc/spec/llvm_libc_ext.td
    M libc/spec/stdc.td
    M libc/src/__support/FPUtil/Hypot.h
    M libc/src/__support/FPUtil/generic/CMakeLists.txt
    A libc/src/__support/FPUtil/generic/mul.h
    M libc/src/math/CMakeLists.txt
    A libc/src/math/dmulf128.h
    A libc/src/math/dmull.h
    A libc/src/math/f16mul.h
    A libc/src/math/f16mulf.h
    A libc/src/math/f16mulf128.h
    A libc/src/math/f16mull.h
    A libc/src/math/fmulf128.h
    A libc/src/math/fmull.h
    M libc/src/math/generic/CMakeLists.txt
    A libc/src/math/generic/dmulf128.cpp
    A libc/src/math/generic/dmull.cpp
    A libc/src/math/generic/f16mul.cpp
    A libc/src/math/generic/f16mulf.cpp
    A libc/src/math/generic/f16mulf128.cpp
    A libc/src/math/generic/f16mull.cpp
    M libc/src/math/generic/fmul.cpp
    A libc/src/math/generic/fmulf128.cpp
    A libc/src/math/generic/fmull.cpp
    M libc/src/math/generic/hypotf.cpp
    M libc/src/sys/statvfs/fstatvfs.h
    M libc/src/sys/statvfs/linux/CMakeLists.txt
    M libc/src/sys/statvfs/linux/statfs_utils.h
    M libc/src/sys/statvfs/statvfs.h
    M libc/src/time/linux/nanosleep.cpp
    M libc/test/src/math/CMakeLists.txt
    R libc/test/src/math/FMulTest.h
    A libc/test/src/math/MulTest.h
    A libc/test/src/math/dmull_test.cpp
    A libc/test/src/math/f16mul_test.cpp
    A libc/test/src/math/f16mulf_test.cpp
    A libc/test/src/math/f16mull_test.cpp
    M libc/test/src/math/fmul_test.cpp
    A libc/test/src/math/fmull_test.cpp
    M libc/test/src/math/smoke/CMakeLists.txt
    R libc/test/src/math/smoke/FMulTest.h
    M libc/test/src/math/smoke/HypotTest.h
    A libc/test/src/math/smoke/MulTest.h
    A libc/test/src/math/smoke/dmulf128_test.cpp
    A libc/test/src/math/smoke/dmull_test.cpp
    A libc/test/src/math/smoke/f16mul_test.cpp
    A libc/test/src/math/smoke/f16mulf128_test.cpp
    A libc/test/src/math/smoke/f16mulf_test.cpp
    A libc/test/src/math/smoke/f16mull_test.cpp
    M libc/test/src/math/smoke/fmul_test.cpp
    A libc/test/src/math/smoke/fmulf128_test.cpp
    A libc/test/src/math/smoke/fmull_test.cpp
    M libc/utils/MPFRWrapper/CMakeLists.txt
    M libc/utils/MPFRWrapper/MPFRUtils.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.h
    M libc/utils/gpu/loader/Loader.h
    M libc/utils/gpu/loader/Main.cpp
    M libc/utils/gpu/loader/amdgpu/Loader.cpp
    M libc/utils/gpu/loader/nvptx/Loader.cpp
    M libclc/CMakeLists.txt
    M libclc/clspv/lib/math/fma.cl
    M libclc/cmake/modules/AddLibclc.cmake
    M libclc/generic/include/clc/convert.h
    M libclc/generic/include/math/clc_ldexp.h
    M libclc/generic/lib/clcmacro.h
    M libclc/generic/lib/gen_convert.py
    M libclc/generic/lib/math/acos.cl
    M libclc/generic/lib/math/acosh.cl
    M libclc/generic/lib/math/acospi.cl
    M libclc/generic/lib/math/asinh.cl
    M libclc/generic/lib/math/atan.cl
    M libclc/generic/lib/math/atan2.cl
    M libclc/generic/lib/math/atan2pi.cl
    M libclc/generic/lib/math/atanh.cl
    M libclc/generic/lib/math/atanpi.cl
    M libclc/generic/lib/math/cbrt.cl
    M libclc/generic/lib/math/clc_ldexp.cl
    M libclc/generic/lib/math/clc_pown.cl
    M libclc/generic/lib/math/clc_remquo.cl
    M libclc/generic/lib/math/clc_rootn.cl
    M libclc/generic/lib/math/clc_sw_binary.inc
    M libclc/generic/lib/math/clc_sw_unary.inc
    M libclc/generic/lib/math/cos.cl
    M libclc/generic/lib/math/cosh.cl
    M libclc/generic/lib/math/cospi.cl
    M libclc/generic/lib/math/exp.cl
    M libclc/generic/lib/math/expm1.cl
    M libclc/generic/lib/math/fdim.inc
    M libclc/generic/lib/math/frexp.inc
    M libclc/generic/lib/math/ilogb.cl
    M libclc/generic/lib/math/lgamma.cl
    M libclc/generic/lib/math/lgamma_r.cl
    M libclc/generic/lib/math/lgamma_r.inc
    M libclc/generic/lib/math/log10.cl
    M libclc/generic/lib/math/log1p.cl
    M libclc/generic/lib/math/log2.cl
    M libclc/generic/lib/math/log_base.h
    M libclc/generic/lib/math/logb.cl
    M libclc/generic/lib/math/pown.inc
    M libclc/generic/lib/math/remquo.inc
    M libclc/generic/lib/math/rootn.inc
    M libclc/generic/lib/math/sin.cl
    M libclc/generic/lib/math/sincos.inc
    M libclc/generic/lib/math/sinh.cl
    M libclc/generic/lib/math/sinpi.cl
    M libclc/generic/lib/math/tanh.cl
    M libcxx/CMakeLists.txt
    M libcxx/benchmarks/CMakeLists.txt
    A libcxx/benchmarks/algorithms/set_intersection.bench.cpp
    M libcxx/benchmarks/lit.cfg.py
    A libcxx/cmake/Modules/HandleLibC.cmake
    M libcxx/cmake/caches/AIX.cmake
    M libcxx/cmake/caches/Apple.cmake
    M libcxx/cmake/caches/s390x-ibm-zos-ascii.cmake
    M libcxx/cmake/caches/s390x-ibm-zos.cmake
    M libcxx/cmake/config-ix.cmake
    M libcxx/docs/BuildingLibcxx.rst
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/ReleaseNotes/20.rst
    M libcxx/docs/Status/Cxx23Issues.csv
    M libcxx/docs/Status/Cxx23Papers.csv
    M libcxx/docs/Status/Cxx2c.rst
    M libcxx/docs/Status/Cxx2cIssues.csv
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/docs/Status/RangesAlgorithms.csv
    M libcxx/docs/TestingLibcxx.rst
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__algorithm/iterator_operations.h
    M libcxx/include/__algorithm/lower_bound.h
    A libcxx/include/__algorithm/ranges_find_last.h
    M libcxx/include/__algorithm/set_intersection.h
    M libcxx/include/__chrono/weekday.h
    M libcxx/include/__configuration/abi.h
    M libcxx/include/__iterator/concepts.h
    M libcxx/include/__math/traits.h
    M libcxx/include/__memory/allocator_traits.h
    A libcxx/include/__memory/inout_ptr.h
    A libcxx/include/__memory/out_ptr.h
    M libcxx/include/__memory/pointer_traits.h
    M libcxx/include/__type_traits/add_pointer.h
    M libcxx/include/__type_traits/is_enum.h
    R libcxx/include/__type_traits/is_scoped_enum.h
    M libcxx/include/__type_traits/make_signed.h
    M libcxx/include/__type_traits/remove_cv.h
    M libcxx/include/algorithm
    M libcxx/include/atomic
    M libcxx/include/expected
    M libcxx/include/filesystem
    M libcxx/include/format
    M libcxx/include/forward_list
    M libcxx/include/functional
    M libcxx/include/ios
    M libcxx/include/iterator
    M libcxx/include/mdspan
    M libcxx/include/memory
    M libcxx/include/memory_resource
    M libcxx/include/module.modulemap
    M libcxx/include/numeric
    M libcxx/include/ostream
    M libcxx/include/random
    M libcxx/include/ranges
    M libcxx/include/stop_token
    M libcxx/include/string
    M libcxx/include/string_view
    M libcxx/include/type_traits
    M libcxx/include/utility
    M libcxx/include/version
    M libcxx/modules/std/algorithm.inc
    M libcxx/modules/std/memory.inc
    M libcxx/src/CMakeLists.txt
    A libcxx/test/configs/apple-libc++-shared.cfg.in
    M libcxx/test/libcxx/algorithms/ranges_robust_against_copying_comparators.pass.cpp
    M libcxx/test/libcxx/algorithms/ranges_robust_against_copying_projections.pass.cpp
    M libcxx/test/libcxx/containers/sequences/deque/abi.compile.pass.cpp
    M libcxx/test/libcxx/containers/sequences/list/abi.compile.pass.cpp
    M libcxx/test/libcxx/diagnostics/algorithm.nodiscard.verify.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/arithmetic.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/comparison.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/dereference.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/pointer_traits.pass.cpp
    M libcxx/test/libcxx/iterators/bounded_iter/types.compile.pass.cpp
    M libcxx/test/libcxx/memory/allocation_guard.pass.cpp
    M libcxx/test/libcxx/memory/compressed_pair/compressed_pair.pass.cpp
    M libcxx/test/libcxx/numerics/clamp_to_integral.pass.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.adaptor.helpers/as-lvalue.lifetimebound.verify.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.adaptor.helpers/as-lvalue.pass.cpp
    M libcxx/test/libcxx/transitive_includes/cxx03.csv
    M libcxx/test/libcxx/transitive_includes/cxx11.csv
    M libcxx/test/libcxx/transitive_includes/cxx14.csv
    M libcxx/test/libcxx/transitive_includes/cxx17.csv
    M libcxx/test/libcxx/transitive_includes/cxx20.csv
    M libcxx/test/libcxx/transitive_includes/cxx23.csv
    M libcxx/test/libcxx/transitive_includes/cxx26.csv
    M libcxx/test/libcxx/type_traits/is_callable.compile.pass.cpp
    M libcxx/test/libcxx/type_traits/is_constant_evaluated.pass.cpp
    M libcxx/test/libcxx/type_traits/is_implicitly_default_constructible.pass.cpp
    M libcxx/test/libcxx/type_traits/is_specialization.compile.pass.cpp
    M libcxx/test/libcxx/type_traits/is_specialization.verify.cpp
    M libcxx/test/libcxx/type_traits/lazy_metafunctions.pass.cpp
    M libcxx/test/libcxx/utilities/exception_guard.no_exceptions.pass.cpp
    M libcxx/test/libcxx/utilities/exception_guard.pass.cpp
    M libcxx/test/libcxx/utilities/function.objects/func.bind.partial/compose.pass.cpp
    M libcxx/test/libcxx/utilities/meta/meta_base.pass.cpp
    A libcxx/test/std/algorithms/alg.nonmodifying/alg.find.last/ranges.find_last.pass.cpp
    A libcxx/test/std/algorithms/alg.nonmodifying/alg.find.last/ranges.find_last_if.pass.cpp
    A libcxx/test/std/algorithms/alg.nonmodifying/alg.find.last/ranges.find_last_if_not.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/make.heap/ranges_make_heap.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/pop.heap/ranges_pop_heap.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/push.heap/ranges_push_heap.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.set.operations/set.intersection/ranges_set_intersection.pass.cpp
    A libcxx/test/std/algorithms/alg.sorting/alg.set.operations/set.intersection/set_intersection_complexity.pass.cpp
    M libcxx/test/std/algorithms/ranges_robust_against_dangling.pass.cpp
    M libcxx/test/std/algorithms/ranges_robust_against_nonbool.compile.pass.cpp
    M libcxx/test/std/algorithms/ranges_robust_against_proxy_iterators.pass.cpp
    A libcxx/test/std/input.output/iostream.format/std.manip/setfill_wchar_max.pass.cpp
    M libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count.pass.cpp
    M libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp
    M libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_sentinel.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_binary_predicate.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_equivalence_relation.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_strict_weak_order.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_unary_predicate.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirectly_regular_unary_invocable.compile.pass.cpp
    M libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirectly_unary_invocable.compile.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/language.support/support.limits/support.limits.general/algorithm.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/memory.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
    M libcxx/test/std/library/description/conventions/customization.point.object/niebloid.compile.pass.cpp
    M libcxx/test/std/numerics/c.math/isfinite.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.all/range.owning.view/begin_end.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.drop/begin.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.drop/types.h
    M libcxx/test/std/ranges/range.adaptors/range.transform/types.h
    M libcxx/test/std/ranges/range.factories/range.repeat.view/iterator/plus_eq.pass.cpp
    A libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp
    M libcxx/test/std/time/time.cal/time.cal.weekday/time.cal.weekday.nonmembers/comparisons.pass.cpp
    M libcxx/test/std/time/time.clock/time.clock.file/now.pass.cpp
    A libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr.general.pass.cpp
    A libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr.verify.cpp
    A libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr_t.convert.pass.cpp
    A libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr_t.ctor.pass.cpp
    A libcxx/test/std/utilities/smartptr/adapt/inout_ptr/inout_ptr_t.verify.cpp
    A libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr.general.pass.cpp
    A libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr.verify.cpp
    A libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr_t.convert.pass.cpp
    A libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr_t.ctor.pass.cpp
    A libcxx/test/std/utilities/smartptr/adapt/out_ptr/out_ptr_t.verify.cpp
    A libcxx/test/std/utilities/smartptr/adapt/types.h
    M libcxx/test/support/test_iterators.h
    M libcxx/utils/ci/apple-install-libcxx.sh
    M libcxx/utils/ci/buildkite-pipeline.yml
    M libcxx/utils/generate_feature_test_macro_components.py
    M libcxx/utils/libcxx/test/params.py
    A libcxxabi/src/vendor/apple/shims.cpp
    A libcxxabi/test/configs/apple-libc++abi-shared.cfg.in
    M lld/ELF/Arch/AArch64.cpp
    M lld/ELF/Arch/LoongArch.cpp
    M lld/ELF/LinkerScript.h
    M lld/ELF/Relocations.cpp
    M lld/ELF/Relocations.h
    M lld/ELF/ScriptParser.cpp
    M lld/ELF/Writer.cpp
    M lld/MachO/Config.h
    M lld/MachO/Driver.cpp
    M lld/MachO/InputFiles.cpp
    M lld/MachO/Options.td
    M lld/docs/ReleaseNotes.rst
    M lld/test/ELF/aarch64-reloc-implicit-addend.test
    A lld/test/ELF/linkerscript/nocrossrefs.test
    M lld/test/ELF/loongarch-tls-le.s
    M lld/test/MachO/implicit-and-allowable-clients.test
    M lld/test/MachO/link-search-at-rpath.s
    A lld/test/MachO/reproduce-thin-archive-objc.s
    M lld/test/MachO/reproduce-thin-archives.s
    M lld/test/MachO/rpath.s
    M lld/wasm/Options.td
    M lldb/bindings/headers.swig
    A lldb/bindings/interface/SBSaveCoreOptionsDocstrings.i
    M lldb/bindings/interfaces.swig
    M lldb/include/lldb/API/LLDB.h
    M lldb/include/lldb/API/SBDefines.h
    M lldb/include/lldb/API/SBError.h
    M lldb/include/lldb/API/SBFileSpec.h
    M lldb/include/lldb/API/SBProcess.h
    A lldb/include/lldb/API/SBSaveCoreOptions.h
    M lldb/include/lldb/Core/PluginManager.h
    A lldb/include/lldb/Symbol/SaveCoreOptions.h
    M lldb/include/lldb/lldb-forward.h
    M lldb/include/lldb/lldb-private-interfaces.h
    M lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
    M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
    M lldb/source/API/CMakeLists.txt
    M lldb/source/API/SBProcess.cpp
    A lldb/source/API/SBSaveCoreOptions.cpp
    M lldb/source/Commands/CommandObjectProcess.cpp
    M lldb/source/Core/DynamicLoader.cpp
    M lldb/source/Core/PluginManager.cpp
    M lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp
    M lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h
    M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
    M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
    M lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.h
    M lldb/source/Plugins/ObjectFile/Minidump/ObjectFileMinidump.cpp
    M lldb/source/Plugins/ObjectFile/Minidump/ObjectFileMinidump.h
    M lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp
    M lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h
    M lldb/source/Plugins/ObjectFile/PECOFF/WindowsMiniDump.cpp
    M lldb/source/Plugins/ObjectFile/PECOFF/WindowsMiniDump.h
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
    M lldb/source/Symbol/CMakeLists.txt
    A lldb/source/Symbol/SaveCoreOptions.cpp
    M lldb/source/Target/Process.cpp
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx-simulators/unique_ptr/main.cpp
    M lldb/test/API/functionalities/process_save_core/TestProcessSaveCore.py
    M lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump.py
    A lldb/test/API/python_api/sbsavecoreoptions/TestSBSaveCoreOptions.py
    M lldb/tools/lldb-server/lldb-platform.cpp
    M llvm/cmake/modules/LLVMExternalProjectUtils.cmake
    M llvm/docs/CompileCudaWithLLVM.rst
    M llvm/docs/GlobalISel/GenericOpcode.rst
    M llvm/docs/SandboxIR.md
    M llvm/include/llvm/ADT/APFloat.h
    M llvm/include/llvm/ADT/SetOperations.h
    M llvm/include/llvm/Analysis/Loads.h
    M llvm/include/llvm/Analysis/TargetLibraryInfo.def
    M llvm/include/llvm/Analysis/ValueLattice.h
    M llvm/include/llvm/Analysis/ValueTracking.h
    M llvm/include/llvm/Analysis/VecFuncs.def
    M llvm/include/llvm/Bitcode/LLVMBitCodes.h
    M llvm/include/llvm/CodeGen/AsmPrinter.h
    M llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
    M llvm/include/llvm/CodeGen/TargetCallingConv.h
    M llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
    M llvm/include/llvm/Frontend/OpenMP/OMP.td
    M llvm/include/llvm/IR/Attributes.td
    M llvm/include/llvm/IR/PatternMatch.h
    M llvm/include/llvm/MC/MCPseudoProbe.h
    M llvm/include/llvm/Object/ArchiveWriter.h
    M llvm/include/llvm/ProfileData/SampleProf.h
    M llvm/include/llvm/SandboxIR/SandboxIR.h
    A llvm/include/llvm/SandboxIR/Tracker.h
    M llvm/include/llvm/SandboxIR/Use.h
    M llvm/include/llvm/Support/TargetOpcodes.def
    M llvm/include/llvm/Support/TimeProfiler.h
    M llvm/include/llvm/Target/GenericOpcodes.td
    M llvm/include/llvm/Transforms/IPO/SampleProfileMatcher.h
    M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
    M llvm/lib/Analysis/LazyValueInfo.cpp
    M llvm/lib/Analysis/Loads.cpp
    M llvm/lib/Analysis/LoopAccessAnalysis.cpp
    M llvm/lib/Analysis/TargetLibraryInfo.cpp
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
    M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
    M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
    M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h
    M llvm/lib/CodeGen/MachineSink.cpp
    M llvm/lib/CodeGen/MachineVerifier.cpp
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp
    M llvm/lib/IR/Verifier.cpp
    M llvm/lib/Object/ArchiveWriter.cpp
    M llvm/lib/ProfileData/SampleProf.cpp
    M llvm/lib/SandboxIR/CMakeLists.txt
    M llvm/lib/SandboxIR/SandboxIR.cpp
    A llvm/lib/SandboxIR/Tracker.cpp
    M llvm/lib/Support/APFloat.cpp
    M llvm/lib/Support/TimeProfiler.cpp
    M llvm/lib/Target/AArch64/AArch64Arm64ECCallLowering.cpp
    M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
    M llvm/lib/Target/AArch64/AArch64CallingConvention.td
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64FrameLowering.h
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp
    M llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
    A llvm/lib/Target/AArch64/peephole-sxtw.mir
    M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
    M llvm/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
    M llvm/lib/Target/AMDGPU/FLATInstructions.td
    M llvm/lib/Target/AMDGPU/GCNILPSched.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCCodeEmitter.cpp
    M llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp
    M llvm/lib/Target/AMDGPU/R600ISelDAGToDAG.cpp
    M llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
    M llvm/lib/Target/AMDGPU/R600InstrInfo.cpp
    M llvm/lib/Target/AMDGPU/R600MachineCFGStructurizer.cpp
    M llvm/lib/Target/AMDGPU/R600MachineScheduler.cpp
    M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/AMDGPU/SIInstructions.td
    M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
    M llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
    M llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp
    M llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
    M llvm/lib/Target/ARC/ARCISelLowering.cpp
    M llvm/lib/Target/ARM/ARMFrameLowering.cpp
    M llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
    M llvm/lib/Target/CSKY/CSKYISelLowering.cpp
    M llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp
    M llvm/lib/Target/Hexagon/HexagonGenInsert.cpp
    M llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchFixupKinds.h
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.cpp
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.cpp
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.h
    M llvm/lib/Target/Mips/MipsFastISel.cpp
    M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
    M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
    M llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp
    M llvm/lib/Target/PowerPC/PPCFastISel.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.h
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/SystemZ/SystemZInstrHFP.td
    M llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp
    M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
    M llvm/lib/Transforms/IPO/SampleProfile.cpp
    M llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
    M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
    M llvm/lib/Transforms/Scalar/SROA.cpp
    M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
    M llvm/lib/Transforms/Utils/BuildLibCalls.cpp
    M llvm/lib/Transforms/Utils/CodeExtractor.cpp
    M llvm/lib/Transforms/Utils/SCCPSolver.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/lib/Transforms/Vectorize/VPlan.cpp
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/test/Analysis/UniformityAnalysis/AMDGPU/intrinsics.ll
    M llvm/test/Analysis/ValueTracking/known-bits.ll
    M llvm/test/Analysis/ValueTracking/known-fpclass.ll
    M llvm/test/Analysis/ValueTracking/known-non-zero.ll
    A llvm/test/Analysis/ValueTracking/numsignbits-shl.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-udiv.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-udiv.mir
    A llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-sucmp.ll
    A llvm/test/CodeGen/AArch64/GlobalISel/legalize-acos.mir
    A llvm/test/CodeGen/AArch64/GlobalISel/legalize-asin.mir
    A llvm/test/CodeGen/AArch64/GlobalISel/legalize-atan.mir
    A llvm/test/CodeGen/AArch64/GlobalISel/legalize-cosh.mir
    A llvm/test/CodeGen/AArch64/GlobalISel/legalize-sinh.mir
    A llvm/test/CodeGen/AArch64/GlobalISel/legalize-tanh.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/load-addressing-modes.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/store-addressing-modes.mir
    M llvm/test/CodeGen/AArch64/aarch64-fold-lslfast.ll
    M llvm/test/CodeGen/AArch64/aarch64-mull-masks.ll
    M llvm/test/CodeGen/AArch64/arm64-neon-copy.ll
    R llvm/test/CodeGen/AArch64/arm64-sqxtn2-combine.ll
    A llvm/test/CodeGen/AArch64/arm64ec-hybrid-patchable.ll
    M llvm/test/CodeGen/AArch64/double_reduct.ll
    M llvm/test/CodeGen/AArch64/f16-instructions.ll
    M llvm/test/CodeGen/AArch64/fixed-point-conv-vec-pat.ll
    M llvm/test/CodeGen/AArch64/fp-intrinsics-fp16.ll
    M llvm/test/CodeGen/AArch64/fp-intrinsics.ll
    M llvm/test/CodeGen/AArch64/illegal-float-ops.ll
    M llvm/test/CodeGen/AArch64/qmovn.ll
    M llvm/test/CodeGen/AArch64/replace-with-veclib-armpl.ll
    M llvm/test/CodeGen/AArch64/replace-with-veclib-sleef-scalable.ll
    M llvm/test/CodeGen/AArch64/replace-with-veclib-sleef.ll
    A llvm/test/CodeGen/AArch64/stack-hazard.ll
    M llvm/test/CodeGen/AArch64/sve-doublereduct.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-int-to-fp.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-vector-zext.ll
    M llvm/test/CodeGen/AArch64/sve-int-reduce.ll
    A llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-reductions.ll
    M llvm/test/CodeGen/AArch64/vec-libcalls.ll
    M llvm/test/CodeGen/AArch64/vecreduce-add.ll
    A llvm/test/CodeGen/AMDGPU/fold-zero-high-bits-clear-kill-flags.mir
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.tr-w32.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.tr-w64.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.inverse.ballot.i32.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.inverse.ballot.i64.ll
    M llvm/test/CodeGen/AMDGPU/vni8-live-reg-opt.ll
    M llvm/test/CodeGen/LoongArch/andn-icmp.ll
    A llvm/test/CodeGen/NVPTX/i1-ext-load.ll
    A llvm/test/CodeGen/NVPTX/i1-load-lower.ll
    M llvm/test/CodeGen/RISCV/rvv/ctlz-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/cttz-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctlz.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-cttz.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-rotate.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vrol.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vror.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwadd.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwmul.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsll.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsub.ll
    M llvm/test/CodeGen/RISCV/rvv/vrol-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vror-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vwadd-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vwsll-sdnode.ll
    A llvm/test/CodeGen/RISCV/sink-and-fold-crash.mir
    A llvm/test/CodeGen/WebAssembly/libcalls-trig.ll
    M llvm/test/CodeGen/X86/bitreverse.ll
    M llvm/test/CodeGen/X86/combine-udiv.ll
    M llvm/test/CodeGen/X86/gfni-funnel-shifts.ll
    M llvm/test/CodeGen/X86/gfni-rotates.ll
    M llvm/test/CodeGen/X86/gfni-shifts.ll
    M llvm/test/CodeGen/X86/omit-urem-of-power-of-two-or-zero-when-comparing-with-zero.ll
    A llvm/test/CodeGen/X86/udiv-exact.ll
    M llvm/test/CodeGen/X86/vector-bitreverse.ll
    M llvm/test/CodeGen/X86/vselect-avx.ll
    M llvm/test/DebugInfo/Generic/assignment-tracking/sroa/var-sized-fragment.ll
    A llvm/test/DebugInfo/Generic/sroa-alloca-offset.ll
    M llvm/test/DebugInfo/MIR/X86/live-debug-values-fragments.mir
    A llvm/test/DebugInfo/X86/debug-aranges-sce-tuning.ll
    A llvm/test/ExecutionEngine/JITLink/x86-64/MachO_archive_two_objects_same_name.s
    A llvm/test/Instrumentation/MemorySanitizer/AArch64/neon_vst.ll
    A llvm/test/Instrumentation/MemorySanitizer/AArch64/neon_vst_origins.ll
    M llvm/test/MC/AArch64/elf-reloc-ptrauth.s
    M llvm/test/MC/AArch64/mapping-across-sections.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop1.s
    M llvm/test/MC/AMDGPU/lit.local.cfg
    R llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop1.txt
    M llvm/test/MC/LoongArch/Relocations/relocations.s
    M llvm/test/MC/SystemZ/insn-bad.s
    M llvm/test/MC/SystemZ/insn-good.s
    A llvm/test/MachineVerifier/test_uscmp.mir
    M llvm/test/Object/archive-malformed-object.test
    M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
    M llvm/test/TableGen/GlobalISelCombinerEmitter/match-table-cxx.td
    M llvm/test/TableGen/GlobalISelEmitter.td
    M llvm/test/Transforms/CorrelatedValuePropagation/ashr.ll
    M llvm/test/Transforms/CorrelatedValuePropagation/basic.ll
    M llvm/test/Transforms/CorrelatedValuePropagation/vectors.ll
    M llvm/test/Transforms/GVN/condprop.ll
    M llvm/test/Transforms/InferFunctionAttrs/annotate.ll
    M llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll
    M llvm/test/Transforms/InstCombine/ashr-demand.ll
    M llvm/test/Transforms/InstCombine/vector-logical-reductions.ll
    A llvm/test/Transforms/LoopVectorize/AArch64/divs-with-scalable-vfs.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/veclib-calls-libsystem-darwin.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/veclib-intrinsic-calls.ll
    A llvm/test/Transforms/LoopVectorize/SystemZ/scalar-steps-with-users-demanding-all-lanes-and-first-lane-only.ll
    M llvm/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll
    M llvm/test/Transforms/LoopVectorize/X86/interleave-cost.ll
    M llvm/test/Transforms/SCCP/phis.ll
    A llvm/test/Transforms/SCCP/preserving-debugloc-signedinst-branch-feasible-succ.ll
    A llvm/test/Transforms/SLPVectorizer/RISCV/trunc-bv-multi-uses.ll
    A llvm/test/Transforms/SLPVectorizer/X86/revec-fix-99411.ll
    M llvm/test/Transforms/SLPVectorizer/revec.ll
    A llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-stale-profile-renaming-recursive.prof
    A llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-stale-profile-renaming.prof
    M llvm/test/Transforms/SampleProfile/non-probe-stale-profile-matching.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-matching-LCS.ll
    A llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-renaming-recursive.ll
    A llvm/test/Transforms/SampleProfile/pseudo-probe-stale-profile-renaming.ll
    A llvm/test/Transforms/SimpleLoopUnswitch/preserving-debugloc-trivial-terminators.ll
    A llvm/test/Transforms/VectorCombine/RISCV/vecreduce-of-cast.ll
    A llvm/test/Verifier/byval-size-limit.ll
    M llvm/test/Verifier/param-align.ll
    M llvm/test/Verifier/param-attr-align.ll
    M llvm/test/Verifier/param-ret-align.ll
    M llvm/test/tools/llvm-tli-checker/ps4-tli-check.yaml
    M llvm/unittests/ADT/APFloatTest.cpp
    M llvm/unittests/ADT/SetOperationsTest.cpp
    M llvm/unittests/Analysis/LoadsTest.cpp
    M llvm/unittests/Analysis/TargetLibraryInfoTest.cpp
    M llvm/unittests/CodeGen/InstrRefLDVTest.cpp
    M llvm/unittests/IR/PatternMatch.cpp
    M llvm/unittests/ProfileData/PGOCtxProfReaderWriterTest.cpp
    M llvm/unittests/SandboxIR/CMakeLists.txt
    A llvm/unittests/SandboxIR/TrackerTest.cpp
    M llvm/utils/TableGen/Common/DAGISelMatcher.cpp
    M llvm/utils/TableGen/Common/DAGISelMatcher.h
    M llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
    M llvm/utils/TableGen/DAGISelMatcherGen.cpp
    M llvm/utils/gn/secondary/clang-tools-extra/clangd/BUILD.gn
    M llvm/utils/gn/secondary/clang-tools-extra/clangd/test/BUILD.gn
    M llvm/utils/gn/secondary/clang-tools-extra/clangd/unittests/BUILD.gn
    M llvm/utils/gn/secondary/clang/lib/Sema/BUILD.gn
    M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
    M llvm/utils/gn/secondary/lldb/source/API/BUILD.gn
    M llvm/utils/gn/secondary/lldb/source/Symbol/BUILD.gn
    M llvm/utils/gn/secondary/llvm/lib/SandboxIR/BUILD.gn
    M llvm/utils/gn/secondary/llvm/unittests/SandboxIR/BUILD.gn
    M llvm/utils/lit/lit/builtin_commands/cat.py
    M llvm/utils/mlgo-utils/pyproject.toml
    M mlir/include/mlir/CAPI/Rewrite.h
    M mlir/include/mlir/Conversion/Passes.td
    M mlir/include/mlir/Dialect/Affine/Analysis/LoopAnalysis.h
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/include/mlir/Dialect/OpenMP/OpenMPClauses.td
    M mlir/include/mlir/Dialect/SPIRV/Transforms/SPIRVConversion.h
    M mlir/include/mlir/Dialect/Transform/IR/TransformOps.td
    M mlir/lib/Bytecode/Reader/BytecodeReader.cpp
    M mlir/lib/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.cpp
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
    M mlir/lib/Dialect/Affine/Analysis/LoopAnalysis.cpp
    M mlir/lib/Dialect/Affine/Transforms/LoopTiling.cpp
    M mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp
    M mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
    M mlir/lib/Dialect/Linalg/Transforms/WinogradConv2D.cpp
    M mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp
    M mlir/lib/Dialect/Shape/IR/Shape.cpp
    M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
    M mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp
    M mlir/lib/Dialect/Transform/IR/TransformOps.cpp
    M mlir/test/CAPI/rewrite.c
    M mlir/test/Conversion/ConvertToSPIRV/arith.mlir
    M mlir/test/Conversion/ConvertToSPIRV/combined.mlir
    A mlir/test/Conversion/ConvertToSPIRV/func-signature-vector-unroll.mlir
    M mlir/test/Conversion/ConvertToSPIRV/index.mlir
    M mlir/test/Conversion/ConvertToSPIRV/scf.mlir
    M mlir/test/Conversion/ConvertToSPIRV/simple.mlir
    M mlir/test/Conversion/ConvertToSPIRV/ub.mlir
    M mlir/test/Conversion/ConvertToSPIRV/vector.mlir
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
    M mlir/test/Dialect/Affine/loop-tiling-validity.mlir
    M mlir/test/Dialect/ArmSME/tile-allocation-liveness.mlir
    M mlir/test/Dialect/Linalg/continuous-tiling-full.mlir
    M mlir/test/Dialect/Linalg/vectorization-unsupported.mlir
    A mlir/test/Dialect/Linalg/winograd-conv2d-rewrite.mlir
    M mlir/test/Dialect/Shape/canonicalize.mlir
    A mlir/test/Dialect/Shape/unranked-tensor-lowering.mlir
    M mlir/test/Dialect/Tensor/canonicalize.mlir
    M mlir/test/Dialect/Tosa/constant-op-fold.mlir
    M mlir/test/lib/Conversion/CMakeLists.txt
    A mlir/test/lib/Conversion/ConvertToSPIRV/CMakeLists.txt
    A mlir/test/lib/Conversion/ConvertToSPIRV/TestSPIRVFuncSignatureConversion.cpp
    M mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp
    M mlir/tools/mlir-opt/CMakeLists.txt
    M mlir/tools/mlir-opt/mlir-opt.cpp
    A openmp/runtime/test/transform/interchange/foreach.cpp
    A openmp/runtime/test/transform/interchange/intfor.c
    A openmp/runtime/test/transform/interchange/iterfor.cpp
    A openmp/runtime/test/transform/interchange/parallel-wsloop-collapse-foreach.cpp
    A openmp/runtime/test/transform/interchange/parallel-wsloop-collapse-intfor.cpp
    A openmp/runtime/test/transform/reverse/foreach.cpp
    A openmp/runtime/test/transform/reverse/intfor.c
    A openmp/runtime/test/transform/reverse/iterfor.cpp
    A openmp/runtime/test/transform/reverse/parallel-wsloop-collapse-foreach.cpp
    A openmp/runtime/test/transform/reverse/parallel-wsloop-collapse-intfor.cpp
    M utils/bazel/README.md
    M utils/bazel/WORKSPACE
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/stdlib/BUILD.bazel
    M utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
    M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
    A utils/bazel/third_party_build/pybind.BUILD

  Log Message:
  -----------
  Update commit message and rebase

Created using spr 1.3.4


Compare: https://github.com/llvm/llvm-project/compare/519b828f34b7...348ded7a6c68

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