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

Amir Ayupov via All-commits all-commits at lists.llvm.org
Thu Jul 18 16:21:14 PDT 2024


  Branch: refs/heads/users/aaupov/spr/bolt-expose-pseudo-probe-function-checksum
  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: 1bd307706a1377e3a80064f9031b637a33fc29c7
      https://github.com/llvm/llvm-project/commit/1bd307706a1377e3a80064f9031b637a33fc29c7
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M .git-blame-ignore-revs
    M bolt/include/bolt/Core/BinaryContext.h
    M bolt/include/bolt/Core/DIEBuilder.h
    M bolt/include/bolt/Rewrite/DWARFRewriter.h
    M bolt/lib/Core/DIEBuilder.cpp
    M bolt/lib/Rewrite/DWARFRewriter.cpp
    M bolt/lib/Rewrite/PseudoProbeRewriter.cpp
    M bolt/lib/Rewrite/RewriteInstance.cpp
    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/include/clang-c/Index.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/BuiltinsAMDGPU.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/StmtNodes.td
    M clang/include/clang/Driver/Options.td
    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/AST/ASTContext.cpp
    M clang/lib/AST/Interp/ByteCodeEmitter.cpp
    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/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/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/ItaniumCXXABI.cpp
    M clang/lib/CodeGen/Targets/SystemZ.cpp
    M clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Headers/ptrauth.h
    M clang/lib/Lex/Preprocessor.cpp
    M clang/lib/Parse/ParseOpenMP.cpp
    M clang/lib/Sema/CheckExprLifetime.cpp
    M clang/lib/Sema/ParsedAttr.cpp
    M clang/lib/Sema/Sema.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/SemaOpenMP.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/lib/Sema/TreeTransform.h
    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
    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
    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
    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
    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
    A clang/test/CodeGenCXX/ptrauth-static-destructors.cpp
    A clang/test/CodeGenCXX/ptrauth-throw.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 clang/test/Driver/Ofast.c
    M clang/test/Driver/amdgpu-openmp-toolchain.c
    M clang/test/OpenMP/depend_iterator_bug.c
    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/Preprocessor/aarch64-target-features.c
    M clang/test/Sema/alignas.c
    M clang/test/Sema/attr-weak.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
    M clang/test/SemaCXX/warn-dangling-local.cpp
    M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
    M clang/tools/libclang/CIndex.cpp
    M clang/tools/libclang/CXCursor.cpp
    M compiler-rt/cmake/Modules/AllSupportedArchDefs.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/sanitizer_common/sanitizer_linux.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_platform.h
    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/fuzzer/lit.cfg.py
    M compiler-rt/test/safestack/lit.cfg.py
    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/www/index.html
    M flang/include/flang/Semantics/tools.h
    M flang/lib/Lower/ConvertCall.cpp
    M flang/lib/Lower/ConvertVariable.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/openmp-parsers.cpp
    M flang/runtime/command.cpp
    M flang/runtime/misc-intrinsic.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/Parser/OpenMP/proc-bind.f90
    A flang/test/Transforms/stack-arrays-hlfir.f90
    M flang/test/Transforms/stack-arrays.fir
    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/cmake/modules/LLVMLibCTestRules.cmake
    M libc/config/gpu/entrypoints.txt
    M libc/config/linux/aarch64/entrypoints.txt
    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/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
    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
    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
    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
    M libcxx/benchmarks/lit.cfg.py
    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/docs/BuildingLibcxx.rst
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/ReleaseNotes/20.rst
    M libcxx/docs/Status/Cxx2c.rst
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/docs/TestingLibcxx.rst
    M libcxx/include/CMakeLists.txt
    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/__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/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/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
    A libcxx/test/std/input.output/iostream.format/std.manip/setfill_wchar_max.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/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/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.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/support/test_iterators.h
    M libcxx/utils/generate_feature_test_macro_components.py
    M libcxx/utils/libcxx/test/params.py
    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
    A lld/test/ELF/linkerscript/nocrossrefs.test
    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/packages/Python/lldbsuite/test/lldbplatformutil.py
    M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
    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/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.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/tools/lldb-server/lldb-platform.cpp
    M llvm/cmake/modules/LLVMExternalProjectUtils.cmake
    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/ValueLattice.h
    M llvm/include/llvm/Analysis/ValueTracking.h
    M llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
    M llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
    M llvm/include/llvm/Frontend/OpenMP/OMP.td
    M llvm/include/llvm/IR/PatternMatch.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/Target/GenericOpcodes.td
    M llvm/include/llvm/Transforms/IPO/SampleProfileMatcher.h
    M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.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/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/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64FrameLowering.h
    M llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    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/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/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/LoongArchISelLowering.cpp
    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/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/Scalar/SROA.cpp
    M llvm/lib/Transforms/Utils/BuildLibCalls.cpp
    M llvm/lib/Transforms/Utils/SCCPSolver.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.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
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-udiv.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-udiv.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
    A llvm/test/CodeGen/AArch64/stack-hazard.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
    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/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
    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
    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/ExecutionEngine/JITLink/x86-64/MachO_archive_two_objects_same_name.s
    A llvm/test/Instrumentation/MemorySanitizer/AArch64/neon_vst.ll
    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/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/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
    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/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/VectorCombine/RISCV/vecreduce-of-cast.ll
    M llvm/unittests/ADT/APFloatTest.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/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/libcxx/include/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/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/SPIRV/Transforms/SPIRVConversion.h
    M mlir/lib/Bytecode/Reader/BytecodeReader.cpp
    M mlir/lib/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.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/WinogradConv2D.cpp
    M mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.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/Dialect/Affine/loop-tiling-validity.mlir
    M mlir/test/Dialect/ArmSME/tile-allocation-liveness.mlir
    A mlir/test/Dialect/Linalg/winograd-conv2d-rewrite.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/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/llvm-project-overlay/libc/test/src/stdlib/BUILD.bazel
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
    M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel

  Log Message:
  -----------
  Expose PseudoProbeDecoder as shared_ptr in BinaryContext

Created using spr 1.3.4


Compare: https://github.com/llvm/llvm-project/compare/833ff8e63309...1bd307706a13

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