[all-commits] [llvm/llvm-project] c8f3d2: [ADT] Allow reverse to find free rbegin/rend funct...

Fangrui Song via All-commits all-commits at lists.llvm.org
Mon Apr 8 16:48:51 PDT 2024


  Branch: refs/heads/users/MaskRay/spr/driver-ensure-toolchainlibrarypaths-is-not-empty
  Home:   https://github.com/llvm/llvm-project
  Commit: c8f3d211fc428dd6075440ac22f48641436545d0
      https://github.com/llvm/llvm-project/commit/c8f3d211fc428dd6075440ac22f48641436545d0
  Author: Jakub Kuderski <jakub at nod-labs.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M llvm/include/llvm/ADT/ADL.h
    M llvm/include/llvm/ADT/STLExtras.h
    M llvm/unittests/ADT/IteratorTest.cpp
    M llvm/unittests/ADT/RangeAdapterTest.cpp
    M llvm/unittests/ADT/STLExtrasTest.cpp

  Log Message:
  -----------
  [ADT] Allow reverse to find free rbegin/rend functions (#87840)

Lift the requirement that rbegin/rend must be member functions. Also
allow the rbegin/rend to be found through Argument Dependent Lookup
(ADL) and add `adl_rbegin`/`adl_rend` to STLExtras.


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

  Changed paths:
    M mlir/lib/Dialect/Arith/IR/ValueBoundsOpInterfaceImpl.cpp

  Log Message:
  -----------
  [mlir][Arith] Specify evaluation order of `getExpr` (#87859)

The C++ standard does not specify an evaluation order for addition/...
operands. E.g., in `a() + b()`, the compiler is free to evaluate `a` or
`b` first.

This lead to different `mlir-opt` outputs in #85895. (FileCheck passed
when compiled with LLVM but failed when compiled with gcc.)


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

  Changed paths:
    M mlir/include/mlir/Interfaces/ValueBoundsOpInterface.h
    M mlir/lib/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.cpp
    M mlir/lib/Dialect/Vector/IR/ScalableValueBoundsConstraintSet.cpp
    M mlir/lib/Interfaces/ValueBoundsOpInterface.cpp
    M mlir/test/Dialect/SCF/value-bounds-op-interface-impl.mlir

  Log Message:
  -----------
  [mlir][SCF] `ValueBoundsConstraintSet`: Support `scf.if` (branches) (#87860)

This commit adds support for `scf.if` to `ValueBoundsConstraintSet`.

Example:
```
%0 = scf.if ... -> index {
  scf.yield %a : index
} else {
  scf.yield %b : index
}
```

The following constraints hold for %0:
* %0 >= min(%a, %b)
* %0 <= max(%a, %b)

Such constraints cannot be added to the constraint set; min/max is not
supported by `IntegerRelation`. However, if we know which one of %a and
%b is larger, we can add constraints for %0. E.g., if %a <= %b:
* %0 >= %a
* %0 <= %b

This commit required a few minor changes to the
`ValueBoundsConstraintSet` infrastructure, so that values can be
compared while we are still in the process of traversing the IR/adding
constraints.

Note: This is a re-upload of #85895, which was reverted. The bug that
caused the failure was fixed in #87859.


  Commit: 813f68caf42260452ad7a5cc224ef199a2ad0067
      https://github.com/llvm/llvm-project/commit/813f68caf42260452ad7a5cc224ef199a2ad0067
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/test/SemaCXX/type-traits.cpp

  Log Message:
  -----------
  [clang] Reject VLAs in `__is_layout_compatible()` (#87737)

This is a follow-up to #81506. Since `__is_layout_compatible()` is a C++
intrinsic
(https://github.com/llvm/llvm-project/blob/ff1e72d68d1224271801ff5192a8c14fbd3be83b/clang/include/clang/Basic/TokenKinds.def#L523),
I don't think we should define how it interacts with VLA extension
unless we have a compelling reason to.

Since #81506 was merged after 18 cut-off, we don't have to follow any
kind of deprecation process.


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

  Changed paths:
    A clang/test/CXX/drs/dr392.cpp
    M clang/test/CXX/drs/dr3xx.cpp
    M clang/www/cxx_dr_status.html

  Log Message:
  -----------
  [clang] Add test for CWG392 (#87744)

[CWG392](https://cplusplus.github.io/CWG/issues/392.html) "Use of full
expression lvalue before temporary destruction". We're testing that
`operator bool()` is called before destructor of `C`.

I'm also marking CWG388 as requiring libc++abi test instead of codegen
test, as we need to test matching between exception object and exception
handlers.


  Commit: 0b021c4b603b4e076f9e54572a4eef3e43ab57c0
      https://github.com/llvm/llvm-project/commit/0b021c4b603b4e076f9e54572a4eef3e43ab57c0
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M clang/test/CXX/drs/dr4xx.cpp
    M clang/www/cxx_dr_status.html

  Log Message:
  -----------
  [clang] Claim conformance for CWG466 (#87748)

[CWG466](https://cplusplus.github.io/CWG/issues/466.html) "cv-qualifiers
on pseudo-destructor type".
Richard claimed that we don't implement this DR because of one
ill-formed example being accepted: `a->CI::~VI();`. This example is
testing the behavior of calling a pseudo-destructor via a qualified
name, where components of qualified name denote the same `int` type, but
with different cv-qualifications.

Initially, the following wording from [expr.pseudo] quoted in CWG466 was
left intact:
> Furthermore, the two type-names in a pseudo-destructor-name of the
form
>
>    `:: (opt) nested-name-specifier (opt) type-name ::~ type-name`
>
>shall designate the same scalar type.

According to this wording, the example is indeed ill-formed.

[P1131R2](https://wg21.link/p1131r2) merged wording for
pseudo-destructors into regular destructor wording. Among other things,
[expr.pseudo] was removed, and [expr.prim.id.qual]/2 was changed to
read:

> Where `type-name ::~ type-name` is used, the two type-names shall
refer to the same type (ignoring cv-qualifications);

I believe P1131R2 made the example well-formed.

However, this wording didn't survive
[P1787R6](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1787r6.html)
"Declarations and where to find them". In that paper I don't see the
intent to make the example ill-formed again, so I assume it confirmed
status-quo via other wording. My _guess_ the new wording is
http://eel.is/c++draft/basic.lookup#qual.general-4.6:
> If a qualified name Q follows a ~: 
> - <...>
> - The [type-name](http://eel.is/c++draft/dcl.type.simple#nt:type-name)
that is or contains Q shall refer to its (original) lookup context
(ignoring cv-qualification) under the interpretation established by at
least one (successful) lookup
performed[.](http://eel.is/c++draft/basic.lookup#qual.general-4.6.sentence-1)


  Commit: 770202343ebce1f2bc0745c78e298e251f204bee
      https://github.com/llvm/llvm-project/commit/770202343ebce1f2bc0745c78e298e251f204bee
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M clang/lib/Format/UnwrappedLineParser.cpp

  Log Message:
  -----------
  [clang-format][NFC] Rename `kind` to `Kind`


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

  Changed paths:
    M mlir/lib/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.cpp

  Log Message:
  -----------
  [mlir][SCF][NFC] `ValueBoundsConstraintSet`: Simplify `scf.for` implementation (#87862)

This commit simplifies the implementation of the
`ValueBoundsOpInterface` for `scf.for` based on the newly added
`ValueBoundsConstraintSet::compare` API and adds additional
documentation.

Previously, the interface implementation created a new constraint set
just to check if the yielded value and iter_arg are equal. This was
inefficient because constraints were added multiple times (to two
different constraint sets) for ops that are inside the loop.

Note: This is a re-upload of #86239.


  Commit: a522dbbd62d0cda4cd10b1b477f238938446294a
      https://github.com/llvm/llvm-project/commit/a522dbbd62d0cda4cd10b1b477f238938446294a
  Author: Kai Sasaki <lewuathe at gmail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
    M mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir

  Log Message:
  -----------
  [mlir][complex] Support fast math flag for complex.sign op (#87148)

We are going to support the fast math flag given in `complex.sign` op in
the conversion to standard dialect.

See:
https://discourse.llvm.org/t/rfc-fastmath-flags-support-in-complex-dialect/71981


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

  Changed paths:
    M libc/fuzzing/__support/CMakeLists.txt
    M libc/fuzzing/__support/uint_fuzz.cpp
    M libc/src/__support/CMakeLists.txt
    M libc/src/__support/FPUtil/BasicOperations.h
    M libc/src/__support/FPUtil/CMakeLists.txt
    M libc/src/__support/FPUtil/FPBits.h
    M libc/src/__support/FPUtil/Hypot.h
    M libc/src/__support/FPUtil/dyadic_float.h
    M libc/src/__support/FPUtil/generic/FMA.h
    M libc/src/__support/FPUtil/generic/sqrt.h
    M libc/src/__support/FPUtil/generic/sqrt_80_bit_long_double.h
    R libc/src/__support/UInt.h
    R libc/src/__support/UInt128.h
    A libc/src/__support/big_int.h
    M libc/src/__support/float_to_string.h
    M libc/src/__support/hash.h
    M libc/src/__support/integer_literals.h
    M libc/src/__support/integer_to_string.h
    M libc/src/__support/str_to_float.h
    M libc/src/__support/str_to_integer.h
    A libc/src/__support/uint128.h
    M libc/src/math/generic/log_range_reduction.h
    M libc/src/stdio/printf_core/CMakeLists.txt
    M libc/src/stdio/printf_core/float_dec_converter.h
    M libc/test/UnitTest/CMakeLists.txt
    M libc/test/UnitTest/LibcTest.cpp
    M libc/test/UnitTest/StringUtils.h
    M libc/test/UnitTest/TestLogger.cpp
    M libc/test/src/__support/CMakeLists.txt
    M libc/test/src/__support/CPP/CMakeLists.txt
    M libc/test/src/__support/CPP/bit_test.cpp
    M libc/test/src/__support/CPP/limits_test.cpp
    M libc/test/src/__support/FPUtil/dyadic_float_test.cpp
    M libc/test/src/__support/high_precision_decimal_test.cpp
    M libc/test/src/__support/integer_to_string_test.cpp
    M libc/test/src/__support/math_extras_test.cpp
    M libc/test/src/__support/str_to_fp_test.h
    M libc/test/src/__support/uint_test.cpp
    M libc/test/src/math/smoke/nanf128_test.cpp
    M libc/test/src/stdlib/strtold_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/UnitTest/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/__support/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/__support/CPP/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/__support/FPUtil/BUILD.bazel

  Log Message:
  -----------
  [libc][NFC] Rename `UInt.h` to `big_int.h` and `UInt128.h` to `uint128.h` for consistency (#87808)


  Commit: 684f27d37a6f1faf546a71bcb784b48c7fc8b7e0
      https://github.com/llvm/llvm-project/commit/684f27d37a6f1faf546a71bcb784b48c7fc8b7e0
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M clang/lib/Format/FormatTokenLexer.cpp
    M clang/lib/Format/TokenAnnotator.cpp
    M clang/lib/Format/UnwrappedLineParser.cpp
    M clang/lib/Format/WhitespaceManager.cpp

  Log Message:
  -----------
  [clang-format][NFC] Use `is` instead of `getType() ==`


  Commit: f5d7e755b8e9623f24812dcab8f4e09e888b2527
      https://github.com/llvm/llvm-project/commit/f5d7e755b8e9623f24812dcab8f4e09e888b2527
  Author: Benjamin Kramer <benny.kra at googlemail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

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

  Log Message:
  -----------
  [bazel] Fix the build after 27b2d7d4bb790ec1e7430bf18b1bc2f6e0800d0d


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

  Changed paths:
    M clang/include/clang/Sema/Sema.h
    A clang/include/clang/Sema/SemaBase.h
    M clang/include/clang/Sema/SemaOpenACC.h
    M clang/lib/Sema/CMakeLists.txt
    M clang/lib/Sema/Sema.cpp
    A clang/lib/Sema/SemaBase.cpp
    M clang/lib/Sema/SemaOpenACC.cpp

  Log Message:
  -----------
  [clang][NFC] Introduce `SemaBase` (#87634)

This is a follow-up to #84184. Multiple reviewers there pointed out to
me that we should have a common base class for `Sema` and `SemaOpenACC`
to avoid code duplication for common helpers like `getLangOpts()`. On
top of that, `Diag()` function was requested for `SemaOpenACC`. This
patch delivers both.

The intent is to keep `SemaBase` as small as possible, as things there
are globally available across `Sema` and its parts without any
additional effort from usage side. Overused, this can undermine the
whole endeavor of splitting `Sema` apart.

Apart of shuffling code around, this patch introduces a helper private
function `SemaDiagnosticBuilder::getDeviceDeferredDiags()`, the sole
purpose of which is to encapsulate member access into (incomplete)
`Sema` for function templates defined in the header, where `Sema` can't
be complete.


  Commit: 0e8b61f8e0bd37e99f3de06e4e8885844f904eba
      https://github.com/llvm/llvm-project/commit/0e8b61f8e0bd37e99f3de06e4e8885844f904eba
  Author: Ramkumar Ramachandra <ram.ramachandra at arm.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M llvm/test/tools/llvm-objdump/ELF/dynamic-malformed.test
    M llvm/tools/llvm-objdump/ELFDump.cpp

  Log Message:
  -----------
  llvm-objdump/ELF: fix crash when reading dyn str table (#87519)

When reading the dynamic string table, llvm-objdump used to crash if the
ELF was malformed, due to an erroneous consumption of error status.
Instead, propogate the error status to the caller, fixing the crash, and
printing a warning.


  Commit: 233c030dcb18880d5f0a749573f11f96f35e76b8
      https://github.com/llvm/llvm-project/commit/233c030dcb18880d5f0a749573f11f96f35e76b8
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    A llvm/test/Transforms/LoopVectorize/AArch64/induction-costs.ll
    A llvm/test/Transforms/LoopVectorize/X86/induction-costs.ll

  Log Message:
  -----------
  [LV] Add extra tests for induction cost modeling.


  Commit: 4761e74a276ee1f38596f4849daa9d633929f2ae
      https://github.com/llvm/llvm-project/commit/4761e74a276ee1f38596f4849daa9d633929f2ae
  Author: yronglin <yronglin777 at gmail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx23Issues.csv
    M libcxx/include/fstream
    M libcxx/test/std/input.output/file.streams/fstreams/fstream.cons/path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/path.pass.cpp
    M libcxx/test/support/test_macros.h

  Log Message:
  -----------
  [libc++] Implement LWG3430 disallow implicit conversion of the source arguments to `std::filesystem::path` when constructing `std::basic_*fstream` (#85079)

Implement [LWG3430](https://wg21.link/LWG3430).

---------

Signed-off-by: yronglin <yronglin777 at gmail.com>


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

  Changed paths:
    M llvm/test/Transforms/LoopVectorize/global_alias.ll

  Log Message:
  -----------
  [LV] Make global_alias.ll test independent of O1 pipeline.

Update global_alias.ll with the IR after the O1 pipeline. Depending on
the O1 makes the tests more fragile and also makes it more difficult to
reason about the behavior of the tests, as it doesn't show the IR before
LoopVectorize.


  Commit: 1803d675004bb512051d2df7e1ae3ea95692fc67
      https://github.com/llvm/llvm-project/commit/1803d675004bb512051d2df7e1ae3ea95692fc67
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

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

  Log Message:
  -----------
  [Driver] Add missing include of std::set.

4ddd4ed7fe15a added a use of std::set without including it. With some
recent libc++, std::set isn't included transitively causing build
failures.

Add explicit include.


  Commit: 935e699173636921b118c3c21da6b18659c09a16
      https://github.com/llvm/llvm-project/commit/935e699173636921b118c3c21da6b18659c09a16
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M libcxx/benchmarks/CMakeLists.txt
    A libcxx/benchmarks/algorithms/minmax.bench.cpp
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/include/__algorithm/comp.h
    M libcxx/include/__algorithm/ranges_minmax.h
    M libcxx/include/__functional/operations.h
    M libcxx/include/__functional/ranges_operations.h
    M libcxx/include/__type_traits/desugars_to.h

  Log Message:
  -----------
  [libc++] Optimize ranges::minmax (#87335)

This allows Clang to vectorize the loop.
```
---------------------------------------------------------------------
Benchmark                                         old             new
---------------------------------------------------------------------
BM_std_minmax<char>/1                        0.659 ns         1.41 ns
BM_std_minmax<char>/2                         1.08 ns         2.16 ns
BM_std_minmax<char>/3                         2.16 ns         2.96 ns
BM_std_minmax<char>/4                         2.82 ns         3.81 ns
BM_std_minmax<char>/5                         3.43 ns         4.69 ns
BM_std_minmax<char>/6                         4.08 ns         5.63 ns
BM_std_minmax<char>/7                         4.75 ns         6.51 ns
BM_std_minmax<char>/8                         5.42 ns         7.41 ns
BM_std_minmax<char>/9                         6.05 ns         8.34 ns
BM_std_minmax<char>/10                        6.68 ns         9.29 ns
BM_std_minmax<char>/11                        7.47 ns         10.6 ns
BM_std_minmax<char>/12                        7.95 ns         11.4 ns
BM_std_minmax<char>/13                        8.64 ns         12.4 ns
BM_std_minmax<char>/14                        9.35 ns         13.4 ns
BM_std_minmax<char>/15                        10.1 ns         14.4 ns
BM_std_minmax<char>/16                        10.6 ns         2.25 ns
BM_std_minmax<char>/17                        11.3 ns         2.82 ns
BM_std_minmax<char>/18                        11.8 ns         3.71 ns
BM_std_minmax<char>/19                        12.6 ns         4.52 ns
BM_std_minmax<char>/20                        13.2 ns         5.47 ns
BM_std_minmax<char>/21                        14.1 ns         6.67 ns
BM_std_minmax<char>/22                        14.5 ns         7.78 ns
BM_std_minmax<char>/23                        15.1 ns         8.67 ns
BM_std_minmax<char>/24                        15.7 ns         9.68 ns
BM_std_minmax<char>/25                        16.4 ns         10.7 ns
BM_std_minmax<char>/26                        17.1 ns         11.7 ns
BM_std_minmax<char>/27                        17.8 ns         12.8 ns
BM_std_minmax<char>/28                        18.4 ns         14.1 ns
BM_std_minmax<char>/29                        19.0 ns         15.0 ns
BM_std_minmax<char>/30                        19.6 ns         16.0 ns
BM_std_minmax<char>/31                        20.2 ns         17.0 ns
BM_std_minmax<char>/32                        20.8 ns         2.46 ns
BM_std_minmax<char>/64                        41.5 ns         2.97 ns
BM_std_minmax<char>/512                        340 ns         6.05 ns
BM_std_minmax<char>/1024                       667 ns         8.83 ns
BM_std_minmax<char>/4000                      2571 ns         28.6 ns
BM_std_minmax<char>/4096                      2632 ns         25.8 ns
BM_std_minmax<char>/5500                      3554 ns         51.1 ns
BM_std_minmax<char>/64000                    41175 ns          480 ns
BM_std_minmax<char>/65536                    42039 ns          490 ns
BM_std_minmax<char>/70000                    44931 ns          528 ns
BM_std_minmax<short>/1                       0.708 ns         1.20 ns
BM_std_minmax<short>/2                        1.18 ns         1.78 ns
BM_std_minmax<short>/3                        1.98 ns         2.42 ns
BM_std_minmax<short>/4                        2.47 ns         3.05 ns
BM_std_minmax<short>/5                        3.09 ns         3.72 ns
BM_std_minmax<short>/6                        3.49 ns         4.37 ns
BM_std_minmax<short>/7                        4.24 ns         5.03 ns
BM_std_minmax<short>/8                        4.65 ns         2.12 ns
BM_std_minmax<short>/9                        5.34 ns         2.51 ns
BM_std_minmax<short>/10                       5.82 ns         3.18 ns
BM_std_minmax<short>/11                       6.36 ns         3.97 ns
BM_std_minmax<short>/12                       6.73 ns         4.68 ns
BM_std_minmax<short>/13                       7.59 ns         5.49 ns
BM_std_minmax<short>/14                       7.77 ns         6.45 ns
BM_std_minmax<short>/15                       8.54 ns         7.55 ns
BM_std_minmax<short>/16                       8.74 ns         2.38 ns
BM_std_minmax<short>/17                       9.59 ns         2.76 ns
BM_std_minmax<short>/18                       9.88 ns         3.37 ns
BM_std_minmax<short>/19                       10.7 ns         4.17 ns
BM_std_minmax<short>/20                       10.9 ns         4.88 ns
BM_std_minmax<short>/21                       12.1 ns         5.70 ns
BM_std_minmax<short>/22                       12.6 ns         6.64 ns
BM_std_minmax<short>/23                       13.5 ns         7.72 ns
BM_std_minmax<short>/24                       13.2 ns         2.87 ns
BM_std_minmax<short>/25                       14.2 ns         3.10 ns
BM_std_minmax<short>/26                       14.2 ns         3.59 ns
BM_std_minmax<short>/27                       15.4 ns         4.35 ns
BM_std_minmax<short>/28                       15.3 ns         5.10 ns
BM_std_minmax<short>/29                       16.2 ns         5.87 ns
BM_std_minmax<short>/30                       16.2 ns         6.88 ns
BM_std_minmax<short>/31                       17.0 ns         7.78 ns
BM_std_minmax<short>/32                       17.2 ns         3.45 ns
BM_std_minmax<short>/64                       34.1 ns         3.35 ns
BM_std_minmax<short>/512                       279 ns         8.37 ns
BM_std_minmax<short>/1024                      549 ns         14.2 ns
BM_std_minmax<short>/4000                     2111 ns         50.1 ns
BM_std_minmax<short>/4096                     2167 ns         47.9 ns
BM_std_minmax<short>/5500                     2895 ns         69.7 ns
BM_std_minmax<short>/64000                   33454 ns          953 ns
BM_std_minmax<short>/65536                   34474 ns          970 ns
BM_std_minmax<short>/70000                   36691 ns         1037 ns
BM_std_minmax<int>/1                         0.664 ns         1.17 ns
BM_std_minmax<int>/2                          1.11 ns         1.69 ns
BM_std_minmax<int>/3                          2.36 ns         2.29 ns
BM_std_minmax<int>/4                          2.53 ns         2.91 ns
BM_std_minmax<int>/5                          3.23 ns         3.56 ns
BM_std_minmax<int>/6                          3.56 ns         4.23 ns
BM_std_minmax<int>/7                          4.28 ns         4.91 ns
BM_std_minmax<int>/8                          4.60 ns         5.60 ns
BM_std_minmax<int>/9                          5.38 ns         6.31 ns
BM_std_minmax<int>/10                         5.69 ns         7.03 ns
BM_std_minmax<int>/11                         6.41 ns         7.70 ns
BM_std_minmax<int>/12                         6.73 ns         8.39 ns
BM_std_minmax<int>/13                         7.38 ns         9.07 ns
BM_std_minmax<int>/14                         7.74 ns         9.79 ns
BM_std_minmax<int>/15                         8.53 ns         10.5 ns
BM_std_minmax<int>/16                         8.79 ns         11.2 ns
BM_std_minmax<int>/17                         9.63 ns         12.0 ns
BM_std_minmax<int>/18                         9.84 ns         12.7 ns
BM_std_minmax<int>/19                         10.6 ns         13.5 ns
BM_std_minmax<int>/20                         11.0 ns         14.3 ns
BM_std_minmax<int>/21                         11.7 ns         15.0 ns
BM_std_minmax<int>/22                         12.0 ns         15.7 ns
BM_std_minmax<int>/23                         13.1 ns         16.5 ns
BM_std_minmax<int>/24                         13.0 ns         17.3 ns
BM_std_minmax<int>/25                         13.7 ns         17.9 ns
BM_std_minmax<int>/26                         14.0 ns         18.6 ns
BM_std_minmax<int>/27                         14.8 ns         19.4 ns
BM_std_minmax<int>/28                         15.1 ns         20.3 ns
BM_std_minmax<int>/29                         15.8 ns         20.9 ns
BM_std_minmax<int>/30                         16.1 ns         21.7 ns
BM_std_minmax<int>/31                         16.9 ns         22.5 ns
BM_std_minmax<int>/32                         17.2 ns         3.40 ns
BM_std_minmax<int>/64                         33.9 ns         4.04 ns
BM_std_minmax<int>/512                         275 ns         14.6 ns
BM_std_minmax<int>/1024                        541 ns         27.5 ns
BM_std_minmax<int>/4000                       2093 ns         96.3 ns
BM_std_minmax<int>/4096                       2146 ns         98.3 ns
BM_std_minmax<int>/5500                       2866 ns          157 ns
BM_std_minmax<int>/64000                     33619 ns         1954 ns
BM_std_minmax<int>/65536                     34252 ns         2009 ns
BM_std_minmax<int>/70000                     36618 ns         2125 ns
BM_std_minmax<long long>/1                   0.709 ns         1.19 ns
BM_std_minmax<long long>/2                    1.01 ns         1.65 ns
BM_std_minmax<long long>/3                    2.14 ns         2.21 ns
BM_std_minmax<long long>/4                    2.45 ns         2.83 ns
BM_std_minmax<long long>/5                    3.09 ns         3.47 ns
BM_std_minmax<long long>/6                    3.44 ns         4.11 ns
BM_std_minmax<long long>/7                    4.16 ns         4.79 ns
BM_std_minmax<long long>/8                    4.54 ns         5.47 ns
BM_std_minmax<long long>/9                    5.37 ns         6.20 ns
BM_std_minmax<long long>/10                   5.71 ns         6.93 ns
BM_std_minmax<long long>/11                   6.00 ns         7.60 ns
BM_std_minmax<long long>/12                   6.43 ns         8.27 ns
BM_std_minmax<long long>/13                   7.01 ns         8.94 ns
BM_std_minmax<long long>/14                   7.45 ns         9.65 ns
BM_std_minmax<long long>/15                   8.16 ns         10.4 ns
BM_std_minmax<long long>/16                   8.46 ns         5.22 ns
BM_std_minmax<long long>/17                   9.16 ns         5.22 ns
BM_std_minmax<long long>/18                   9.53 ns         5.52 ns
BM_std_minmax<long long>/19                   10.2 ns         6.02 ns
BM_std_minmax<long long>/20                   10.5 ns         6.89 ns
BM_std_minmax<long long>/21                   11.3 ns         7.83 ns
BM_std_minmax<long long>/22                   11.6 ns         8.59 ns
BM_std_minmax<long long>/23                   12.3 ns         9.91 ns
BM_std_minmax<long long>/24                   12.6 ns         10.1 ns
BM_std_minmax<long long>/25                   13.2 ns         12.0 ns
BM_std_minmax<long long>/26                   13.6 ns         13.5 ns
BM_std_minmax<long long>/27                   14.2 ns         14.8 ns
BM_std_minmax<long long>/28                   14.7 ns         15.9 ns
BM_std_minmax<long long>/29                   15.3 ns         16.6 ns
BM_std_minmax<long long>/30                   15.8 ns         17.3 ns
BM_std_minmax<long long>/31                   16.3 ns         18.2 ns
BM_std_minmax<long long>/32                   16.7 ns         7.18 ns
BM_std_minmax<long long>/64                   33.1 ns         11.5 ns
BM_std_minmax<long long>/512                   268 ns         71.0 ns
BM_std_minmax<long long>/1024                  532 ns          138 ns
BM_std_minmax<long long>/4000                 2056 ns          533 ns
BM_std_minmax<long long>/4096                 2112 ns          539 ns
BM_std_minmax<long long>/5500                 2823 ns          749 ns
BM_std_minmax<long long>/64000               32956 ns         8590 ns
BM_std_minmax<long long>/65536               33795 ns         8791 ns
BM_std_minmax<long long>/70000               36084 ns         9442 ns
BM_std_minmax<unsigned char>/1               0.714 ns         1.41 ns
BM_std_minmax<unsigned char>/2               0.955 ns         1.96 ns
BM_std_minmax<unsigned char>/3                1.90 ns         2.63 ns
BM_std_minmax<unsigned char>/4                2.40 ns         3.34 ns
BM_std_minmax<unsigned char>/5                2.87 ns         4.10 ns
BM_std_minmax<unsigned char>/6                3.47 ns         4.88 ns
BM_std_minmax<unsigned char>/7                4.04 ns         5.66 ns
BM_std_minmax<unsigned char>/8                4.65 ns         6.45 ns
BM_std_minmax<unsigned char>/9                5.18 ns         7.24 ns
BM_std_minmax<unsigned char>/10               5.80 ns         8.05 ns
BM_std_minmax<unsigned char>/11               6.24 ns         8.86 ns
BM_std_minmax<unsigned char>/12               6.78 ns         9.70 ns
BM_std_minmax<unsigned char>/13               7.30 ns         10.6 ns
BM_std_minmax<unsigned char>/14               7.86 ns         11.4 ns
BM_std_minmax<unsigned char>/15               8.46 ns         12.3 ns
BM_std_minmax<unsigned char>/16               9.00 ns         2.12 ns
BM_std_minmax<unsigned char>/17               9.58 ns         2.83 ns
BM_std_minmax<unsigned char>/18               10.1 ns         3.37 ns
BM_std_minmax<unsigned char>/19               10.7 ns         4.11 ns
BM_std_minmax<unsigned char>/20               11.2 ns         4.85 ns
BM_std_minmax<unsigned char>/21               11.9 ns         5.69 ns
BM_std_minmax<unsigned char>/22               12.3 ns         6.77 ns
BM_std_minmax<unsigned char>/23               13.1 ns         7.56 ns
BM_std_minmax<unsigned char>/24               13.5 ns         8.40 ns
BM_std_minmax<unsigned char>/25               14.2 ns         9.30 ns
BM_std_minmax<unsigned char>/26               14.4 ns         10.1 ns
BM_std_minmax<unsigned char>/27               15.0 ns         11.1 ns
BM_std_minmax<unsigned char>/28               15.3 ns         11.9 ns
BM_std_minmax<unsigned char>/29               16.2 ns         12.9 ns
BM_std_minmax<unsigned char>/30               16.5 ns         13.9 ns
BM_std_minmax<unsigned char>/31               17.2 ns         14.8 ns
BM_std_minmax<unsigned char>/32               17.6 ns         2.36 ns
BM_std_minmax<unsigned char>/64               35.6 ns         3.21 ns
BM_std_minmax<unsigned char>/512               288 ns         6.00 ns
BM_std_minmax<unsigned char>/1024              573 ns         8.80 ns
BM_std_minmax<unsigned char>/4000             2222 ns         28.6 ns
BM_std_minmax<unsigned char>/4096             2265 ns         25.9 ns
BM_std_minmax<unsigned char>/5500             3047 ns         48.8 ns
BM_std_minmax<unsigned char>/64000           35059 ns          480 ns
BM_std_minmax<unsigned char>/65536           35941 ns          491 ns
BM_std_minmax<unsigned char>/70000           38922 ns          525 ns
BM_std_minmax<unsigned short>/1              0.711 ns         1.18 ns
BM_std_minmax<unsigned short>/2              0.957 ns         1.65 ns
BM_std_minmax<unsigned short>/3               2.13 ns         2.21 ns
BM_std_minmax<unsigned short>/4               2.14 ns         2.78 ns
BM_std_minmax<unsigned short>/5               3.06 ns         3.29 ns
BM_std_minmax<unsigned short>/6               2.89 ns         3.87 ns
BM_std_minmax<unsigned short>/7               3.80 ns         4.55 ns
BM_std_minmax<unsigned short>/8               3.68 ns         2.02 ns
BM_std_minmax<unsigned short>/9               4.53 ns         2.40 ns
BM_std_minmax<unsigned short>/10              4.60 ns         2.94 ns
BM_std_minmax<unsigned short>/11              5.67 ns         3.67 ns
BM_std_minmax<unsigned short>/12              5.39 ns         4.22 ns
BM_std_minmax<unsigned short>/13              6.58 ns         4.78 ns
BM_std_minmax<unsigned short>/14              6.33 ns         5.54 ns
BM_std_minmax<unsigned short>/15              7.34 ns         6.30 ns
BM_std_minmax<unsigned short>/16              7.17 ns         2.25 ns
BM_std_minmax<unsigned short>/17              8.19 ns         2.61 ns
BM_std_minmax<unsigned short>/18              8.02 ns         3.19 ns
BM_std_minmax<unsigned short>/19              9.03 ns         3.72 ns
BM_std_minmax<unsigned short>/20              8.89 ns         4.36 ns
BM_std_minmax<unsigned short>/21              9.77 ns         5.10 ns
BM_std_minmax<unsigned short>/22              9.70 ns         5.55 ns
BM_std_minmax<unsigned short>/23              10.8 ns         6.29 ns
BM_std_minmax<unsigned short>/24              10.6 ns         2.41 ns
BM_std_minmax<unsigned short>/25              11.6 ns         2.75 ns
BM_std_minmax<unsigned short>/26              11.4 ns         3.26 ns
BM_std_minmax<unsigned short>/27              12.4 ns         3.86 ns
BM_std_minmax<unsigned short>/28              12.3 ns         4.45 ns
BM_std_minmax<unsigned short>/29              13.2 ns         5.07 ns
BM_std_minmax<unsigned short>/30              13.1 ns         5.77 ns
BM_std_minmax<unsigned short>/31              13.9 ns         6.65 ns
BM_std_minmax<unsigned short>/32              13.9 ns         2.72 ns
BM_std_minmax<unsigned short>/64              27.8 ns         3.25 ns
BM_std_minmax<unsigned short>/512              220 ns         8.30 ns
BM_std_minmax<unsigned short>/1024             435 ns         14.1 ns
BM_std_minmax<unsigned short>/4000            1703 ns         49.8 ns
BM_std_minmax<unsigned short>/4096            1746 ns         47.9 ns
BM_std_minmax<unsigned short>/5500            2350 ns         69.9 ns
BM_std_minmax<unsigned short>/64000          27388 ns          953 ns
BM_std_minmax<unsigned short>/65536          28040 ns          975 ns
BM_std_minmax<unsigned short>/70000          29967 ns         1040 ns
BM_std_minmax<unsigned int>/1                0.712 ns         1.18 ns
BM_std_minmax<unsigned int>/2                0.965 ns         1.65 ns
BM_std_minmax<unsigned int>/3                 2.13 ns         2.14 ns
BM_std_minmax<unsigned int>/4                 2.09 ns         2.64 ns
BM_std_minmax<unsigned int>/5                 3.02 ns         3.21 ns
BM_std_minmax<unsigned int>/6                 2.94 ns         3.81 ns
BM_std_minmax<unsigned int>/7                 3.91 ns         4.38 ns
BM_std_minmax<unsigned int>/8                 3.75 ns         4.93 ns
BM_std_minmax<unsigned int>/9                 4.71 ns         5.60 ns
BM_std_minmax<unsigned int>/10                4.59 ns         6.26 ns
BM_std_minmax<unsigned int>/11                5.57 ns         6.80 ns
BM_std_minmax<unsigned int>/12                5.43 ns         7.47 ns
BM_std_minmax<unsigned int>/13                6.45 ns         8.10 ns
BM_std_minmax<unsigned int>/14                6.32 ns         8.69 ns
BM_std_minmax<unsigned int>/15                7.29 ns         9.37 ns
BM_std_minmax<unsigned int>/16                7.12 ns         9.99 ns
BM_std_minmax<unsigned int>/17                8.24 ns         10.6 ns
BM_std_minmax<unsigned int>/18                8.00 ns         11.2 ns
BM_std_minmax<unsigned int>/19                8.94 ns         12.0 ns
BM_std_minmax<unsigned int>/20                8.91 ns         12.6 ns
BM_std_minmax<unsigned int>/21                9.73 ns         17.2 ns
BM_std_minmax<unsigned int>/22                9.75 ns         13.8 ns
BM_std_minmax<unsigned int>/23                10.6 ns         14.5 ns
BM_std_minmax<unsigned int>/24                10.6 ns         15.1 ns
BM_std_minmax<unsigned int>/25                11.5 ns         15.7 ns
BM_std_minmax<unsigned int>/26                11.4 ns         16.3 ns
BM_std_minmax<unsigned int>/27                12.3 ns         17.0 ns
BM_std_minmax<unsigned int>/28                12.3 ns         17.6 ns
BM_std_minmax<unsigned int>/29                13.2 ns         18.3 ns
BM_std_minmax<unsigned int>/30                13.2 ns         19.0 ns
BM_std_minmax<unsigned int>/31                14.0 ns         19.6 ns
BM_std_minmax<unsigned int>/32                14.0 ns         3.39 ns
BM_std_minmax<unsigned int>/64                27.6 ns         4.05 ns
BM_std_minmax<unsigned int>/512                221 ns         14.2 ns
BM_std_minmax<unsigned int>/1024               439 ns         25.5 ns
BM_std_minmax<unsigned int>/4000              1720 ns         96.3 ns
BM_std_minmax<unsigned int>/4096              1762 ns         97.8 ns
BM_std_minmax<unsigned int>/5500              2364 ns          146 ns
BM_std_minmax<unsigned int>/64000            27874 ns         1905 ns
BM_std_minmax<unsigned int>/65536            28012 ns         1961 ns
BM_std_minmax<unsigned int>/70000            29899 ns         2087 ns
BM_std_minmax<unsigned long long>/1          0.707 ns         1.18 ns
BM_std_minmax<unsigned long long>/2          0.909 ns         1.65 ns
BM_std_minmax<unsigned long long>/3           1.65 ns         2.70 ns
BM_std_minmax<unsigned long long>/4           1.93 ns         2.69 ns
BM_std_minmax<unsigned long long>/5           2.45 ns         3.34 ns
BM_std_minmax<unsigned long long>/6           2.78 ns         3.81 ns
BM_std_minmax<unsigned long long>/7           3.28 ns         4.43 ns
BM_std_minmax<unsigned long long>/8           3.70 ns         4.92 ns
BM_std_minmax<unsigned long long>/9           4.12 ns         5.64 ns
BM_std_minmax<unsigned long long>/10          4.44 ns         6.15 ns
BM_std_minmax<unsigned long long>/11          4.91 ns         6.81 ns
BM_std_minmax<unsigned long long>/12          5.31 ns         7.41 ns
BM_std_minmax<unsigned long long>/13          5.72 ns         7.96 ns
BM_std_minmax<unsigned long long>/14          6.05 ns         8.66 ns
BM_std_minmax<unsigned long long>/15          6.55 ns         9.37 ns
BM_std_minmax<unsigned long long>/16          6.89 ns         7.98 ns
BM_std_minmax<unsigned long long>/17          7.34 ns         8.13 ns
BM_std_minmax<unsigned long long>/18          7.73 ns         8.42 ns
BM_std_minmax<unsigned long long>/19          8.26 ns         8.63 ns
BM_std_minmax<unsigned long long>/20          8.54 ns         8.96 ns
BM_std_minmax<unsigned long long>/21          9.14 ns         9.37 ns
BM_std_minmax<unsigned long long>/22          9.39 ns         9.67 ns
BM_std_minmax<unsigned long long>/23          10.1 ns         10.1 ns
BM_std_minmax<unsigned long long>/24          10.4 ns         10.6 ns
BM_std_minmax<unsigned long long>/25          11.0 ns         11.3 ns
BM_std_minmax<unsigned long long>/26          11.3 ns         12.1 ns
BM_std_minmax<unsigned long long>/27          11.8 ns         14.2 ns
BM_std_minmax<unsigned long long>/28          12.1 ns         15.8 ns
BM_std_minmax<unsigned long long>/29          12.6 ns         17.4 ns
BM_std_minmax<unsigned long long>/30          13.1 ns         18.1 ns
BM_std_minmax<unsigned long long>/31          13.4 ns         18.8 ns
BM_std_minmax<unsigned long long>/32          13.8 ns         10.4 ns
BM_std_minmax<unsigned long long>/64          27.3 ns         15.5 ns
BM_std_minmax<unsigned long long>/512          222 ns         80.6 ns
BM_std_minmax<unsigned long long>/1024         443 ns          156 ns
BM_std_minmax<unsigned long long>/4000        1731 ns          591 ns
BM_std_minmax<unsigned long long>/4096        1752 ns          609 ns
BM_std_minmax<unsigned long long>/5500        2340 ns          819 ns
BM_std_minmax<unsigned long long>/64000      27166 ns         9652 ns
BM_std_minmax<unsigned long long>/65536      27869 ns         9876 ns
BM_std_minmax<unsigned long long>/70000      29920 ns        10680 ns
```


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

  Changed paths:
    M libc/test/src/__support/CMakeLists.txt
    A libc/test/src/__support/big_int_test.cpp
    R libc/test/src/__support/uint_test.cpp
    M utils/bazel/llvm-project-overlay/libc/test/src/__support/BUILD.bazel

  Log Message:
  -----------
  [libc][NFC] Rename `uint_test` into `big_int_test` for consistency (#87875)


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

  Changed paths:
    M libc/src/__support/FPUtil/dyadic_float.h
    M libc/src/__support/big_int.h
    M libc/test/src/__support/big_int_test.cpp

  Log Message:
  -----------
  [libc] Make `BigInt` bitwise shift consistent with regular integral semantics. (#87874)

This patch removes the test for cases where the shift operand is greater
or equal to the bit width of the number. This is done for two reasons,
first it makes `BigInt` consistent with regular integral bitwise shift
semantics, and second it makes the shift operation faster. The shift
operation is on the critical path for `exp` and `log` operations, see
https://github.com/llvm/llvm-project/pull/86137#issuecomment-2034133868.


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

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/include/ostream
    M libcxx/include/print
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.formatted.print/locale-specific_form.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.formatted.print/println.pass.cpp
    M libcxx/test/std/input.output/iostream.format/print.fun/no_file_description.pass.cpp
    A libcxx/test/std/input.output/iostream.format/print.fun/println.blank_line.sh.cpp
    M libcxx/test/std/input.output/iostream.format/print.fun/println.file.pass.cpp

  Log Message:
  -----------
  [libc++][format] P3142R0: Printing Blank Lines with `println` (#87277)

Implements https://wg21.link/P3142R0

Applied retroactively as DR, same as stdlibc++ and MS STL:

https://github.com/orgs/microsoft/projects/1143?pane=issue&itemId=57457187


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

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

  Log Message:
  -----------
  [libc] Move statement inside #ifdef/#endif to prevent unused variable warning

This is a fix forward for arm32
`/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/big_int.h:259:20: error: unused variable 'TOTAL_BITS' [-Werror,-Wunused-variable]`

https://lab.llvm.org/buildbot/#/builders/229/builds/24791


  Commit: 4cb110a84f587d3c65b85d79ab6fc8aa5489fb86
      https://github.com/llvm/llvm-project/commit/4cb110a84f587d3c65b85d79ab6fc8aa5489fb86
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M llvm/docs/LangRef.rst
    M llvm/lib/AsmParser/LLParser.cpp
    M llvm/lib/CodeGen/AtomicExpandPass.cpp
    M llvm/lib/IR/Verifier.cpp
    M llvm/test/Assembler/atomic.ll
    A llvm/test/Assembler/invalid-atomicrmw-scalable.ll
    A llvm/test/Assembler/invalid-atomicrmw-xchg-fp-vector.ll
    A llvm/test/CodeGen/AArch64/atomicrmw-fadd-fp-vector.ll
    A llvm/test/CodeGen/X86/atomicrmw-fadd-fp-vector.ll
    A llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomicrmw-fp-vector.ll
    M llvm/unittests/IR/VerifierTest.cpp

  Log Message:
  -----------
  [RFC] IR: Support atomicrmw FP ops with vector types (#86796)

Allow using atomicrmw fadd, fsub, fmin, and fmax with vectors of
floating-point type. AMDGPU supports atomic fadd for <2 x half> and <2 x
bfloat> on some targets and address spaces.

Note this only supports the proper floating-point operations; float
vector typed xchg is still not supported. cmpxchg still only supports
integers, so this inserts bitcasts for the loop expansion.

I have support for fp vector typed xchg, and vector of int/ptr
separately implemented but I don't have an immediate need for those
beyond feature consistency.


  Commit: d38bff460acb4fe3156d90ec739da49344db14ca
      https://github.com/llvm/llvm-project/commit/d38bff460acb4fe3156d90ec739da49344db14ca
  Author: Sizov Nikita <s.nikita.v at gmail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/aarch64-known-bits-hadd.ll

  Log Message:
  -----------
  [AArch64] SimplifyDemandedBitsForTargetNode - add AArch64ISD::BICi handling (#76644)

Fold BICi if all destination bits are already known to be zeroes

```llvm
define <8 x i16> @haddu_known(<8 x i8> %a0, <8 x i8> %a1) {
  %x0 = zext <8 x i8> %a0 to <8 x i16>
  %x1 = zext <8 x i8> %a1 to <8 x i16>
  %hadd = call <8 x i16> @llvm.aarch64.neon.uhadd.v8i16(<8 x i16> %x0, <8 x i16> %x1)
  %res = and <8 x i16> %hadd, <i16 511, i16 511, i16 511, i16 511,i16 511, i16 511, i16 511, i16 511>
  ret <8 x i16> %res
}
declare <8 x i16> @llvm.aarch64.neon.uhadd.v8i16(<8 x i16>, <8 x i16>)
```

```
haddu_known:                            // @haddu_known
        ushll   v0.8h, v0.8b, #0
        ushll   v1.8h, v1.8b, #0
        uhadd   v0.8h, v0.8h, v1.8h
        bic     v0.8h, #254, lsl #8 <-- this one will be removed as we know high bits are zero extended
        ret
```

Fixes #53881
Fixes #53622


  Commit: bd9486b4ec7dc24f73f32474fa38b522a7cce085
      https://github.com/llvm/llvm-project/commit/bd9486b4ec7dc24f73f32474fa38b522a7cce085
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/call-arg-reduced-by-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/cmp-after-intrinsic-call-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/store-abs-minbitwidth.ll

  Log Message:
  -----------
  Revert "[SLP]Improve minbitwidth analysis for abs/smin/smax/umin/umax intrinsics."

This reverts commit 66b528078e4852412769375e35d2a672bf36a0ec.

This commit caused miscompilations, breaking tests in the libyuv
testsuite - see
https://github.com/llvm/llvm-project/pull/86135#issuecomment-2041049709
for more details.


  Commit: 5f7b133e320b4d856463c87da3167f70477ada63
      https://github.com/llvm/llvm-project/commit/5f7b133e320b4d856463c87da3167f70477ada63
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M libc/src/math/generic/log1p.cpp
    M libc/test/src/math/log1p_test.cpp

  Log Message:
  -----------
  [libc][math] Update error bound for log1p to compensate for directional rounding. (#87893)


  Commit: 7248c9feb9023335ae45265f59a8752da42fb4c4
      https://github.com/llvm/llvm-project/commit/7248c9feb9023335ae45265f59a8752da42fb4c4
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M libc/hdr/math_macros.h

  Log Message:
  -----------
  [libc] Adding FP_INT_* macro constants if missing in overlay mode. (#87880)


  Commit: 8e98435ae9eb34f04c4b1b97975f152c4ba63ba3
      https://github.com/llvm/llvm-project/commit/8e98435ae9eb34f04c4b1b97975f152c4ba63ba3
  Author: darkbuck <michael.hliao at gmail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-extract-vec-elt.mir

  Log Message:
  -----------
  [GISel][Combine] Enhance combining on G_BUILD_VECTOR



Reviewers: aemerson, arsenm

Reviewed By: arsenm

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


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

  Changed paths:
    M llvm/test/Transforms/Attributor/nofpclass.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for non-constant idx for fpclass of `insertelement`; NFC


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

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/Attributor/nofpclass.ll

  Log Message:
  -----------
  [ValueTracking] Support non-constant idx for `computeKnownFPClass` of `insertelement`

Its same logic as before, we just need to intersect what we know about
the new Elt and the entire pre-existing Vec.

Closes #87708


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

  Changed paths:
    M mlir/lib/Dialect/Arith/IR/ValueBoundsOpInterfaceImpl.cpp
    M mlir/test/Dialect/Arith/value-bounds-op-interface-impl.mlir

  Log Message:
  -----------
  [mlir][Arith] `ValueBoundsOpInterface`: Support `arith.select` (#87870)

This commit adds a `ValueBoundsOpInterface` implementation for
`arith.select`. The implementation is almost identical to `scf.if`
(#85895), but there is one special case: if the condition is a shaped
value, the selection is applied element-wise and the result shape can be
inferred from either operand.

Note: This is a re-upload of #86383.


  Commit: 8389b3bf60ef3fbd04c6efc5ff4d4605d10e7fc5
      https://github.com/llvm/llvm-project/commit/8389b3bf60ef3fbd04c6efc5ff4d4605d10e7fc5
  Author: AtariDreams <gfunni234 at gmail.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86SelectionDAGInfo.cpp
    M llvm/test/CodeGen/X86/memset-minsize.ll

  Log Message:
  -----------
  [X86] Fix typo: QWORD alignment is greater than or equal to 8, not greater than 8 (#87819)

Align(8) is QWORD aligned, but this was checking to see if alignment was
greater than that, when it should have been checking for being greater
than OR EQUAL to Align(8).

This bug was introduced in
https://github.com/llvm/llvm-project/commit/6a6af30d433d7 during the
transition to the Align type.


  Commit: d08a76d1ac1ba6b376faa908ccbaaabc999dfbc5
      https://github.com/llvm/llvm-project/commit/d08a76d1ac1ba6b376faa908ccbaaabc999dfbc5
  Author: NAKAMURA Takumi <geek4civic at gmail.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  Log Message:
  -----------
  Fix warnings discovered by #87348 [-Wunused-but-set-variable]


  Commit: ba5dad35fbefec456eb9da0f7c5a0ad983a268b2
      https://github.com/llvm/llvm-project/commit/ba5dad35fbefec456eb9da0f7c5a0ad983a268b2
  Author: NAKAMURA Takumi <geek4civic at gmail.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/config.h
    M utils/bazel/llvm_configs/config.h.cmake

  Log Message:
  -----------
  [Bazel] Enable LLVM_VERSION_PRINTER_SHOW_BUILD_CONFIG (for #87585)


  Commit: bc8726b16bacc1790cee9a27302f556f5ca7ba39
      https://github.com/llvm/llvm-project/commit/bc8726b16bacc1790cee9a27302f556f5ca7ba39
  Author: Jianjian Guan <jacquesguan at me.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    M llvm/test/CodeGen/RISCV/rvv/vfmv.v.f.ll

  Log Message:
  -----------
  [RISCV] Support codegen of vfmv.v.f for bfloat vector with both Zvfbfmin and Zfbfmin (#87318)

vfmv, vfmerge should support bfloat vector when we have both Zvfbfmin
and Zfbfmin, this patch tries to support vfmv first.


  Commit: ccc02563f4d620d4d29a1cbd2c463871cc54745b
      https://github.com/llvm/llvm-project/commit/ccc02563f4d620d4d29a1cbd2c463871cc54745b
  Author: Aviad Cohen <aviadcohen7 at gmail.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
    M mlir/lib/Dialect/Utils/StructuredOpsUtils.cpp

  Log Message:
  -----------
  [mlir][linalg]: Fixed possible memory leak in cloneToCollapsedOp (#87595)

* Direct call to `clone` function leads to memory leak. Instead, we should use `RewriterBase` clone function instead.


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

  Changed paths:
    M mlir/include/mlir/Target/LLVMIR/LLVMImportInterface.h
    M mlir/lib/Target/LLVMIR/ModuleImport.cpp
    A mlir/test/Target/LLVMIR/Import/test.ll
    M mlir/test/lib/Dialect/Test/CMakeLists.txt
    A mlir/test/lib/Dialect/Test/TestFromLLVMIRTranslation.cpp
    M mlir/tools/mlir-translate/mlir-translate.cpp

  Log Message:
  -----------
  [mlir] Add `convertInstruction` and `getSupportedInstructions` to `LLVMImportInterface` (#86799)

This patch adds the `convertInstruction` and `getSupportedInstructions`
to `LLVMImportInterface`, allowing any non-LLVM dialect to specify how
to import LLVM IR instructions and overriding the default import of LLVM instructions.


  Commit: 869797daca38941e0af3bcd8ae5300bcebf7b1a9
      https://github.com/llvm/llvm-project/commit/869797daca38941e0af3bcd8ae5300bcebf7b1a9
  Author: David Green <david.green at arm.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

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

  Log Message:
  -----------
  [VectorCombine] Add a debug message for foldShuffleOfCastop. NFC

This optimization, much like the existing foldShuffleOfBinops can cause a
lot of regressions. Add a quick debug message to make the costs are more
obvious.


  Commit: da5a86b53e7d6e7ff7407b16c2c869894493ee99
      https://github.com/llvm/llvm-project/commit/da5a86b53e7d6e7ff7407b16c2c869894493ee99
  Author: Jacob Lifshay <programmerjake at gmail.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M llvm/docs/LangRef.rst

  Log Message:
  -----------
  [IR] Fix typo in trunc nuw semantics; NFC (#87285)


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

  Changed paths:
    M libcxx/docs/Status/FormatIssues.csv
    M libcxx/docs/Status/FormatPaper.csv

  Log Message:
  -----------
  [libc++][doc] Updates format status page.


  Commit: 7a4e89761a13bfad27a2614ecea5e8698f50336c
      https://github.com/llvm/llvm-project/commit/7a4e89761a13bfad27a2614ecea5e8698f50336c
  Author: Danny Mösch <danny.moesch at icloud.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/readability/AvoidReturnWithVoidValueCheck.cpp
    M clang-tools-extra/clang-tidy/readability/BracesAroundStatementsCheck.cpp
    M clang-tools-extra/clang-tidy/readability/BracesAroundStatementsCheck.h
    A clang-tools-extra/clang-tidy/utils/BracesAroundStatement.cpp
    A clang-tools-extra/clang-tidy/utils/BracesAroundStatement.h
    M clang-tools-extra/clang-tidy/utils/CMakeLists.txt
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/readability/avoid-return-with-void-value.cpp

  Log Message:
  -----------
  [clang-tidy] Add fix-its to `readability-avoid-return-with-void-value` check (#81420)


  Commit: 298f8f73e1d861f8b839477c6edc941ca994922d
      https://github.com/llvm/llvm-project/commit/298f8f73e1d861f8b839477c6edc941ca994922d
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/utils/TableGen/MveEmitter.cpp

  Log Message:
  -----------
  [clang][NFC] Remove "Sema" prefix from Sema-related functions (#87914)

@AaronBallman once noted that this prefix is a historical accident, and
shouldn't be there. I agree.


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/RISCV/reductions.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-drop-wrapping-flags.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-transformed-operand.ll

  Log Message:
  -----------
  [SLP]Fix the cost of the reduction result to the final type.

Need to fix the way the cost is calculated, otherwise wrong cast opcode
can be selected and lead to the over-optimistic vector cost. Plus, need
to take into account reduction type size.

Reviewers: RKSimon

Reviewed By: RKSimon

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


  Commit: c91254db1dcace869f4d3f1ac659bdd7700a1459
      https://github.com/llvm/llvm-project/commit/c91254db1dcace869f4d3f1ac659bdd7700a1459
  Author: Alexander Richardson <alexrichardson at google.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M compiler-rt/CMakeLists.txt
    M compiler-rt/cmake/Modules/AddCompilerRT.cmake
    M compiler-rt/test/CMakeLists.txt
    M compiler-rt/test/fuzzer/lit.cfg.py
    M compiler-rt/test/lit.common.cfg.py
    M compiler-rt/test/lit.common.configured.in
    M compiler-rt/test/safestack/lit.cfg.py

  Log Message:
  -----------
  [compiler-rt] Allow running tests without installing first

Currently, the testsuite uses the default runtimes path to find the
runtimes libraries which may or may not match the just-built runtimes.
This change uses the `-resource-dir` flag for clang whenever
`COMPILER_RT_TEST_STANDALONE_BUILD_LIBS` is set to ensure that we are
actually testing the currently built libraries rather than the ones
bundled with `${COMPILER_RT_TEST_COMPILER}`.

The existing logic works fine when clang and compiler-rt share the same
build directory ``-DLLVM_ENABLE_PROJECTS=clang;compiler-rt`, but when
building compiler-rt separately we need to tell the compiler used for
the tests where it can find the just-built libraries.

This reduces the fixes check-all failures to one in my configuration:
```
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -G Ninja
-DCMAKE_C_COMPILER=$HOME/output/upstream-llvm/bin/clang
-DCMAKE_CXX_COMPILER=$HOME/output/upstream-llvm/bin/clang++
-DCOMPILER_RT_INCLUDE_TESTS=ON
-DLLVM_EXTERNAL_LIT=$HOME/build/upstream-llvm-project-build/bin/llvm-lit
-DLLVM_CMAKE_DIR=$HOME/output/upstream-llvm
-DCOMPILER_RT_DEBUG=OFF
-S $HOME/src/upstream-llvm-project/compiler-rt
-B $HOME/src/upstream-llvm-project/compiler-rt/cmake-build-all-sanitizers
```

Reviewed By: vitalybuka, delcypher, MaskRay

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


  Commit: d57d09477996e50237e2fc949bd5b747259b0012
      https://github.com/llvm/llvm-project/commit/d57d09477996e50237e2fc949bd5b747259b0012
  Author: David Green <david.green at arm.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    A llvm/test/Analysis/CostModel/AArch64/shuffle-store.ll

  Log Message:
  -----------
  [AArch64] Add test for LD2/LD3/LD4 shuffle cost models. NFC


  Commit: 10b1864dff816174cd83fb2d3bc622e25fcf0f8a
      https://github.com/llvm/llvm-project/commit/10b1864dff816174cd83fb2d3bc622e25fcf0f8a
  Author: Alex Richardson <alexrichardson at google.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M compiler-rt/CMakeLists.txt

  Log Message:
  -----------
  [compiler-rt] Do not add -rpath to linker args on Windows

This is not supported. Should hopefully fix Windows CI after
commit c91254db1dcace869f4d3f1ac659bdd7700a1459.


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

  Changed paths:
    M lldb/cmake/caches/Apple-lldb-Linux.cmake
    M llvm/cmake/modules/AddLLVM.cmake

  Log Message:
  -----------
  [cmake] Prevent implicitly passing `-no_exported_symbols` (#87846)

* It is possible to setup llvm-project builds without going through
`llvm/CMakeList.txt` so the fatal error handling should be smarter.
* Disable option on Apple style lldb-linux builds.


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

  Changed paths:
    M llvm/lib/ProfileData/MemProf.cpp

  Log Message:
  -----------
  [memprof] Use static instead of anonymous namespaces (#87889)

This patch replaces anonymous namespaces with static as per LLVM
Coding Standards.


  Commit: 15d11a4de9f62fd8fc6bdb888e32c9e4b86d0cdd
      https://github.com/llvm/llvm-project/commit/15d11a4de9f62fd8fc6bdb888e32c9e4b86d0cdd
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/VPlan.h
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
    M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp

  Log Message:
  -----------
  [VPlan] Track IsOrdered in VPReductionRecipe, remove use of ILV (NFCI).

Instead of using ILV.useOrderedReductions during ::execute, instead
store the information at recipe construction.

Another step towards making recipe'::execute independent of legacy ILV.


  Commit: 943db678dadd6088629d08ec3e582bea0595f2d2
      https://github.com/llvm/llvm-project/commit/943db678dadd6088629d08ec3e582bea0595f2d2
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M clang/lib/Format/FormatTokenSource.h
    M clang/lib/Format/UnwrappedLineParser.cpp

  Log Message:
  -----------
  [clang-format][NFC] Add getNextNonComment() to FormatTokenSource (#87868)


  Commit: 649523f6f7b67604034a8af5d8ca6830fcd64aab
      https://github.com/llvm/llvm-project/commit/649523f6f7b67604034a8af5d8ca6830fcd64aab
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/Orc/Core.h
    M llvm/lib/ExecutionEngine/Orc/Core.cpp

  Log Message:
  -----------
  [ORC] Add an ExecutionSession state verifier.

Add an ExecutionSession state verifier, enabled under EXPENSIVE_CHECKS, that can
be used to identify inconsistent session state to assist in tracking down bugs.

This initial version was motivated by investigation of the EDU-update bug that
was fixed in a671ceec334.

rdar://125376708


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

  Changed paths:
    M llvm/lib/ProfileData/InstrProfWriter.cpp
    A llvm/test/tools/llvm-profdata/memprof-merge-v0.test

  Log Message:
  -----------
  [memprof] Fix a typo in writeMemProfV1 (#87890)

This patch borrows memprof-merge.test to test --memprof-version.


  Commit: da675b922cca3dc9a76642d792e882979a3d8c82
      https://github.com/llvm/llvm-project/commit/da675b922cca3dc9a76642d792e882979a3d8c82
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    A llvm/test/CodeGen/RISCV/prolog-epilogue.ll
    A llvm/test/CodeGen/RISCV/stack-offset.ll

  Log Message:
  -----------
  [RISCV] Expand test coverage of stack offsets between 2^11 and 2^15

Adds two sets of tests.  First, one for prolog/epilogue insertions where
the second stack adjustment can be done with shNadd for zba.  Second, a
set of tests with offsets off SP in the same ranges, but also adding
varying alignments.


  Commit: cebf77fb936a7270c7e3fa5c4a7e76216321d385
      https://github.com/llvm/llvm-project/commit/cebf77fb936a7270c7e3fa5c4a7e76216321d385
  Author: Haohai Wen <haohai.wen at intel.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/MachineBasicBlock.cpp
    M llvm/test/CodeGen/X86/fsafdo_test1.ll

  Log Message:
  -----------
  [CodeGen][DebugInfo] Add missing DebugLoc for SplitCriticalEdge (#72192)

In SplitCriticalEdge, DebugLoc of the branch instruction in new created
MBB was set to empty. It should be set and we can find proper DebugLoc
for it in most cases. This patch set it to non empty merged DebugLoc of
current MBB branches.


  Commit: 739fa1c84b92b8af7dceedf2e5ad808a64e85a57
      https://github.com/llvm/llvm-project/commit/739fa1c84b92b8af7dceedf2e5ad808a64e85a57
  Author: Carlos Alberto Enciso <carlos.alberto.enciso at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Support/GenericLoopInfo.h
    M llvm/include/llvm/Transforms/Utils/LoopUtils.h
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    A llvm/test/Transforms/IndVarSimplify/pr51735-1.ll
    A llvm/test/Transforms/IndVarSimplify/pr51735-2.ll
    A llvm/test/Transforms/IndVarSimplify/pr51735-3.ll
    A llvm/test/Transforms/IndVarSimplify/pr51735.ll

  Log Message:
  -----------
  [indvars] Missing variables at Og: (#69920)

https://bugs.llvm.org/show_bug.cgi?id=51735
https://github.com/llvm/llvm-project/issues/51077

In the given test case:
 ```
4 ...
 5 void bar() {
 6   int End = 777;
 7   int Index = 27;
 8   char Var = 1;
 9   for (; Index < End; ++Index)
10     ;
11   nop(Index);
12 }
13 ...
```
Missing local variable `Index` after loop `Induction Variable Elimination`. When adding a breakpoint at line `11`, LLDB does not have information on the variable. But it has info on `Var` and `End`.


  Commit: f3b55973645d551d67af7662b815a5f415874ff7
      https://github.com/llvm/llvm-project/commit/f3b55973645d551d67af7662b815a5f415874ff7
  Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/test/CodeGen/RISCV/rvv/vmv-copy.mir
    M llvm/test/CodeGen/RISCV/rvv/zvlsseg-copy.mir

  Log Message:
  -----------
  [RISCV] Use larger copies when register tuples are aligned

When the encoding of register tuples are aligned, we can use a copy
with larger LMUL to reduce copies.

Reviewers: preames, topperc, lukel97

Reviewed By: topperc, lukel97

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


  Commit: 006aaf32258fc27656c936f6aad729e4c77e3847
      https://github.com/llvm/llvm-project/commit/006aaf32258fc27656c936f6aad729e4c77e3847
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

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

  Log Message:
  -----------
  [ORC] Replace some KV loop variables with structured bindings.

This allows us to remove a lot of boilerplate .first and .second references
and improve readability.

Coding my way home: 1.58814S, 91.93889W


  Commit: 91189afef5fb887699da88e0ed46bdf3421d4bce
      https://github.com/llvm/llvm-project/commit/91189afef5fb887699da88e0ed46bdf3421d4bce
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Support/GenericLoopInfo.h
    M llvm/include/llvm/Transforms/Utils/LoopUtils.h
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    R llvm/test/Transforms/IndVarSimplify/pr51735-1.ll
    R llvm/test/Transforms/IndVarSimplify/pr51735-2.ll
    R llvm/test/Transforms/IndVarSimplify/pr51735-3.ll
    R llvm/test/Transforms/IndVarSimplify/pr51735.ll

  Log Message:
  -----------
  Revert "[indvars] Missing variables at Og: (#69920)"

This reverts commit 739fa1c84b92b8af7dceedf2e5ad808a64e85a57.

This introduces a layering violation by using IR in Support headers.


  Commit: 73ddb2a7471986a7ed600dbea14efc60f0d0db47
      https://github.com/llvm/llvm-project/commit/73ddb2a7471986a7ed600dbea14efc60f0d0db47
  Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.h
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.h
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.td

  Log Message:
  -----------
  [RISCV] Store VLMul/NF into RegisterClass's TSFlags

This TSFlags was introduced by https://reviews.llvm.org/D108767.

A base class of all RISCV RegisterClass is added and we store
IsVRegClass/VLMul/NF into TSFlags and add helpers to get them.

This can reduce some lines and I think there will be more usages.

Reviewers: preames, topperc

Reviewed By: topperc

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


  Commit: b80e51ce4d90a3443f98fe5413171392ae768597
      https://github.com/llvm/llvm-project/commit/b80e51ce4d90a3443f98fe5413171392ae768597
  Author: Christian Sigg <csigg at google.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

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

  Log Message:
  -----------
  [mlir][bazel] Fix BUILD after a2c4b7c8e2740a83f141dcf06cf50359588190b9.


  Commit: fdd023612ce401d7a1a310fcad2477d19e1d0a5e
      https://github.com/llvm/llvm-project/commit/fdd023612ce401d7a1a310fcad2477d19e1d0a5e
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

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

  Log Message:
  -----------
  Revert "[ORC] Replace some KV loop variables with structured bindings."

This reverts commit 006aaf32258fc27656c936f6aad729e4c77e3847 while I
investigate some bot failures (See e.g.
https://lab.llvm.org/buildbot/#/builders/109/builds/86659).


  Commit: 9ffecef1c651a5c1a3f284b3257ec01ff526b49c
      https://github.com/llvm/llvm-project/commit/9ffecef1c651a5c1a3f284b3257ec01ff526b49c
  Author: Prashant Kumar <pk5561 at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

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

  Log Message:
  -----------
  [mlir][vector][NFC] Fix typo temp -> tmp. (#87878)


  Commit: eaa063f0c6d51a3b561bc2007fe95420949f42d1
      https://github.com/llvm/llvm-project/commit/eaa063f0c6d51a3b561bc2007fe95420949f42d1
  Author: Wang Pengcheng <wangpengcheng.pp at bytedance.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/test/Driver/riscv-profiles.c

  Log Message:
  -----------
  [RISCV] Remove duplicated --target


  Commit: 110c22fe127f0c8c0d8acfddd123b9e9423d087a
      https://github.com/llvm/llvm-project/commit/110c22fe127f0c8c0d8acfddd123b9e9423d087a
  Author: Bevin Hansson <59652494+bevin-hansson at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/ExpandLargeFpConvert.cpp
    M llvm/test/CodeGen/AMDGPU/fptoi.i128.ll
    A llvm/test/CodeGen/AMDGPU/itofp.i128.bf.ll
    M llvm/test/CodeGen/AMDGPU/itofp.i128.ll

  Log Message:
  -----------
  [ExpandLargeFpConvert] Support bfloat. (#87619)

The conversion expansions did not properly handle bfloat types.

I'm not certain that these expansions are completely correct;
I don't have any experience with AMDGPU or the ability to run
anything to test it.

Note that it doesn't seem like AMDGPU with GlobalISel can
handle fptrunc of float to bfloat, which is needed for itofp.
I've omitted the GISEL run for the bfloat case.

This fixes #85379.


  Commit: 2084a07087a55b55bb3c2a8aafbe1c4464fdf796
      https://github.com/llvm/llvm-project/commit/2084a07087a55b55bb3c2a8aafbe1c4464fdf796
  Author: Saiyedul Islam <Saiyedul.Islam at amd.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M compiler-rt/CMakeLists.txt
    M compiler-rt/cmake/Modules/AddCompilerRT.cmake
    M compiler-rt/test/CMakeLists.txt
    M compiler-rt/test/fuzzer/lit.cfg.py
    M compiler-rt/test/lit.common.cfg.py
    M compiler-rt/test/lit.common.configured.in
    M compiler-rt/test/safestack/lit.cfg.py

  Log Message:
  -----------
  Revert "[compiler-rt] Allow running tests without installing first"

This reverts commit c91254db1dcace869f4d3f1ac659bdd7700a1459.

It was throwing error:
 g++: error: unrecognized command line option ‘-resource-dir=


  Commit: ac321cbb0350996ceef4e6d9e8a1035880609288
      https://github.com/llvm/llvm-project/commit/ac321cbb0350996ceef4e6d9e8a1035880609288
  Author: David Green <david.green at arm.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
    M llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    M llvm/lib/CodeGen/MachineVerifier.cpp
    M llvm/lib/Target/AArch64/AArch64Combine.td
    M llvm/lib/Target/AArch64/AArch64InstrAtomics.td
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-build-vector.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-extract-vec-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-icmp-to-lhs-known-bits.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-insert-vec-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-cmp.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-extract-vector-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-insert-vector-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-phi.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-lowering-shuffle-splat.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/prelegalizer-combiner-icmp-to-true-false-known-bits.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/regbank-insert-vector-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/select-insert-vector-elt.mir
    M llvm/test/CodeGen/AArch64/aarch64-bit-gen.ll
    M llvm/test/CodeGen/AArch64/aarch64-minmaxv.ll
    M llvm/test/CodeGen/AArch64/arm64-neon-copy.ll
    M llvm/test/CodeGen/AArch64/insertextract.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-extract-vector-load.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-non-integral-address-spaces-vectors.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-extract-vector-elt.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-extractelement-crash.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-insert-vector-elt.mir
    M llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/insertelement.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/shufflevector.ll

  Log Message:
  -----------
  [AArch64][GlobalISel] Legalize Insert vector element (#81453)

This attempts to standardize and extend some of the insert vector
element lowering. Most notably:
- More types are handled by splitting illegal vectors.
- The index type for G_INSERT_VECTOR_ELT is canonicalized to
  TLI.getVectorIdxTy(), similar to extact_vector_element.
- Some of the existing patterns now have the index type specified to
  make sure they can apply to GISel too.
- The C++ selection code has been removed, relying on tablegen patterns.
- G_INSERT_VECTOR_ELT with small GPR input elements are pre-selected to
  use a i32 type, allowing the existing patterns to apply.
- Variable index inserts are lowered in post-legalizer lowering,
  expanding into a stack store and reload.


  Commit: 9fd2e2c2fd0dbd5d11a5899bd6bb4db0fd3f2c35
      https://github.com/llvm/llvm-project/commit/9fd2e2c2fd0dbd5d11a5899bd6bb4db0fd3f2c35
  Author: David Green <david.green at arm.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/test/CodeGen/AArch64/sve-nontemporal-masked-ldst.ll

  Log Message:
  -----------
  [DAG][AArch64] Support masked loads/stores with nontemporal flags (#87608)

SVE has some non-temporal masked loads and stores. The metadata coming
from the nodes is not copied to the MMO at the moment though, meaning it
will generate a normal instruction. This patch ensures that the right
flags are set if the instruction has non-temporal metadata.


  Commit: 81a7b6454e195f2051b76d9e5b1f0c430df0f502
      https://github.com/llvm/llvm-project/commit/81a7b6454e195f2051b76d9e5b1f0c430df0f502
  Author: Billy Zhu <billyzhu at modular.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M mlir/lib/Target/LLVMIR/DebugImporter.cpp
    M mlir/lib/Target/LLVMIR/DebugImporter.h
    M mlir/lib/Target/LLVMIR/DebugTranslation.cpp
    M mlir/test/Target/LLVMIR/Import/debug-info.ll
    M mlir/test/Target/LLVMIR/llvmir-debug.mlir

  Log Message:
  -----------
  [MLIR][LLVM] Recursion importer handle repeated self-references (#87295)

Followup to this discussion:
https://github.com/llvm/llvm-project/pull/80251#discussion_r1535599920.

The previous debug importer was correct but inefficient. For cases with
mutual recursion that contain more than one back-edge, each back-edge
would result in a new translated instance. This is because the previous
implementation never caches any translated result with unbounded
self-references. This means all translation inside a recursive context
is performed from scratch, which will incur repeated run-time cost as
well as repeated attribute sub-trees in the translated IR (differing
only in their `recId`s).

This PR refactors the importer to handle caching inside a recursive
context.
- In the presence of unbound self-refs, the translation result is cached
in a separate cache that keeps track of the set of dependent unbound
self-refs.
- A dependent cache entry is valid only when all the unbound self-refs
are in scope. Whenever a cached entry goes out of scope, it will be
removed the next time it is looked up.


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

  Changed paths:
    M flang/include/flang/Optimizer/Builder/FIRBuilder.h
    M flang/lib/Lower/ConvertVariable.cpp
    M flang/lib/Lower/DirectivesCommon.h
    M flang/lib/Optimizer/Builder/FIRBuilder.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/Builder/PPCIntrinsicCall.cpp
    M flang/test/Lower/Intrinsics/maskl.f90
    M flang/test/Lower/Intrinsics/maskr.f90

  Log Message:
  -----------
  [flang] Fix MASKR/MASKL lowering for INTEGER(16) (#87496)

The all one masks was not properly created for i128 types because
builder.createIntegerConstant ended-up truncating -1 to something
positive.

Add a builder.createAllOnesInteger/createMinusOneInteger helpers and use
them where createIntegerConstant(..., -1) was used.
Add an assert in createIntegerConstant to catch negative numbers for
i128 type.


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

  Changed paths:
    M flang/docs/Extensions.md

  Log Message:
  -----------
  [flang][NFC] document BOZ error in DIM, MOD, MODULO, and SIGN (#87779)

It is highly ambiguous to what type BOZ should be resolved in DIM, MOD,
MODULO, and SIGN intrinsic arguments. Some other compilers accept them,
but none agree. See table below.

List them explicitly as non supported extensions (semantics already
reject them, this is an NFC).

Table listing the resolved types of the intrinsic results when there is
a BOZ argument:

|                     | gfortran | nvfortran | ifort | nagfor | xlf    |
| ------------------- | -------- | --------- | ----- | ------ | ------ |
|  DIM(INT4, BOZ)     |  INT16   |  INT4     |  INT8 | crash  |  INT4  |
|  DIM(BOZ, REAL4)    | error    |  INT8     | error | error  |  REAL4 |
|  DIM(REAL4, BOZ)    | error    |  REAL4    | error | error  |  REAL4 |
|  DIM(BOZ, INT4)     |  INT16   |  INT8     |  INT8 | INT8   |  INT4  |
|  DIM(BOZ, BOZ)      |  INT16   |  INT8     |  INT8 | INT8   |  REAL4 |
|  MOD(INT4, BOZ)     |  INT16   |  INT4     |  INT8 | crash  |  INT4  |
|  MOD(BOZ, REAL4)    | error    |  INT8     | error | error  |  REAL4 |
|  MOD(REAL4, BOZ)    | error    |  REAL4    | error | error  |  REAL4 |
|  MOD(BOZ, INT4)     |  INT16   |  INT8     |  INT8 | INT8   |  INT4  |
|  MOD(BOZ, BOZ)      |  INT16   |  INT8     |  INT8 | INT8   |  INT4  |
|  MODULO(INT4, BOZ)  |  INT16   |  INT4     |  INT8 | crash  |  INT4  |
|  MODULO(BOZ, REAL4) | error    |  INT8     | error | error  |  REAL4 |
|  MODULO(REAL4, BOZ) | error    |  REAL4    | error | error  |  REAL4 |
|  MODULO(BOZ, INT4)  |  INT16   |  INT8     |  INT8 | INT8   |  INT4  |
|  MODULO(BOZ, BOZ)   |  INT16   |  INT8     |  INT8 | INT8   |  INT8  |
|  SIGN(INT4, BOZ)    | error    |  INT4     |  INT8 | INT4   |  INT4  |
|  SIGN(BOZ, REAL4)   | error    |  INT8     | error | error  |  REAL4 |
|  SIGN(REAL4, BOZ)   | error    |  REAL4    | error | error  |  REAL4 |
|  SIGN(BOZ, INT4)    | error    |  INT8     |  INT8 | INT8   |  INT4  |
|  SIGN(BOZ, BOZ)     |  INT16   |  INT8     |  INT8 | INT8   |  REAL4 |


  Commit: 0bfea40101c10f80ee35d7fbfd4459e98cdb289c
      https://github.com/llvm/llvm-project/commit/0bfea40101c10f80ee35d7fbfd4459e98cdb289c
  Author: David Green <david.green at arm.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/Analysis/CostModel/AArch64/shuffle-other.ll
    M llvm/test/Analysis/CostModel/AArch64/shuffle-store.ll

  Log Message:
  -----------
  [AArch64] More shuffle-store test cases. NFC


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

  Changed paths:
    M flang/lib/Lower/Allocatable.cpp
    A flang/test/Lower/allocate-source-allocatables-2.f90

  Log Message:
  -----------
  [flang] Fix source allocation to explicit length after deferred length object (#87785)

Flang supports source allocation to allocatable or pointers with a non
deferred length that do not match the source length. This documented at:
https://github.com/llvm/llvm-project/blob/9708d0900311503aa4685d6810d8caf0412e15d7/flang/docs/Extensions.md?plain=1#L312

The current lowering code was bugged when such explicit length allocate
object appeared after a deferred length object in the source allocation
list:

Since "lenParams" had been computed when generating allocation of the
deferred length object, the call to genSetDeferredLengthParameters was
not a no-op on when lowering the explicit length allocation, and the
explicit length was overridden with the source length.

The output of the program added in test was:

```
ZZheZZ
ZZhelloZZ
ZZhelloZZ
```

Instead of:

```
ZZheZZ
ZZhelloZZ
ZZhello  ZZ
```

Skip genSetDeferredLengthParameters when the allocate object has non
deferred length.


  Commit: 364028a1a51689d2b33d3ec50c426fbeac269679
      https://github.com/llvm/llvm-project/commit/364028a1a51689d2b33d3ec50c426fbeac269679
  Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/test/Driver/riscv-profiles.c
    M clang/test/Preprocessor/riscv-target-features.c
    M llvm/docs/RISCVUsage.rst
    M llvm/lib/Support/RISCVISAInfo.cpp
    M llvm/lib/Target/RISCV/RISCVFeatures.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoZcmop.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoZimop.td
    M llvm/test/CodeGen/RISCV/attributes.ll
    M llvm/test/CodeGen/RISCV/rv32zimop-intrinsic.ll
    M llvm/test/CodeGen/RISCV/rv64zimop-intrinsic.ll
    M llvm/test/MC/RISCV/attribute-arch.s
    M llvm/test/MC/RISCV/compressed-zicfiss.s
    M llvm/test/MC/RISCV/rv32zcmop-invalid.s
    M llvm/test/MC/RISCV/rv32zimop-invalid.s
    M llvm/test/MC/RISCV/rvzcmop-valid.s
    M llvm/test/MC/RISCV/rvzimop-valid.s
    M llvm/unittests/Support/RISCVISAInfoTest.cpp

  Log Message:
  -----------
  [RISCV] Zimop/Zcmop are ratified

Remove them from experimental.

See also:
https://github.com/riscv/riscv-isa-manual/blob/main/src/zimop.adoc

Reviewers: kito-cheng

Reviewed By: kito-cheng

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


  Commit: 221f438af1c1292d787b58da99a5a7b371888456
      https://github.com/llvm/llvm-project/commit/221f438af1c1292d787b58da99a5a7b371888456
  Author: Mats Petersson <mats.petersson at arm.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/ReductionProcessor.cpp
    M flang/lib/Lower/OpenMP/ReductionProcessor.h
    A flang/test/Lower/OpenMP/parallel-reduction-complex-mul.f90
    A flang/test/Lower/OpenMP/parallel-reduction-complex.f90

  Log Message:
  -----------
  [flang][OpenMP] Add support for complex reductions (#87488)

This adds support for complex type to the OpenMP reductions. 

Note that some more work would be needed to give decent error messages when complex 
is used in ways that need client supplied functions (e.g. MAX or MIN). It does fail these with
a not so user friendly message at present.


  Commit: cf7d36fe342c5c5ac39150ca0b4b70a3d17ae66b
      https://github.com/llvm/llvm-project/commit/cf7d36fe342c5c5ac39150ca0b4b70a3d17ae66b
  Author: Zentrik <Zentrik at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
    M llvm/lib/Transforms/Scalar/NewGVN.cpp

  Log Message:
  -----------
  [NFC] Fix misspellings of effects (#87795)


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

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/avx512-insert-extract.ll
    M llvm/test/CodeGen/X86/insertelement-var-index.ll
    M llvm/test/CodeGen/X86/movmsk-cmp.ll
    M llvm/test/CodeGen/X86/pr63439.ll
    M llvm/test/CodeGen/X86/pr64439.ll
    M llvm/test/CodeGen/X86/vec_cast.ll

  Log Message:
  -----------
  [X86] combineExtractVectorElt - fold extract(trunc(x),c) -> trunc(extract(x,c))


  Commit: 8461d901a770516cf2069fe3bce979a6f8fc8d76
      https://github.com/llvm/llvm-project/commit/8461d901a770516cf2069fe3bce979a6f8fc8d76
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M libclc/CMakeLists.txt

  Log Message:
  -----------
  [libclc] Restore linking against dynamic libLLVM for out-of-tree builds

This fixes a regression where building against an installation without
the static libraries would fail. This just reinstates the old behaviour
for out-of-tree builds, assuming that in-tree builds (which still aren't
officially supported) will have the static libraries available. We can
refine this as we move towards supporting in-tree builds.


  Commit: c2067c1f471ac54312cb5e1e0efd4ea5fd21cc79
      https://github.com/llvm/llvm-project/commit/c2067c1f471ac54312cb5e1e0efd4ea5fd21cc79
  Author: Balázs Kéri <balazs.keri at ericsson.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/docs/analyzer/checkers.rst
    M clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
    M clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
    M clang/test/Analysis/analyzer-config.c
    M clang/test/Analysis/std-c-library-functions-vs-stream-checker.c
    M clang/test/Analysis/stream-errno-note.c
    M clang/test/Analysis/stream-errno.c
    M clang/test/Analysis/stream-error.c
    M clang/test/Analysis/stream-note.c
    A clang/test/Analysis/stream-pedantic.c
    M clang/test/Analysis/stream-stdlibraryfunctionargs.c
    M clang/test/Analysis/stream.c

  Log Message:
  -----------
  [clang][analyzer] Add "pedantic" mode to StreamChecker. (#87322)

The checker may create failure branches for all stream write operations
only if the new option "pedantic" is set to true.
Result of the write operations is often not checked in typical code. If
failure branches are created the checker will warn for unchecked write
operations and generate a lot of "false positives" (these are valid
warnings but the programmer does not care about this problem).


  Commit: 2abd71ec51079d84a29639389dc9a66edd4909e5
      https://github.com/llvm/llvm-project/commit/2abd71ec51079d84a29639389dc9a66edd4909e5
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M mlir/lib/Target/LLVMIR/DebugImporter.cpp

  Log Message:
  -----------
  [mlir] Fix -Wunused-variable in DebugImporter.cpp (NFC)

llvm-project/mlir/lib/Target/LLVMIR/DebugImporter.cpp:377:10:
error: unused variable '[_, inserted]' [-Werror,-Wunused-variable]
    auto [_, inserted] = dependentCache.try_emplace(
         ^
1 error generated.


  Commit: 8b3b4a92adee40483c27f26c478a384cd69c6f05
      https://github.com/llvm/llvm-project/commit/8b3b4a92adee40483c27f26c478a384cd69c6f05
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

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

  Log Message:
  -----------
  [RISCV] Fix canFoldToVWWithSameExtension allowing different FP extensions (#87978)


  Commit: 5a855d51272608e2122c45d86676aa2247a11d19
      https://github.com/llvm/llvm-project/commit/5a855d51272608e2122c45d86676aa2247a11d19
  Author: Hirofumi Nakamura <k.nakamura.hirofumi at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/unittests/Format/FormatTestTableGen.cpp

  Log Message:
  -----------
  [clang-format] Added unittest of TableGen formatting w.r.t. block type calculation. (#87924)


  Commit: 86b0918e8e5f8e1aacebf4ba8901fc66aed3412f
      https://github.com/llvm/llvm-project/commit/86b0918e8e5f8e1aacebf4ba8901fc66aed3412f
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

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

  Log Message:
  -----------
  [LinkerWrapper] Do not include config files for device linking (#87659)

Summary:
The device linking phase only wants to create the necessary commands to
emit the device binary. There were issues where the user's default
config file was being used and passing incompatible arguments to the
device compilation step. Simply disable this since we do not want any
additional arguments to these clang invocations.


  Commit: acb2a475766b621fe7e5d792ff7948a5794c3e87
      https://github.com/llvm/llvm-project/commit/acb2a475766b621fe7e5d792ff7948a5794c3e87
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-fdiv.ll

  Log Message:
  -----------
  AMDGPU: Regenerate test checks


  Commit: fc9a5076c31139878da2fa12ef16090a58d55782
      https://github.com/llvm/llvm-project/commit/fc9a5076c31139878da2fa12ef16090a58d55782
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/tools/llvm-reduce/reduce-flags.ll
    M llvm/tools/llvm-reduce/deltas/ReduceInstructionFlags.cpp

  Log Message:
  -----------
  llvm-reduce: Reduce nuw/nsw flags from trunc


  Commit: 38f996bb2bc4f922c7b441d730ab3a3ad2fa1506
      https://github.com/llvm/llvm-project/commit/38f996bb2bc4f922c7b441d730ab3a3ad2fa1506
  Author: Malay Sanghi <malay.sanghi at intel.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/MachinePipeliner.cpp

  Log Message:
  -----------
  Replace copy with a reference. (#87975)


  Commit: 8cb642bf18bfd3e6e8576f4f090fa584f68bb0cc
      https://github.com/llvm/llvm-project/commit/8cb642bf18bfd3e6e8576f4f090fa584f68bb0cc
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/AArch64/GlobalISel/call-translator-tail-call-sret.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/constant-dbg-loc.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-store-metadata.ll
    M llvm/test/CodeGen/X86/GlobalISel/irtranslator-callingconv.ll

  Log Message:
  -----------
  GlobalISel: Regenerate test checks


  Commit: 95f984f37e390a6d2e8a4b0852ea4d5a83126287
      https://github.com/llvm/llvm-project/commit/95f984f37e390a6d2e8a4b0852ea4d5a83126287
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

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

  Log Message:
  -----------
  ValueTracking: Don't use unnecessary null checked dyn_cast


  Commit: 8c6e0459c49da298f3b911fc3699c2254a20d882
      https://github.com/llvm/llvm-project/commit/8c6e0459c49da298f3b911fc3699c2254a20d882
  Author: bahareh-farhadi <53280095+bahareh-farhadi at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/unittests/Interpreter/InterpreterExtensionsTest.cpp

  Log Message:
  -----------
  [zOS] Turn CLANG_INTERPRETER_PLATFORM_CANNOT_CREATE_LLJIT on for zOS (#87797)

PR
[https://github.com/llvm/llvm-project/pull/84461](https://github.com/llvm/llvm-project/pull/84461)
disabled `clang/unittests/Interpreter/InterpreterExtensionsTest.cpp` for
AIX by turning on `CLANG_INTERPRETER_PLATFORM_CANNOT_CREATE_LLJIT`.
This PR turns `CLANG_INTERPRETER_PLATFORM_CANNOT_CREATE_LLJIT` on for
zOS as well, since LLJIT cannot be created on zOS either.

Co-authored-by: Bahareh <bahareh.farhadi at ibm.com>


  Commit: eb07600f8eff793664a4d6b181e6f31de1f5f973
      https://github.com/llvm/llvm-project/commit/eb07600f8eff793664a4d6b181e6f31de1f5f973
  Author: paperchalice <liujunchang97 at outlook.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Passes/CodeGenPassBuilder.h

  Log Message:
  -----------
  [NewPM] support `disablePass`, `insertPass` in `CodeGenPassBuilder` (#87147)

Currently only machine function passes support `insertPass`, but it
seems to be enough, all targets tune their pipelines when adding machine
function passes.


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

  Changed paths:
    M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
    M mlir/test/Dialect/Arith/invalid.mlir

  Log Message:
  -----------
  [mlir][arith] Refine the verifier for arith.constant (#86178)

Disallows initialization of scalable vectors with an attribute of
arbitrary values, e.g.:
```mlir
  %c = arith.constant dense<[0, 1]> : vector<[2] x i32>
```

Initialization using vector splats remains allowed (i.e. when all the
init values are identical):
```mlir
  %c = arith.constant dense<[1, 1]> : vector<[2] x i32>
```


  Commit: 4308c7422d12c8a7efe6cf1c5c6136e54ba410ce
      https://github.com/llvm/llvm-project/commit/4308c7422d12c8a7efe6cf1c5c6136e54ba410ce
  Author: Nathan Sidwell <nathan at acm.org>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M bolt/lib/Core/Relocation.cpp

  Log Message:
  -----------
  [BOLT][NFC] Refactor relocation arch selection (#87829)

Convert the relocation routines to switch on architecture and have an explicit unreachable default.


  Commit: f6357bb4283e72d1248b9c7eb67d98bea71d5f50
      https://github.com/llvm/llvm-project/commit/f6357bb4283e72d1248b9c7eb67d98bea71d5f50
  Author: Nathan Sidwell <nathan at acm.org>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/docs/CMake.rst

  Log Message:
  -----------
  [llvm][docs] Resort cmake macros (#87551)

The cmake macro documentation had once again become unsorted. For names
of the form 'PREFIX_{list-or-category}_SUFFIX' I collate as 'PREFIX_SUFFIX'.


  Commit: 2921a0928c71f4ee652a2478283e47ab5ffebf58
      https://github.com/llvm/llvm-project/commit/2921a0928c71f4ee652a2478283e47ab5ffebf58
  Author: Jefferson Le Quellec <jefferson.lequellec at codeplay.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Cuda.cpp
    M clang/test/Driver/cuda-external-tools.cu

  Log Message:
  -----------
  Make the argument -Xcuda-ptxas visible to the driver in cl-mode

It has been noticed that the arguments are being passed twice to ptxas.
This also has been fixed by filtering out the arguments before appending
them to the new DAL created by CudaToolChain::TranslateArgs.

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


  Commit: a4c84d6ac1014b00257618663a243419630ff626
      https://github.com/llvm/llvm-project/commit/a4c84d6ac1014b00257618663a243419630ff626
  Author: Adrian Kuegel <akuegel at google.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M mlir/test/mlir-tblgen/op-decl-and-defs.td
    M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp

  Log Message:
  -----------
  [mlir] Only inline if properties are used.

This is a followup to 0f52f4ddd909eb38f2a691ffed8469263fe5f635
It breaks dialects that don't use properties yet.


  Commit: 0832b85e0f5b684ad2e5eaf29911ca806eb0db3d
      https://github.com/llvm/llvm-project/commit/0832b85e0f5b684ad2e5eaf29911ca806eb0db3d
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/Transforms/Attributor/nofpclass.ll

  Log Message:
  -----------
  ValueTracking: Add baseline tests for vector fpclass handling


  Commit: 2bc637b1ce935550b6e09618c76474253943a7cc
      https://github.com/llvm/llvm-project/commit/2bc637b1ce935550b6e09618c76474253943a7cc
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/Attributor/nofpclass.ll
    M llvm/unittests/Analysis/ValueTrackingTest.cpp

  Log Message:
  -----------
  ValueTracking: Handle ConstantAggregateZero in computeKnownFPClass


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

  Changed paths:
    M clang/lib/AST/TextNodeDumper.cpp

  Log Message:
  -----------
  TextNodeDumper.cpp - remove empty switch to fix MSVC "switch statement contains 'default' but no 'case' labels" warning. NFC.


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

  Changed paths:
    M clang/lib/InstallAPI/DiagnosticBuilderWrappers.cpp

  Log Message:
  -----------
  Fix MSVC "not all control paths return a value" warning. NFC.


  Commit: bdf428af9825e684d9ed22d0137a456c131389f7
      https://github.com/llvm/llvm-project/commit/bdf428af9825e684d9ed22d0137a456c131389f7
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/Attributor/nofpclass.ll

  Log Message:
  -----------
  ValueTracking: Consider demanded elts for vector constants in computeKnownFPClass


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

  Changed paths:
    M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
    M mlir/test/Dialect/Arith/invalid.mlir

  Log Message:
  -----------
  Revert "[mlir][arith] Refine the verifier for arith.constant (#86178)"

This reverts commit 662c62609e8ee2dc996da69e11c0d594e799c299.

Broken both:
  * https://lab.llvm.org/buildbot/#/builders/61/builds/56565


  Commit: 8ccf1c117b0dc08f7e9c24fe98f45ebe32e95cd1
      https://github.com/llvm/llvm-project/commit/8ccf1c117b0dc08f7e9c24fe98f45ebe32e95cd1
  Author: Kevin P. Neal <kevin.neal at sas.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/strict-fadd-combines.ll
    M llvm/test/CodeGen/X86/strict-fsub-combines.ll

  Log Message:
  -----------
  [FPEnv][X86] Correct strictfp tests. (#87791)

Correct strictfp tests to follow the rules documented in the LangRef:
https://llvm.org/docs/LangRef.html#constrained-floating-point-intrinsics

These tests needed the strictfp attribute added to some function
definitions. FP wait instructions now appear as a result.

Test changes verified with D146845.


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

  Changed paths:
    M libclc/CMakeLists.txt

  Log Message:
  -----------
  [libclc] Fix spirv build dependencies

These were accidentally broken in 61efea7.

Thanks to @mgorny and @rjodinchr for spotting this.


  Commit: 4c718fdbeacfc3385a493349b66b61c857b8e772
      https://github.com/llvm/llvm-project/commit/4c718fdbeacfc3385a493349b66b61c857b8e772
  Author: Yusra Syeda <99052248+ysyeda at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Object/GOFF.h
    M llvm/include/llvm/Object/GOFFObjectFile.h
    M llvm/lib/Object/GOFFObjectFile.cpp
    M llvm/unittests/Object/GOFFObjectFileTest.cpp

  Log Message:
  -----------
   [SystemZ][z/OS] TXT records in the GOFF reader (#87648)

This PR adds handling for TXT records in the GOFF reader.

---------

Co-authored-by: Yusra Syeda <yusra.syeda at ibm.com>


  Commit: 1107b47dcd145518c7b811bf10e2b848782b0478
      https://github.com/llvm/llvm-project/commit/1107b47dcd145518c7b811bf10e2b848782b0478
  Author: Edwin Vane <revane at google.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming.cpp

  Log Message:
  -----------
  [clang-tidy] rename designated initializers (#86976)

readability-identifier-naming now supports renaming designated
initializers.


  Commit: 312b9297bb9284bddb36980f64661c24c876eef0
      https://github.com/llvm/llvm-project/commit/312b9297bb9284bddb36980f64661c24c876eef0
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M libc/test/UnitTest/LibcDeathTestExecutors.cpp

  Log Message:
  -----------
  [libc] Increase timeout for death tests. (#87959)

Fix test timeout on RISCV bots.
Fixes https://github.com/llvm/llvm-project/issues/87096


  Commit: ed1b24bf8b76871ab00f365d8dc066b3f7f76202
      https://github.com/llvm/llvm-project/commit/ed1b24bf8b76871ab00f365d8dc066b3f7f76202
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/include/flang/Runtime/freestanding-tools.h
    M flang/lib/Decimal/decimal-to-binary.cpp

  Log Message:
  -----------
  [flang][runtime] Added simplified std::toupper implementation. (#87850)


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/call-arg-reduced-by-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/cmp-after-intrinsic-call-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/store-abs-minbitwidth.ll

  Log Message:
  -----------
  [SLP]Improve minbitwidth analysis for abs/smin/smax/umin/umax intrinsics.

https://alive2.llvm.org/ce/z/ivPZ26 for the abs transformations.

Reviewers: RKSimon

Reviewed By: RKSimon

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


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

  Changed paths:
    M libclc/CMakeLists.txt

  Log Message:
  -----------
  [libclc] Fix more spirv build dependencies

The last fix was incomplete.


  Commit: 26fee0ff1251fa70babaf419c08383e7ec71c56c
      https://github.com/llvm/llvm-project/commit/26fee0ff1251fa70babaf419c08383e7ec71c56c
  Author: Erich Keane <ekeane at nvidia.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/SemaOpenACC.h
    M clang/lib/Parse/ParseOpenACC.cpp
    M clang/lib/Sema/SemaOpenACC.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/test/ParserOpenACC/parse-clauses.c
    M clang/test/ParserOpenACC/parse-clauses.cpp
    M clang/test/ParserOpenACC/parse-wait-clause.c

  Log Message:
  -----------
  [OpenACC] Implement Sema work for OpenACC Clauses (#87821)

Now that we have AST nodes for OpenACC Clauses, this patch adds their
creation to Sema and makes the Parser call all the required functions.
This also redoes TreeTransform to work with the clauses/make sure they
are transformed.

Much of this is NFC, since there is no clause we can test this behavior
with. However, there IS one noticable change; we are now no longer
diagnosing that a clause is 'not implemented' unless it there was no
errors parsing its parameters. This is because it cleans up how we
create and diagnose clauses.


  Commit: 4d6e67f677bdf40360e6aaba171bcdec93990b01
      https://github.com/llvm/llvm-project/commit/4d6e67f677bdf40360e6aaba171bcdec93990b01
  Author: erichkeane <ekeane at nvidia.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/lib/Parse/ParseOpenACC.cpp

  Log Message:
  -----------
  Fix build issue committed in 26fee0ff12

I brain-farted on how assert works :)


  Commit: f6315a957232b2f5c27476138e3f4e552861f956
      https://github.com/llvm/llvm-project/commit/f6315a957232b2f5c27476138e3f4e552861f956
  Author: Min-Yih Hsu <min.hsu at sifive.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64LoopIdiomTransform.cpp
    M llvm/test/Transforms/LoopIdiom/AArch64/byte-compare-index.ll

  Log Message:
  -----------
  [AArch64][LoopIdiom] Disable LoopIdiomTransform when NoImplicitFloat is present (#87677)

This behavior is aligned with both LoopVectorizer and SLPVectorizer.


  Commit: 78c50bbd45de595e9992bf97aa097f7f589f8370
      https://github.com/llvm/llvm-project/commit/78c50bbd45de595e9992bf97aa097f7f589f8370
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

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

  Log Message:
  -----------
  [SLP][NFC]Remove unused variable, NFC.


  Commit: 54c24ec976a52f6ad8499a1a337d7ae2ab84e88d
      https://github.com/llvm/llvm-project/commit/54c24ec976a52f6ad8499a1a337d7ae2ab84e88d
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M libc/cmake/modules/LLVMLibCCheckMPFR.cmake
    M libc/utils/MPFRWrapper/CMakeLists.txt

  Log Message:
  -----------
  [libc] remove MPFR and related tests in full build (#87693)

In full build mode, the fuzzing tests fail to build. This PR disabled MPFR related tests in full build
```
[2/4] Building CXX object projects/libc/fuzzing/stdio/CMakeFiles/libc.fuzzing.stdio.printf_float_conv_fuzz.dir/printf_float_conv_fuzz.cpp.o
FAILED: projects/libc/fuzzing/stdio/CMakeFiles/libc.fuzzing.stdio.printf_float_conv_fuzz.dir/printf_float_conv_fuzz.cpp.o 
/usr/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_19_0_0_git -I/home/schrodingerzy/Documents/llvm/llvm-project/build/projects/libc/fuzzing/stdio -I/home/schrodingerzy/Documents/llvm/llvm-project/libc/fuzzing/stdio -I/home/schrodingerzy/Documents/llvm/llvm-project/libc -isystem /home/schrodingerzy/Documents/llvm/llvm-project/build/projects/libc/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fsanitize=fuzzer -O2 -g -DNDEBUG -std=c++17 -MD -MT projects/libc/fuzzing/stdio/CMakeFiles/libc.fuzzing.stdio.printf_float_conv_fuzz.dir/printf_float_conv_fuzz.cpp.o -MF projects/libc/fuzzing/stdio/CMakeFiles/libc.fuzzing.stdio.printf_float_conv_fuzz.dir/printf_float_conv_fuzz.cpp.o.d -o projects/libc/fuzzing/stdio/CMakeFiles/libc.fuzzing.stdio.printf_float_conv_fuzz.dir/printf_float_conv_fuzz.cpp.o -c /home/schrodingerzy/Documents/llvm/llvm-project/libc/fuzzing/stdio/printf_float_conv_fuzz.cpp
In file included from /home/schrodingerzy/Documents/llvm/llvm-project/libc/fuzzing/stdio/printf_float_conv_fuzz.cpp:19:
In file included from /home/schrodingerzy/Documents/llvm/llvm-project/libc/utils/MPFRWrapper/mpfr_inc.h:21:
In file included from /usr/include/mpfr.h:53:
In file included from /usr/include/gmp.h:35:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/iosfwd:38:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/bits/requires_hosted.h:31:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/x86_64-pc-linux-gnu/bits/c++config.h:679:
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/x86_64-pc-linux-gnu/bits/os_defines.h:44:5: error: function-like macro '__GLIBC_PREREQ' is not defined
   44 | #if __GLIBC_PREREQ(2,15) && defined(_GNU_SOURCE)
      |     ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/x86_64-pc-linux-gnu/bits/os_defines.h:55:5: error: function-like macro '__GLIBC_PREREQ' is not defined
   55 | #if __GLIBC_PREREQ(2, 26) \
      |     ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/x86_64-pc-linux-gnu/bits/os_defines.h:66:6: error: function-like macro '__GLIBC_PREREQ' is not defined
   66 | # if __GLIBC_PREREQ(2, 27)
      |      ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/x86_64-pc-linux-gnu/bits/os_defines.h:78:6: error: function-like macro '__GLIBC_PREREQ' is not defined
   78 | # if __GLIBC_PREREQ(2, 34)
      |      ^
In file included from /home/schrodingerzy/Documents/llvm/llvm-project/libc/fuzzing/stdio/printf_float_conv_fuzz.cpp:19:
In file included from /home/schrodingerzy/Documents/llvm/llvm-project/libc/utils/MPFRWrapper/mpfr_inc.h:21:
In file included from /usr/include/mpfr.h:53:
In file included from /usr/include/gmp.h:35:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/iosfwd:42:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/bits/postypes.h:40:
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:64:11: error: no member named 'mbstate_t' in the global namespace
   64 |   using ::mbstate_t;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:143:11: error: no member named 'btowc' in the global namespace
  143 |   using ::btowc;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:144:11: error: no member named 'fgetwc' in the global namespace
  144 |   using ::fgetwc;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:145:11: error: no member named 'fgetws' in the global namespace
  145 |   using ::fgetws;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:146:11: error: no member named 'fputwc' in the global namespace
  146 |   using ::fputwc;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:147:11: error: no member named 'fputws' in the global namespace
  147 |   using ::fputws;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:148:11: error: no member named 'fwide' in the global namespace
  148 |   using ::fwide;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:149:11: error: no member named 'fwprintf' in the global namespace
  149 |   using ::fwprintf;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:150:11: error: no member named 'fwscanf' in the global namespace
  150 |   using ::fwscanf;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:151:11: error: no member named 'getwc' in the global namespace
  151 |   using ::getwc;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:152:11: error: no member named 'getwchar' in the global namespace
  152 |   using ::getwchar;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:153:11: error: no member named 'mbrlen' in the global namespace
  153 |   using ::mbrlen;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:154:11: error: no member named 'mbrtowc' in the global namespace
  154 |   using ::mbrtowc;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:155:11: error: no member named 'mbsinit' in the global namespace
  155 |   using ::mbsinit;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:156:11: error: no member named 'mbsrtowcs' in the global namespace
  156 |   using ::mbsrtowcs;
      |         ~~^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
```


  Commit: 896b5e55711121b3de4630fe1412b50d96061c1c
      https://github.com/llvm/llvm-project/commit/896b5e55711121b3de4630fe1412b50d96061c1c
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/lib/Semantics/check-cuda.cpp
    M flang/test/Semantics/cuf09.cuf

  Log Message:
  -----------
  [flang][cuda] Allow list-directed PRINT and WRITE stmt in device code (#87415)

The specification allow list-directed PRINT and WRITE statements to
appear in device code. This patch relax the semantic check to allow
them.

3.6.11.
List-directed PRINT and WRITE statements to the default unit may be used
when compiling for compute capability 2.0 and higher; all other uses of
PRINT and WRITE are disallowed.


  Commit: 39f6d015ddd69717ff1f9b817bce84d621d37731
      https://github.com/llvm/llvm-project/commit/39f6d015ddd69717ff1f9b817bce84d621d37731
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

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

  Log Message:
  -----------
  [RISCV] Eliminate getVLENFactoredAmount and expose muladd [nfc] (#87881)

This restructures the code to make the fact that most of
getVLENFactoredAmount is just a generic multiply w/immediate more
obvious and prepare for a couple of upcoming enhancements to this code.

Note that I plan to switch mulImm to early return, but decided I'd do
that as a separate commit to keep this diff readable.

---------

Co-authored-by: Luke Lau <luke_lau at icloud.com>


  Commit: d345f6a25343f926f55e70b442dfa507ba31b597
      https://github.com/llvm/llvm-project/commit/d345f6a25343f926f55e70b442dfa507ba31b597
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/include/clang/Sema/Sema.h
    A clang/include/clang/Sema/SemaHLSL.h
    M clang/lib/Parse/ParseHLSL.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaHLSL.cpp

  Log Message:
  -----------
  [clang] Introduce `SemaHLSL` (#87912)

This patch introduces `SemaHLSL` class, and moves some HLSL-related
functions there. No functional changes intended.

Removing "HLSL" from function names inside `SemaHLSL` is left for a
subsequent PR by HLSL contributors, if they deem that desirable.

This is a part of the effort to split `Sema` into smaller manageable
parts, and follows the example of OpenACC. See #82217, #84184, #87634
for additional context.


  Commit: 93e2a9ab1b28e1b89d30b89dc2d5bb6f8cc66dc9
      https://github.com/llvm/llvm-project/commit/93e2a9ab1b28e1b89d30b89dc2d5bb6f8cc66dc9
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    A clang/test/CXX/drs/dr605.cpp
    A clang/test/CXX/drs/dr650.cpp
    A clang/test/CXX/drs/dr653.cpp
    A clang/test/CXX/drs/dr658.cpp
    A clang/test/CXX/drs/dr661.cpp
    A clang/test/CXX/drs/dr672.cpp
    M clang/test/CXX/drs/dr6xx.cpp
    M clang/www/cxx_dr_status.html

  Log Message:
  -----------
  [clang] Add CodeGen tests for CWG 6xx issues (#87876)

This patch covers
[CWG605](https://cplusplus.github.io/CWG/issues/605.html) "Linkage of
explicit specializations",
[CWG650](https://cplusplus.github.io/CWG/issues/650.html) "Order of
destruction for temporaries bound to the returned value of a function",
[CWG653](https://cplusplus.github.io/CWG/issues/653.html) "Copy
assignment of unions",
[CWG658](https://cplusplus.github.io/CWG/issues/658.html) "Defining
`reinterpret_cast` for pointer types",
[CWG661](https://cplusplus.github.io/CWG/issues/661.html) "Semantics of
arithmetic comparisons",
[CWG672](https://cplusplus.github.io/CWG/issues/672.html) "Sequencing of
initialization in _new-expression_s".

[CWG624](https://cplusplus.github.io/CWG/issues/624.html) "Overflow in
calculating size of allocation" and
[CWG668](https://cplusplus.github.io/CWG/issues/668.html) "Throwing an
exception from the destructor of a local static object" are marked as
requiring libc++abi tests.


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

  Changed paths:
    M libcxx/test/std/input.output/iostream.format/print.fun/println.blank_line.sh.cpp

  Log Message:
  -----------
  [libc++][format] Fixed `println.blank_line.sh.cpp` test on llvm-clang-win-x-* configurations (#88011)

Fix for issue:
https://github.com/llvm/llvm-project/pull/87277#issuecomment-2041864530

The test fails on the windows to linux cross builders. The proposed
resolution is to print some text. The issue is possibly due to the
original test outputting a single `\n` character.


  Commit: 977c0a6d29fe836f75b64a6f08a58cb3c00a56d9
      https://github.com/llvm/llvm-project/commit/977c0a6d29fe836f75b64a6f08a58cb3c00a56d9
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    A llvm/test/Analysis/LoopAccessAnalysis/non-constant-strides-backward.ll
    A llvm/test/Analysis/LoopAccessAnalysis/non-constant-strides-forward.ll
    A llvm/test/Analysis/LoopAccessAnalysis/positive-dependence-distance-different-access-sizes.ll
    A llvm/test/Transforms/LoopLoadElim/non-const-distance.ll

  Log Message:
  -----------
  [LAA] Add tests with non-constant strides & distances.

Add a number of LAA test cases with both forward and backward
dependences with non-constant strides and dependence distances.

This includes test coverage for
https://github.com/llvm/llvm-project/issues/87336

Also includes a LoopLoadElimination test to make sure the pass does not
crash on non-constant dependence distances.


  Commit: 125c9cf1b2f5d1b33884ddcd33ce983b2e927d2f
      https://github.com/llvm/llvm-project/commit/125c9cf1b2f5d1b33884ddcd33ce983b2e927d2f
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    A clang/test/CXX/drs/dr593.cpp
    M clang/test/CXX/drs/dr5xx.cpp
    M clang/www/cxx_dr_status.html

  Log Message:
  -----------
  [clang] Add test for CWG593 (#87752)

[CWG593](https://cplusplus.github.io/CWG/issues/593.html) "Falling off
the end of a destructor's function-try-block handler". As usual with CWG
issues resolved as NAD, we test for status-quo confirmed by CWG.


  Commit: fd2ffc1cbf51a75884369ec9253f47ae2fdba83c
      https://github.com/llvm/llvm-project/commit/fd2ffc1cbf51a75884369ec9253f47ae2fdba83c
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/test/SemaCXX/type-traits.cpp

  Log Message:
  -----------
  [clang] Reject incomplete types in `__is_layout_compatible()` (#87869)

This is a follow-up to #81506. As discussed in #87737, we're rejecting
incomplete types, save for exceptions listed in the C++ standard (`void`
and arrays of unknown bound). Note that arrays of unknown bound of
incomplete types are accepted.

Since we're happy with the current behavior of this intrinsic for
flexible array members
(https://github.com/llvm/llvm-project/pull/87737#discussion_r1553652570),
I added a couple of tests for that as well.


  Commit: eeedb1e962977caeb699ef9aa714c8878c4d62d2
      https://github.com/llvm/llvm-project/commit/eeedb1e962977caeb699ef9aa714c8878c4d62d2
  Author: Kevin P. Neal <kevin.neal at sas.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/i128-fpconv-win64-strict.ll

  Log Message:
  -----------
  [FPEnv][X86] Correct one more strictfp test.

Correct a strictfp test to follow the rules documented in the
LangRef:
https://llvm.org/docs/LangRef.html#constrained-floating-point-intrinsics

This test needed the strictfp attribute added to some function
definitions. FP wait instructions now appear as a result. The need
for the wait instructions is explained by Andy Kaylor in PR#87791:
https://github.com/llvm/llvm-project/pull/87791

Test changes verified with D146845.


  Commit: 92ecc22b8d18ad937053177533bd23c775556be6
      https://github.com/llvm/llvm-project/commit/92ecc22b8d18ad937053177533bd23c775556be6
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/lib/Semantics/resolve-names.cpp

  Log Message:
  -----------
  [flang] Fix crash in semantics on bad program (#87199)

Don't accept a putative statement function definition for a symbol that
is a subprogram but can't possibly be a statement function.

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


  Commit: b685597c0373882e58dabf587581d00989e40f71
      https://github.com/llvm/llvm-project/commit/b685597c0373882e58dabf587581d00989e40f71
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/lib/Evaluate/fold-reduction.h
    A flang/test/Evaluate/folding32.f90

  Log Message:
  -----------
  [flang] Fix crash in reduction folding (#87201)

A reduction folding template assumed lower bounds were 1.

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


  Commit: af61d08280a90becb5a710a812f0d3d6485737a8
      https://github.com/llvm/llvm-project/commit/af61d08280a90becb5a710a812f0d3d6485737a8
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/lib/Semantics/resolve-names.cpp
    M flang/test/Semantics/resolve29.f90

  Log Message:
  -----------
  [flang] Handle forward reference to shadowing derived type from IMPLICIT (#87280)

A derived type name in an IMPLICIT statement might be a host association
or it might be a forward reference to a local derived type, which may be
shadowing a host-associated name. Add a scan over the specification part
in search of derived type definitions to determine the right
interpretation.

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


  Commit: aace1e1719a1610ce9fa93c7dae38a4272d7b6bf
      https://github.com/llvm/llvm-project/commit/aace1e1719a1610ce9fa93c7dae38a4272d7b6bf
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/include/flang/Parser/char-block.h
    M flang/lib/Semantics/resolve-names.cpp
    M flang/test/Semantics/resolve21.f90

  Log Message:
  -----------
  [flang] Improve error message with declaration (#87294)

When a program attempts to use a non-object entity as the base of a
component reference or type parameter inquiry, the message is somewhat
uninformative and the position of the entity's declaration will not
reflect any updates made to the symbol during name resolution.

Includes some NFC C++17 style clean-up on some code noticed while
debugging (missing mandatory braces).


  Commit: 97e3f605d5b574899d9f012032349bbf84c4dcfb
      https://github.com/llvm/llvm-project/commit/97e3f605d5b574899d9f012032349bbf84c4dcfb
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/docs/Extensions.md
    M flang/lib/Semantics/check-call.cpp
    A flang/test/Semantics/intrinsics04.f90

  Log Message:
  -----------
  [flang] Don't allow non-standard data conversions of potentially abse… (#87391)

…nt arguments

Arguments to the intrinsic functions MAX and MIN after the first two are
optional. When these actual arguments might not be present at run time,
emit a compilation time error if they require data conversion (a
non-standard but nearly universal language extension); such a conversion
would crash if the argument was absent.

Other compilers either disallow data conversions entirely on MAX/MIN or
crash at run time if a converted argument is absent.

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


  Commit: e1ad2735c3e7b0af94159f585458c7383255f03e
      https://github.com/llvm/llvm-project/commit/e1ad2735c3e7b0af94159f585458c7383255f03e
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/include/flang/Evaluate/common.h
    M flang/lib/Evaluate/check-expression.cpp
    M flang/lib/Evaluate/fold-implementation.h
    M flang/lib/Evaluate/fold-integer.cpp
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Semantics/mod-file.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/module/iso_fortran_env.f90
    A flang/test/Semantics/numeric_storage_size.f90
    M flang/tools/f18/CMakeLists.txt

  Log Message:
  -----------
  [flang] Clean up ISO_FORTRAN_ENV, fix NUMERIC_STORAGE_SIZE (#87566)

Address TODOs in the intrinsic module ISO_FORTRAN_ENV, and extend the
implementation of NUMERIC_STORAGE_SIZE so that the calculation of its
value is deferred until it is needed so that the effects of
-fdefault-integer-8 or -fdefault-real-8 are reflected. Emit a warning
when NUMERIC_STORAGE_SIZE is used from the module file and the default
integer and real sizes do not match.

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


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

  Changed paths:
    M llvm/test/CodeGen/AArch64/elf-globals-static.ll
    M llvm/test/CodeGen/AArch64/tagged-globals-pic.ll

  Log Message:
  -----------
  [test][AArch64][CodeGen] Delete redundant check lines (#87965)

llvm/test/CodeGen/AArch64/elf-globals-pic.ll:

Since https://reviews.llvm.org/D91734, elf-globals-static.ll test
contains several `CHECK-PIC` lines. They do not seem to bring any value
since there are no FileCheck run lines checking against this prefix. The
right place for such tests should be elf-globals-pic.ll, which already
contains check lines being deleted in this commit. Both
elf-globals-pic.ll and elf-globals-static.ll were created after
splitting arm64-elf-globals.ll in 6dbd0ea, and having `CHECK-PIC` lines
in elf-globals-static.ll seems like an issue occurred because of git
thinking that elf-globals-pic.ll is a new file and elf-global-static.ll
is a rename of arm64-elf-globals.ll.

llvm/test/CodeGen/AArch64/tagged-globals-pic.ll:

Similar to elf-globals-pic.ll, contains unneeded
`CHECK-SELECTIONDAGISEL` and `CHECK-GLOBALISEL` directives not checked
by any FileCheck invocation. These directives are present in
tagged-globals-static.ll. Both tests are present in the code tree since
fd32639 when tagged-globals.ll was splitted into
tagged-globals-{pic|static}.ll.


  Commit: 708c8cd7435002027a2cc9b99a0916a3dc255d63
      https://github.com/llvm/llvm-project/commit/708c8cd7435002027a2cc9b99a0916a3dc255d63
  Author: Axel Lundberg <19574357+Zonotora at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/docs/UndefinedBehaviorSanitizer.rst
    M clang/include/clang/Basic/Sanitizers.def
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CGExprScalar.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/test/CodeGen/catch-implicit-conversions-basics.c
    M clang/test/CodeGen/catch-implicit-conversions-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-arithmetic-value-change-basics.c
    M clang/test/CodeGen/catch-implicit-integer-arithmetic-value-change-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-conversions-basics.c
    M clang/test/CodeGen/catch-implicit-integer-conversions-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes-CompoundAssignOperator.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes-basics.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes-incdec.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes.c
    M clang/test/CodeGen/catch-implicit-integer-truncations-CompoundAssignOperator.c
    M clang/test/CodeGen/catch-implicit-integer-truncations-basics-negatives.c
    M clang/test/CodeGen/catch-implicit-integer-truncations-basics.c
    M clang/test/CodeGen/catch-implicit-integer-truncations-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-truncations.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncation-or-sign-change-CompoundAssignOperator.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncation-or-sign-change.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncations-basics-negatives.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncations-basics.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncations-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncations-incdec.c
    M clang/test/CodeGen/catch-implicit-unsigned-integer-truncations-basics-negatives.c
    M clang/test/CodeGen/catch-implicit-unsigned-integer-truncations-basics.c
    A clang/test/CodeGen/ubsan-bitfield-conversion.c
    A clang/test/CodeGenCXX/ubsan-bitfield-conversion.cpp
    M clang/test/Driver/fsanitize.c
    M compiler-rt/lib/ubsan/ubsan_handlers.cpp
    M compiler-rt/lib/ubsan/ubsan_handlers.h
    A compiler-rt/test/ubsan/TestCases/ImplicitConversion/bitfield-conversion.c

  Log Message:
  -----------
  Fix "[clang][UBSan] Add implicit conversion check for bitfields" (#87761)

Fix since #75481 got reverted.

- Explicitly set BitfieldBits to 0 to avoid uninitialized field member
for the integer checks:
```diff
-       llvm::ConstantInt::get(Builder.getInt8Ty(), Check.first)};
+      llvm::ConstantInt::get(Builder.getInt8Ty(), Check.first),
+      llvm::ConstantInt::get(Builder.getInt32Ty(), 0)};
```
- `Value **Previous` was erroneously `Value *Previous` in
`CodeGenFunction::EmitWithOriginalRHSBitfieldAssignment`, fixed now.
- Update following:
```diff
-     if (Kind == CK_IntegralCast) {
+     if (Kind == CK_IntegralCast || Kind == CK_LValueToRValue) {
```
CK_LValueToRValue when going from, e.g., char to char, and
CK_IntegralCast otherwise.
- Make sure that `Value *Previous = nullptr;` is initialized (see
https://github.com/llvm/llvm-project/commit/1189e87951e59a81ee097eae847c06008276fef1)
- Add another extensive testcase
`ubsan/TestCases/ImplicitConversion/bitfield-conversion.c`

---------

Co-authored-by: Vitaly Buka <vitalybuka at gmail.com>


  Commit: aa6a089c367e024921bae050b8999a7bc4d58f76
      https://github.com/llvm/llvm-project/commit/aa6a089c367e024921bae050b8999a7bc4d58f76
  Author: Mike Rice <michael.p.rice at intel.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    A clang/test/OpenMP/Inputs/nesting_of_regions.cpp
    R clang/test/OpenMP/nesting_of_regions.cpp
    A clang/test/OpenMP/nesting_of_regions_45.cpp
    A clang/test/OpenMP/nesting_of_regions_50.cpp
    A clang/test/OpenMP/nesting_of_regions_51.cpp
    A clang/test/OpenMP/nesting_of_regions_simd_45.cpp
    A clang/test/OpenMP/nesting_of_regions_simd_50.cpp

  Log Message:
  -----------
  [NFC][OpenMP] Split nesting_of_regions test (#87842)

This test is the bottleneck for OpenMP lit tests, running about twice as
long as the others. Break it into five tests based on run lines with the
same version.


  Commit: 01d9528ef989610e968386ea1f270698015d2410
      https://github.com/llvm/llvm-project/commit/01d9528ef989610e968386ea1f270698015d2410
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/extractelements-to-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/trunc-to-large-than-bw.ll
    M llvm/test/Transforms/SLPVectorizer/X86/int-bitcast-minbitwidth.ll

  Log Message:
  -----------
  [SLP]Improve final minbitwidth analysis attempt.

Added part for demanded bits analysis in the IsPotentiallyTruncated to
improve minbitwidth analysis final attempts.

Metric: size..text

Program                                                                                                                                                size..text
                                                                                                                                                       results     results0    diff
                                                                           test-suite :: MultiSource/Benchmarks/MiBench/telecomm-gsm/telecomm-gsm.test    43069.00    42973.00 -0.2%
                                                                                  test-suite :: MultiSource/Benchmarks/mediabench/gsm/toast/toast.test    43066.00    42970.00 -0.2%

Extra trunc instructions are emitted to operate with <32 x i8> instead
of <32 x i16>, will be removed in the next patches.

Reviewers: RKSimon

Reviewed By: RKSimon

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


  Commit: c23135c5488fbfaf6439433a10b3ddef33ff112c
      https://github.com/llvm/llvm-project/commit/c23135c5488fbfaf6439433a10b3ddef33ff112c
  Author: Leonard Grey <lgrey at chromium.org>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/AsmPrinter.h
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    M llvm/test/CodeGen/AArch64/func-sanitizer.ll
    M llvm/test/CodeGen/X86/func-sanitizer.ll

  Log Message:
  -----------
  -fsanitize=function: fix .subsections_via_symbols (#87527)

-fsanitize=function emits a signature and function hash before a
function. Similar to 7f6e2c9, these can be sheared off when
`.subsections_via_symbols` is used.

This change uses the same technique 7f6e2c9 introduced for prefixes:
emitting a symbol for the metadata, then marking the actual function
entry as an .alt_entry symbol.


  Commit: 3b43ae9a68256a77e8879a32a1670fd4b327802f
      https://github.com/llvm/llvm-project/commit/3b43ae9a68256a77e8879a32a1670fd4b327802f
  Author: Christopher Ferris <cferris1000 at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/tests/report_test.cpp

  Log Message:
  -----------
  [scudo] Remove end of line checks. (#88022)

The regex to verify that there is nothing else at the end of the line
doesn't work in all cases, so remove it.


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

  Changed paths:
    M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
    M mlir/test/Dialect/Arith/invalid.mlir
    M mlir/test/Dialect/Vector/linearize.mlir

  Log Message:
  -----------
  [mlir][arith] Refine the verifier for arith.constant (#87999)

Disallows initialization of scalable vectors with an attribute of
arbitrary values, e.g.:
```mlir
  %c = arith.constant dense<[0, 1]> : vector<[2] x i32>
```

Initialization using vector splats remains allowed (i.e. when all the
init values are identical):
```mlir
  %c = arith.constant dense<[1, 1]> : vector<[2] x i32>
```

Note: This is a re-upload of #86178


  Commit: 8671429151d5e67d3f21a737809953ae8bdfbfde
      https://github.com/llvm/llvm-project/commit/8671429151d5e67d3f21a737809953ae8bdfbfde
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/test/Headers/Inputs/include/stdint.h
    M openmp/runtime/src/CMakeLists.txt

  Log Message:
  -----------
  [Libomp] Place generated OpenMP headers into build resource directory (#88007)

Summary:
These headers are a part of the compiler's resource directory once
installed. However, they are currently placed in the binary directory
temporarily. This makes it more difficult to use the compiler out of the
build directory and will cause issues when moving to `liboffload`. This
patch changes the logic to write these instead to the copmiler's
resource directory inside of the build tree.

NOTE: This doesn't change the Fortran headers, I don't know enough about
those and it won't use the same directory.


  Commit: 1e6ce5e284f5c0e8d64eee21af727bb164eb3caf
      https://github.com/llvm/llvm-project/commit/1e6ce5e284f5c0e8d64eee21af727bb164eb3caf
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M libc/src/__support/FPUtil/generic/CMakeLists.txt
    M libc/src/__support/FPUtil/generic/FMod.h
    M libc/src/math/generic/CMakeLists.txt
    M libc/src/math/generic/exp_utils.cpp
    M libc/src/math/generic/explogxf.h
    R libc/src/math/generic/math_utils.cpp
    R libc/src/math/generic/math_utils.h
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [libc] Clean up unused math_utils.(h|cpp). (#88036)


  Commit: 119b9cdb388f33e78fbb2a73e244ec3031c7f84c
      https://github.com/llvm/llvm-project/commit/119b9cdb388f33e78fbb2a73e244ec3031c7f84c
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/ReductionProcessor.h

  Log Message:
  -----------
  [flang][omp] Heed valid build warning (#88015)

Address a bug found by a compiler warning, and thereby also fix -Werror
builds.


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

  Changed paths:
    M libc/test/src/CMakeLists.txt
    M libc/test/src/math/CMakeLists.txt
    M libc/test/src/math/FmaTest.h
    R libc/test/src/math/RandUtils.cpp
    R libc/test/src/math/RandUtils.h

  Log Message:
  -----------
  [libc] Remove RandUtils.(h|cpp). (#88044)


  Commit: 50a6738636d1b1dda0c5887cf0623ee084854272
      https://github.com/llvm/llvm-project/commit/50a6738636d1b1dda0c5887cf0623ee084854272
  Author: Nathan Sidwell <nathan at acm.org>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CodeGenTBAA.cpp
    M clang/lib/CodeGen/CodeGenTBAA.h

  Log Message:
  -----------
  [clang][NFC] Adjust TBAA Base Info API (#73263)

A couple of cleanups.

1) remove an unnecessary check from isValidBaseType.

2) Add a new internal entrypoint 'getValidBaseTypeInfo', for uses where the type is known to be valid.


  Commit: f5cf98c02655de50401f6547ea181efed6a4c1f1
      https://github.com/llvm/llvm-project/commit/f5cf98c02655de50401f6547ea181efed6a4c1f1
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/RISCV/prolog-epilogue.ll

  Log Message:
  -----------
  [RISCV] Improve test coverage for #87950

Noticed in review that we want both the LUI and LUI/ADDI cases
with different behavior for each.


  Commit: eb26edbbf8479aacac0b03413159c8836994a734
      https://github.com/llvm/llvm-project/commit/eb26edbbf8479aacac0b03413159c8836994a734
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
    M llvm/test/CodeGen/RISCV/prolog-epilogue.ll
    M llvm/test/CodeGen/RISCV/stack-offset.ll

  Log Message:
  -----------
  [RISCV] Exploit sh3add/sh2add for stack offsets by shifted 12-bit constants (#87950)

If we're falling back to generic constant formation in a register +
add/sub, we can check if we have a constant which is 12-bits but left
shifted by 2 or 3. If so, we can use a sh2add or sh3add to perform the
shift and add in a single instruction.

This is profitable when the unshifted constant would require two
instructions (LUI/ADDI) to form, but is never harmful since we're going
to need at least two instructions regardless of the constant value.

Since stacks are aligned to 16 bytes by default, sh3add allows addresing
(aligned) data out to 2^14 (i.e. 16kb) in at most two instructions
w/zba.


  Commit: 16b3e43a030b0322e0d81debba3d63f145c8fd0b
      https://github.com/llvm/llvm-project/commit/16b3e43a030b0322e0d81debba3d63f145c8fd0b
  Author: Danny Mösch <danny.moesch at icloud.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/cppcoreguidelines/MissingStdForwardCheck.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/missing-std-forward.cpp

  Log Message:
  -----------
  [clang-tidy] Ignore non-forwarded arguments if they are unused (#87832)


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

  Changed paths:
    M clang/lib/Headers/intrin.h
    M clang/lib/Headers/intrin0.h
    M clang/test/Headers/ms-intrin.cpp

  Log Message:
  -----------
  [ARM64EC] Fix compilation of intrin.h in ARM64EC mode. (#87717)

intrin.h checks for x86_64. But the "x86_64" define is also defined for
ARM64EC, and we don't support all the intrinsics in ARM64EC mode. Fix
the preprocessor checks to handle this correctly. (If we actually need
some of these intrinsics in ARM64EC mode, we can revisit later.)

Not exactly sure how I didn't run into this issue before now... I think
I've built code that requires these headers, but maybe not since the
define fix landed.


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

  Changed paths:
    M compiler-rt/test/ubsan/TestCases/ImplicitConversion/bitfield-conversion.c

  Log Message:
  -----------
  [test][UBSAN] Fix windows after #87761


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

  Changed paths:
    M clang/lib/Driver/ToolChains/Arch/AArch64.cpp
    M clang/test/Driver/aarch64-fixed-x-register.c
    M llvm/lib/Target/AArch64/AArch64.td
    M llvm/test/CodeGen/AArch64/arm64-platform-reg.ll

  Log Message:
  -----------
  Revert "[AArch64] Add support for -ffixed-x30" (#88019)

This reverts commit e770153865c53c4fd72a68f23acff33c24e42a08.

This wasn't reviewed, and the functionality in question was
intentionally rejected the last time it was discussed in
https://reviews.llvm.org/D56305 .


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

  Changed paths:
    M compiler-rt/test/ubsan/TestCases/ImplicitConversion/bitfield-conversion.c

  Log Message:
  -----------
  [test][UBSAN] Fix Solaris after #87761


  Commit: bee33770188f29d0369655c6d178c0bfb937e872
      https://github.com/llvm/llvm-project/commit/bee33770188f29d0369655c6d178c0bfb937e872
  Author: Jordan Rupprecht <rupprecht at google.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

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

  Log Message:
  -----------
  [bazel] Add `nobuildkite` tags for incompatible targets


  Commit: f94bbfed7cf08f60e20756dce8965d2c6ed70ea1
      https://github.com/llvm/llvm-project/commit/f94bbfed7cf08f60e20756dce8965d2c6ed70ea1
  Author: Max Winkler <max.enrico.winkler at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CGClass.cpp
    M clang/test/CodeGenCXX/skip-vtable-pointer-initialization.cpp

  Log Message:
  -----------
  [Clang][CodeGen] Fix `CanSkipVTablePointerInitialization` for dynamic classes with a trivial anonymous union (#84651)

Hit this when trying upgrade an old project of mine. I couldn't find a
corresponding existing issue for this when spelunking the open issues
here on github.
Thankfully I can work-around it today with the `[[clang::no_destroy]]`
attribute for my use case. However it should still be properly fixed.

### Issue and History ###

https://godbolt.org/z/EYnhce8MK for reference.
All subsequent text below refers to the example in the godbolt above.

Anonymous unions never have their destructor invoked automatically.
Therefore we can skip vtable initialization of the destructor of a
dynamic class if that destructor effectively does no work.

This worked previously as the following check would be hit and return
true for the trivial anonymous union,
https://github.com/llvm/llvm-project/blob/release/18.x/clang/lib/CodeGen/CGClass.cpp#L1348,
resulting in the code skipping vtable initialization.

This was broken here
https://github.com/llvm/llvm-project/commit/982bbf404eba2d968afda5c674d4821652159c53
in relation to comments made on this review here
https://reviews.llvm.org/D10508.

### Fixes ###

The check the code is doing is correct however the return value is
inverted. We want to return true here since a field with anonymous union
never has its destructor invoked and thus effectively has a trivial
destructor body from the perspective of requiring vtable init in the
parent dynamic class.

Also added some extra missing unit tests to test for this use case and a
couple others.


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

  Changed paths:
    M compiler-rt/test/ubsan/TestCases/ImplicitConversion/bitfield-conversion.c

  Log Message:
  -----------
  [test][UBSAN] Simplify regex in the test


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

  Changed paths:
    M llvm/lib/Target/TargetMachine.cpp
    M llvm/test/CodeGen/X86/code-model-elf-text-sections.ll

  Log Message:
  -----------
  [X86] Change how we treat functions with explicit sections as small/large (#87838)

Following #78348, we should treat functions with an explicit section as
small, unless the section name is (or has the prefix) ".ltext".

Clang emits global initializers into a ".text.startup" section on Linux.
If we mix small/medium code model object files with large code model
object files, we'll end up mixing sections with and without the large
section flag.


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

  Changed paths:
    M bolt/lib/Core/Relocation.cpp
    M clang-tools-extra/clang-tidy/cppcoreguidelines/MissingStdForwardCheck.cpp
    M clang-tools-extra/clang-tidy/readability/AvoidReturnWithVoidValueCheck.cpp
    M clang-tools-extra/clang-tidy/readability/BracesAroundStatementsCheck.cpp
    M clang-tools-extra/clang-tidy/readability/BracesAroundStatementsCheck.h
    A clang-tools-extra/clang-tidy/utils/BracesAroundStatement.cpp
    A clang-tools-extra/clang-tidy/utils/BracesAroundStatement.h
    M clang-tools-extra/clang-tidy/utils/CMakeLists.txt
    M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/missing-std-forward.cpp
    M clang-tools-extra/test/clang-tidy/checkers/readability/avoid-return-with-void-value.cpp
    M clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming.cpp
    M clang/docs/ReleaseNotes.rst
    M clang/docs/UndefinedBehaviorSanitizer.rst
    M clang/docs/analyzer/checkers.rst
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Basic/Sanitizers.def
    M clang/include/clang/Driver/Options.td
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/Sema.h
    A clang/include/clang/Sema/SemaBase.h
    A clang/include/clang/Sema/SemaHLSL.h
    M clang/include/clang/Sema/SemaOpenACC.h
    M clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/TextNodeDumper.cpp
    M clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
    M clang/lib/CodeGen/CGClass.cpp
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CGExprScalar.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/lib/CodeGen/CodeGenTBAA.cpp
    M clang/lib/CodeGen/CodeGenTBAA.h
    M clang/lib/Driver/ToolChains/AIX.cpp
    M clang/lib/Driver/ToolChains/Arch/AArch64.cpp
    M clang/lib/Driver/ToolChains/Cuda.cpp
    M clang/lib/Format/FormatTokenLexer.cpp
    M clang/lib/Format/FormatTokenSource.h
    M clang/lib/Format/TokenAnnotator.cpp
    M clang/lib/Format/UnwrappedLineParser.cpp
    M clang/lib/Format/WhitespaceManager.cpp
    M clang/lib/Headers/intrin.h
    M clang/lib/Headers/intrin0.h
    M clang/lib/InstallAPI/DiagnosticBuilderWrappers.cpp
    M clang/lib/Parse/ParseHLSL.cpp
    M clang/lib/Parse/ParseOpenACC.cpp
    M clang/lib/Sema/CMakeLists.txt
    M clang/lib/Sema/Sema.cpp
    A clang/lib/Sema/SemaBase.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaHLSL.cpp
    M clang/lib/Sema/SemaOpenACC.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
    M clang/test/Analysis/analyzer-config.c
    M clang/test/Analysis/std-c-library-functions-vs-stream-checker.c
    M clang/test/Analysis/stream-errno-note.c
    M clang/test/Analysis/stream-errno.c
    M clang/test/Analysis/stream-error.c
    M clang/test/Analysis/stream-note.c
    A clang/test/Analysis/stream-pedantic.c
    M clang/test/Analysis/stream-stdlibraryfunctionargs.c
    M clang/test/Analysis/stream.c
    A clang/test/CXX/drs/dr392.cpp
    M clang/test/CXX/drs/dr3xx.cpp
    M clang/test/CXX/drs/dr4xx.cpp
    A clang/test/CXX/drs/dr593.cpp
    M clang/test/CXX/drs/dr5xx.cpp
    A clang/test/CXX/drs/dr605.cpp
    A clang/test/CXX/drs/dr650.cpp
    A clang/test/CXX/drs/dr653.cpp
    A clang/test/CXX/drs/dr658.cpp
    A clang/test/CXX/drs/dr661.cpp
    A clang/test/CXX/drs/dr672.cpp
    M clang/test/CXX/drs/dr6xx.cpp
    M clang/test/CodeGen/catch-implicit-conversions-basics.c
    M clang/test/CodeGen/catch-implicit-conversions-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-arithmetic-value-change-basics.c
    M clang/test/CodeGen/catch-implicit-integer-arithmetic-value-change-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-conversions-basics.c
    M clang/test/CodeGen/catch-implicit-integer-conversions-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes-CompoundAssignOperator.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes-basics.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes-incdec.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes.c
    M clang/test/CodeGen/catch-implicit-integer-truncations-CompoundAssignOperator.c
    M clang/test/CodeGen/catch-implicit-integer-truncations-basics-negatives.c
    M clang/test/CodeGen/catch-implicit-integer-truncations-basics.c
    M clang/test/CodeGen/catch-implicit-integer-truncations-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-truncations.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncation-or-sign-change-CompoundAssignOperator.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncation-or-sign-change.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncations-basics-negatives.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncations-basics.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncations-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncations-incdec.c
    M clang/test/CodeGen/catch-implicit-unsigned-integer-truncations-basics-negatives.c
    M clang/test/CodeGen/catch-implicit-unsigned-integer-truncations-basics.c
    A clang/test/CodeGen/ubsan-bitfield-conversion.c
    M clang/test/CodeGenCXX/skip-vtable-pointer-initialization.cpp
    A clang/test/CodeGenCXX/ubsan-bitfield-conversion.cpp
    M clang/test/Driver/aarch64-fixed-x-register.c
    M clang/test/Driver/cuda-external-tools.cu
    M clang/test/Driver/fsanitize.c
    M clang/test/Driver/riscv-profiles.c
    M clang/test/Headers/Inputs/include/stdint.h
    M clang/test/Headers/ms-intrin.cpp
    A clang/test/OpenMP/Inputs/nesting_of_regions.cpp
    R clang/test/OpenMP/nesting_of_regions.cpp
    A clang/test/OpenMP/nesting_of_regions_45.cpp
    A clang/test/OpenMP/nesting_of_regions_50.cpp
    A clang/test/OpenMP/nesting_of_regions_51.cpp
    A clang/test/OpenMP/nesting_of_regions_simd_45.cpp
    A clang/test/OpenMP/nesting_of_regions_simd_50.cpp
    M clang/test/ParserOpenACC/parse-clauses.c
    M clang/test/ParserOpenACC/parse-clauses.cpp
    M clang/test/ParserOpenACC/parse-wait-clause.c
    M clang/test/Preprocessor/riscv-target-features.c
    M clang/test/SemaCXX/type-traits.cpp
    M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
    M clang/unittests/Format/FormatTestTableGen.cpp
    M clang/unittests/Interpreter/InterpreterExtensionsTest.cpp
    M clang/utils/TableGen/MveEmitter.cpp
    M clang/www/cxx_dr_status.html
    M compiler-rt/lib/scudo/standalone/tests/report_test.cpp
    M compiler-rt/lib/ubsan/ubsan_handlers.cpp
    M compiler-rt/lib/ubsan/ubsan_handlers.h
    A compiler-rt/test/ubsan/TestCases/ImplicitConversion/bitfield-conversion.c
    M flang/docs/Extensions.md
    M flang/include/flang/Evaluate/common.h
    M flang/include/flang/Optimizer/Builder/FIRBuilder.h
    M flang/include/flang/Parser/char-block.h
    M flang/include/flang/Runtime/freestanding-tools.h
    M flang/lib/Decimal/decimal-to-binary.cpp
    M flang/lib/Evaluate/check-expression.cpp
    M flang/lib/Evaluate/fold-implementation.h
    M flang/lib/Evaluate/fold-integer.cpp
    M flang/lib/Evaluate/fold-reduction.h
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Lower/Allocatable.cpp
    M flang/lib/Lower/ConvertVariable.cpp
    M flang/lib/Lower/DirectivesCommon.h
    M flang/lib/Lower/OpenMP/ReductionProcessor.cpp
    M flang/lib/Lower/OpenMP/ReductionProcessor.h
    M flang/lib/Optimizer/Builder/FIRBuilder.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/Builder/PPCIntrinsicCall.cpp
    M flang/lib/Semantics/check-call.cpp
    M flang/lib/Semantics/check-cuda.cpp
    M flang/lib/Semantics/mod-file.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/module/iso_fortran_env.f90
    M flang/test/Driver/msvc-dependent-lib-flags.f90
    A flang/test/Evaluate/folding32.f90
    M flang/test/Lower/Intrinsics/maskl.f90
    M flang/test/Lower/Intrinsics/maskr.f90
    A flang/test/Lower/OpenMP/parallel-reduction-complex-mul.f90
    A flang/test/Lower/OpenMP/parallel-reduction-complex.f90
    A flang/test/Lower/allocate-source-allocatables-2.f90
    M flang/test/Semantics/cuf09.cuf
    A flang/test/Semantics/intrinsics04.f90
    A flang/test/Semantics/numeric_storage_size.f90
    M flang/test/Semantics/resolve21.f90
    M flang/test/Semantics/resolve29.f90
    M flang/tools/f18/CMakeLists.txt
    M libc/cmake/modules/LLVMLibCCheckMPFR.cmake
    M libc/fuzzing/__support/CMakeLists.txt
    M libc/fuzzing/__support/uint_fuzz.cpp
    M libc/hdr/math_macros.h
    M libc/src/__support/CMakeLists.txt
    M libc/src/__support/FPUtil/BasicOperations.h
    M libc/src/__support/FPUtil/CMakeLists.txt
    M libc/src/__support/FPUtil/FPBits.h
    M libc/src/__support/FPUtil/Hypot.h
    M libc/src/__support/FPUtil/dyadic_float.h
    M libc/src/__support/FPUtil/generic/CMakeLists.txt
    M libc/src/__support/FPUtil/generic/FMA.h
    M libc/src/__support/FPUtil/generic/FMod.h
    M libc/src/__support/FPUtil/generic/sqrt.h
    M libc/src/__support/FPUtil/generic/sqrt_80_bit_long_double.h
    R libc/src/__support/UInt.h
    R libc/src/__support/UInt128.h
    A libc/src/__support/big_int.h
    M libc/src/__support/float_to_string.h
    M libc/src/__support/hash.h
    M libc/src/__support/integer_literals.h
    M libc/src/__support/integer_to_string.h
    M libc/src/__support/str_to_float.h
    M libc/src/__support/str_to_integer.h
    A libc/src/__support/uint128.h
    M libc/src/math/generic/CMakeLists.txt
    M libc/src/math/generic/exp_utils.cpp
    M libc/src/math/generic/explogxf.h
    M libc/src/math/generic/log1p.cpp
    M libc/src/math/generic/log_range_reduction.h
    R libc/src/math/generic/math_utils.cpp
    R libc/src/math/generic/math_utils.h
    M libc/src/stdio/printf_core/CMakeLists.txt
    M libc/src/stdio/printf_core/float_dec_converter.h
    M libc/test/UnitTest/CMakeLists.txt
    M libc/test/UnitTest/LibcDeathTestExecutors.cpp
    M libc/test/UnitTest/LibcTest.cpp
    M libc/test/UnitTest/StringUtils.h
    M libc/test/UnitTest/TestLogger.cpp
    M libc/test/src/CMakeLists.txt
    M libc/test/src/__support/CMakeLists.txt
    M libc/test/src/__support/CPP/CMakeLists.txt
    M libc/test/src/__support/CPP/bit_test.cpp
    M libc/test/src/__support/CPP/limits_test.cpp
    M libc/test/src/__support/FPUtil/dyadic_float_test.cpp
    A libc/test/src/__support/big_int_test.cpp
    M libc/test/src/__support/high_precision_decimal_test.cpp
    M libc/test/src/__support/integer_to_string_test.cpp
    M libc/test/src/__support/math_extras_test.cpp
    M libc/test/src/__support/str_to_fp_test.h
    R libc/test/src/__support/uint_test.cpp
    M libc/test/src/math/CMakeLists.txt
    M libc/test/src/math/FmaTest.h
    R libc/test/src/math/RandUtils.cpp
    R libc/test/src/math/RandUtils.h
    M libc/test/src/math/log1p_test.cpp
    M libc/test/src/math/smoke/nanf128_test.cpp
    M libc/test/src/stdlib/strtold_test.cpp
    M libc/utils/MPFRWrapper/CMakeLists.txt
    M libclc/CMakeLists.txt
    M libcxx/benchmarks/CMakeLists.txt
    A libcxx/benchmarks/algorithms/minmax.bench.cpp
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx23Issues.csv
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/docs/Status/FormatIssues.csv
    M libcxx/docs/Status/FormatPaper.csv
    M libcxx/include/__algorithm/comp.h
    M libcxx/include/__algorithm/ranges_minmax.h
    M libcxx/include/__functional/operations.h
    M libcxx/include/__functional/ranges_operations.h
    M libcxx/include/__type_traits/desugars_to.h
    M libcxx/include/fstream
    M libcxx/include/ostream
    M libcxx/include/print
    M libcxx/test/std/input.output/file.streams/fstreams/fstream.cons/path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/path.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.formatted.print/locale-specific_form.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.formatted.print/println.pass.cpp
    M libcxx/test/std/input.output/iostream.format/print.fun/no_file_description.pass.cpp
    A libcxx/test/std/input.output/iostream.format/print.fun/println.blank_line.sh.cpp
    M libcxx/test/std/input.output/iostream.format/print.fun/println.file.pass.cpp
    M libcxx/test/support/test_macros.h
    M lldb/cmake/caches/Apple-lldb-Linux.cmake
    M llvm/cmake/modules/AddLLVM.cmake
    M llvm/docs/CMake.rst
    M llvm/docs/LangRef.rst
    M llvm/docs/RISCVUsage.rst
    M llvm/include/llvm/ADT/ADL.h
    M llvm/include/llvm/ADT/STLExtras.h
    M llvm/include/llvm/CodeGen/AsmPrinter.h
    M llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
    M llvm/include/llvm/ExecutionEngine/Orc/Core.h
    M llvm/include/llvm/Object/GOFF.h
    M llvm/include/llvm/Object/GOFFObjectFile.h
    M llvm/include/llvm/Passes/CodeGenPassBuilder.h
    M llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/AsmParser/LLParser.cpp
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    M llvm/lib/CodeGen/AtomicExpandPass.cpp
    M llvm/lib/CodeGen/ExpandLargeFpConvert.cpp
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    M llvm/lib/CodeGen/MachineBasicBlock.cpp
    M llvm/lib/CodeGen/MachinePipeliner.cpp
    M llvm/lib/CodeGen/MachineVerifier.cpp
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/lib/ExecutionEngine/Orc/Core.cpp
    M llvm/lib/IR/Verifier.cpp
    M llvm/lib/Object/GOFFObjectFile.cpp
    M llvm/lib/ProfileData/InstrProfWriter.cpp
    M llvm/lib/ProfileData/MemProf.cpp
    M llvm/lib/Support/RISCVISAInfo.cpp
    M llvm/lib/Target/AArch64/AArch64.td
    M llvm/lib/Target/AArch64/AArch64Combine.td
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64InstrAtomics.td
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64LoopIdiomTransform.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
    M llvm/lib/Target/RISCV/RISCVFeatures.td
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.h
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoZcmop.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoZimop.td
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.h
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.td
    M llvm/lib/Target/TargetMachine.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86SelectionDAGInfo.cpp
    M llvm/lib/Transforms/Scalar/NewGVN.cpp
    M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/lib/Transforms/Vectorize/VPlan.h
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/test/Analysis/CostModel/AArch64/shuffle-other.ll
    A llvm/test/Analysis/CostModel/AArch64/shuffle-store.ll
    A llvm/test/Analysis/LoopAccessAnalysis/non-constant-strides-backward.ll
    A llvm/test/Analysis/LoopAccessAnalysis/non-constant-strides-forward.ll
    A llvm/test/Analysis/LoopAccessAnalysis/positive-dependence-distance-different-access-sizes.ll
    M llvm/test/Assembler/atomic.ll
    A llvm/test/Assembler/invalid-atomicrmw-scalable.ll
    A llvm/test/Assembler/invalid-atomicrmw-xchg-fp-vector.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/call-translator-tail-call-sret.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-build-vector.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-extract-vec-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-icmp-to-lhs-known-bits.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-insert-vec-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/constant-dbg-loc.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-store-metadata.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-cmp.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-extract-vector-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-insert-vector-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-phi.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-lowering-shuffle-splat.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/prelegalizer-combiner-icmp-to-true-false-known-bits.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/regbank-insert-vector-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/select-insert-vector-elt.mir
    M llvm/test/CodeGen/AArch64/aarch64-bit-gen.ll
    M llvm/test/CodeGen/AArch64/aarch64-known-bits-hadd.ll
    M llvm/test/CodeGen/AArch64/aarch64-minmaxv.ll
    M llvm/test/CodeGen/AArch64/arm64-neon-copy.ll
    M llvm/test/CodeGen/AArch64/arm64-platform-reg.ll
    A llvm/test/CodeGen/AArch64/atomicrmw-fadd-fp-vector.ll
    M llvm/test/CodeGen/AArch64/elf-globals-static.ll
    M llvm/test/CodeGen/AArch64/func-sanitizer.ll
    M llvm/test/CodeGen/AArch64/insertextract.ll
    M llvm/test/CodeGen/AArch64/sve-nontemporal-masked-ldst.ll
    M llvm/test/CodeGen/AArch64/tagged-globals-pic.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-extract-vector-load.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-non-integral-address-spaces-vectors.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-extract-vector-elt.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-extractelement-crash.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-insert-vector-elt.mir
    M llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-fdiv.ll
    M llvm/test/CodeGen/AMDGPU/fptoi.i128.ll
    A llvm/test/CodeGen/AMDGPU/itofp.i128.bf.ll
    M llvm/test/CodeGen/AMDGPU/itofp.i128.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/insertelement.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/shufflevector.ll
    M llvm/test/CodeGen/RISCV/attributes.ll
    A llvm/test/CodeGen/RISCV/prolog-epilogue.ll
    M llvm/test/CodeGen/RISCV/rv32zimop-intrinsic.ll
    M llvm/test/CodeGen/RISCV/rv64zimop-intrinsic.ll
    M llvm/test/CodeGen/RISCV/rvv/vfmv.v.f.ll
    M llvm/test/CodeGen/RISCV/rvv/vmv-copy.mir
    M llvm/test/CodeGen/RISCV/rvv/zvlsseg-copy.mir
    A llvm/test/CodeGen/RISCV/stack-offset.ll
    M llvm/test/CodeGen/X86/GlobalISel/irtranslator-callingconv.ll
    A llvm/test/CodeGen/X86/atomicrmw-fadd-fp-vector.ll
    M llvm/test/CodeGen/X86/avx512-insert-extract.ll
    M llvm/test/CodeGen/X86/code-model-elf-text-sections.ll
    M llvm/test/CodeGen/X86/fsafdo_test1.ll
    M llvm/test/CodeGen/X86/func-sanitizer.ll
    M llvm/test/CodeGen/X86/i128-fpconv-win64-strict.ll
    M llvm/test/CodeGen/X86/insertelement-var-index.ll
    M llvm/test/CodeGen/X86/memset-minsize.ll
    M llvm/test/CodeGen/X86/movmsk-cmp.ll
    M llvm/test/CodeGen/X86/pr63439.ll
    M llvm/test/CodeGen/X86/pr64439.ll
    M llvm/test/CodeGen/X86/strict-fadd-combines.ll
    M llvm/test/CodeGen/X86/strict-fsub-combines.ll
    M llvm/test/CodeGen/X86/vec_cast.ll
    M llvm/test/MC/RISCV/attribute-arch.s
    M llvm/test/MC/RISCV/compressed-zicfiss.s
    M llvm/test/MC/RISCV/rv32zcmop-invalid.s
    M llvm/test/MC/RISCV/rv32zimop-invalid.s
    M llvm/test/MC/RISCV/rvzcmop-valid.s
    M llvm/test/MC/RISCV/rvzimop-valid.s
    A llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomicrmw-fp-vector.ll
    M llvm/test/Transforms/Attributor/nofpclass.ll
    M llvm/test/Transforms/LoopIdiom/AArch64/byte-compare-index.ll
    A llvm/test/Transforms/LoopLoadElim/non-const-distance.ll
    A llvm/test/Transforms/LoopVectorize/AArch64/induction-costs.ll
    A llvm/test/Transforms/LoopVectorize/X86/induction-costs.ll
    M llvm/test/Transforms/LoopVectorize/global_alias.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/extractelements-to-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/reductions.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/trunc-to-large-than-bw.ll
    M llvm/test/Transforms/SLPVectorizer/X86/int-bitcast-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-drop-wrapping-flags.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-transformed-operand.ll
    M llvm/test/tools/llvm-objdump/ELF/dynamic-malformed.test
    A llvm/test/tools/llvm-profdata/memprof-merge-v0.test
    M llvm/test/tools/llvm-reduce/reduce-flags.ll
    M llvm/tools/llvm-objdump/ELFDump.cpp
    M llvm/tools/llvm-reduce/deltas/ReduceInstructionFlags.cpp
    M llvm/unittests/ADT/IteratorTest.cpp
    M llvm/unittests/ADT/RangeAdapterTest.cpp
    M llvm/unittests/ADT/STLExtrasTest.cpp
    M llvm/unittests/Analysis/ValueTrackingTest.cpp
    M llvm/unittests/IR/VerifierTest.cpp
    M llvm/unittests/Object/GOFFObjectFileTest.cpp
    M llvm/unittests/Support/RISCVISAInfoTest.cpp
    M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
    M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
    M mlir/include/mlir/Interfaces/ValueBoundsOpInterface.h
    M mlir/include/mlir/Target/LLVMIR/LLVMImportInterface.h
    M mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
    M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
    M mlir/lib/Dialect/Arith/IR/ValueBoundsOpInterfaceImpl.cpp
    M mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
    M mlir/lib/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.cpp
    M mlir/lib/Dialect/Utils/StructuredOpsUtils.cpp
    M mlir/lib/Dialect/Vector/IR/ScalableValueBoundsConstraintSet.cpp
    M mlir/lib/Interfaces/ValueBoundsOpInterface.cpp
    M mlir/lib/Target/LLVMIR/DebugImporter.cpp
    M mlir/lib/Target/LLVMIR/DebugImporter.h
    M mlir/lib/Target/LLVMIR/DebugTranslation.cpp
    M mlir/lib/Target/LLVMIR/ModuleImport.cpp
    M mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir
    M mlir/test/Dialect/Arith/invalid.mlir
    M mlir/test/Dialect/Arith/value-bounds-op-interface-impl.mlir
    M mlir/test/Dialect/SCF/value-bounds-op-interface-impl.mlir
    M mlir/test/Dialect/Vector/linearize.mlir
    M mlir/test/Target/LLVMIR/Import/debug-info.ll
    A mlir/test/Target/LLVMIR/Import/test.ll
    M mlir/test/Target/LLVMIR/llvmir-debug.mlir
    M mlir/test/lib/Dialect/Test/CMakeLists.txt
    A mlir/test/lib/Dialect/Test/TestFromLLVMIRTranslation.cpp
    M mlir/test/mlir-tblgen/op-decl-and-defs.td
    M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
    M mlir/tools/mlir-translate/mlir-translate.cpp
    M openmp/runtime/src/CMakeLists.txt
    M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/UnitTest/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/__support/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/__support/CPP/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/__support/FPUtil/BUILD.bazel
    M utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
    M utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
    M utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/config.h
    M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel
    M utils/bazel/llvm_configs/config.h.cmake

  Log Message:
  -----------
  .

Created using spr 1.3.5-bogner


Compare: https://github.com/llvm/llvm-project/compare/2847b8be2e49...97ceafea005f

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