[all-commits] [llvm/llvm-project] f3ec73: [NFC]Precommit test for vtable import (#79363)

Alexey Bataev via All-commits all-commits at lists.llvm.org
Fri Apr 5 09:28:17 PDT 2024


  Branch: refs/heads/users/alexey-bataev/spr/slpimprove-minbitwidth-analysis-for-abssminsmaxuminumax
  Home:   https://github.com/llvm/llvm-project
  Commit: f3ec73fca492124b15c3eb9a3ae12b7d86470d27
      https://github.com/llvm/llvm-project/commit/f3ec73fca492124b15c3eb9a3ae12b7d86470d27
  Author: Mingming Liu <mingmingl at google.com>
  Date:   2024-04-01 (Mon, 01 Apr 2024)

  Changed paths:
    A llvm/test/Bitcode/thinlto-func-summary-vtableref-pgo.ll

  Log Message:
  -----------
  [NFC]Precommit test for vtable import  (#79363)

A precommit test case to show function summary and global values when a function has instructions annotated with vtable profiles and indirect call profiles.
- This is a precommit test for https://github.com/llvm/llvm-project/pull/79381


  Commit: cbd48b184eca1ca73e6f20575501d94ad30fbd58
      https://github.com/llvm/llvm-project/commit/cbd48b184eca1ca73e6f20575501d94ad30fbd58
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-04-01 (Mon, 01 Apr 2024)

  Changed paths:
    A clang/test/C/C99/array-lvalue.c
    M clang/www/c_status.html

  Log Message:
  -----------
  [C99] Claim conformance to "conversion of array to pointer not limited to lvalues"

We don't have a document number for this, but the change was called out
explicitly in the editor's comments in the C99 foreword.


  Commit: 4cd7bb07c7540bf83a7a60a67aa282e99461ca2f
      https://github.com/llvm/llvm-project/commit/4cd7bb07c7540bf83a7a60a67aa282e99461ca2f
  Author: Kirill Podoprigora <kirill.bast9 at mail.ru>
  Date:   2024-04-01 (Mon, 01 Apr 2024)

  Changed paths:
    M mlir/python/requirements.txt

  Log Message:
  -----------
  [mlir] Remove ``dataclasses`` package from mlir ``requirements.txt`` (#87223)

The ``dataclasses`` package makes sense for Python 3.6, becauses
``dataclasses`` is only included in the standard library with 3.7
version. Now, 3.6 has reached EOL, so all current supported versions of
Python (3.8, 3.9, 3.10, 3.11, 3.12) have this feature in their standard
libraries.

Therefore there's no need to install the ``dataclasses`` package now.


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

  Changed paths:
    M clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
    M clang/test/CodeGenCXX/bitfield-access-tail.cpp

  Log Message:
  -----------
  [clang] Fix bitfield access unit for vbase corner case (#87238)

This fixes #87227, a vbase can be placed below nvsize when empty members and/or bases are in play. We must account for that.


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

  Changed paths:
    M compiler-rt/lib/scudo/standalone/common.h
    M compiler-rt/lib/scudo/standalone/stack_depot.h
    M compiler-rt/lib/scudo/standalone/wrappers_c_checks.h

  Log Message:
  -----------
  [scudo] Change isPowerOfTwo macro to return false for zero. (#87120)

Clean-up all of the calls and remove the redundant == 0 checks.

There is only one small visible change. For non-Android, the memalign
function will now fail if alignment is zero. Before this would have
passed.


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

  Changed paths:
    M clang/lib/CodeGen/BackendUtil.cpp
    M clang/lib/CodeGen/CGExpr.cpp

  Log Message:
  -----------
  [ubsan][NFC] Remove recently added `cl::init(false)`

Extracted from #84858


  Commit: b8cc3ba409dc850776f37e27613bf74f5a80d66a
      https://github.com/llvm/llvm-project/commit/b8cc3ba409dc850776f37e27613bf74f5a80d66a
  Author: Lei Wang <wlei at fb.com>
  Date:   2024-04-01 (Mon, 01 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/EHUtils.h
    M llvm/include/llvm/Transforms/IPO/SampleProfileProbe.h
    M llvm/lib/Transforms/IPO/SampleProfileProbe.cpp
    M llvm/test/ThinLTO/X86/pseudo-probe-desc-import.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-eh.ll
    A llvm/test/Transforms/SampleProfile/pseudo-probe-invoke.ll

  Log Message:
  -----------
  [PseudoProbe] Extend to skip instrumenting probe into the dests of invoke (#79919)

As before we only skip instrumenting probe of `unwind`(`KnownColdBlock`)
block, this PR extends to skip the both EH flow from `invoke`, i.e. also
skip the `normal` dest. For more contexts: when doing call-to-invoke
conversion, the block is split by the `invoke` and two extra
blocks(`normal` and `unwind`) are added. With this PR, the
instrumentation is the same as the one before the call-to-invoke
conversion.
One significant benefit is this can help mitigate the "unstable IR"
issue(https://discourse.llvm.org/t/ipo-for-linkonce-odr-functions/69404),
the two versions now are on the same probe instrumentation, expected to
be the same checksum.
To achieve the same checksum, some tweaks is needed:
-  Now it also skips incrementing the probe ID for the skipped probe.
- The checksum is also computed based on the CFG that skips the EH
edges.

We observed this fixes ~5% mismatched samples.


  Commit: f2f01f6b03aa81d5bdbf841a88f8853620c6902b
      https://github.com/llvm/llvm-project/commit/f2f01f6b03aa81d5bdbf841a88f8853620c6902b
  Author: Jeff Niu <jeff at modular.com>
  Date:   2024-04-01 (Mon, 01 Apr 2024)

  Changed paths:
    M llvm/lib/Support/Unix/Threading.inc

  Log Message:
  -----------
  [llvm][Support] Use `thread_local` caching for llvm::get_threadid() query on Apple systems (#87219)

I was profiling our compiler and noticed that `llvm::get_threadid` was
at the top of the hotlist, taking up a surprising 5% (7 seconds) in the
profile trace. It seems that computing this on MacOS systems is
non-trivial, so cache the result in a thread_local.

Co-authored-by: Mehdi Amini <joker.eph at gmail.com>


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

  Changed paths:
    M lldb/source/Breakpoint/BreakpointIDList.cpp
    M lldb/test/API/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py

  Log Message:
  -----------
  [lldb] Don't crash when attempting to parse breakpoint id `N.` as `N.*` (#87263)

We check if the next character after `N.` is `*` before we check its
length. Using `split` on the string is cleaner and less error prone than
using indices with `find` and `substr`.

Note: this does not make `N.` mean anything, it just prevents assertion
failures. `N.` is treated the same as an unrecognized breakpoint name:

```
(lldb) breakpoint enable 1
1 breakpoints enabled.
(lldb) breakpoint enable 1.*
1 breakpoints enabled.
(lldb) breakpoint enable 1.
0 breakpoints enabled.
(lldb) breakpoint enable xyz
0 breakpoints enabled.
```

Found via LLDB fuzzers.


  Commit: 03577ced1f55bf96224513f2414bf025d6877fac
      https://github.com/llvm/llvm-project/commit/03577ced1f55bf96224513f2414bf025d6877fac
  Author: Maksim Panchenko <maks at fb.com>
  Date:   2024-04-01 (Mon, 01 Apr 2024)

  Changed paths:
    M bolt/include/bolt/Core/BinaryFunction.h

  Log Message:
  -----------
  [BOLT][NFC] Fix typo


  Commit: 70e189fbc96909d3841dd2bca4a2909345cd826f
      https://github.com/llvm/llvm-project/commit/70e189fbc96909d3841dd2bca4a2909345cd826f
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2024-04-01 (Mon, 01 Apr 2024)

  Changed paths:
    M libc/test/src/stdio/ftell_test.cpp

  Log Message:
  -----------
  [libc] fixup ftello test (#87282)

Use a seek offset that fits within the file size.

This was missed in presubmit because the FILE based stdio tests aren't
run in
overlay mode; fullbuild is not tested in presubmit.

WRITE_SIZE == 11, so using a value of 42 for offseto would cause the
expression
`WRITE_SIZE - offseto` to evaluate to -31 as an unsigned 64b integer
(18446744073709551585ULL).

Fixes #86928


  Commit: 6b136ce738d1acc96d926d7999419867dea16961
      https://github.com/llvm/llvm-project/commit/6b136ce738d1acc96d926d7999419867dea16961
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2024-04-01 (Mon, 01 Apr 2024)

  Changed paths:
    M .github/workflows/issue-write.yml

  Log Message:
  -----------
  [workflows] issue-write: Exit early if there are no comments (#87114)

This will eliminate some unnecessary REST API calls.


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

  Changed paths:
    M llvm/include/llvm/Object/ELFTypes.h

  Log Message:
  -----------
  [Object,ELFTypes] Remove TargetEndianness

Finish the rename by #86604


  Commit: 1d5e5f4d3c68e63ced47ee9b17d62fb995aa1e62
      https://github.com/llvm/llvm-project/commit/1d5e5f4d3c68e63ced47ee9b17d62fb995aa1e62
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-01 (Mon, 01 Apr 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h

  Log Message:
  -----------
  [GISEL][NFC] Fix comment for widenScalarToNextPow2

The docstring for this function incorrectly specified when a widening is
not performed. This patch adds the additional specification for what
happens when the type size is a power of two but it is less than MinSize.


  Commit: 1e15371dd8843dfc52b9435afaa133997c1773d8
      https://github.com/llvm/llvm-project/commit/1e15371dd8843dfc52b9435afaa133997c1773d8
  Author: Mingming Liu <mingmingl at google.com>
  Date:   2024-04-01 (Mon, 01 Apr 2024)

  Changed paths:
    M llvm/include/llvm/ProfileData/InstrProf.h
    M llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp
    M llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
    M llvm/lib/ProfileData/InstrProf.cpp
    M llvm/test/Bitcode/thinlto-func-summary-vtableref-pgo.ll

  Log Message:
  -----------
  [ThinLTO][TypeProf] Implement vtable def import (#79381)

Add annotated vtable GUID as referenced variables in per function
summary, and update bitcode writer to create value-ids for these
referenced vtables.

- This is the part3 of type profiling work, and described in the "Virtual Table Definition Import" [1] section of the
RFC.

[1] https://github.com/llvm/llvm-project/pull/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


  Commit: 649f9603a2da82a32830ce1dc7ce5825d3766a1d
      https://github.com/llvm/llvm-project/commit/649f9603a2da82a32830ce1dc7ce5825d3766a1d
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2024-04-01 (Mon, 01 Apr 2024)

  Changed paths:
    M .github/workflows/issue-write.yml

  Log Message:
  -----------
  [workflows] issue-write: Avoid race condition when PR branch is deleted (#87118)

Fixes #87102 .


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

  Changed paths:
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    M clang/lib/Driver/ToolChains/CommonArgs.h
    M clang/lib/Driver/ToolChains/Darwin.cpp
    M clang/lib/Driver/ToolChains/DragonFly.cpp
    M clang/lib/Driver/ToolChains/FreeBSD.cpp
    M clang/lib/Driver/ToolChains/Gnu.cpp
    M clang/lib/Driver/ToolChains/Haiku.cpp
    M clang/lib/Driver/ToolChains/NetBSD.cpp
    M clang/lib/Driver/ToolChains/OpenBSD.cpp
    M clang/lib/Driver/ToolChains/Solaris.cpp

  Log Message:
  -----------
  [OpenMP] Use loaded offloading toolchains to add libraries (#87108)

Summary:
We want to pass these GPU libraries by default if a certain offloading
toolchain is loaded for OpenMP. Previously I parsed this from the
arguments because it's only available in the compilation. This doesn't
really work for `native` and it's extra effort, so this patch just
passes in the `Compilation` as an extr argument and uses that. Tests
should be unaffected.


  Commit: 9df19ce40281551bd348b262a131085cf98dadf5
      https://github.com/llvm/llvm-project/commit/9df19ce40281551bd348b262a131085cf98dadf5
  Author: David Blaikie <dblaikie at gmail.com>
  Date:   2024-04-01 (Mon, 01 Apr 2024)

  Changed paths:
    M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp

  Log Message:
  -----------
  Add uncovered enums in switches caused by 9434c083475e42f47383f3067fe2a155db5c6a30

These are probably actually unreachable - perhaps an lldb developer
would be interested in rephrasing this change to move the new cases into
some unreachable/unsupported bucket, rather than my half-hearted guess
at what the desired behavior would be (completely untested, because
they're probably untestable/unreachable - maybe debugging from modules?)


  Commit: 1079fc4f543c42bb09a33d2d79d90edd9c0bac91
      https://github.com/llvm/llvm-project/commit/1079fc4f543c42bb09a33d2d79d90edd9c0bac91
  Author: Ivan Butygin <ivan.butygin at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Pass/Pass.h
    M mlir/include/mlir/Pass/PassOptions.h
    M mlir/lib/Conversion/MemRefToSPIRV/MapMemRefStorageClassPass.cpp
    M mlir/lib/Pass/Pass.cpp
    M mlir/lib/Pass/PassRegistry.cpp
    M mlir/lib/Transforms/InlinerPass.cpp
    M mlir/test/Dialect/Transform/test-pass-application.mlir

  Log Message:
  -----------
  [mlir][pass] Add `errorHandler` param to `Pass::initializeOptions` (#87289)

There is no good way to report detailed errors from inside
`Pass::initializeOptions` function as context may not be available at
this point and writing directly to `llvm::errs()` is not composable.

See
https://github.com/llvm/llvm-project/pull/87166#discussion_r1546426763

* Add error handler callback to `Pass::initializeOptions`
* Update `PassOptions::parseFromString` to support custom error stream
instead of using `llvm::errs()` directly.
* Update default `Pass::initializeOptions` implementation to propagate
error string from `parseFromString` to new error handler.
* Update `MapMemRefStorageClassPass` to report error details using new
API.


  Commit: 6d0174e70641b1ea172ffed07c43604ef15e28ae
      https://github.com/llvm/llvm-project/commit/6d0174e70641b1ea172ffed07c43604ef15e28ae
  Author: Stephen Neuendorffer <stephen.neuendorffer at amd.com>
  Date:   2024-04-01 (Mon, 01 Apr 2024)

  Changed paths:
    M libc/utils/HdrGen/Generator.cpp

  Log Message:
  -----------
  [libc] allow libc-hdrgen to work on windows files (#87292)

The code does some (overly simple?) checks on file syntax. These checks
assume unix line endings and fail on windows. This commit updates the
code to strip extra whitespace, making the checks more robust,
particularly in the presence of windows line endings.

Fixes #86023


  Commit: dd5797505ebc2dbfdd58927c4f0a11a1256696eb
      https://github.com/llvm/llvm-project/commit/dd5797505ebc2dbfdd58927c4f0a11a1256696eb
  Author: Abhinav Gunjal <agunjal at google.com>
  Date:   2024-04-01 (Mon, 01 Apr 2024)

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

  Log Message:
  -----------
  lit_test : check if there is already a deps key in kwargs (#87290)

This change checks if there is already a `deps` key in `kwargs` and
concatenate it to avoid multiple values for `deps` key argument.

background:
https://github.com/llvm/llvm-project/pull/87022 recently added explicit
`deps` to the lit_test. This is causing StableHLO bazel build failures
at
https://github.com/openxla/stablehlo/actions/runs/8511888283/job/23312383380?pr=2147

Tested: local build run is successful


  Commit: 9dbd364589883ae3343a291077804c564d4b3de5
      https://github.com/llvm/llvm-project/commit/9dbd364589883ae3343a291077804c564d4b3de5
  Author: Ben Shi <2283975856 at qq.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AVR/AVRInstrInfo.td

  Log Message:
  -----------
  [AVR][NFC] Improve format of target description files (#87212)


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

  Changed paths:
    M compiler-rt/test/dfsan/mmap_at_init.c

  Log Message:
  -----------
  [dfsan][test] Disable the test with internal_symbolizer

After #87191 we had to add
8b135a7d1f59a5a7adccb162abf92d751209afe7, which
makes symbolizer to calls a global constructor
with `realloc`.


  Commit: f33a6dcf959238e82f6ad45333e3547d8cfcfe38
      https://github.com/llvm/llvm-project/commit/f33a6dcf959238e82f6ad45333e3547d8cfcfe38
  Author: Chen Zheng <czhengsz at cn.ibm.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCISelLowering.cpp

  Log Message:
  -----------
  [PPC][NFC] add an option for GatherAllAliasesMaxDepth (#87071)

GatherAllAliases is time consuming. Add an debug option on PPC to
control the complexity of the function. This is useful when debuging
compile time related issues.


  Commit: 84f24c2daffc40fc10b4ea2ae69016ebdabfc0ed
      https://github.com/llvm/llvm-project/commit/84f24c2daffc40fc10b4ea2ae69016ebdabfc0ed
  Author: Shih-Po Hung <shihpo.hung at sifive.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/RISCV/int-min-max.ll

  Log Message:
  -----------
  [RISCV][TTI] Scale the cost of intrinsic umin/umax/smin/smax with LMUL (#87245)

Use the return type to measure the LMUL size for throughput/latency cost


  Commit: 30fd099d5062638b5fe6b89135ad6433a888023a
      https://github.com/llvm/llvm-project/commit/30fd099d5062638b5fe6b89135ad6433a888023a
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2024-04-01 (Mon, 01 Apr 2024)

  Changed paths:
    M clang/test/InstallAPI/diagnostics-dsym.test

  Log Message:
  -----------
  [InstallAPI] Fixup dsym test  (#87299)

Update the test to run when the compiler is built to support
arm64-darwin targets.


  Commit: d7a43a00fe80007de5d7614576b180d3d21d541b
      https://github.com/llvm/llvm-project/commit/d7a43a00fe80007de5d7614576b180d3d21d541b
  Author: Shih-Po Hung <shihpo.hung at sifive.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/RISCV/cast.ll
    M llvm/test/Analysis/CostModel/RISCV/reduce-scalable-fp.ll
    M llvm/test/Analysis/CostModel/RISCV/rvv-insertelement.ll
    M llvm/test/Analysis/CostModel/RISCV/shuffle-broadcast.ll

  Log Message:
  -----------
  [RISCV][TTI] Scale the cost of trunc/fptrunc/fpext with LMUL (#87101)

Use the destination data type to measure the LMUL size for
latency/throughput cost


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

  Changed paths:
    M mlir/include/mlir/IR/PatternMatch.h
    M mlir/lib/IR/PatternMatch.cpp
    M mlir/test/lib/Dialect/Test/TestPatterns.cpp

  Log Message:
  -----------
  [mlir][IR] Trigger `notifyOperationReplaced` on `replaceAllOpUsesWith` (#84721)

Before this change: `notifyOperationReplaced` was triggered when calling
`RewriteBase::replaceOp`.
After this change: `notifyOperationReplaced` is triggered when
`RewriterBase::replaceAllOpUsesWith` or `RewriterBase::replaceOp` is
called.

Until now, every `notifyOperationReplaced` was always sent together with
a `notifyOperationErased`, which made that `notifyOperationErased`
callback irrelevant. More importantly, when a user called
`RewriterBase::replaceAllOpUsesWith`+`RewriterBase::eraseOp` instead of
`RewriterBase::replaceOp`, no `notifyOperationReplaced` callback was
sent, even though the two notations are semantically equivalent. As an
example, this can be a problem when applying patterns with the transform
dialect because the `TrackingListener` will only see the
`notifyOperationErased` callback and the payload op is dropped from the
mappings.

Note: It is still possible to write semantically equivalent code that
does not trigger a `notifyOperationReplaced` (e.g., when op results are
replaced one-by-one), but this commit already improves the situation a
lot.


  Commit: 21f85e230056172cffcaec76352e5a2019b54b86
      https://github.com/llvm/llvm-project/commit/21f85e230056172cffcaec76352e5a2019b54b86
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Driver/ToolChains/Clang.h

  Log Message:
  -----------
  [NFC] [C++20] [Modules] Pulling out getCXX20NamedModuleOutputPath into a seperate function

Required in the review process of
https://github.com/llvm/llvm-project/pull/85050.


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

  Changed paths:
    M mlir/include/mlir/IR/PatternMatch.h

  Log Message:
  -----------
  [mlir][IR][NFC] Make `replaceAllUsesWith` non-templatized (#84722)

Turn `RewriterBase::replaceAllUsesWith` into a non-templatized
implementation, so that it can be made virtual and be overridden in the
`ConversionPatternRewriter` in a subsequent change.

This change is in preparation of adding dialect conversion support for
`replaceAllUsesWith`.


  Commit: 49a4ec20a8be5888cbf225bab340dbaf204902c7
      https://github.com/llvm/llvm-project/commit/49a4ec20a8be5888cbf225bab340dbaf204902c7
  Author: Rob Suderman <rob.suderman at gmail.com>
  Date:   2024-04-01 (Mon, 01 Apr 2024)

  Changed paths:
    M mlir/lib/Transforms/Utils/DialectConversion.cpp
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg-invalid.mlir

  Log Message:
  -----------
  [mlir] Reland the dialect conversion hanging use fix (#87297)

Dialect conversion sometimes can have a hanging use of an argument.
Ensured that argument uses are dropped before removing the block.


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

  Changed paths:
    M llvm/test/tools/llvm-objcopy/ELF/discard-locals-rel.test
    M llvm/test/tools/llvm-objcopy/ELF/strip-reloc-symbol.test

  Log Message:
  -----------
  [llvm-objcopy,test] Prepend error: to some messages


  Commit: 59dd10faf8c3bb9dbcecb60d932284b8762cebf8
      https://github.com/llvm/llvm-project/commit/59dd10faf8c3bb9dbcecb60d932284b8762cebf8
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsll.ll

  Log Message:
  -----------
  [RISCV] Add tests for fixed vector vwsll. NFC

We are missing patterns for fixed vectors, where the sexts and zexts are
legalized to _vl nodes.


  Commit: 24d528cf4685668d3ad17116846769bed843e933
      https://github.com/llvm/llvm-project/commit/24d528cf4685668d3ad17116846769bed843e933
  Author: Prabhuk <prabhukr at google.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/lib/Target/Mips/MipsISelLowering.cpp

  Log Message:
  -----------
  [MIPS][CallSiteInfo][NFC] Fill CallSiteInfo only when needed (#86847)

Argument-register pairs in CallSiteInfo is only needed when
EmitCallSiteInfo
is on. Currently, the pairs are always pushed to the vector but only
used
when EmitCallSiteInfo is on.

Don't fill the CallSiteInfo vector unless used.

Differential Revision: https://reviews.llvm.org/D107108?id=362887

Co-authored-by: Necip Fazil Yildiran <necip at google.com>


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

  Changed paths:
    M clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
    M clang/test/Analysis/stream-error.c
    M clang/test/Analysis/stream-note.c

  Log Message:
  -----------
  [clang][analyzer] Change modeling of `fseek` in StreamChecker. (#86919)

Until now function `fseek` returned nonzero on error, this is changed to
-1 only. And it does not produce EOF error any more.
This complies better with the POSIX standard.


  Commit: 8bb9443333e0117ab61feecce9de339b11b924fc
      https://github.com/llvm/llvm-project/commit/8bb9443333e0117ab61feecce9de339b11b924fc
  Author: Thorsten Schütt <schuett at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
    M llvm/include/llvm/CodeGen/GlobalISel/GenericMachineInstrs.h
    M llvm/include/llvm/Target/GlobalISel/Combine.td
    M llvm/lib/CodeGen/GlobalISel/CMakeLists.txt
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    A llvm/lib/CodeGen/GlobalISel/CombinerHelperVectorOps.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-extract-vec-elt.mir
    M llvm/test/CodeGen/AArch64/extract-vector-elt.ll
    M llvm/test/CodeGen/AArch64/extractvector-oob-load.mir

  Log Message:
  -----------
  [GlobalIsel] Combine G_EXTRACT_VECTOR_ELT (#85321)

preliminary steps


  Commit: e47a81c1d2830dda45a561e2c092ebb0c868ed27
      https://github.com/llvm/llvm-project/commit/e47a81c1d2830dda45a561e2c092ebb0c868ed27
  Author: Sven van Haastregt <sven.vanhaastregt at arm.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

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

  Log Message:
  -----------
  [OpenCL] Fix BIenqueue_kernel fallthrough (#83238)

Handling of the `BIenqueue_kernel` builtin must not fallthrough to the
`BIget_kernel_work_group_size` builtin, as these builtins have no common
functionality.


  Commit: f6c87be1dd24a121d7eccd6b91ca808ecdf80356
      https://github.com/llvm/llvm-project/commit/f6c87be1dd24a121d7eccd6b91ca808ecdf80356
  Author: Aiden Grossman <agrossman154 at yahoo.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M .github/workflows/pr-code-format.yml

  Log Message:
  -----------
  [Github] Fix typo in PR code formatting job

The recent change to split the PR code formatting job accidentally
misspelled the repository field when specifying the repository to fetch
the code formatting utils from. This patch fixes the spelling so that
the job does not throw a warning and clones the tools from the specified
repository.


  Commit: fa8dc363506893eb9371dd3b7590f41fa9a7174a
      https://github.com/llvm/llvm-project/commit/fa8dc363506893eb9371dd3b7590f41fa9a7174a
  Author: elhewaty <mohamedatef1698 at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/lib/IR/Operator.cpp
    M llvm/test/Transforms/FunctionAttrs/noundef.ll

  Log Message:
  -----------
  [IR] Fix crashes caused by #85592 (#87169)

This patch fixes the crash caused by the pull request:
https://github.com/llvm/llvm-project/pull/85592


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

  Changed paths:
    M flang/lib/Optimizer/Transforms/ExternalNameConversion.cpp

  Log Message:
  -----------
  [flang][NFC] speed-up external name conversion pass (#86814)

The ExternalNameConversion pass can be surprisingly slow on big
programs. On an example with a 50kloc Fortran file with about 10000
calls to external procedures, the pass alone took 25s on my machine.
This patch reduces this to 0.16s.

The root cause is that using `replaceAllSymbolUses` on each modified
FuncOp is very expensive: it is walking all operations and attribute
every time.

An alternative would be to use mlir::SymbolUserMap to avoid walking the
module again and again, but this is still much more expensive than what
is needed because it is essentially caching all symbol uses of the
module, and there is no need to such caching here.

Instead:
- Do a shallow walk of the module (only top level operation) to detect
FuncOp/GlobalOp that needs to be updated. Update them and place the name
remapping in a DenseMap.
- If any remapping were done, do a single deep walk of the module
operation, and update any SymbolRefAttr that matches a name that was
remapped.


  Commit: 77e5c0a95c54e0ca34b8e9c56c702490619b73c9
      https://github.com/llvm/llvm-project/commit/77e5c0a95c54e0ca34b8e9c56c702490619b73c9
  Author: Marc Auberer <marc.auberer at chillibits.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/RegisterBankInfo.h

  Log Message:
  -----------
  [AArch64][GISEL] Reduce likelihood of hash collisions for mappings in RegisterBankInfo (#87033)

Fixes #85209

This patch removes the truncation from `hash_code` aka `size_t` down to
`unsigned`, that currently happens on DenseMap accesses in
RegisterBankInfo. This reduces the likelihood of hash collisions, as
well as the likelihood of hitting EmptyKey or TombstoneKey, the special
key values of DenseMap. This is not the ultimate solution to the
problem, but we can do it in any case.


  Commit: 6cce67a8f9bbab7ebaafa6f33e0efbb22dee3ea1
      https://github.com/llvm/llvm-project/commit/6cce67a8f9bbab7ebaafa6f33e0efbb22dee3ea1
  Author: Vyacheslav Levytskyy <vyacheslav.levytskyy at intel.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    M llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
    M llvm/test/CodeGen/SPIRV/ExecutionMode.ll
    M llvm/test/CodeGen/SPIRV/instructions/atomic.ll
    M llvm/test/CodeGen/SPIRV/instructions/atomic_acqrel.ll
    M llvm/test/CodeGen/SPIRV/instructions/atomic_seq.ll
    A llvm/test/CodeGen/SPIRV/pointers/bitcast-fix-accesschain.ll
    A llvm/test/CodeGen/SPIRV/pointers/type-deduce-by-call-complex.ll

  Log Message:
  -----------
  [SPIR-V] Fix validity of atomic instructions (#87051)

This PR fixes validity of atomic instructions and improves type
inference. More tests are able now to be accepted by `spirv-val`.


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

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/unittests/CodeGen/AArch64SelectionDAGTest.cpp

  Log Message:
  -----------
  [SelectionDAG] implement computeKnownBits for add AVG* instructions (#86754)

knownBits calculation for **AVGFLOORU** / **AVGFLOORS** / **AVGCEILU** / **AVGCEILS** instructions

Prerequisite for #76644


  Commit: 89cfae41ecc043f8c47be4dea4b7c740d4f950b3
      https://github.com/llvm/llvm-project/commit/89cfae41ecc043f8c47be4dea4b7c740d4f950b3
  Author: Haojian Wu <hokein.wu at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M mlir/include/mlir/IR/OwningOpRef.h

  Log Message:
  -----------
  [mlir] Add missing #include header for std::is_pointer


  Commit: 16da9d53519214475c04109d953022f272ac8022
      https://github.com/llvm/llvm-project/commit/16da9d53519214475c04109d953022f272ac8022
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

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

  Log Message:
  -----------
  [VPlan] Remove redundant set of debug loc in VPInstruction (NFCI).

Consistently use setDebugLocFrom and remove redundant setDebugLocFrom.


  Commit: 46246683a61a081d9d78cf987fd4f024556ecdc8
      https://github.com/llvm/llvm-project/commit/46246683a61a081d9d78cf987fd4f024556ecdc8
  Author: Rin Dobrescu <irina.dobrescu at arm.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
    M llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-sve-instructions.s

  Log Message:
  -----------
  [AArch64] Update Neoverse V2 FSQRT execution units in schedule model. (#86803)

This patch updates the SVE FSQRT instruction execution units to be able to run on VX0 and VX2.


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

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

  Log Message:
  -----------
  [VectorCombine] foldBitcastShuffle - peek through any residual bitcasts before creating a new bitcast on top (#86119)

Encountered while working on #67803, wading through the chains of bitcasts that SSE intrinsics introduces - this patch helps prevents cases where the bitcast chains aren't cleared out and we can't perform further combines until after InstCombine/InstSimplify has run.


  Commit: 5b66b6a32ad89562732ad6a81c84783486b6187a
      https://github.com/llvm/llvm-project/commit/5b66b6a32ad89562732ad6a81c84783486b6187a
  Author: Ivan Butygin <ivan.butygin at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Transforms/Passes.h
    M mlir/include/mlir/Transforms/Passes.td
    M mlir/lib/Transforms/CMakeLists.txt
    A mlir/lib/Transforms/CompositePass.cpp
    A mlir/test/Transforms/composite-pass.mlir
    M mlir/test/lib/Transforms/CMakeLists.txt
    A mlir/test/lib/Transforms/TestCompositePass.cpp
    M mlir/tools/mlir-opt/mlir-opt.cpp

  Log Message:
  -----------
  [mlir][pass] Add composite pass utility (#87166)

Composite pass allows to run sequence of passes in the loop until fixed
point or maximum number of iterations is reached. The usual candidates
are canonicalize+CSE as canonicalize can open more opportunities for CSE
and vice-versa.


  Commit: 2f48a1ff574573e7be170d39ab8de79d9db8bcea
      https://github.com/llvm/llvm-project/commit/2f48a1ff574573e7be170d39ab8de79d9db8bcea
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M lldb/source/Plugins/Process/Utility/AuxVector.h

  Log Message:
  -----------
  [lldb][FreeBSD] Add FreeBSD specific AT_HWCAP value (#84147)

While adding register fields I realised that the AUXV values for Linux
and FreeBSD disagree here.

So I've added a FreeBSD specific HWCAP value that I can use from FreeBSD
specific code.

The alternative is translating GetAuxValue calls depending on platform,
which requires that we know what we are at all times.

Another way would be to convert the entries' values when we construct
the AuxVector but the platform specific call that reads the data just
returns a raw array. So adding another layer here is more disruption.


  Commit: 198c3eecee50d90cdff4b7840cfa39eef5613870
      https://github.com/llvm/llvm-project/commit/198c3eecee50d90cdff4b7840cfa39eef5613870
  Author: Haojian Wu <hokein.wu at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl

  Log Message:
  -----------
  [bazel] Fix the format of libc_build_rules.bzl


  Commit: a88a4da61a8eb3378bc333602d5b7e56a24cfb66
      https://github.com/llvm/llvm-project/commit/a88a4da61a8eb3378bc333602d5b7e56a24cfb66
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M lldb/source/Plugins/Process/Utility/AuxVector.h

  Log Message:
  -----------
  [lldb] clang-format AuxVector.h (#85057)

Doing this in its own commit so the intent of
2f48a1ff574573e7be170d39ab8de79d9db8bcea is clearer.


  Commit: 9a05a89d1ef73de7ab787071931f449935d841a7
      https://github.com/llvm/llvm-project/commit/9a05a89d1ef73de7ab787071931f449935d841a7
  Author: Carlos Alberto Enciso <carlos.alberto.enciso at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
    M llvm/test/Transforms/SpeculativeExecution/PR46267.ll

  Log Message:
  -----------
  [speculative-execution] Hoists debug values unnecessarily. (#85782)

After https://reviews.llvm.org/D81730:
`SpeculativeExecutionPass::considerHoistingFromTo` hoists instructions,
including debug intrinsics, as long as none of their used values are
instructions that appear prior in the block that are not being hoisted.

This behaviour has been duplicated for DPValues to get rid of a binary
difference.

The correct solution is not hoist these debug values at all, whichever
format they're in.


  Commit: 0b13e2c82315eac8926f1c4497c4d56a507c3999
      https://github.com/llvm/llvm-project/commit/0b13e2c82315eac8926f1c4497c4d56a507c3999
  Author: Haojian Wu <hokein.wu at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl

  Log Message:
  -----------
  [bazel] Another format fix for libc_build_rules.bzl, NFC


  Commit: 7ef602b58c1ccacab20d9d01e24b281458c3facc
      https://github.com/llvm/llvm-project/commit/7ef602b58c1ccacab20d9d01e24b281458c3facc
  Author: Sam McCall <sam.mccall at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Basic/AttrDocs.td
    M clang/include/clang/Basic/Features.def
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/AST/Type.cpp
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/Parse/ParseDeclCXX.cpp
    M clang/lib/Sema/SemaAttr.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/test/Sema/nullability.c
    M clang/test/SemaCXX/nullability.cpp
    A clang/test/SemaObjCXX/Inputs/nullability-consistency-smart.h
    M clang/test/SemaObjCXX/nullability-consistency.mm

  Log Message:
  -----------
  Reapply "[clang][nullability] allow _Nonnull etc on nullable class types (#82705)" (#87325)

This reverts commit 28760b63bbf9e267713957105a8d17091fb0d20e.

The last commit was missing the new testcase, now fixed.


  Commit: beeb15b71650b46f39cb6b1917e8d05568978656
      https://github.com/llvm/llvm-project/commit/beeb15b71650b46f39cb6b1917e8d05568978656
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M libcxx/include/__exception/operations.h
    M libcxx/include/__filesystem/copy_options.h
    M libcxx/include/__filesystem/directory_options.h
    M libcxx/include/__filesystem/file_status.h
    M libcxx/include/__filesystem/file_time_type.h
    M libcxx/include/__filesystem/file_type.h
    M libcxx/include/__filesystem/perm_options.h
    M libcxx/include/__filesystem/perms.h
    M libcxx/include/__filesystem/space_info.h
    M libcxx/include/__format/format_args.h
    M libcxx/include/__format/format_context.h
    M libcxx/include/__format/formatter.h
    M libcxx/include/__format/formatter_bool.h
    M libcxx/include/__format/formatter_char.h
    M libcxx/include/__format/formatter_integer.h
    M libcxx/include/__format/formatter_pointer.h
    M libcxx/include/__format/formatter_string.h
    M libcxx/include/__fwd/format.h
    M libcxx/include/__locale
    M libcxx/include/__memory/shared_ptr.h
    M libcxx/include/__thread/support/pthread.h
    M libcxx/include/any
    M libcxx/include/future
    M libcxx/include/new
    M libcxx/include/shared_mutex
    M libcxx/include/thread
    M libcxx/include/typeinfo

  Log Message:
  -----------
  [libc++][NFC] Remove a few unused <__availablity> includes (#86126)


  Commit: 2950283dddab03c183c1be2d7de9d4999cc86131
      https://github.com/llvm/llvm-project/commit/2950283dddab03c183c1be2d7de9d4999cc86131
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M libcxx/include/stddef.h

  Log Message:
  -----------
  [libc++] Simplify the implementation of <stddef.h> (#86843)

Libc++'s own <stddef.h> is complicated by the need to handle various
platform-specific macros and to support duplicate inclusion. In reality,
we only need to add a declaration of nullptr_t to it, so we can simply
include the underlying <stddef.h> outside of our guards to let it handle
re-inclusion itself.


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

  Changed paths:
    M flang/include/flang/Lower/AbstractConverter.h
    M flang/include/flang/Optimizer/Builder/FIRBuilder.h
    M flang/include/flang/Optimizer/Dialect/FIROpsSupport.h
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Lower/CallInterface.cpp
    M flang/lib/Lower/OpenACC.cpp
    M flang/lib/Optimizer/Builder/FIRBuilder.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/Builder/LowLevelIntrinsics.cpp
    M flang/lib/Optimizer/Builder/PPCIntrinsicCall.cpp
    M flang/lib/Optimizer/Dialect/FIROps.cpp
    M flang/lib/Optimizer/Transforms/SimplifyIntrinsics.cpp

  Log Message:
  -----------
  [flang][NFC] use mlir::SymbolTable in lowering (#86673)

Whenever lowering is checking if a function or global already exists in
the mlir::Module, it was doing module->lookup.

On big programs (~5000 globals and functions), this causes important
slowdowns because these lookups are linear. Use mlir::SymbolTable to
speed-up these lookups. The SymbolTable has to be created from the
ModuleOp and maintained in sync. It is therefore placed in the
converter, and FirOPBuilders can take a pointer to it to speed-up the
lookups.

This patch does not bring mlir::SymbolTable to FIR/HLFIR passes, but
some passes creating a lot of runtime calls could benefit from it too.
More analysis will be needed.

As an example of the speed-ups, this patch speeds-up compilation of
Whizard compare_amplitude_UFO.F90 from 5 mins to 2 mins on my machine
(there is still room for speed-ups).


  Commit: eb08c0f1659d12524f58a01bf174177b8acedf2e
      https://github.com/llvm/llvm-project/commit/eb08c0f1659d12524f58a01bf174177b8acedf2e
  Author: Krystian Stasiowski <sdkrystian at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang-tools-extra/test/clang-tidy/infrastructure/diagnostic.cpp
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaDecl.cpp
    M clang/test/SemaCXX/deduced-return-type-cxx14.cpp

  Log Message:
  -----------
  [Clang][Sema] Fix explicit specializations of member function templates with a deduced return type (#86817)

Clang erroneously rejects the following:
```
template<typename T>
struct A
{
    template<typename U>
    auto f();
};

template<>
template<typename U>
auto A<int>::f(); // error: conflicting types for 'f'
```
This happens because the explicit specialization of `f` has its return
type replaced with a dependent `AutoType` in `ActOnFunctionDeclarator`,
but no such replacement occurs for the implicitly instantiated function
template `A<int>::f`. Since the return types don't match, the explicit
specialization is diagnosed as an invalid redeclaration.

This patch moves the replacement of the return type to
`CheckFunctionDeclaration` so it also happens during instantiation.
`setObjectOfFriendDecl` will have been called by then, so the `isFriend
&& CurContext->isDependentContext()` condition is made redundant &
removed (as it already happens in `DeclContext::isDependentContext`).
`Sema::IsOverload` only checks the _declared_ return type (which isn't
changed by the adjustment), so adjusting the return type afterwards
should be safe.


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

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

  Log Message:
  -----------
  [MLIR][LLVM][SROA] Make GEP handling type agnostic (#86950)

This commit removes SROA's type consistency constraints from LLVM
dialect's GEPOp. The checks for valid indexing are now purely done by
computing the GEP's offset with the aid of the data layout.

To simplify handling of "nested subslots", we are tricking the SROA by
handing in memory slots that hold byte array types. This ensures that
subsequent accesses only need to check if their access will be
in-bounds. This lifts the requirement of determining the sub-types for
all but the first level of subslots.


  Commit: 56aeac47ab0858db9f447b5ec43b660d9035167f
      https://github.com/llvm/llvm-project/commit/56aeac47ab0858db9f447b5ec43b660d9035167f
  Author: Mitch Phillips <mitchp at google.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M mlir/lib/Transforms/Utils/DialectConversion.cpp
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg-invalid.mlir

  Log Message:
  -----------
  Revert "[mlir] Reland the dialect conversion hanging use fix (#87297)"

This reverts commit 49a4ec20a8be5888cbf225bab340dbaf204902c7.

Reason: Broke the ASan build bot with a memory leak. See the comments at
https://github.com/llvm/llvm-project/pull/87297
for more information.


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

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

  Log Message:
  -----------
  [SLP][NFC]Do not lookup in MinBWs, reuse previously used iterator.


  Commit: 0b9528d6bd0bfde5702b1ee5ed8a249d354434f1
      https://github.com/llvm/llvm-project/commit/0b9528d6bd0bfde5702b1ee5ed8a249d354434f1
  Author: Haojian Wu <hokein.wu at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/test/SemaCXX/cxx20-ctad-type-alias.cpp

  Log Message:
  -----------
  [clang] CTAD: Track template template type parameters that referenced in the template arguments of the RHS. (#85405)

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

The Finder was missing for this case, for the crash test, the template
parameter TTP was incorrectly considered as not referenced/appeared in
the template arguments of the right hand side of the alias template
decl, thus the synthesized deduction decl doesn't contain this TTP in
the template parameter list, but we have references in the declaration,
thus it caused crashes.


  Commit: 0ef743778000e7d213e53e6a7b998e1c34a28701
      https://github.com/llvm/llvm-project/commit/0ef743778000e7d213e53e6a7b998e1c34a28701
  Author: Il-Capitano <csanad.hajdu at arm.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
    M llvm/test/CodeGen/AArch64/stackmap.ll

  Log Message:
  -----------
  [SelectionDAG][Statepoint] Fix truncation of `gc.statepoint` ID argument (#85908)

The ID argument of `gc.statepoint` gets incorrectly truncated to 32 bits
during code generation.
This is fixed by using `uint64_t` instead of `unsigned` for the `ID`
member in `SelectionDAGBuilder::StatepointLoweringInfo`, and a
`patchpoint` test case is extended to check for 64 bit ID generation in
stackmaps.


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

  Changed paths:
    M llvm/test/CodeGen/AArch64/fp-intrinsics.ll
    M llvm/test/CodeGen/AArch64/strictfp_f16_abi_promote.ll

  Log Message:
  -----------
  [FPEnv][AArch64] Correct strictfp test.

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 and some function calls.

Test changes verified with D146845.


  Commit: e03f16f9fdfcb36ed05842f43f542107a0d46288
      https://github.com/llvm/llvm-project/commit/e03f16f9fdfcb36ed05842f43f542107a0d46288
  Author: Fehr Mathieu <mathieu.fehr at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/Arith/Transforms/UnsignedWhenEquivalent.cpp

  Log Message:
  -----------
  [mlir] [arith] Remove buggy illegal operation in --arith-unsigned-when-equivalent (#87298)

`CeilDivUIOp` seemed to have been added by mistake to the list of
dynamically
illegal operations in `arith-unsigned-when-equivalent`. The only illegal
operations
should be the signed operations that can be converted to their unsigned
counterpart.


  Commit: b31414bf4f9898f7817a9fcf8a91f62ec26f3eaf
      https://github.com/llvm/llvm-project/commit/b31414bf4f9898f7817a9fcf8a91f62ec26f3eaf
  Author: Daniel Grumberg <dgrumberg at apple.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Basic/DiagnosticFrontendKinds.td
    M clang/include/clang/Driver/Options.td
    M clang/include/clang/ExtractAPI/API.h
    A clang/include/clang/ExtractAPI/APIRecords.inc
    M clang/include/clang/ExtractAPI/DeclarationFragments.h
    M clang/include/clang/ExtractAPI/ExtractAPIActionBase.h
    M clang/include/clang/ExtractAPI/ExtractAPIVisitor.h
    M clang/include/clang/ExtractAPI/FrontendActions.h
    A clang/include/clang/ExtractAPI/Serialization/APISetVisitor.h
    R clang/include/clang/ExtractAPI/Serialization/SerializerBase.h
    M clang/include/clang/ExtractAPI/Serialization/SymbolGraphSerializer.h
    M clang/include/clang/Frontend/FrontendOptions.h
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/ExtractAPI/API.cpp
    M clang/lib/ExtractAPI/DeclarationFragments.cpp
    M clang/lib/ExtractAPI/ExtractAPIConsumer.cpp
    M clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp
    M clang/lib/ExtractAPI/TypedefUnderlyingTypeResolver.cpp
    M clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
    M clang/test/ExtractAPI/anonymous_record_no_typedef.c
    M clang/test/ExtractAPI/availability.c
    M clang/test/ExtractAPI/bool.c
    M clang/test/ExtractAPI/bool.cpp
    M clang/test/ExtractAPI/class.cpp
    M clang/test/ExtractAPI/class_template.cpp
    M clang/test/ExtractAPI/class_template_param_inheritance.cpp
    M clang/test/ExtractAPI/class_template_partial_spec.cpp
    M clang/test/ExtractAPI/class_template_spec.cpp
    M clang/test/ExtractAPI/concept.cpp
    M clang/test/ExtractAPI/constructor_destructor.cpp
    M clang/test/ExtractAPI/conversions.cpp
    M clang/test/ExtractAPI/emit-symbol-graph/multi_file.c
    M clang/test/ExtractAPI/emit-symbol-graph/single_file.c
    M clang/test/ExtractAPI/enum.c
    M clang/test/ExtractAPI/field_template.cpp
    M clang/test/ExtractAPI/function_noexcepts.cpp
    M clang/test/ExtractAPI/global_func_template.cpp
    M clang/test/ExtractAPI/global_func_template_spec.cpp
    M clang/test/ExtractAPI/global_record.c
    M clang/test/ExtractAPI/global_record_multifile.c
    M clang/test/ExtractAPI/global_var_template.cpp
    M clang/test/ExtractAPI/global_var_template_partial_spec.cpp
    M clang/test/ExtractAPI/global_var_template_spec.cpp
    M clang/test/ExtractAPI/known_files_only.c
    M clang/test/ExtractAPI/language.c
    M clang/test/ExtractAPI/macro_undefined.c
    M clang/test/ExtractAPI/macros.c
    A clang/test/ExtractAPI/metadata_and_module.c
    M clang/test/ExtractAPI/method_template.cpp
    M clang/test/ExtractAPI/method_template_spec.cpp
    M clang/test/ExtractAPI/methods.cpp
    M clang/test/ExtractAPI/multiple_inheritance.cpp
    M clang/test/ExtractAPI/namespace.cpp
    M clang/test/ExtractAPI/nested_namespaces.cpp
    M clang/test/ExtractAPI/objc_block.m
    M clang/test/ExtractAPI/objc_category.m
    A clang/test/ExtractAPI/objc_external_category.m
    M clang/test/ExtractAPI/objc_id_protocol.m
    M clang/test/ExtractAPI/objc_instancetype.m
    M clang/test/ExtractAPI/objc_interface.m
    R clang/test/ExtractAPI/objc_module_category.m
    M clang/test/ExtractAPI/objc_property.m
    M clang/test/ExtractAPI/objc_protocol.m
    R clang/test/ExtractAPI/objc_various_categories.m
    M clang/test/ExtractAPI/operator_overload.cpp
    M clang/test/ExtractAPI/relative_include.m
    M clang/test/ExtractAPI/simple_inheritance.cpp
    M clang/test/ExtractAPI/struct.c
    M clang/test/ExtractAPI/typedef.c
    M clang/test/ExtractAPI/typedef_anonymous_record.c
    M clang/test/ExtractAPI/typedef_chain.c
    M clang/test/ExtractAPI/typedef_struct_enum.c
    M clang/test/ExtractAPI/underscored.c
    M clang/test/ExtractAPI/union.c
    M clang/test/ExtractAPI/vfs_redirected_include.m
    M clang/test/Index/extract-api-cursor.m
    M clang/tools/libclang/CXExtractAPI.cpp

  Log Message:
  -----------
  [clang][ExtractAPI] Add ability to create multiple symbol graphs (#86676)

This extends ExtractAPI to take into account symbols defined in categories to types defined in an external module.
This introduces 2 new command line flags, `--symbol-graph-dir=DIR` and `--emit-extension-symbol-graphs`, when used together this generates additional symbol graph files at `DIR/ExtendedModule at ProductName.symbols.json` for each external module that is extended in this way.

Additionally this makes some cleanups to tests to make them more resilient and cleans up the `APISet` data structure.


  Commit: bcac3edac80044962d5dfe96b96f781fa0a70b2e
      https://github.com/llvm/llvm-project/commit/bcac3edac80044962d5dfe96b96f781fa0a70b2e
  Author: Mitch Phillips <mitchp at google.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/test/SemaTemplate/instantiation-depth-default.cpp

  Log Message:
  -----------
  Revert "[NFC][clang][test][asan] Make `instantiation-depth-default.cpp` a valid test case under `asan` and `ubsan` configs (#75254)"

Disables the recursive template expansion test under ASan again. This
patch re-enabled this test with sanitizers, but it's started spuriously
failing with a stack overflow again on AArch64+ASan:
https://lab.llvm.org/buildbot/#/builders/239/builds/6363

This reverts commit c458f928fad7bbcf08ab1da9949eb2969fc9f89c.


  Commit: 82d8a956113736984301316b0a1d949398c58563
      https://github.com/llvm/llvm-project/commit/82d8a956113736984301316b0a1d949398c58563
  Author: Farzon Lotfi <1802579+farzonl at users.noreply.github.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/abs.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/ceil.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/cos.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/exp.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/exp2.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/floor.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/fmad.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/fmax.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/fmin.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/log.ll
    M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/log10.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/log2.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/pow.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/reversebits.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/round.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/sin.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/smax.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/smin.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/sqrt.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/trunc.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/umax.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/umin.ll

  Log Message:
  -----------
  [SPIRV][HLSL] Add HLSL intrinsic tests (#86844)

This PR is part of bookkeeping for #83882.
It also brings the SPIRV hlsl intrinsic tests in
parity with where the testing is on the DXIL backend.


  Commit: ea9a66ea8b6fee77e7ee9e47d868d43ecbbcd787
      https://github.com/llvm/llvm-project/commit/ea9a66ea8b6fee77e7ee9e47d868d43ecbbcd787
  Author: Krystian Stasiowski <sdkrystian at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/include/clang/AST/Expr.h
    M clang/include/clang/AST/Stmt.h
    M clang/lib/AST/Expr.cpp
    M clang/lib/Serialization/ASTReaderStmt.cpp
    M clang/lib/Serialization/ASTWriterStmt.cpp

  Log Message:
  -----------
  [Clang][AST][NFC] MemberExpr stores NestedNameSpecifierLoc and DeclAccessPair separately (#86678)

Currently, `MemberExpr` allocates a trailing `MemberExprNameQualifier`
object if it either has a `NestedNameSpecifierLoc`, or if it names a
member found via using declaration. Since the presence of a
_nested-name-specifier_ does not necessarily imply the named member was
found via using declaration, this patch removes
`MemberExprNameQualifier` and allocates the members separately.


  Commit: 209a1e8dfdf1c104dd53b50eb196d6bc0dd01659
      https://github.com/llvm/llvm-project/commit/209a1e8dfdf1c104dd53b50eb196d6bc0dd01659
  Author: Daniel Grumberg <dgrumberg at apple.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Basic/DiagnosticFrontendKinds.td
    M clang/include/clang/Driver/Options.td
    M clang/include/clang/ExtractAPI/API.h
    R clang/include/clang/ExtractAPI/APIRecords.inc
    M clang/include/clang/ExtractAPI/DeclarationFragments.h
    M clang/include/clang/ExtractAPI/ExtractAPIActionBase.h
    M clang/include/clang/ExtractAPI/ExtractAPIVisitor.h
    M clang/include/clang/ExtractAPI/FrontendActions.h
    R clang/include/clang/ExtractAPI/Serialization/APISetVisitor.h
    A clang/include/clang/ExtractAPI/Serialization/SerializerBase.h
    M clang/include/clang/ExtractAPI/Serialization/SymbolGraphSerializer.h
    M clang/include/clang/Frontend/FrontendOptions.h
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/ExtractAPI/API.cpp
    M clang/lib/ExtractAPI/DeclarationFragments.cpp
    M clang/lib/ExtractAPI/ExtractAPIConsumer.cpp
    M clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp
    M clang/lib/ExtractAPI/TypedefUnderlyingTypeResolver.cpp
    M clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
    M clang/test/ExtractAPI/anonymous_record_no_typedef.c
    M clang/test/ExtractAPI/availability.c
    M clang/test/ExtractAPI/bool.c
    M clang/test/ExtractAPI/bool.cpp
    M clang/test/ExtractAPI/class.cpp
    M clang/test/ExtractAPI/class_template.cpp
    M clang/test/ExtractAPI/class_template_param_inheritance.cpp
    M clang/test/ExtractAPI/class_template_partial_spec.cpp
    M clang/test/ExtractAPI/class_template_spec.cpp
    M clang/test/ExtractAPI/concept.cpp
    M clang/test/ExtractAPI/constructor_destructor.cpp
    M clang/test/ExtractAPI/conversions.cpp
    M clang/test/ExtractAPI/emit-symbol-graph/multi_file.c
    M clang/test/ExtractAPI/emit-symbol-graph/single_file.c
    M clang/test/ExtractAPI/enum.c
    M clang/test/ExtractAPI/field_template.cpp
    M clang/test/ExtractAPI/function_noexcepts.cpp
    M clang/test/ExtractAPI/global_func_template.cpp
    M clang/test/ExtractAPI/global_func_template_spec.cpp
    M clang/test/ExtractAPI/global_record.c
    M clang/test/ExtractAPI/global_record_multifile.c
    M clang/test/ExtractAPI/global_var_template.cpp
    M clang/test/ExtractAPI/global_var_template_partial_spec.cpp
    M clang/test/ExtractAPI/global_var_template_spec.cpp
    M clang/test/ExtractAPI/known_files_only.c
    M clang/test/ExtractAPI/language.c
    M clang/test/ExtractAPI/macro_undefined.c
    M clang/test/ExtractAPI/macros.c
    R clang/test/ExtractAPI/metadata_and_module.c
    M clang/test/ExtractAPI/method_template.cpp
    M clang/test/ExtractAPI/method_template_spec.cpp
    M clang/test/ExtractAPI/methods.cpp
    M clang/test/ExtractAPI/multiple_inheritance.cpp
    M clang/test/ExtractAPI/namespace.cpp
    M clang/test/ExtractAPI/nested_namespaces.cpp
    M clang/test/ExtractAPI/objc_block.m
    M clang/test/ExtractAPI/objc_category.m
    R clang/test/ExtractAPI/objc_external_category.m
    M clang/test/ExtractAPI/objc_id_protocol.m
    M clang/test/ExtractAPI/objc_instancetype.m
    M clang/test/ExtractAPI/objc_interface.m
    A clang/test/ExtractAPI/objc_module_category.m
    M clang/test/ExtractAPI/objc_property.m
    M clang/test/ExtractAPI/objc_protocol.m
    A clang/test/ExtractAPI/objc_various_categories.m
    M clang/test/ExtractAPI/operator_overload.cpp
    M clang/test/ExtractAPI/relative_include.m
    M clang/test/ExtractAPI/simple_inheritance.cpp
    M clang/test/ExtractAPI/struct.c
    M clang/test/ExtractAPI/typedef.c
    M clang/test/ExtractAPI/typedef_anonymous_record.c
    M clang/test/ExtractAPI/typedef_chain.c
    M clang/test/ExtractAPI/typedef_struct_enum.c
    M clang/test/ExtractAPI/underscored.c
    M clang/test/ExtractAPI/union.c
    M clang/test/ExtractAPI/vfs_redirected_include.m
    M clang/test/Index/extract-api-cursor.m
    M clang/tools/libclang/CXExtractAPI.cpp

  Log Message:
  -----------
  Revert "[clang][ExtractAPI] Add ability to create multiple symbol graphs (#86676)"

This failed the test suite due to missing DiagGroup for a new warning.

This reverts commit b31414bf4f9898f7817a9fcf8a91f62ec26f3eaf.


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

  Changed paths:
    M llvm/lib/CodeGen/ExpandLargeDivRem.cpp
    M llvm/test/CodeGen/AMDGPU/div_v2i128.ll
    A llvm/test/Transforms/ExpandLargeDivRem/X86/vector.ll

  Log Message:
  -----------
  [ExpandLargeDivRem] Scalarize vector types. (#86959)

expand-large-divrem cannot handle vector types.
If overly large vector element types survive into
isel, they will likely be scalarized there, but since
isel cannot handle scalar integer types of that size,
it will assert.

Handle vector types in expand-large-divrem by
scalarizing them and then expanding the scalar type
operation. For large vectors, this results in a
*massive* code expansion, but it's better than
asserting.


  Commit: cf61e347ba3c847f061563d05096e7589fd9ec4b
      https://github.com/llvm/llvm-project/commit/cf61e347ba3c847f061563d05096e7589fd9ec4b
  Author: Yuri Istomin <nekocoder.pw at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

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

  Log Message:
  -----------
  [clang] Add test for CWG1606 (#87274)

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


  Commit: a6d932bca8875198fbf34564cda8a8d1640cdcbc
      https://github.com/llvm/llvm-project/commit/a6d932bca8875198fbf34564cda8a8d1640cdcbc
  Author: Ivan Butygin <ivan.butygin at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

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

  Log Message:
  -----------
  [mlir][scf] Align `scf.while` `before` block args in canonicalizer (#76195)

If `before` block args are directly forwarded to `scf.condition` make
sure they are passed in the same order.
This is needed for `scf.while` uplifting
https://github.com/llvm/llvm-project/pull/76108


  Commit: 0cd44ff15990799759721e8ec5e6402b7916e464
      https://github.com/llvm/llvm-project/commit/0cd44ff15990799759721e8ec5e6402b7916e464
  Author: Krystian Stasiowski <sdkrystian at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/include/clang/AST/Expr.h
    M clang/lib/AST/ComputeDependence.cpp
    M clang/lib/AST/Expr.cpp

  Log Message:
  -----------
  [Clang][AST][NFC] Move template argument dependence computations for MemberExpr to computeDependence (#86682)

(This patch depends on #86678)

Pretty straightforward change, addresses the FIXME's in
`computeDependence(MemberExpr*)` and `MemberExpr::Create` by moving the
template argument dependence computations to `computeDependence`.


  Commit: 15abe09f5af1fa25ad532760466b8e9751e1c5bf
      https://github.com/llvm/llvm-project/commit/15abe09f5af1fa25ad532760466b8e9751e1c5bf
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td

  Log Message:
  -----------
  [RISCV] Fix and refactor Zvk sched classes (#86519)

* VPseudoVALU_V_NoMask_Zvk, VPseudoVALU_S_NoMask_Zvk,
   VPseudoVALU_VV_NoMask_Zvk, and VPseudoVALU_VI_NoMask_Zvk
   do not read a merge op
* VPseudoUnaryV_V is a unary read instead of a binary read
* Convert all other cases `Sched<[...]>` to the equivalent SchedUnary,
   SchedBinary, or SchedTernary.


  Commit: 6b7b18a1a7fd37cea5f5d51569309e7ec954cefb
      https://github.com/llvm/llvm-project/commit/6b7b18a1a7fd37cea5f5d51569309e7ec954cefb
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/X86/ext-int-reduced-not-operand.ll

  Log Message:
  -----------
  [SLP]Fix PR87329: crash on alternate cast vectorization.

Need to fix the analysis for the alternate instructions, based on int
extension operations. If the alternate extension node is resized, but
not the operand, need to resize the node and do not shuffle final
result, we end up only with trunc instruction.


  Commit: b714fc7f869c9627bab38b3a6cac5d5d7720f204
      https://github.com/llvm/llvm-project/commit/b714fc7f869c9627bab38b3a6cac5d5d7720f204
  Author: Chenguang Wang <w3cing at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Support/FormatAdapters.h
    M llvm/include/llvm/Support/FormatCommon.h
    M llvm/include/llvm/Support/FormatProviders.h
    M llvm/include/llvm/Support/FormatVariadic.h
    M llvm/include/llvm/Support/FormatVariadicDetails.h
    M llvm/lib/Support/FormatVariadic.cpp
    M llvm/unittests/Support/FormatVariadicTest.cpp
    M mlir/include/mlir/TableGen/Format.h
    M mlir/lib/TableGen/Format.cpp

  Log Message:
  -----------
  Move format internal code from llvm::detail to llvm::support::detail. (#87288)

Some support code, e.g. llvm/Support/Endian.h, uses
llvm::support::detail, but the format-related code uses llvm::detail. On
VS2019, when a C++ file includes both headers, a `detail::` from
`namespace llvm { ... }` becomes ambiguous.

44253a9c breaks TensorFlow and
[JAX](https://github.com/google/jax/actions/runs/8507773013/job/23300219405)
build because of this.

Since llvm::X::detail seems like a cleaner solution and is used in other
places as well (e.g. llvm::yaml::detail), we should probably migrate all
llvm::detail usages to llvm::X::detail.


  Commit: 4c7de02bc0e25c3236b095ec9391294b2cc8b4ce
      https://github.com/llvm/llvm-project/commit/4c7de02bc0e25c3236b095ec9391294b2cc8b4ce
  Author: Daniel Grumberg <dgrumberg at apple.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M .github/CODEOWNERS

  Log Message:
  -----------
  [ExtractAPI] Add @daniel-grumberg into CODEOWNERS


  Commit: c5bbdb64940d75e7702d1d450e77534d908fc9f1
      https://github.com/llvm/llvm-project/commit/c5bbdb64940d75e7702d1d450e77534d908fc9f1
  Author: nihui <shuizhuyuanluo at 126.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M openmp/README.rst
    M openmp/runtime/CMakeLists.txt
    M openmp/runtime/cmake/LibompGetArchitecture.cmake
    M openmp/runtime/cmake/LibompUtils.cmake
    M openmp/runtime/cmake/config-ix.cmake
    M openmp/runtime/src/kmp_gsupport.cpp
    M openmp/runtime/src/kmp_os.h
    M openmp/runtime/src/kmp_platform.h
    M openmp/runtime/src/kmp_runtime.cpp
    M openmp/runtime/src/z_Linux_asm.S
    M openmp/runtime/src/z_Linux_util.cpp
    M openmp/runtime/test/ompt/callback.h
    M openmp/runtime/tools/lib/Platform.pm
    M openmp/runtime/tools/lib/Uname.pm

  Log Message:
  -----------
  [OpenMP] arm64_32 port for Apple WatchOS (#87246)

detect `aarch64_32` with compiler defined macro `__ARM64_ARCH_8_32__`
reuse ARM `__kmp_unnamed_critical_addr` and add `KMP_PREFIX_UNDERSCORE`
macro like AARCH64
reuse AARCH64 `__kmp_invoke_microtask`


build log for watchos armv7k + arm64_32 and watchos simulator x86_64 +
arm64

https://github.com/nihui/action-protobuf/actions/runs/8520684611/job/23337305030


  Commit: 31880df9947d58c160b691160c4714277be7c31e
      https://github.com/llvm/llvm-project/commit/31880df9947d58c160b691160c4714277be7c31e
  Author: nihui <shuizhuyuanluo at 126.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M openmp/runtime/src/z_Linux_util.cpp

  Log Message:
  -----------
  [OpenMP] get logical core count on modern apple platform (#87231)

`hw.logicalcpu` returns the available logical core count

Fix build error for watchOS

```
runtime/src/z_Linux_util.cpp:1821:8: error: 'host_info' is unavailable: not available on watchOS
  rc = host_info(mach_host_self(), HOST_BASIC_INFO, (host_info_t)&info, &num);
       ^
/Applications/Xcode_15.2.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS10.2.sdk/usr/include/mach/mach_host.h:82:15: note: 'host_info' has been explicitly marked unavailable here
kern_return_t host_info
              ^
1 warning and 1 error generated.
make[2]: *** [runtime/src/CMakeFiles/omp.dir/z_Linux_util.cpp.o] Error 1
```


  Commit: 2b6c038e1f15a64ade8ddb4e0ad60942c2132228
      https://github.com/llvm/llvm-project/commit/2b6c038e1f15a64ade8ddb4e0ad60942c2132228
  Author: Erick Velez <erickvelez7 at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/include/clang/ExtractAPI/DeclarationFragments.h
    M clang/lib/ExtractAPI/DeclarationFragments.cpp

  Log Message:
  -----------
  [clang][ExtractAPI] improve template argument name deduction (#77716)

The names of template arguments in partial specializations or parameters
used as types might be mangled according to index and depth. Instead of
looping through parameter lists to find matches like we do now, they can
be deduced via their QualTypes or as written from the AST.


  Commit: 6626eab07e2e9a1993a1ccdbf82bd88c3dc5b851
      https://github.com/llvm/llvm-project/commit/6626eab07e2e9a1993a1ccdbf82bd88c3dc5b851
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    R clang/test/Driver/Inputs/in.so
    R clang/test/Driver/Inputs/libomptarget/libomptarget-new-nvptx-sm_35.bc
    R clang/test/Driver/Inputs/libomptarget/libomptarget-new-nvptx-test.bc
    R clang/test/Driver/Inputs/openmp_static_device_link/empty.o
    R clang/test/Driver/Inputs/openmp_static_device_link/lib.bc
    R clang/test/Driver/Inputs/openmp_static_device_link/libFatArchive.a
    M clang/test/Driver/hip-link-shared-library.hip
    M clang/test/Driver/openmp-offload-gpu.c

  Log Message:
  -----------
  [Clang][NFC] Clean up unused binary files for offloading tests (#87351)

Summary:
We have a few binary files used for offloading tests that are either
entirely unused or easily replaceable.


  Commit: e12a1f8b325a72191c261b4f11726a9c58f84817
      https://github.com/llvm/llvm-project/commit/e12a1f8b325a72191c261b4f11726a9c58f84817
  Author: Rajveer Singh Bharadwaj <rajveer.developer at icloud.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/AST/ExprConstant.cpp
    A clang/test/Sema/GH70594.cpp

  Log Message:
  -----------
  [clang] Fix crash when inheriting from a cv-qualified type (#70594)

This change makes the `assertion` less strict in `debug` builds by
stripping qualifiers from the base class and ignoring them. I hope
`weakened` assertions don't affect other cases where such `errors` are
intended to be `caught` by the compiler.

Fixes #35603
Fixes #85256


  Commit: 4aba595f092e8e05e92656b23944ce6619465a78
      https://github.com/llvm/llvm-project/commit/4aba595f092e8e05e92656b23944ce6619465a78
  Author: Atousa Duprat <atousa.p at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/include/llvm/ADT/APInt.h
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/Support/APInt.cpp
    M llvm/unittests/ADT/APIntTest.cpp
    M llvm/unittests/Support/KnownBitsTest.cpp
    M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
    M mlir/lib/Dialect/SPIRV/IR/SPIRVCanonicalization.cpp

  Log Message:
  -----------
  [ADT] Add signed and unsigned mulh to APInt (#84719)

Fixes #84207


  Commit: f6198686b866d0a1efe7ce88f71c4293930c2dfe
      https://github.com/llvm/llvm-project/commit/f6198686b866d0a1efe7ce88f71c4293930c2dfe
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    A clang/test/C/C99/float_h-characteristics.c
    M clang/www/c_status.html

  Log Message:
  -----------
  [C99] Claim conformance to "additional floating-point characteristics in <float.h>"

This is another case where we don't have a paper number for the feature
but know about it from the editor's reports.


  Commit: 207f1531d611b8add27b94e756e0bc7eb864babf
      https://github.com/llvm/llvm-project/commit/207f1531d611b8add27b94e756e0bc7eb864babf
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

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

  Log Message:
  -----------
  [InstallAPI] Condense std::pair unwrapping in CategoryRecord NFC


  Commit: 153b8431bbea189f9698ddaf08dbedca4c24a918
      https://github.com/llvm/llvm-project/commit/153b8431bbea189f9698ddaf08dbedca4c24a918
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
    A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-bitcast.mir

  Log Message:
  -----------
  [RISCV][GISEL] Legalize G_BITCAST for scalable vectors (#85970)

SelectionDAG marks ISD::BITCAST as legal between scalable vector types
and ISelDAGToDAG deletes them.

We mark G_BITCAST between scalable vectors as legal in GISel. A future
patch will handle what to do with them after the legalizer (likley
either drop them in a isel-preprocess or convert them to COPYs).

BITCAST is needed for legalization of G_INSERT and G_EXTRACT. This is a
precommit for legalization of G_INSERT and G_EXTRACT.


  Commit: 4f0b5d5e8067cadafc4473476eb68aa0addad488
      https://github.com/llvm/llvm-project/commit/4f0b5d5e8067cadafc4473476eb68aa0addad488
  Author: Jim Lin <jim at andestech.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/lib/Basic/Targets/M68k.cpp
    M clang/lib/Basic/Targets/M68k.h
    A clang/test/CodeGen/M68k/inline-asm-gcc-regs.c

  Log Message:
  -----------
  [M68k] Change gcc register name from a7 to sp. (#87095)

In M68kRegisterInfo.td, register SP is defined with name sp and
alternate name a7.

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


  Commit: 9cb7dffa88190c36db0dc49a7dd2b67e0a44f97e
      https://github.com/llvm/llvm-project/commit/9cb7dffa88190c36db0dc49a7dd2b67e0a44f97e
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/SystemZ/ext-not-resized-op-resized.ll

  Log Message:
  -----------
  [SLP]Fix PR80027: handle case when ext is not reduced but its operand is.

Need to handle the case, where the resize operation itself is not
reduced but its operand is. In this case need to take an extra analysis
for the operand, not the instruction itself.


  Commit: 668c1ea4aa7f3907b92116748af087f2bb006a97
      https://github.com/llvm/llvm-project/commit/668c1ea4aa7f3907b92116748af087f2bb006a97
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    R clang/test/C/C99/array-lvalue.c
    A clang/test/C/C99/n835.c
    M clang/www/c_status.html

  Log Message:
  -----------
  [C99] Update paper number tracked for arrays & lvalues; NFC

I finally found the original paper proposing the changes, so this
updates the test name, comments, and status page but is otherwise NFC.


  Commit: 4d5e834c5b7f0ccccd90a6d543e182df602f6bc8
      https://github.com/llvm/llvm-project/commit/4d5e834c5b7f0ccccd90a6d543e182df602f6bc8
  Author: Jonas Paulsson <paulson1 at linux.ibm.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CGAtomic.cpp
    M clang/test/CodeGen/atomic.c

  Log Message:
  -----------
  [ClangFE] Improve handling of casting of atomic memory operations. (#86691)

- Factor out a shouldCastToInt() method.
- Also pass through pointer type values to not be casted to integer.

CC @uweigand


  Commit: 74483bd6f6bdecdd16efbfcd183b5e29e0234a3a
      https://github.com/llvm/llvm-project/commit/74483bd6f6bdecdd16efbfcd183b5e29e0234a3a
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/www/c_status.html

  Log Message:
  -----------
  [C99] Remove entry for LIA compatibility

We previously marked this as "No" but that's confusing; Annex H doesn't
require any changes for a C implementation, it's about how C relates to
other standards. We could mark this N/A, but I think it makes more
sense to treat it like a runtime library-specific change and simply
remove it from the tracker entirely.


  Commit: f462d9a97dbbeef712ef0de206ec17f5ed7e15c8
      https://github.com/llvm/llvm-project/commit/f462d9a97dbbeef712ef0de206ec17f5ed7e15c8
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/www/c_status.html

  Log Message:
  -----------
  [C99] Claim conformance to "remove deprecation of aliased array parameters"

I can't locate a document number for this particular change, but C89
had the following entry in Future Language Directions:

The use of two parameters declared with an array type (prior to their
adjustment to pointer type) in separate lvalues to designate the same
object is an obsolescent feature.

C99 removed this entry. Clang and LLVM have never done anything in
support of that deprecation, so we trivially conform to its removal.


  Commit: a5932e182ba7dd8f1ae131038bab051aea13e688
      https://github.com/llvm/llvm-project/commit/a5932e182ba7dd8f1ae131038bab051aea13e688
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/www/c_status.html

  Log Message:
  -----------
  Add a link to WG14 N835 to the status page


  Commit: 451cad3a2735f33e8b24cc0b53497d0dc8939f78
      https://github.com/llvm/llvm-project/commit/451cad3a2735f33e8b24cc0b53497d0dc8939f78
  Author: aniplcc <aniplccode at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/utils/TableGen/SveEmitter.cpp

  Log Message:
  -----------
  [clang] Prefer logical && over & for boolean operations (#87276)


  Commit: 3cf9f2c3a4b3aaffa9c1dbbe34624bcaabefd390
      https://github.com/llvm/llvm-project/commit/3cf9f2c3a4b3aaffa9c1dbbe34624bcaabefd390
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    A clang/test/C/C99/n782.c
    M clang/www/c_status.html

  Log Message:
  -----------
  [C99] Claim conformance to WG14 N782

C89 has more restrictions on aggregate initialization that were relaxed
in C99. We started diagnosing the C89 extension in Clang 3.4.


  Commit: 239236b8c2154aa49e98bc7ed774a7d2712edf50
      https://github.com/llvm/llvm-project/commit/239236b8c2154aa49e98bc7ed774a7d2712edf50
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M libcxx/include/__ranges/zip_view.h
    M libcxx/include/__utility/pair.h
    M libcxx/include/module.modulemap
    M libcxx/include/tuple
    M libcxx/test/std/ranges/range.adaptors/range.zip/borrowing.compile.pass.cpp
    M libcxx/test/std/ranges/range.utility/range.subrange/operator.pair_like.pass.cpp
    M libcxx/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_incomplete.pass.cpp
    M libcxx/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_structured_bindings.pass.cpp
    M libcxx/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_value_sfinae.pass.cpp

  Log Message:
  -----------
  [libc++] Remove pair dependency (#85621)

This moves the definition of a `pair` constructor for `<tuple>` to
`<__utility/pair.h>` and uses the forward declaration of `pair` in
`<tuple>` instead of including the definition.


  Commit: 82be6e186b5f88779325c5ede99ac714b2cfc4fa
      https://github.com/llvm/llvm-project/commit/82be6e186b5f88779325c5ede99ac714b2cfc4fa
  Author: aniplcc <aniplccode at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M libc/config/gpu/entrypoints.txt
    M libc/config/gpu/headers.txt
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/spec/posix.td
    M libc/src/unistd/CMakeLists.txt
    A libc/src/unistd/_exit.cpp
    A libc/src/unistd/_exit.h
    M libc/test/src/unistd/CMakeLists.txt
    A libc/test/src/unistd/_exit_test.cpp

  Log Message:
  -----------
  [libc][posix] implement _exit (#87185)

Fixes  #87126.


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

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/shuffle-vs-trunc-256.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-7.ll

  Log Message:
  -----------
  [X86] canonicalizeShuffleWithOp - don't fold VPERMI(BINOP(X,Y)) -> BINOP(VPERMI(X),VPERMI(Y))

VPERMI (VPERMQ/PD) is nearly always lane-crossing and poorly merges with target shuffles (other than itself).

For now, I've restricted VPERMI to only merge with itself, constants, loads and splats.

We might be able to merge with a few other special cases (AND/ANDNP with constant?), which could help the shuffle-vs-trunc-256.ll AVX512VL regression, but since that now gives similar codegen to the other AVX512 variants, I'd prefer to improve the shuffle lowering for that properly.


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

  Changed paths:
    M clang/test/Driver/compiler-rt-unwind.c
    M clang/test/Driver/constructors.c
    M clang/test/Driver/cuda-detect.cu
    M clang/test/Driver/dragonfly.c
    M clang/test/Driver/env.c
    M clang/test/Driver/haiku.c
    M clang/test/Driver/hexagon-toolchain-elf.c
    M clang/test/Driver/linux-header-search.cpp
    M clang/test/Driver/linux-ld.c
    M clang/test/Driver/linux-musl-header-search.cpp
    M clang/test/Driver/linux-per-target-runtime-dir.c
    M clang/test/Driver/mips-reduced-toolchain.cpp
    M clang/test/Driver/netbsd.cpp
    M clang/test/Driver/ohos.c
    M clang/test/Driver/pic.c
    M clang/test/Driver/riscv-features.c
    M clang/test/Driver/solaris-ld-sanitizer.c
    M clang/test/Driver/solaris-ld-values.c
    M clang/test/Driver/solaris-ld-values.cpp
    M clang/test/Driver/solaris-ld.c

  Log Message:
  -----------
  [Driver,test] Remove --gcc-toolchain=""

This option was added so that changing CMake GCC_INSTALL_PREFIX would
not cause test failures or due to cargo culting. Setting
GCC_INSTALL_PREFIX leads to an error now and we should stop making our
tests ugly.


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

  Changed paths:
    M llvm/test/Analysis/CostModel/ARM/intrinsic-cost-kinds.ll
    M llvm/test/Analysis/CostModel/X86/intrinsic-cost-kinds.ll

  Log Message:
  -----------
  [FPEnv][CostModel] Correct strictfp test.

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.

Test changes verified with D146845.


  Commit: f792f14b01605453c7c0c17f3b4564335c0d9d14
      https://github.com/llvm/llvm-project/commit/f792f14b01605453c7c0c17f3b4564335c0d9d14
  Author: Tim Neumann <timnn at google.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/include/llvm/MC/MCContext.h
    M llvm/lib/MC/MCContext.cpp
    M llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.h
    M llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.h
    A llvm/test/MC/WebAssembly/module-asm.ll

  Log Message:
  -----------
  [WebAssembly] Allocate MCSymbolWasm data on MCContext (#85866)

Fixes #85578, a use-after-free caused by some `MCSymbolWasm` data being
freed too early.

Previously, `WebAssemblyAsmParser` owned the data that is moved to
`MCContext` by this PR, which caused problems when handling module ASM,
because the ASM parser was destroyed after parsing the module ASM, but
the symbols persisted.

The added test passes locally with an LLVM build with AddressSanitizer
enabled.

Implementation notes:

* I've called the added method
<code>allocate<b><i>Generic</i></b>String</code> and added the second
paragraph of its documentation to maybe guide people a bit on when to
use this method (based on my (limited) understanding of the `MCContext`
class). We could also just call it `allocateString` and remove that
second paragraph.
* The added `createWasmSignature` method does not support taking the
return and parameter types as arguments: Specifying them afterwards is
barely any longer and prevents them from being accidentally specified in
the wrong order.
* This removes a _"TODO: Do the uniquing of Signatures here instead of
ObjectFileWriter?"_ since the field it's attached to is also removed.
Let me know if you think that TODO should be preserved somewhere.


  Commit: 3d469c0e7c3072f0dad0f5e9bd0c74dffaf83cd3
      https://github.com/llvm/llvm-project/commit/3d469c0e7c3072f0dad0f5e9bd0c74dffaf83cd3
  Author: aniplcc <aniplccode at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/lib/Frontend/CompilerInvocation.cpp
    A clang/test/CodeGenHLSL/convergent-functions.hlsl

  Log Message:
  -----------
  [HLSL] Enable -fconvergent-functions by default (#86571)

Fixes  #86506


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/RISCV/mixed-extracts-types.ll

  Log Message:
  -----------
  [SLP]Fix PR87384: check for fixed vector type before using.

If we have mixed extractelement instructions, fixed and scalable ones,
need to check that compiler tries to estimate the cost for fixed vector
extractelement, not the scalable one, to avoid compiler crash.


  Commit: 8c1dc5dd589ce6c056b95e43b72338ddea40789c
      https://github.com/llvm/llvm-project/commit/8c1dc5dd589ce6c056b95e43b72338ddea40789c
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/vector-interleave.ll

  Log Message:
  -----------
  [RISCV] Add test for miscompile of vector.interleave when odd vector is literal poison.

The interleave lowering relies on a math trick that requires passing
the odd vector to two math instructions. In order to be correct
these instructions must see the same value.

If the odd vector is provably poison or undef, SelectionDAG will
create a vwadd and vwmaccu where the operand is a copy from IMPLICIT_DEF.
Later this will become just the undef flag on the operand. This
gives the register allocator freedom to pick a different register
for each instruction.


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

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/vector-interleave.ll

  Log Message:
  -----------
  [RISCV] Lower (vector_interleave X, undef) to (vzext_vl X). (#87283)

If the odd vector is undef or poison, the widening add and multiply trick
doesn't work unless we freeze the odd vector.

Unfortunately, freezing doesn't work when the operand is provably
undef/poison. MIR doesn't have a representation for freeze so it
just becomes a COPY from IMPLICIT_DEF which freely propagates undef
to each operand independently.

To work around this, check for undef explicitly and lower to a VZEXT_VL
of the even vector. This produces better code than we'd get from a
freeze anyway.

I've left a FIXME for adding a freeze. I'll do that as a separate patch
as it affects other tests and doesn't help with the new test.


  Commit: 13be0d4a34c421607a5c082ec39dad2cbd6d506f
      https://github.com/llvm/llvm-project/commit/13be0d4a34c421607a5c082ec39dad2cbd6d506f
  Author: Ameer J <52414509+ameerj at users.noreply.github.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/docs/ClangFormatStyleOptions.rst
    M clang/include/clang/Format/Format.h
    M clang/lib/Format/Format.cpp
    M clang/lib/Format/FormatToken.h
    M clang/lib/Format/TokenAnnotator.cpp
    M clang/unittests/Format/FormatTest.cpp

  Log Message:
  -----------
  [clang-format] Add BreakFunctionDefinitionParameters option (#84988)

This adds an option to break function definition parameters, putting
them on the next line after the function's opening paren.

This was a missing step towards allowing styles which require all
function definition parameters be on their own lines.

Closes #62963


  Commit: 133156c1380ef592ad0fb2dd44473f583dbee1b7
      https://github.com/llvm/llvm-project/commit/133156c1380ef592ad0fb2dd44473f583dbee1b7
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M mlir/lib/Transforms/InlinerPass.cpp

  Log Message:
  -----------
  [mlir][inliner] Assert that no external nodes passed to the profitability hook. (#85489)

Fixes #85400


  Commit: 212b1a84a6bd5648b3f3846f3508ff1ce914132e
      https://github.com/llvm/llvm-project/commit/212b1a84a6bd5648b3f3846f3508ff1ce914132e
  Author: Prabhuk <prabhukr at google.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/MachineFunction.h
    M llvm/include/llvm/CodeGen/SelectionDAG.h
    M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
    M llvm/lib/CodeGen/MIRParser/MIRParser.cpp
    M llvm/lib/CodeGen/MIRPrinter.cpp
    M llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/lib/Target/Mips/MipsISelLowering.cpp
    M llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  Log Message:
  -----------
  [CallSiteInfo][NFC] CallSiteInfo -> CallSiteInfo.ArgRegPairs (#86842)

CallSiteInfo is originally used only for argument - register pairs. Make
it struct, in which we can store additional data for call sites.

Also, the variables/methods used for CallSiteInfo are named for its
original use case, e.g., CallFwdRegsInfo. Refactor these for the
upcoming
use, e.g. addCallArgsForwardingRegs() -> addCallSiteInfo().

An upcoming patch will add type ids for indirect calls to propogate them
from
middle-end to the back-end. The type ids will be then used to emit the
call
graph section.

Original RFC:
https://lists.llvm.org/pipermail/llvm-dev/2021-June/151044.html
Updated RFC:
https://lists.llvm.org/pipermail/llvm-dev/2021-July/151739.html

Differential Revision: https://reviews.llvm.org/D107109?id=362888

Co-authored-by: Necip Fazil Yildiran <necip at google.com>


  Commit: c403a478076a16172d9b50e16c288b0d360f42ce
      https://github.com/llvm/llvm-project/commit/c403a478076a16172d9b50e16c288b0d360f42ce
  Author: Changpeng Fang <changpeng.fang at amd.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/include/llvm/IR/IntrinsicsAMDGPU.td

  Log Message:
  -----------
  AMDGPU: Update the description of cache policy for buffer intrinsics, NFC (#87364)

Explicitly added gfx940, which has SC and NT bits. There must be better
ways of documenting the cache policy. But this is what I can do now.

Fixes: SWDEV-449810


  Commit: 6335de4a23e4b71020861b872f51bafb79fbe419
      https://github.com/llvm/llvm-project/commit/6335de4a23e4b71020861b872f51bafb79fbe419
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M libc/config/gpu/entrypoints.txt
    M libc/config/gpu/headers.txt

  Log Message:
  -----------
  [libc] Disable '_exit' on the GPU build

Summary:
There are other dependencies to enable `unistd.h` on the GPU which
prevented the header from being generated. This is a POSIX extension and
isn't part of the core `libc`, so we can just disable this for now to
get the bots gree.


  Commit: 7f2a41b643af1348631dee27dc1321046370a758
      https://github.com/llvm/llvm-project/commit/7f2a41b643af1348631dee27dc1321046370a758
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

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

  Log Message:
  -----------
  MachineScheduler: Simplify usage of TargetInstrInfo


  Commit: 6b2a4668b99ef47f567709bcf6f57bc60c35eea9
      https://github.com/llvm/llvm-project/commit/6b2a4668b99ef47f567709bcf6f57bc60c35eea9
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    A clang/test/C/C11/n1482.c
    M clang/www/c_status.html

  Log Message:
  -----------
  [C11] Claim conformance to WG14 N1482

This paper added a pile of macros for atomic initialization which we
started supporting in Clang 4.0.


  Commit: 817c6915aeadbed100efee9e70eb42d9368d5ee6
      https://github.com/llvm/llvm-project/commit/817c6915aeadbed100efee9e70eb42d9368d5ee6
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M .github/workflows/email-check.yaml
    M .github/workflows/issue-write.yml

  Log Message:
  -----------
  [workflows] Use issue-write workflow for warning about private emails (#87399)

This allows us to use the less privileged pull_request event for the
validate_email job, since this workflow no longer writes a comment
directly.


  Commit: d8db13edd60b195e6692deb04d63e633319e486a
      https://github.com/llvm/llvm-project/commit/d8db13edd60b195e6692deb04d63e633319e486a
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td

  Log Message:
  -----------
  [RISCV][NFC] Delete some unused pseudo multiclasses (#87401)

We only use the `RM` equivalents now.


  Commit: 6261c53c6f9c82bfca5df2ed5917876d748ed079
      https://github.com/llvm/llvm-project/commit/6261c53c6f9c82bfca5df2ed5917876d748ed079
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
    M llvm/lib/Transforms/Vectorize/VPlan.h
    A llvm/test/Transforms/LoopVectorize/pr87378-vpinstruction-or-drop-poison-generating-flags.ll

  Log Message:
  -----------
  [VPlan] Make sure OR VPInstructions are treated as disjoint ops.

Make sure that VPInstructions with OR opcodes are properly registered as
disjoint ops.

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


  Commit: c3e3d59fab8ae8161810c861d78c7b5fcabb1a2e
      https://github.com/llvm/llvm-project/commit/c3e3d59fab8ae8161810c861d78c7b5fcabb1a2e
  Author: Han-Chung Wang <hanhan0912 at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
    M mlir/test/Dialect/Tensor/canonicalize.mlir

  Log Message:
  -----------
  [mlir][tensor] Fix tensor::PackOp fold() handling of padding value (#87296)

We can't just check if it is a splat constant or not. We should also
check if the value match.


  Commit: f119a4ffb885ed588c46de1d51f4185572142ca2
      https://github.com/llvm/llvm-project/commit/f119a4ffb885ed588c46de1d51f4185572142ca2
  Author: Chris Bieneman <chris.bieneman at me.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/test/CodeGenHLSL/builtins/wave_get_lane_index_subcall.hlsl

  Log Message:
  -----------
  [HLSL] Fix broken spir-v test

This fixes a test broken in 3d469c0e7c3072f0dad0f5e9bd0c74dffaf83cd3.
fast-forwarded.
../clang/test/CodeGenHLSL/builtins/wave_get_lane_index_subcall.hlsl


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

  Changed paths:
    M openmp/runtime/src/kmp_tasking.cpp
    A openmp/runtime/test/tasking/issue-87307.c

  Log Message:
  -----------
  [OpenMP] Fix nested parallel with tasking (#87309)

When a nested parallel region ends, the runtime calls __kmp_join_call().
During this call, the primary thread of the nested parallel region will
reset its tid (retval of omp_get_thread_num()) to what it was in the
outer parallel region. A data race occurs with the current code when
another worker thread from the nested inner parallel region tries to
steal tasks from the primary thread's task deque. The worker thread
reads the tid value directly from the primary thread's data structure
and may read the wrong value.

This change just uses the calculated victim_tid from execute_tasks()
directly in the steal_task() routine rather than reading tid from the
data structure.

Fixes: #87307


  Commit: 89271b46761749503dffe94c60b9cbe0bda80284
      https://github.com/llvm/llvm-project/commit/89271b46761749503dffe94c60b9cbe0bda80284
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    A llvm/test/Transforms/LoopVectorize/RISCV/pr87378-vpinstruction-or-drop-poison-generating-flags.ll
    R llvm/test/Transforms/LoopVectorize/pr87378-vpinstruction-or-drop-poison-generating-flags.ll

  Log Message:
  -----------
  [LV] Add test depending on target to RISCV subdirectory.


  Commit: 7327014b49ba0e4c8227edaed569d21d3cc1ec74
      https://github.com/llvm/llvm-project/commit/7327014b49ba0e4c8227edaed569d21d3cc1ec74
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M libc/config/gpu/entrypoints.txt
    M libc/include/llvm-libc-types/rpc_opcodes_t.h
    M libc/spec/gpu_ext.td
    M libc/src/__support/arg_list.h
    M libc/src/gpu/CMakeLists.txt
    A libc/src/gpu/rpc_fprintf.cpp
    A libc/src/gpu/rpc_fprintf.h
    M libc/test/integration/src/stdio/CMakeLists.txt
    A libc/test/integration/src/stdio/gpu/CMakeLists.txt
    A libc/test/integration/src/stdio/gpu/printf.cpp
    M libc/utils/gpu/server/CMakeLists.txt
    M libc/utils/gpu/server/rpc_server.cpp

  Log Message:
  -----------
  [libc] Implement temporary `printf` on the GPU (#85331)

Summary:
This patch adds a temporary implementation that uses a struct-based
interface in lieu of varargs support. Once varargs support exists we
will move this implementation to the "real" printf implementation.

Conceptually, this patch has the client copy over its format string and
arguments to the server. The server will then scan the format string
searching for any specifiers that are actually a string. If it is a
string then we will send the pointer back to the server to tell it to
copy it back. This copied value will then replace the pointer when the
final formatting is done.

This will require a built-in extension to the varargs support to get
access to the underlying struct. The varargs used on the GPU will simply
be a struct wrapped in a varargs ABI.


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

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

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

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

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

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

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

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


  Commit: 2cf8118e3aa60f406ec41e88bdd4304f39744e89
      https://github.com/llvm/llvm-project/commit/2cf8118e3aa60f406ec41e88bdd4304f39744e89
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M openmp/libomptarget/DeviceRTL/CMakeLists.txt
    M openmp/libomptarget/DeviceRTL/src/LibC.cpp
    A openmp/libomptarget/test/libc/printf.c

  Log Message:
  -----------
  [Libomptarget] Add RPC-based `printf` implementation for OpenMP (#85638)

Summary:
This patch adds an implementation of `printf` that's provided by the GPU
C library runtime. This `pritnf` currently implemented using the same
wrapper handling that OpenMP sets up. This will be removed once we have
proper varargs support.

This `printf` differs from the one CUDA offers in that it is synchronous
and uses a finite size. Additionally we support pretty much every format
specifier except the `%n` option.

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


  Commit: a7f4576ff4e296ff42b16d9d91aadf82b5ea325c
      https://github.com/llvm/llvm-project/commit/a7f4576ff4e296ff42b16d9d91aadf82b5ea325c
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/lib/Format/TokenAnnotator.cpp
    M clang/unittests/Format/TokenAnnotatorTest.cpp

  Log Message:
  -----------
  [clang-format] Fix a regression in annotating TrailingReturnArrow (#86624)

Fixes #86559.


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

  Changed paths:
    M libc/src/__support/macros/config.h

  Log Message:
  -----------
  [libc] Work around lack of '__has_builtin' for GPU server (#87417)

Summary:
The RPC server build for the GPU support needs to be build from the
"projects" phase of the LLVM build. That means it is built with the same
compile that LLVM supports, which currently is GCC 7.4 in most cases.
A previous patch removed the `LIBC_HAS_BUILTIN` indirection we used,
which regressed the case where we used the `libc` source externally. The
files that we need to use here are `converter.cpp` and `writer.cpp`
which currently are compatible with C++17, so there aren't issues with
the code itself. However, older GCC does not have this builtin which
makes the checks fail.

This patch just adds in a simple wrapper that allows it to correctly
ignore everything if using a compiler that doesn't support it.


  Commit: 68217a52fb9fec8a88623f97a90899b8d27eefb3
      https://github.com/llvm/llvm-project/commit/68217a52fb9fec8a88623f97a90899b8d27eefb3
  Author: Haowei <haowei at google.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

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

  Log Message:
  -----------
  [Fuchsia] Add SWIG flags to Fuchsia Clang stage2 build (#87421)

This patch adds SWIG cmake flags to the stage2 build in Fuchsia
Clang configuration.


  Commit: b4adb42151bbfa80be4cf6d076cbe5edf680693e
      https://github.com/llvm/llvm-project/commit/b4adb42151bbfa80be4cf6d076cbe5edf680693e
  Author: Jon Chesterfield <jonathanchesterfield at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/lib/Tooling/CMakeLists.txt

  Log Message:
  -----------
  Use setup_host_tool for clang-ast-dump, fixes 76707


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

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

  Log Message:
  -----------
  [CodeGen][NFC] Make an opt<> static


  Commit: 12c7371296e59c22debdd906f632c5e6574e3a44
      https://github.com/llvm/llvm-project/commit/12c7371296e59c22debdd906f632c5e6574e3a44
  Author: Changpeng Fang <changpeng.fang at amd.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

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

  Log Message:
  -----------
  AMDGPU: Use PseudoInstr instead of Pseudo Mnemonic for SIMCInstr, NFC (#87420)

Pseudo Mnemonic could be of other uses.


  Commit: 84ae8cb4af9abafe9f45e69744607aadb38d649a
      https://github.com/llvm/llvm-project/commit/84ae8cb4af9abafe9f45e69744607aadb38d649a
  Author: Jan Kokemüller <jan.kokemueller at gmail.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M libcxx/include/__iterator/advance.h
    M libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp
    M libcxx/test/support/test_iterators.h

  Log Message:
  -----------
  [libc++] `std::ranges::advance`: avoid unneeded bounds checks when advancing iterator (#84126)

Currently, the bounds check in `std::ranges::advance(it, n, s)` is done
_before_ `n` is checked. This results in one extra, unneeded bounds
check.

Thus, `std::ranges::advance(it, 1, s)` currently is _not_ simply
equivalent to:

```c++
if (it != s) {
    ++it;
}
```

This difference in behavior matters when the check involves some
"expensive" logic. For example, the `==` operator of
`std::istreambuf_iterator` may actually have to read the underlying
`streambuf`.

Swapping around the checks in the `while` results in the expected
behavior.


  Commit: e61d6b74ddf28df196484f6251271f543ae902ab
      https://github.com/llvm/llvm-project/commit/e61d6b74ddf28df196484f6251271f543ae902ab
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M lldb/include/lldb/lldb-private-enumerations.h
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h

  Log Message:
  -----------
  [lldb][SymbolFileDWARFDebugMap] Introduce enum to indicate whether to continue iteration of object files (#87344)

This patch introduces a new `IterationMarker` enum (happy to take
alternative name suggestions), which callbacks, like the one in
`SymbolFileDWARFDebugMap::ForEachSymbolFile`, can return in order to
indicate whether the caller should continue iterating or bail.

For now this patch just changes the `ForEachSymbolFile` callback to use
this new enum. In the future we could change the various
`DWARFIndex::GetXXX` callbacks to do the same.

This makes the callbacks easier to read and hopefully reduces the chance
of bugs like https://github.com/llvm/llvm-project/pull/87177.


  Commit: 0a94d35bfb81cb0bef60ebe60513d191661da0bd
      https://github.com/llvm/llvm-project/commit/0a94d35bfb81cb0bef60ebe60513d191661da0bd
  Author: Spenser Bauman <sbauman at mathworks.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/Tosa/Transforms/TosaInferShapes.cpp
    M mlir/test/Dialect/Tosa/tosa-infer-shapes.mlir

  Log Message:
  -----------
  [mlir][tosa] Fix tosa-infer-shapes crash (#87234)

The tosa-infer-shapes pass inserts tensor.cast operations to mediate
refined result types with consumers whose types cannot be refined. This
process interferes with how types are refined in tosa.while_loop body
regions, where types are propagated speculatively (to determine the
types of the tosa.yield terminator) and then reverted.

The new tosa.cast operations result in a crash due to not having types
associated to them for the reversion process.

This change modifies the shape propagation behavior so that the
introduction to tensor.cast operations behaves better with this type
reversion process. The new behavior is to only introduce tensor.cast
operations once we wish to commit the newly computed types to the IR.

This is an example causing the crash:

```mlir
func.func @while_dont_crash(%arg0 : tensor<i32>) -> (tensor<*xi32>) {
  %0 = tosa.add %arg0, %arg0 : (tensor<i32>, tensor<i32>) -> tensor<*xi32>

  %1 = tosa.while_loop (%arg1 = %0) : (tensor<*xi32>) -> tensor<*xi32> {
    %2 = "tosa.const"() <{value = dense<3> : tensor<i32>}> : () -> tensor<i32>
    %3 = tosa.greater_equal %2, %arg1 : (tensor<i32>, tensor<*xi32>) -> tensor<*xi1>
    tosa.yield %3 : tensor<*xi1>
  } do {
  ^bb0(%arg1: tensor<*xi32>):
    // Inferrable operation whose type will refine to tensor<i32>
    %3 = tosa.add %arg1, %arg1 : (tensor<*xi32>, tensor<*xi32>) -> tensor<*xi32>

    // Non-inferrable use site, will require the cast:
    //     tensor.cast %3 : tensor<i32> to tensor<*xi32>
    // 
    // The new cast operation will result in accessing undefined memory through
    // originalTypeMap in the C++ code.
    "use"(%3) : (tensor<*xi32>) -> ()
    tosa.yield %3 : tensor<*xi32>
  }

  return %1 : tensor<*xi32>
}
```

The `tensor.cast` operation inserted in the loop body causes a failure
in the code which resets the types after propagation through the loop
body:

```c++
// The types inferred in the block assume the operand types specified for
// this iteration. We need to restore the original types to ensure that
// future iterations only use the already specified types, not possible
// types from previous iterations.
for (auto &block : bodyRegion) {
  for (auto arg : block.getArguments())
    arg.setType(originalTypeMap[arg]);
  for (auto &op : block)
    for (auto result : op.getResults())
      result.setType(originalTypeMap[result]);  // problematic access
}
```

---------

Co-authored-by: Spenser Bauman <sabauma at fastmail>


  Commit: 0492e1e79568eaad3b693b4c1031139437b7e3f8
      https://github.com/llvm/llvm-project/commit/0492e1e79568eaad3b693b4c1031139437b7e3f8
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M libc/src/stdio/printf_core/core_structs.h

  Log Message:
  -----------
  [libc] Include 'config.h' from the printf structs for builtins


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

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

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

Reverts llvm/llvm-project#85231

See build failure
https://lab.llvm.org/buildbot/#/builders/186/builds/15631


  Commit: 04dbf7ad44dbe099f8265ad1db38cbf9a0767a82
      https://github.com/llvm/llvm-project/commit/04dbf7ad44dbe099f8265ad1db38cbf9a0767a82
  Author: A. Jiang <de34 at live.cn>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M libcxx/include/__algorithm/ranges_contains_subrange.h
    M libcxx/test/std/algorithms/alg.nonmodifying/alg.contains/ranges.contains_subrange.pass.cpp

  Log Message:
  -----------
  [libc++][ranges] Avoid using `distance` in `ranges::contains_subrange` (#87155)

Both `std::distance` or `ranges::distance` are inefficient for
non-sized ranges. Also, calculating the range using `int` type is
seriously problematic.

This patch avoids using `distance` and calculation of the length of
non-sized ranges.

Fixes #86833.


  Commit: ea4a11926b53be5d308a8b40eb7353d3f59eb5f5
      https://github.com/llvm/llvm-project/commit/ea4a11926b53be5d308a8b40eb7353d3f59eb5f5
  Author: Ryotaro KASUGA <kasuga.ryotaro at fujitsu.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/MachinePipeliner.cpp
    A llvm/test/CodeGen/AArch64/sms-regpress.mir
    M llvm/test/CodeGen/PowerPC/sms-regpress.mir

  Log Message:
  -----------
  Reapply "[CodeGen] Fix register pressure computation in MachinePipeli… (#87312)

…ner (#87030)"

Fix broken test.

This reverts commit b8ead2198f27924f91b90b6c104c1234ccc8972e.


  Commit: 3ae5c77e976c02ce9e575870e4316af51fe97075
      https://github.com/llvm/llvm-project/commit/3ae5c77e976c02ce9e575870e4316af51fe97075
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M libc/src/stdio/printf_core/core_structs.h

  Log Message:
  -----------
  [libc] Move include so it covers the other files

Summary:
This is more hacky, but I want to get the bot green before we work on a
better solution.


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

  Changed paths:
    M mlir/lib/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.cpp
    M mlir/test/Dialect/SparseTensor/one_shot_bufferize_tensor_copy_insertion.mlir

  Log Message:
  -----------
  [mlir][linalg][bufferize] Fix element-wise access optimization for sparse tensors (#87305)

`linalg.generic` ops with sparse tensors do not necessarily bufferize to
element-wise access, because insertions into a sparse tensor may change
the layout of (or reallocate) the underlying sparse data structures.


  Commit: 3b19cd7f80d8464d5f1bd8b2a0adf925d10556c4
      https://github.com/llvm/llvm-project/commit/3b19cd7f80d8464d5f1bd8b2a0adf925d10556c4
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

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

  Log Message:
  -----------
  [RISCV] Slightly simplify RVVArgDispatcher::constructArgInfos. NFC (#87308)

Use a single insert for the non-mask case instead of a push_back
followed by an insert that may contain 0 registers.


  Commit: c925c1646dd248d15ae93c6b3cbd04bb86b9775f
      https://github.com/llvm/llvm-project/commit/c925c1646dd248d15ae93c6b3cbd04bb86b9775f
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTWriter.cpp

  Log Message:
  -----------
  [clang][modules] NFCI: Pragma diagnostic mappings: write/read `FileID` instead of `SourceLocation` (#87427)

For pragma diagnostic mappings, we always write/read `SourceLocation`
with offset 0. This is equivalent to just writing a `FileID`, which is
exactly what this patch starts doing.

Originally reviewed here: https://reviews.llvm.org/D137213


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

  Changed paths:
    M lld/ELF/SyntheticSections.cpp
    M lld/test/ELF/gnu-ifunc-nonpreemptible.s
    R lld/test/ELF/gnu-ifunc-relative.s

  Log Message:
  -----------
  [ELF] Sort IRELATIVE by offset

Improve the test gnu-ifunc-nonpreemptible.s to check IRELATIVE offsets.
Ensure that IRELATIVE offsets are ordered to improve locality.


  Commit: 943f39d29e1ec0d005977e6c3e85390119b8cb4e
      https://github.com/llvm/llvm-project/commit/943f39d29e1ec0d005977e6c3e85390119b8cb4e
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M openmp/libomptarget/DeviceRTL/CMakeLists.txt
    M openmp/libomptarget/DeviceRTL/src/LibC.cpp
    R openmp/libomptarget/test/libc/printf.c

  Log Message:
  -----------
  Revert "[Libomptarget] Add RPC-based `printf` implementation for OpenMP (#85638)"

This reverts commit 2cf8118e3aa60f406ec41e88bdd4304f39744e89.

Failing tests, revert until I can fix it


  Commit: 8b859c6e4a8e9ab9969582267bbdc04ed6bfa535
      https://github.com/llvm/llvm-project/commit/8b859c6e4a8e9ab9969582267bbdc04ed6bfa535
  Author: Cinhi Young <cyanoxygen2725 at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/lib/Target/Mips/Mips32r6InstrInfo.td
    M llvm/test/MC/Disassembler/Mips/mips32r6/valid-mips32r6-el.txt
    M llvm/test/MC/Disassembler/Mips/mips32r6/valid-mips32r6.txt
    M llvm/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6-el.txt
    M llvm/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6.txt
    M llvm/test/MC/Mips/mips32r6/valid.s
    M llvm/test/MC/Mips/mips64r6/valid.s

  Log Message:
  -----------
  [MIPS] Fix the opcode of max.fmt and mina.fmt (#85609)

- The opcode of the mina.fmt and max.fmt is documented wrong, the
  object code compiled from the same assembly with LLVM behaves
  differently than one compiled with GCC and Binutils.
- Modify the opcodes to match Binutils. The actual opcodes are as
follows:

  {5,3} | bits {2,0} of func
           |    ...   | 100  | 101    | 110   | 111
  -----+-----+-----+-----+-----+-----
   010  |   ...   |  min  | mina | max  | maxa


  Commit: 2fb5440e76dd61f91006d9d2831cf5c9235cd109
      https://github.com/llvm/llvm-project/commit/2fb5440e76dd61f91006d9d2831cf5c9235cd109
  Author: Vinayak Dev <104419489+vinayakdsci at users.noreply.github.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M libc/docs/math/index.rst

  Log Message:
  -----------
  [libc] Re-organize the math function tables in docs (#87412)

Re-organizes the tables that listed libc's support for math functions,
and adds two new columns to the tables indicating where the respective
function definitions and error handling methods are located in the C23
standard draft WG14-N3096.


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

  Changed paths:
    M lld/ELF/SyntheticSections.cpp
    M lld/test/ELF/gnu-ifunc-nonpreemptible.s

  Log Message:
  -----------
  [ELF] Actually sort IRELATIVE by offset

The unstable partition in partitionRels might reverse IRELATIVE
relocations, so stable_partition in computeRels would lead to IRELATIVE
relocations ordered by decreasing offset. Use stable_partition in
partitionRels to get IRELATIVE relocations ordered by increasing offset.


  Commit: 986435c765eb6101e8a31faa7c53ec28260c6ad2
      https://github.com/llvm/llvm-project/commit/986435c765eb6101e8a31faa7c53ec28260c6ad2
  Author: Vinayak Dev <104419489+vinayakdsci at users.noreply.github.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M libc/docs/math/index.rst

  Log Message:
  -----------
  [libc] Move {f,d}sqrt to higher functions in docs (#87445)

Moves the functions `fsqrt()` and `dsqrt()` from basic functions to
higher math functions in math docs


  Commit: ed1cfffe9b2b2d3cc9279ff83400ace156b317a2
      https://github.com/llvm/llvm-project/commit/ed1cfffe9b2b2d3cc9279ff83400ace156b317a2
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/lib/Frontend/PrecompiledPreamble.cpp
    M clang/lib/Serialization/GeneratePCH.cpp
    A clang/test/Modules/reduced-bmi-size.cppm

  Log Message:
  -----------
  [NFC] [C++20] [Modules] [Reduced BMI] Make sure the size of reduced BMI is not large than full BMI

Before this patch, the size of the reduced BMI may be large than the
full BMI when the source codes is pretty small. This violates the design
principles. The root cause is an oversight that we skipped something
in full BMI but forgot to make it in reduced BMI.


  Commit: 83402c301982dc672e8996e1a33e7c4abf109044
      https://github.com/llvm/llvm-project/commit/83402c301982dc672e8996e1a33e7c4abf109044
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    A llvm/test/tools/dsymutil/ARM/firmware.test
    A llvm/test/tools/dsymutil/Inputs/private/tmp/firmware/test.o
    A llvm/test/tools/dsymutil/Inputs/private/tmp/firmware/test.out
    M llvm/tools/dsymutil/DwarfLinkerForBinary.cpp

  Log Message:
  -----------
  [dsymutil] Support generating dSYMs for firmware environments (#87432)

Support generating dSYM companion files for (non-Darwin) firmware
environments by considering the binary component of the triple in
addition to the OS component.

rdar://125629792


  Commit: 324436c29ffd14bcf96c94500d5e43391f2b1e51
      https://github.com/llvm/llvm-project/commit/324436c29ffd14bcf96c94500d5e43391f2b1e51
  Author: smanna12 <soumi.manna at intel.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M clang/lib/Sema/SemaStmtAttr.cpp
    M clang/test/Sema/code_align.c

  Log Message:
  -----------
  [Clang] Fix bugs the way we handle duplicate vs conflicting values with loop attribute 'code_align' (#87372)

https://github.com/llvm/llvm-project/pull/70762 added support for new
loop attribute [[clang::code_align()]].

This patch fixes bugs for the test cases below that misses diagnostics due to discontinue to while loop during checking duplicate vs conflicting code_align attribute values in routine CheckForDuplicateLoopAttrs().

[[clang::code_align(4)]]
[[clang::code_align(4)]]
[[clang::code_align(8)]]
for(int I=0; I<128; ++I) { bar(I); }

[[clang::code_align(4)]]
[[clang::code_align(4)]]
[[clang::code_align(8)]]
[[clang::code_align(32)]]
for(int I=0; I<128; ++I) { bar(I); }


  Commit: 2b86fb21f8402f19da7e5887a9572b3d55052991
      https://github.com/llvm/llvm-project/commit/2b86fb21f8402f19da7e5887a9572b3d55052991
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M flang/include/flang/Common/api-attrs.h
    M flang/runtime/descriptor-io.h
    M flang/runtime/edit-output.cpp
    M flang/runtime/emit-encoded.h
    M flang/runtime/io-stmt.cpp
    M flang/runtime/io-stmt.h
    M flang/runtime/unit.cpp
    M flang/runtime/unit.h

  Log Message:
  -----------
  [flang][runtime] Avoid recursive calls in F18 runtime CUDA build. (#87428)

Recurrencies in the call graph (even if they are not executed)
prevent computing the minimal stack size required for a kernel
execution. This change disables some functionality of F18 IO
to avoid recursive calls. A couple of functions are rewritten
to work without using recursion.


  Commit: de3e05ecb22473fe9904272ec3511ad1fd62d8d0
      https://github.com/llvm/llvm-project/commit/de3e05ecb22473fe9904272ec3511ad1fd62d8d0
  Author: Mingming Liu <mingmingl at google.com>
  Date:   2024-04-02 (Tue, 02 Apr 2024)

  Changed paths:
    M llvm/test/Transforms/PGOProfile/vtable_profile.ll

  Log Message:
  -----------
  [nfc]Remove the check for compressed strings in llvm/test/.../vtable_profile.ll (#87449)

The check for compressed string is too restrictive (e.g. broke downstream users) and doesn't add much value to the test. Removed it.


  Commit: 4ef22fce8208b9fc08da60c5e4f014ca09811b96
      https://github.com/llvm/llvm-project/commit/4ef22fce8208b9fc08da60c5e4f014ca09811b96
  Author: hanbeom <kese111 at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/test/Transforms/InstCombine/select.ll

  Log Message:
  -----------
  [InstCombine] Simplify select if it combinated and/or/xor (#73362)

`and/or/xor` operations can each be changed to sum of logical
operations including operators other than themselves.

 `x&y -> (x|y) ^ (x^y)`
 `x|y -> (x&y) | (x^y)`
 `x^y -> (x|y) ^ (x&y)`

if left of condition of `SelectInst` is `and/or/xor` logical
operation and right is equal to `0, -1`, or a `constant`, and
if `TrueVal` consist of `and/or/xor` logical operation then we
can optimize this case.

This patch implements this combination.

Proof: https://alive2.llvm.org/ce/z/WW8iRR

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


  Commit: 7edddee2aa6a6183e40784c9141afec3e2eabb95
      https://github.com/llvm/llvm-project/commit/7edddee2aa6a6183e40784c9141afec3e2eabb95
  Author: Bevin Hansson <59652494+bevin-hansson at users.noreply.github.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/ExpandLargeFpConvert.cpp
    M llvm/test/Transforms/ExpandLargeFpConvert/X86/expand-large-fp-convert-fptosi129.ll
    M llvm/test/Transforms/ExpandLargeFpConvert/X86/expand-large-fp-convert-fptoui129.ll
    M llvm/test/Transforms/ExpandLargeFpConvert/X86/expand-large-fp-convert-si129tofp.ll
    M llvm/test/Transforms/ExpandLargeFpConvert/X86/expand-large-fp-convert-ui129tofp.ll

  Log Message:
  -----------
  [ExpandLargeFpConvert] Scalarize vector types. (#86954)

expand-large-fp-convert cannot handle vector types.
If overly large vector element types survive into
isel, they will likely be scalarized there, but since
isel cannot handle scalar integer types of that size,
it will assert.

Handle vector types in expand-large-fp-convert by
scalarizing them and then expanding the scalar type
operation. For large vectors, this results in a
*massive* code expansion, but it's better than
asserting.


  Commit: a75b3e949da588bafd521eff6d265f3ea2f854c2
      https://github.com/llvm/llvm-project/commit/a75b3e949da588bafd521eff6d265f3ea2f854c2
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/lib/Serialization/ASTWriter.cpp

  Log Message:
  -----------
  [NFC] [Serialization] Extract logics to write decls and types into a standalone function

This patch extract logics in ASTWriter::WriteASTCore about writing decls
and types into a standalone function. The WriteASTCore function is
pretty long and hard to read. It should be helpful for readability to extract the common
logics into a standalone function.

This is also helpful for further changes e.g., removing unreachable
declarations.


  Commit: 468dc32ff55d19f55132cbcc4d6ceb1f6d1c12cf
      https://github.com/llvm/llvm-project/commit/468dc32ff55d19f55132cbcc4d6ceb1f6d1c12cf
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

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

  Log Message:
  -----------
  [NFC] Make `DeclContext::noload_lookup()` accept transparent context

Now the `DeclContext::noload_lookup()` asserts that 'this' is not a
transparent context. However, this is not consistent with
`DeclContext::lookup()`, which will lookup into its parent context if
'this' is a transparent context.

This patch makes the behavior of `DeclContext::noload_lookup()` to be
consistent with `DeclContext::lookup()`, to lookup into the parent
context if 'this' is a transparent context.


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

  Changed paths:
    M clang/lib/Driver/ToolChains/MSVC.h
    A clang/test/Misc/win32-elf.c

  Log Message:
  -----------
  [Win32][ELF] Make CodeView a DebugInfoFormat only for COFF format (#87149)

We have many problems to use CodeView for a win32-elf target, e.g.,
#87140 and `error: .seh_* directives are not supported on this target`.

Fixes: #87140


  Commit: 6288f36c1640ee1f50fe35e07a97c50355066f27
      https://github.com/llvm/llvm-project/commit/6288f36c1640ee1f50fe35e07a97c50355066f27
  Author: David Green <david.green at arm.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
    M llvm/test/CodeGen/AArch64/sadd_sat.ll
    M llvm/test/CodeGen/AArch64/sadd_sat_vec.ll
    M llvm/test/CodeGen/AArch64/ssub_sat.ll
    M llvm/test/CodeGen/AArch64/ssub_sat_vec.ll
    M llvm/test/CodeGen/AArch64/uadd_sat_vec.ll
    M llvm/test/CodeGen/AArch64/usub_sat_vec.ll

  Log Message:
  -----------
  [AArch64][GlobalISel] Basic add_sat and sub_sat vector handling. (#80650)

This tries to fill in the basic vector handling for sadd_sat/uadd_sat
and ssub_sat/usub_sat. It just handles the basics, marking legal types
and clamping illegally sized vectors to legal ones.


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

  Changed paths:
    M clang/lib/Driver/ToolChains/MSVC.h
    R clang/test/Misc/win32-elf.c

  Log Message:
  -----------
  Revert "[Win32][ELF] Make CodeView a DebugInfoFormat only for COFF format (#87149)"

This reverts commit 4b25053ae47f50095371a663391baadfd2694eb0.

There're failures in some target.


  Commit: 4dd103e9c65de7d3dbf12e76fbb72724127ec325
      https://github.com/llvm/llvm-project/commit/4dd103e9c65de7d3dbf12e76fbb72724127ec325
  Author: Elizaveta Noskova <159026035+enoskova-sc at users.noreply.github.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

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

  Log Message:
  -----------
  [CodeGen][ShrinkWrap] Clarify StackAddressUsedBlockInfo meaning (#80679)


  Commit: 72c29fa9e226a928b3d3a01d74f6b44a0b31b7d4
      https://github.com/llvm/llvm-project/commit/72c29fa9e226a928b3d3a01d74f6b44a0b31b7d4
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/test/Driver/module-output.cppm

  Log Message:
  -----------
  [C++20] [Modules] [Driver] Emit unused argument warning if we use '-fmodule-output' with non-module input

We required the file name of an 'importable module unit' should end
with .cppm (or .ccm, .cxxm, .c++m).

But the driver can accept '-fmodule-output' for files with normal
suffixes (e.g., .cpp). This is somewhat inconsistency.

In this patch, we only claim the option `-fmodule-output` is used if
the type of the input file is modules related. Then now the compiler
will emit 'unused argument' warnings if the input file is not modules
related.


  Commit: 37eb0d4948dad6d2399915fde6eb5800c3fe825b
      https://github.com/llvm/llvm-project/commit/37eb0d4948dad6d2399915fde6eb5800c3fe825b
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M clang/lib/Serialization/GeneratePCH.cpp

  Log Message:
  -----------
  [NFC] Check the nullness of pointer before dereference it in the assertion

This was part of https://github.com/llvm/llvm-project/pull/85050.

It is suggested to split the unrelated change as much as possible. So
here is the patch.


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlan.cpp
    M llvm/lib/Transforms/Vectorize/VPlan.h

  Log Message:
  -----------
  [VPlan] Remove VPTransformState::addMetadata with ArrayRef arg (NFCI).

addMeadata is only over called with a single element, clean up the
variant that takes multiple values.


  Commit: 29c7d1a60c9d45e82f08cd7487178846ed5f9c6d
      https://github.com/llvm/llvm-project/commit/29c7d1a60c9d45e82f08cd7487178846ed5f9c6d
  Author: Chen Zheng <czhengsz at cn.ibm.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/PowerPC/legalize-vaarg.ll

  Log Message:
  -----------
  [PPC] [NFC] add testcase for more store forwarding


  Commit: 7c7ce0b9b1cef51e24f2dc7e904a8adf6aaf1abf
      https://github.com/llvm/llvm-project/commit/7c7ce0b9b1cef51e24f2dc7e904a8adf6aaf1abf
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

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

  Log Message:
  -----------
  [AMDGPU] Remove useless aliases for FLAT instructions. NFC. (#87462)

We were generating "" (the empty string) as an alias for a bunch of FLAT
instructions, which had no effect except to cause tablegen to generate
some very long if-else chains in the generate AsmMatcher.


  Commit: e05c1b46d0d3739cc48ad912dbe6e9affce05927
      https://github.com/llvm/llvm-project/commit/e05c1b46d0d3739cc48ad912dbe6e9affce05927
  Author: Daniel Grumberg <dgrumberg at apple.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Basic/DiagnosticFrontendKinds.td
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Driver/Options.td
    M clang/include/clang/ExtractAPI/API.h
    A clang/include/clang/ExtractAPI/APIRecords.inc
    M clang/include/clang/ExtractAPI/DeclarationFragments.h
    M clang/include/clang/ExtractAPI/ExtractAPIActionBase.h
    M clang/include/clang/ExtractAPI/ExtractAPIVisitor.h
    M clang/include/clang/ExtractAPI/FrontendActions.h
    A clang/include/clang/ExtractAPI/Serialization/APISetVisitor.h
    R clang/include/clang/ExtractAPI/Serialization/SerializerBase.h
    M clang/include/clang/ExtractAPI/Serialization/SymbolGraphSerializer.h
    M clang/include/clang/Frontend/FrontendOptions.h
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/ExtractAPI/API.cpp
    M clang/lib/ExtractAPI/DeclarationFragments.cpp
    M clang/lib/ExtractAPI/ExtractAPIConsumer.cpp
    M clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp
    M clang/lib/ExtractAPI/TypedefUnderlyingTypeResolver.cpp
    M clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
    M clang/test/ExtractAPI/anonymous_record_no_typedef.c
    M clang/test/ExtractAPI/availability.c
    M clang/test/ExtractAPI/bool.c
    M clang/test/ExtractAPI/bool.cpp
    M clang/test/ExtractAPI/class.cpp
    M clang/test/ExtractAPI/class_template.cpp
    M clang/test/ExtractAPI/class_template_param_inheritance.cpp
    M clang/test/ExtractAPI/class_template_partial_spec.cpp
    M clang/test/ExtractAPI/class_template_spec.cpp
    M clang/test/ExtractAPI/concept.cpp
    M clang/test/ExtractAPI/constructor_destructor.cpp
    M clang/test/ExtractAPI/conversions.cpp
    M clang/test/ExtractAPI/emit-symbol-graph/multi_file.c
    M clang/test/ExtractAPI/emit-symbol-graph/single_file.c
    M clang/test/ExtractAPI/enum.c
    M clang/test/ExtractAPI/field_template.cpp
    M clang/test/ExtractAPI/function_noexcepts.cpp
    M clang/test/ExtractAPI/global_func_template.cpp
    M clang/test/ExtractAPI/global_func_template_spec.cpp
    M clang/test/ExtractAPI/global_record.c
    M clang/test/ExtractAPI/global_record_multifile.c
    M clang/test/ExtractAPI/global_var_template.cpp
    M clang/test/ExtractAPI/global_var_template_partial_spec.cpp
    M clang/test/ExtractAPI/global_var_template_spec.cpp
    M clang/test/ExtractAPI/known_files_only.c
    M clang/test/ExtractAPI/language.c
    M clang/test/ExtractAPI/macro_undefined.c
    M clang/test/ExtractAPI/macros.c
    A clang/test/ExtractAPI/metadata_and_module.c
    M clang/test/ExtractAPI/method_template.cpp
    M clang/test/ExtractAPI/method_template_spec.cpp
    M clang/test/ExtractAPI/methods.cpp
    M clang/test/ExtractAPI/multiple_inheritance.cpp
    M clang/test/ExtractAPI/namespace.cpp
    M clang/test/ExtractAPI/nested_namespaces.cpp
    M clang/test/ExtractAPI/objc_block.m
    M clang/test/ExtractAPI/objc_category.m
    A clang/test/ExtractAPI/objc_external_category.m
    M clang/test/ExtractAPI/objc_id_protocol.m
    M clang/test/ExtractAPI/objc_instancetype.m
    M clang/test/ExtractAPI/objc_interface.m
    R clang/test/ExtractAPI/objc_module_category.m
    M clang/test/ExtractAPI/objc_property.m
    M clang/test/ExtractAPI/objc_protocol.m
    R clang/test/ExtractAPI/objc_various_categories.m
    M clang/test/ExtractAPI/operator_overload.cpp
    M clang/test/ExtractAPI/relative_include.m
    M clang/test/ExtractAPI/simple_inheritance.cpp
    M clang/test/ExtractAPI/struct.c
    M clang/test/ExtractAPI/typedef.c
    M clang/test/ExtractAPI/typedef_anonymous_record.c
    M clang/test/ExtractAPI/typedef_chain.c
    M clang/test/ExtractAPI/typedef_struct_enum.c
    M clang/test/ExtractAPI/underscored.c
    M clang/test/ExtractAPI/union.c
    M clang/test/ExtractAPI/vfs_redirected_include.m
    M clang/test/Index/extract-api-cursor.m
    M clang/tools/libclang/CXExtractAPI.cpp

  Log Message:
  -----------
  Reenable external categories (#87357)

Reenables b31414bf4f9898f7817a9fcf8a91f62ec26f3eaf.

Also adds a new warning for missing `--symbol-graph-dir` arg when
`--emit-extension-symbol-graphs` is provided. This also reverts the
commit that removed.


  Commit: bf1df250487584ec77b0ab567cd3cca5c2863270
      https://github.com/llvm/llvm-project/commit/bf1df250487584ec77b0ab567cd3cca5c2863270
  Author: Han-Kuan Chen <hankuan.chen at sifive.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

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

  Log Message:
  -----------
  [SLP] Use isValidElementType instead of (#87469)

FixedVectorType::isValidElementType for consistency.


  Commit: ca48d4dfd3148d83f9a74737f08174f16177200f
      https://github.com/llvm/llvm-project/commit/ca48d4dfd3148d83f9a74737f08174f16177200f
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M libcxx/include/__random/seed_seq.h
    A libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/generate.mandates.verify.cpp

  Log Message:
  -----------
  [libc++] Add a static_assert for a Mandates in seed_seq (#86992)

Fixes #84843


  Commit: d1f585056f71bc63bd2e71d744051139809e5d8b
      https://github.com/llvm/llvm-project/commit/d1f585056f71bc63bd2e71d744051139809e5d8b
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/generic_category.pass.cpp
    M libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/system_category.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp

  Log Message:
  -----------
  [libc++] Fix tests on musl (#85085) (#86934)

One or two of the tests need slight tweaks to make them pass when
building with musl.

This patch is a re-application of b61fb18 which was reverted in 0847c90
because it broke the build.

rdar://118885724

Co-authored-by: Alastair Houghton <ahoughton at apple.com>


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

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

  Log Message:
  -----------
  [bazel] Port for e05c1b46d0d3739cc48ad912dbe6e9affce05927.


  Commit: 1f268092c7af20c21d4a594678b647cab050602a
      https://github.com/llvm/llvm-project/commit/1f268092c7af20c21d4a594678b647cab050602a
  Author: Simon Camphausen <simon.camphausen at iml.fraunhofer.de>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/EmitC/IR/EmitC.h
    M mlir/include/mlir/Dialect/EmitC/IR/EmitC.td
    M mlir/lib/Conversion/MemRefToEmitC/MemRefToEmitC.cpp
    M mlir/lib/Dialect/EmitC/IR/EmitC.cpp
    M mlir/lib/Target/Cpp/TranslateToCpp.cpp
    M mlir/test/Conversion/MemRefToEmitC/memref-to-emitc.mlir
    M mlir/test/Dialect/EmitC/invalid_ops.mlir
    M mlir/test/Dialect/EmitC/ops.mlir
    M mlir/test/Target/Cpp/subscript.mlir

  Log Message:
  -----------
  [mlir][EmitC] Add support for pointer and opaque types to subscript op (#86266)

For pointer types the indices are restricted to one integer-like
operand.
For opaque types no further restrictions are made.


  Commit: 956b47b48616148c15f8f95d76d5e0c215fe095c
      https://github.com/llvm/llvm-project/commit/956b47b48616148c15f8f95d76d5e0c215fe095c
  Author: Longsheng Mou <moulongsheng at huawei.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/Targets/X86.cpp
    A clang/test/CodeGenCXX/x86_32-vaarg.cpp

  Log Message:
  -----------
  [X86_32] Teach X86_32 va_arg to ignore empty structs. (#86075)

Empty structs are ignored for parameter passing purposes, but va_arg was
incrementing the pointer anyway for that the size of empty struct in c++
is 1 byte, which could lead to va_list getting out of sync. Fix #86057.


  Commit: 0356d0cfdc5cc7173533c2ad6c2ea8ad342f1acc
      https://github.com/llvm/llvm-project/commit/0356d0cfdc5cc7173533c2ad6c2ea8ad342f1acc
  Author: Gleb Popov <6yearold at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    M llvm/test/CodeGen/X86/AppendingLinkage.ll

  Log Message:
  -----------
  Print more descriptive error message when trying to link a global with appending linkage (#69613)

This is a proper fix for https://github.com/llvm/llvm-project/issues/40308


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

  Changed paths:
    M llvm/include/llvm/Object/WindowsMachineFlag.h
    M llvm/lib/Object/COFFObjectFile.cpp
    M llvm/lib/Object/WindowsResource.cpp

  Log Message:
  -----------
  [Object][COFF][NFC] Introduce getMachineArchType helper. (#87370)

It's a common pattern that we have a machine type, but we don't care
which ARM64* platform we're dealing with. We already have
isAnyArm64 for that, but it does not fit cases where we use a switch
statement. With this helper, it's easy to simplify such cases by using
Triple::ArchType instead of machine type.


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

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

  Log Message:
  -----------
  [X86] Haswell/Broadwell/Skylake DPPS folded instructions use an extra port06 resource

This is an extension to 07151f0241d3f893cb36eb2dbc395d4098f74a87 which handled SandyBridge so we at least model the regression identified in #14640

Confirmed by Agner + uops.info/uica (SkylakeServer also had an incorrect use of Port015 instead of just Port01)

I raised #86669 as a proposal for a 'x86 unfold' pass that can unfold these (if we have the free registers) driven by the scheduler model.


  Commit: 52b18430ae105566f26152c0efc63998301b1134
      https://github.com/llvm/llvm-project/commit/52b18430ae105566f26152c0efc63998301b1134
  Author: AinsleySnow <772571228 at qq.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/RISCV/rvv/vselect-vp.ll

  Log Message:
  -----------
  [VP][DAGCombine] Use `simplifySelect` when combining vp.select. (#87342)

Hi all,

This patch is a follow-up of #79101. It migrates logic from
`visitVSELECT` to `visitVP_SELECT` to simplify `vp.select`. With this
patch we can do the following combinations:

```
vp.select undef, T, F --> T (if T is a constant), F otherwise
vp.select <condition>, undef, F --> F
vp.select <condition>, T, undef --> T
vp.select false, T, F --> F
vp.select <condition>, T, T --> T
```

I'm a total newbie to llvm and I'm sure there's room for improvements in
this patch. Please let me know if you have any advice. Thank you in
advance!


  Commit: 98244c4e2acafb7568e8337088c6caaaffcb7831
      https://github.com/llvm/llvm-project/commit/98244c4e2acafb7568e8337088c6caaaffcb7831
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M libcxx/include/typeinfo
    M libcxx/src/include/overridable_function.h
    M libcxxabi/src/private_typeinfo.cpp

  Log Message:
  -----------
  [libc++] Upstream ptrauth support in libc++ and libc++abi (#84573)

This is an exact upstreaming of the downstream diff. Minor
simplifications can be made in the future but upstreaming as-is will
make it easier for us to deal with downstream merge conflicts.

Partially fixes #83805


  Commit: b699a9ba112cd9fc861eccfcdd2a7c9886423bde
      https://github.com/llvm/llvm-project/commit/b699a9ba112cd9fc861eccfcdd2a7c9886423bde
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/Status/Cxx2cIssues.csv
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/include/version
    M libcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/filesystem.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/functional.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/optional.version.compile.pass.cpp
    A libcxx/test/std/language.support/support.limits/support.limits.general/random.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/variant.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  [libc++] Update status page after the Tokyo meeting (#87395)


  Commit: 399ff08e29de4f2bbcfd47f87bb1795ba3a4e091
      https://github.com/llvm/llvm-project/commit/399ff08e29de4f2bbcfd47f87bb1795ba3a4e091
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    A llvm/test/Transforms/LoopVectorize/epilog-vectorization-any-of-reductions.ll

  Log Message:
  -----------
  [LV] Precommit tests with any-of reductions and epilogue vectorization.

Test case for failures from
https://lab.llvm.org/buildbot/#/builders/74/builds/26697
caused the revert of 95fef1d in 589c7ab.


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

  Changed paths:
    A llvm/test/CodeGen/X86/vector-trunc-nowrap.ll

  Log Message:
  -----------
  [X86] Add vector truncation tests for nsw/nuw flags

Based off #85592 - our truncation -> PACKSS/PACKUS folds should be able to use the nsw/nuw flags to recognise when we don't need to mask/sext_inreg prior to the PACKSS/PACKUS nodes.


  Commit: 7ec87c473936245ea11f8bb64c936e5112f25e6a
      https://github.com/llvm/llvm-project/commit/7ec87c473936245ea11f8bb64c936e5112f25e6a
  Author: Daniel Chen <cdchen at ca.ibm.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M flang/lib/Lower/ConvertVariable.cpp
    A flang/test/Lower/HLFIR/procedure-pointer-component-default-init.f90

  Log Message:
  -----------
  [Flang] Support for procedure pointer component default initialization. (#87356)

This PR is to address `TODO(loc, "procedure pointer component default
initialization");`.
It handles default init for procedure pointer components in a derived
type that is 32 bytes or larger (Default init for smaller size type has
already been handled).

```
  interface
    subroutine sub()
    end
  end interface
  type dt
    real :: r1 = 5.0
    procedure(real), pointer, nopass :: pp1 => null()
    real, pointer :: rp1 => null()
    procedure(), pointer, nopass :: pp2 => sub
  end type
  type(dt) :: dd1
  end

```


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

  Changed paths:
    M mlir/include/mlir/Dialect/DLTI/DLTI.h
    M mlir/include/mlir/Interfaces/DataLayoutInterfaces.h
    M mlir/include/mlir/Interfaces/DataLayoutInterfaces.td
    M mlir/lib/Dialect/DLTI/DLTI.cpp
    M mlir/lib/Interfaces/DataLayoutInterfaces.cpp
    M mlir/test/Dialect/LLVMIR/layout.mlir
    M mlir/test/lib/Dialect/DLTI/TestDataLayoutQuery.cpp
    M mlir/unittests/Interfaces/DataLayoutInterfacesTest.cpp

  Log Message:
  -----------
  [MLIR] Add endianness accessors to the data layout (#87347)

This commit extends the data layout subsystem with accessors for the
endianness. The implementation follows the structure implemented for
alloca, global, and program memory spaces.


  Commit: 450f1952aced87584a53485d1ba1c2f77c3835a1
      https://github.com/llvm/llvm-project/commit/450f1952aced87584a53485d1ba1c2f77c3835a1
  Author: Axel Lundberg <19574357+Zonotora at users.noreply.github.com>
  Date:   2024-04-03 (Wed, 03 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
    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

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

This patch implements the implicit truncation and implicit sign change
checks for bitfields using UBSan. E.g.,
`-fsanitize=implicit-bitfield-truncation` and
`-fsanitize=implicit-bitfield-sign-change`.


  Commit: 5ac22600ed7caf907b740932fac191778d67a9d0
      https://github.com/llvm/llvm-project/commit/5ac22600ed7caf907b740932fac191778d67a9d0
  Author: Dominik Adamski <dominik.adamski at amd.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M flang/include/flang/Frontend/CodeGenOptions.h
    M flang/test/Lower/AMD/code-object-version.f90

  Log Message:
  -----------
  [Flang][AMDGPU] Change default AMDHSA Code Object version to 5 (#87464)

This is a follow-up of PR:
https://github.com/llvm/llvm-project/pull/79038


  Commit: 95f9b083d083c4873d9f2c62271518c0fcd1ce52
      https://github.com/llvm/llvm-project/commit/95f9b083d083c4873d9f2c62271518c0fcd1ce52
  Author: Simon Camphausen <simon.camphausen at iml.fraunhofer.de>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/EmitC/IR/EmitC.td

  Log Message:
  -----------
  [mlir][EmitC] Fix examples in op descriptions (#87478)

- Remove trailing type from value attributes as emitc.opaque attributes
are untyped.
- Replace invalid trailing * in opaque type by wrapping it into an
!emitc.ptr.


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

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

  Log Message:
  -----------
  [VPlan] Factor out logic to check if recipe is dead (NFCI).

In preparation to use the helper in more places.


  Commit: 4d34b3295f005f739e431f379ef02da7eac75688
      https://github.com/llvm/llvm-project/commit/4d34b3295f005f739e431f379ef02da7eac75688
  Author: Fanbo Meng <fanbo.meng at ibm.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M third-party/benchmark/src/cycleclock.h
    M third-party/benchmark/src/internal_macros.h

  Log Message:
  -----------
  [SystemZ][z/OS] Remove COMPILER_IBMXL macro for z/OS (#87493)

This copies the change made in google benchmark
(https://github.com/google/benchmark/commit/70916cbf71f50b9e1e6f13559e10d6dbb92beb32)
to remove COMPILER_IBMXL for z/OS.


  Commit: 250b467f7c8f06350a64d1a17e3ac7e3e390d4b1
      https://github.com/llvm/llvm-project/commit/250b467f7c8f06350a64d1a17e3ac7e3e390d4b1
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

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

  Log Message:
  -----------
  [SLP][NFC]Simplify common analysis of instructions in BoUpSLP::collectValuesToDemote by outlining common code, NFC.


  Commit: d650fcd6bf1323513213dd69eacbb2b08c870618
      https://github.com/llvm/llvm-project/commit/d650fcd6bf1323513213dd69eacbb2b08c870618
  Author: aniplcc <aniplccode at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/test/CodeGen/AArch64/hadd-combine.ll
    M llvm/test/CodeGen/X86/combine-pavg.ll

  Log Message:
  -----------
  [DAG] SimplifyDemandedVectorElts - add ISD::AVGCEILS/AVGCEILU/AVGFLOORS/AVGFLOORU nodes (#86284)

Fixes #84768


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

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

  Log Message:
  -----------
  [X86] getEffectiveX86CodeModel - take a Triple argument instead of just a Is64Bit flag. NFC. (#87479)

Matches what most other targets do and makes it easier to specify code model based off other triple settings in the future.


  Commit: 269d0aaec1801000a39122b1c5792d9c096b33ec
      https://github.com/llvm/llvm-project/commit/269d0aaec1801000a39122b1c5792d9c096b33ec
  Author: Adrian Kuegel <akuegel at google.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Pass/Pass.h

  Log Message:
  -----------
  [mlir] Apply ClangTidy findings.

modernize-use-override ClangTidy check.

This warning appears on overridden virtual functions not marked with override or
final keywords or marked with more than one of virtual, override, final.


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

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

  Log Message:
  -----------
  [DAG] visitADDLikeCommutative - convert (add x, shl(0 - y, n)) fold to SDPatternMatch. NFC.


  Commit: 0f5f931a9b32208a4894da57ea5c7428ead9df8d
      https://github.com/llvm/llvm-project/commit/0f5f931a9b32208a4894da57ea5c7428ead9df8d
  Author: Weining Lu <luweining at loongson.cn>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/Generic/allow-check.ll

  Log Message:
  -----------
  [CodeGen] Fix test after #86049


  Commit: 7c178fdf0094afbf4757d71b792bc159ddcac72f
      https://github.com/llvm/llvm-project/commit/7c178fdf0094afbf4757d71b792bc159ddcac72f
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M lldb/source/Utility/RegisterValue.cpp

  Log Message:
  -----------
  [lldb] Correct byte order check for 128 bit integer registers

Size was clearly not correct here. This call has been here since
the initial reformat of all of lldb so it has likely always been
incorrect.

(although registers don't typically have an endian, they are
just values, in the remote protocol register data is in target
endian)

This might have been a problem for Neon registers on big endian
AArch64, but only if the debug server describes them as integers.

lldb-server does not, they've always been vectors which doesn't
take this code path.

Not adding a test because the way I've mocked up a big endian
target in the past is using s390x as the architecture. This
apparently has some form of vector extension that may be 128 bit
but lldb doesn't support it.


  Commit: 9808279b0ec3663428fbf6294dfdd1d4f70b1cda
      https://github.com/llvm/llvm-project/commit/9808279b0ec3663428fbf6294dfdd1d4f70b1cda
  Author: Paul Robinson <paul.robinson at sony.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticIDs.h

  Log Message:
  -----------
  [NFC] Bump DIAG_SIZE_FRONTEND (hit the limit downstream as of e05c1b46)


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

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

  Log Message:
  -----------
  [SelectionDAG] Dump convergencectrl_glue DAG node (#87487)


  Commit: 1aedf949e0f6d5e0a6b15e28780be126730db023
      https://github.com/llvm/llvm-project/commit/1aedf949e0f6d5e0a6b15e28780be126730db023
  Author: Amaury Séchet <deadalnix at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/indirect-branch-tracking-eh2.ll

  Log Message:
  -----------
  [NFC] Automatically generate indirect-branch-tracking-eh2.ll


  Commit: 6a13bbf92f6f7f2f5d59dfda99ccca223c72eeef
      https://github.com/llvm/llvm-project/commit/6a13bbf92f6f7f2f5d59dfda99ccca223c72eeef
  Author: Joe Nash <Sisyph at users.noreply.github.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.td
    M llvm/lib/Target/AMDGPU/VOP2Instructions.td
    M llvm/lib/Target/AMDGPU/VOPCInstructions.td
    M llvm/test/MC/AMDGPU/gfx1150_asm_features.s
    M llvm/test/MC/AMDGPU/gfx11_asm_err.s
    M llvm/test/MC/AMDGPU/gfx12_asm_features.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_err.s
    M llvm/test/MC/AMDGPU/vop_dpp.s
    M llvm/test/MC/Disassembler/AMDGPU/gfx1150_dasm_features.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_features.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop2_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop2_dpp8.txt

  Log Message:
  -----------
  [AMDGPU][MC] Enables sgpr or imm src1 for float VOP3 DPP, but excludi… (#87382)

…ng VOPC.

Fixes support on GFX1150 and GFX12 where src1 of e64_dpp instructions
should allow sgpr and imm operands.
PR #67461 added support for this with int operands, but it was missing a
piece for float.
Changing VOPC e64_dpp will be in a different patch because there is a
bug preventing that change.


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

  Changed paths:
    A llvm/test/Transforms/VectorCombine/X86/shuffle-of-casts.ll

  Log Message:
  -----------
  [VectorCombine][X86] Add some tests showing failure to fold shuffle(cast(x),cast(y)) -> cast(shuffle(x,y))

Part of #67803


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

  Changed paths:
    M libcxx/include/__expected/bad_expected_access.h

  Log Message:
  -----------
  [libc++] Disables -Wweak-vtables diagnostics. (#85577)

This is a preparation to use Clang HEAD in the CI.


  Commit: 362aa434cc31ccca96749a6db8cd97f5b7d71206
      https://github.com/llvm/llvm-project/commit/362aa434cc31ccca96749a6db8cd97f5b7d71206
  Author: Hsiangkai Wang <hsiangkai.wang at arm.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M mlir/docs/PassManagement.md
    M mlir/include/mlir/Support/Timing.h
    M mlir/lib/Support/Timing.cpp
    M mlir/test/Pass/pass-timing.mlir

  Log Message:
  -----------
  [mlir] Enhance TimingManager Printing Flexibility (#85821)

Revise the printing functionality of TimingManager to accommodate
various output formats. At present, TimingManager is limited to
outputting data solely in plain text format. To overcome this
limitation, I have introduced an abstract class that serves as the
foundation for printing. This approach allows users to implement
additional output formats by extending this abstract class. As part of
this update, I have integrated support for JSON as a new output format,
enhancing the ease of parsing for subsequent processing scripts.


  Commit: 72e2e4f7dc682fa3f6eda9f3cfbd20a8ffaac4e4
      https://github.com/llvm/llvm-project/commit/72e2e4f7dc682fa3f6eda9f3cfbd20a8ffaac4e4
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

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

  Log Message:
  -----------
  [clang-format] Lambda parameter should be passed by const reference (#87306)

Closes #87254.


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

  Changed paths:
    M libcxx/docs/Status/Cxx20Issues.csv
    M libcxx/docs/Status/Cxx20Papers.csv
    M libcxx/docs/Status/SpaceshipProjects.csv
    M libcxx/include/CMakeLists.txt
    A libcxx/include/__chrono/leap_second.h
    M libcxx/include/__chrono/tzdb.h
    M libcxx/include/chrono
    M libcxx/include/libcxx.imp
    M libcxx/include/module.modulemap
    M libcxx/modules/std/chrono.inc
    M libcxx/src/CMakeLists.txt
    A libcxx/src/include/tzdb/leap_second_private.h
    M libcxx/src/tzdb.cpp
    M libcxx/test/libcxx/diagnostics/chrono.nodiscard_extensions.compile.pass.cpp
    M libcxx/test/libcxx/diagnostics/chrono.nodiscard_extensions.verify.cpp
    A libcxx/test/libcxx/time/time.zone/time.zone.db/leap_seconds.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.db/leap_seconds.pass.cpp
    M libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.access/get_tzdb.pass.cpp
    M libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.tzdb/tzdb.members.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.leap/assign.copy.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.leap/cons.copy.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.leap/members/date.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.leap/members/value.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.leap/nonmembers/comparison.pass.cpp
    A libcxx/test/support/test_chrono_leap_second.h

  Log Message:
  -----------
  [libc++][chrono] Loads leap-seconds.list in tzdb. (#82113)

This implements the loading of the leap-seconds.list file and store its
contents in the tzdb struct.

This adds the required `leap_seconds` member.

The class leap_seconds is fully implemented including its non-member
functions.

Implements parts of:
- P0355 Extending <chrono> to Calendars and Time Zones
- P1614 The Mothership has Landed

Implements:
- P1981 Rename leap to leap_second
- LWG3359 <chrono> leap second support should allow for negative leap
seconds
- LWG3383 §[time.zone.leap.nonmembers] sys_seconds should be replaced
with seconds


  Commit: 5b959310b0fae723bd119ed8815bf1cb1a8c67d4
      https://github.com/llvm/llvm-project/commit/5b959310b0fae723bd119ed8815bf1cb1a8c67d4
  Author: Chris Bieneman <chris.bieneman at me.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    R clang/test/SemaHLSL/ArrayTemporary.ll

  Log Message:
  -----------
  [NFC] Delete unintentionally added file


  Commit: cc308f60d41744b5920ec2e2e5b25e1273c8704b
      https://github.com/llvm/llvm-project/commit/cc308f60d41744b5920ec2e2e5b25e1273c8704b
  Author: Nathan Chancellor <nathan at kernel.org>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/TokenKinds.def
    M clang/test/Parser/c2x-typeof-ext-warns.c
    A clang/test/SemaCXX/typeof_unqual.cpp

  Log Message:
  -----------
  [clang] Support __typeof_unqual__ in all C modes (#87392)

GCC has added __typeof_unqual__ to allow typeof_unqual to be used in all
C modes (not just C23 and newer), similar to __typeof__ and typeof.

https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=607d9d50ee44163cee621cd991600acaf78c2fee

The Linux kernel would like to start using __typeof_unqual__ to strip
type qualifiers such as address spaces from inputs to macros but cannot
switch to C23 due to compiler version requirements.

Match GCC and allow __typeof_unqual__ in all C modes.

Closes: https://github.com/llvm/llvm-project/issues/76423
Link: https://lore.kernel.org/CAFULd4YG21NdF_qNVBGDtXO6xnaYFeRPvKicB=gpgUUqYE=4jw@mail.gmail.com/


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

  Changed paths:
    M openmp/docs/design/Runtimes.rst
    M openmp/runtime/src/kmp_affinity.cpp
    M openmp/runtime/src/kmp_affinity.h
    A openmp/runtime/test/affinity/kmp-abs-hw-subset.c

  Log Message:
  -----------
  [OpenMP] Add absolute KMP_HW_SUBSET functionality (#85326)

Users can put a : in front of KMP_HW_SUBSET to indicate that the
specified subset is an "absolute" subset. Currently, when a user puts
KMP_HW_SUBSET=1t. This gets translated to KMP_HW_SUBSET="*s,*c,1t",
where * means "use all of". If a user wants only one thread as the
entire topology they can now do KMP_HW_SUBSET=:1t.

Along with the absolute syntax is a fix for newer machines and making
them easier to use with only the 3-level topology syntax. When a user
puts KMP_HW_SUBSET=1s,4c,2t on a machine which actually has 4 layers,
(say 1s,2m,3c,2t as the entire machine) the user gets an unexpected "too
many resources asked" message because KMP_HW_SUBSET currently translates
the "4c" value to mean 4 cores per module. To help users out, the
runtime can assume that these newer layers, module in this case, should
be ignored if they are not specified, but the topology should always
take into account the sockets, cores, and threads layers.


  Commit: 17642c76023b7f421dac8e9fb176b0221e309a8a
      https://github.com/llvm/llvm-project/commit/17642c76023b7f421dac8e9fb176b0221e309a8a
  Author: Krzysztof Pszeniczny <kpszeniczny at google.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
    A llvm/test/Transforms/SampleProfile/Inputs/non-probe-stale-profile-matching.prof
    A llvm/test/Transforms/SampleProfile/non-probe-stale-profile-matching.ll

  Log Message:
  -----------
  [SamplePGO] Support -salvage-stale-profile without probes too (#86116)

Currently -salvage-stale-profile is a no-op if the profile is not
probe-based. We observed that it can help for regular, non-probe- based
profiles too: some of our internal benchmarks show 0.2-0.3% QPS
improvement.

There seems to be no good reason to limit this flag to only work for
probe-based profiles.


  Commit: 5b702be1e80b8733786ac48ceaf04f2936616d1b
      https://github.com/llvm/llvm-project/commit/5b702be1e80b8733786ac48ceaf04f2936616d1b
  Author: Prashant Kumar <pk5561 at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/Math/Transforms/ExpandPatterns.cpp
    M mlir/test/Dialect/Math/expand-math.mlir

  Log Message:
  -----------
  [mlir][math] Convert math.fpowi to math.powf in case of non constant (#87472)

Convert math.fpowi to math.powf by converting dtype of power operand to
floating point.


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

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

  Log Message:
  -----------
  [CodeGen] Fix a warning

This patch fixes:

  clang/lib/CodeGen/CGExpr.cpp:5607:11: error: variable 'Result' is
  used uninitialized whenever 'if' condition is false
  [-Werror,-Wsometimes-uninitialized]


  Commit: 33992eabc7834e32094e7187dc10225f1a3773a5
      https://github.com/llvm/llvm-project/commit/33992eabc7834e32094e7187dc10225f1a3773a5
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    A offload/README.md

  Log Message:
  -----------
  [Offload][NFC] Add offload subfolder and README (#77154)

The readme only states the goal and has links to further information,
e.g., our meetings.

---------

Co-authored-by: Shilei Tian <i at tianshilei.me>


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/SystemZ/ext-alt-node-must-ext.ll

  Log Message:
  -----------
  [SLP]Fix PR87477: fix alternate node cast cost/codegen.

Have to compare actual type size to pick up proper cast operation
opcode.


  Commit: 315c88c5fbdb2b27cebf23c87fb502f7a567d84b
      https://github.com/llvm/llvm-project/commit/315c88c5fbdb2b27cebf23c87fb502f7a567d84b
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/Builder/Runtime/Numeric.cpp
    M flang/runtime/numeric-templates.h
    M flang/test/Lower/Intrinsics/modulo.f90
    M flang/unittests/Runtime/Numeric.cpp

  Log Message:
  -----------
  [flang] Fixed MODULO(x, inf) to produce NaN. (#86145)

Straightforward computation of `A − FLOOR (A / P) * P` should
produce NaN, when P is infinity. The -menable-no-infs lowering
can still use the relaxed operations sequence.


  Commit: 5822ca5a013256bbca33fbbae56f49caa2e37fe3
      https://github.com/llvm/llvm-project/commit/5822ca5a013256bbca33fbbae56f49caa2e37fe3
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-04-03 (Wed, 03 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
    R clang/test/CodeGen/ubsan-bitfield-conversion.c
    R 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

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

Reverts llvm/llvm-project#75481

Breaks multiple bots, see #75481


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

  Changed paths:
    A clang/test/CodeGen/allow-ubsan-check.c

  Log Message:
  -----------
  [clang] Precommit test for `llvm.allow.ubsan.check()` (#87435)


  Commit: fff2690eba58f3a548865b5246b09233663c680d
      https://github.com/llvm/llvm-project/commit/fff2690eba58f3a548865b5246b09233663c680d
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M clang/www/c_status.html

  Log Message:
  -----------
  [C23] Remove WG14 N2416 from the C status page

This paper did not add any normative changes for us to check
conformance against. It added a note describing a potential behavioral
difference between compile-time and runtime evaluation of negative
floating-point values in the presence of rounding modes.


  Commit: 07d3f2a8de6956717db2355d6d3421d35f3a5796
      https://github.com/llvm/llvm-project/commit/07d3f2a8de6956717db2355d6d3421d35f3a5796
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-xor.mir

  Log Message:
  -----------
  [RISCV][GISEL] Run update_mir_test_checks on llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-xor.mir


  Commit: 23616c65e7d632e750ddb67d55cc39098a69a8a6
      https://github.com/llvm/llvm-project/commit/23616c65e7d632e750ddb67d55cc39098a69a8a6
  Author: maflcko <6399679+maflcko at users.noreply.github.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

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

  Log Message:
  -----------
  dsymutil: Re-add missing -latomic (#85380)

This was accidentally removed in
https://reviews.llvm.org/D137799#4657404 /
https://reviews.llvm.org/D137799#C3933303OL44, and downstream projects
are forced to add it back. For example,
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=4e26331a5ee87928a16888c36d51e270f0f10f90

Fix this, by re-adding it.

Co-authored-by: MarcoFalke <*~=`'#}+{/-|&$^_ at 721217.xyz>


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/X86/icmp-altopcode-after-reordering.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reduction-logical.ll

  Log Message:
  -----------
  [SLP]Fix PR87133: crash because of different altopcodes for cmps after reordering.

If the node has cmp instruction with 3 or more different but swappable
predicates, need to keep same kind of main/alternate opcodes to avoid
incorrect detection of opcodes after reordering. Reordering changes the
order and we may erroneously consider swappable opcodes as
non-compatible/alternate, which may lead to a later compiler crash.

Reviewers: RKSimon

Reviewed By: RKSimon

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


  Commit: fbcd0c65f7b2f65e0ee58e5448b88af39faf10f1
      https://github.com/llvm/llvm-project/commit/fbcd0c65f7b2f65e0ee58e5448b88af39faf10f1
  Author: Rafael Ubal <rubal at mathworks.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
    M mlir/test/Dialect/Tosa/invalid.mlir

  Log Message:
  -----------
  Updates to 'tosa.reshape' verifier (#87416)

This addition catches common cases of malformed `tosa.reshape` ops. This
prevents the `--tosa-to-tensor` pass from asserting when fed invalid
operations, as these will be caught ahead of time by the verifier.

Closes #87396


  Commit: d83233f597f6d512bf7109bb4c33a7fdd2f8fd31
      https://github.com/llvm/llvm-project/commit/d83233f597f6d512bf7109bb4c33a7fdd2f8fd31
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M libcxx/docs/Status/Cxx23.rst
    M libcxx/docs/Status/Cxx23Issues.csv
    M libcxx/docs/Status/Cxx2cIssues.csv
    M libcxx/docs/Status/Cxx2cPapers.csv

  Log Message:
  -----------
  [libc++] Mark some recent LWG issues and papers as done (#87502)

Justifications:
- LWG3950: Done in #66206
- LWG3975: Wording changes only
- LWG4011: Wording changes only
- LWG4030: Wording changes only
- LWG4043: Wording changes only
- LWG3036 and P2875R4: We implemented neither, but the latter reverts
the former, so now we implement both without doing anything!


  Commit: d5ec49ff3dc26cdbe350e9cafc6b8e331fff7911
      https://github.com/llvm/llvm-project/commit/d5ec49ff3dc26cdbe350e9cafc6b8e331fff7911
  Author: Chenguang Wang <w3cing at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M mlir/lib/Support/Timing.cpp

  Log Message:
  -----------
  [mlir] Initialize DefaultTimingManager::out. (#87522)

`DefaultTimingManager::clear()` uses `out` to initialize `TimerImpl`,
but the `out` is `nullptr` by default. This means if
`DefaultTimingManager::setOutput()` is never called,
`DefaultTimingManager` destructor may generate SIGSEGV.


  Commit: a94a3cd3d6d4ca6cadaafc29c8097bd2fe078b9d
      https://github.com/llvm/llvm-project/commit/a94a3cd3d6d4ca6cadaafc29c8097bd2fe078b9d
  Author: Lei Wang <wlei at fb.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
    M llvm/test/Transforms/SampleProfile/pseudo-probe-callee-profile-mismatch.ll

  Log Message:
  -----------
  Always check the function attribute to determine checksum mismatch for available_externally functions (#87279)

This is to fix an assertion error. Apparently, `pseudo_probe_desc` could
still be available for import functions, and its checksum mismatch state
can be different from import function's `profile-checksum-mismatch`
attr. This happens when unstable IR or ODR violation issue occurs, the
definitions of the same function across different translation units
could be different and result in different checksums. During link time
deduplication, the internal function definition (the checksum in desc is
computed based on) is substituted by the `available_externally`
definition, which cause the inconsistency. Hence, we fix it to by always
checking the state for the new `available_externally` definition, which
is saved in the function attribute.


  Commit: 8a5a1b770413bb62ff27cd8c2aea3d04b3a95bbe
      https://github.com/llvm/llvm-project/commit/8a5a1b770413bb62ff27cd8c2aea3d04b3a95bbe
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-04-03 (Wed, 03 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
    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

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

Reverts llvm/llvm-project#87518

Revert is not needed as the regression was fixed with
1189e87951e59a81ee097eae847c06008276fef1.

I assumed the crash and warning are different issues, but according to
https://lab.llvm.org/buildbot/#/builders/240/builds/26629
fixing warning resolves the crash.


  Commit: 42c7bc04c30b427414a2d957776b1655abb27b6e
      https://github.com/llvm/llvm-project/commit/42c7bc04c30b427414a2d957776b1655abb27b6e
  Author: David Green <david.green at arm.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/arm_neon.td
    M clang/lib/CodeGen/CGBuiltin.cpp
    A clang/test/CodeGen/aarch64-v8.2a-neon-intrinsics-generic.c
    M clang/test/CodeGen/aarch64-v8.2a-neon-intrinsics.c
    A clang/test/CodeGen/arm-v8.2a-neon-intrinsics-generic.c
    M clang/test/CodeGen/arm-v8.2a-neon-intrinsics.c

  Log Message:
  -----------
  [AArch64][ARM] Make neon fp16 generic intrinsics always available. (#87467)

By generic intrinsics this mean things like dup, ext, zip and bsl that
can always be executed with integer s16 operations and do not require
fullfp16. This makes them always available, and brings them inline with
GCC.
https://godbolt.org/z/azs8eMv54

The relevant test cases have been moved into their own files, to allow
them to be tested with armv8-a and armv8.2-a+fp16.


  Commit: 5bbce06ac642bedcb93158ed04253cf6deedf5e6
      https://github.com/llvm/llvm-project/commit/5bbce06ac642bedcb93158ed04253cf6deedf5e6
  Author: Lei Wang <wlei at fb.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M clang/test/CodeGen/pseudo-probe-emit.c
    M llvm/include/llvm/ProfileData/SampleProf.h
    M llvm/include/llvm/Transforms/IPO/SampleProfileProbe.h
    M llvm/lib/Transforms/IPO/SampleProfileProbe.cpp
    M llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-profile.prof
    M llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-update.prof
    M llvm/test/Transforms/SampleProfile/pseudo-probe-dangle.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-discriminator.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-invoke.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-profile-metadata-2.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-profile.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-update.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-verify.ll

  Log Message:
  -----------
  [PseudoProbe] Mix block and call probe ID in lexical order (#75092)

Before all the call probe ids are after block ids, in this change, it
mixed the call probe and block probe by reordering them in
lexical(line-number) order. For example:
```
main():
BB1
if(...) 
  BB2 foo(..);   
else 
  BB3 bar(...);
BB4
```
Before the profile is
```
main
 1: ..
 2: ..
 3: ...
 4: ...
 5: foo ...
 6: bar ...
 ```
 Now the new order is
```
 main
 1: ..
 2: ..
 3: foo ...
 4: ...
 5: bar ...
 6: ...
```
This can potentially make it more tolerant of profile mismatch, either from stale profile or frontend change. e.g. before if we add one block, even the block is the last one, all the call probes are shifted and mismatched. Moreover, this makes better use of call-anchor based stale profile matching. Blocks are matched based on the closest anchor, there would be more anchors used for the matching, reduce the mismatch scope.


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/vec3-reorder-reshuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
    M llvm/test/Transforms/SLPVectorizer/X86/scatter-vectorize-reorder.ll
    M llvm/test/Transforms/SLPVectorizer/X86/vec3-reorder-reshuffle.ll
    M llvm/test/Transforms/SLPVectorizer/slp-umax-rdx-matcher-crash.ll

  Log Message:
  -----------
  [SLP]Add support for commutative intrinsics.

Implemented long-standing TODO to support commutative intrinsics.

Reviewers: RKSimon

Reviewed By: RKSimon

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


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

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

  Log Message:
  -----------
  [VectorCombine][X86] Add additional tests for #87510

Add zext nneg tests and check we don't fold casts with different src types


  Commit: 52ae02db4044b5d6e55b48133ac641b0c998ef49
      https://github.com/llvm/llvm-project/commit/52ae02db4044b5d6e55b48133ac641b0c998ef49
  Author: David Green <david.green at arm.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    A llvm/test/CodeGen/AArch64/sve-nontemporal-masked-ldst.ll

  Log Message:
  -----------
  [AArch64] Add a test for non-temporal masked loads / stores. NFC


  Commit: 7c68a958e2213a5190d91ce6dddddb72ce732f1e
      https://github.com/llvm/llvm-project/commit/7c68a958e2213a5190d91ce6dddddb72ce732f1e
  Author: Changpeng Fang <changpeng.fang at amd.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/DSDIRInstructions.td
    M llvm/lib/Target/AMDGPU/SOPInstructions.td

  Log Message:
  -----------
  AMDGPU: Use PseudoInstr to name SIMCInstr for DSDIR and SOPs, NFC (#87537)

We should consistently use PseudoInstr instead of Mnemonic to name
SIMCInstr, even though they may be the same in most cases


  Commit: e29228efae67cadfd18c532f944d19b4e16ff229
      https://github.com/llvm/llvm-project/commit/e29228efae67cadfd18c532f944d19b4e16ff229
  Author: Joe Nash <joseph.nash at amd.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
    M llvm/lib/Target/AMDGPU/VOPCInstructions.td
    M llvm/lib/Target/AMDGPU/VOPInstructions.td
    M llvm/test/MC/AMDGPU/gfx1150_asm_features.s
    M llvm/test/MC/AMDGPU/gfx12_asm_features.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_err.s
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx_dpp8.txt

  Log Message:
  -----------
  [AMDGPU][MC] Allow VOP3C dpp src1 to be imm or SGPR (#87418)

Allows src1 of VOP3 encoded VOPC to be an SGPR or inline immediate on
GFX1150Plus

The w32 and w64 _e64_dpp assembler only real instructions were unused,
and erroneously constructed in a way that bugged parsing of the new
instructions. They are removed.

This patch is a follow up to PR
https://github.com/llvm/llvm-project/pull/87382


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

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

  Log Message:
  -----------
  DebugInfoD issues, take 2 (#86812)

The previous diff (and it's subsequent fix) were reverted as the tests
didn't work properly on the AArch64 & ARM LLDB buildbots. I made a
couple more minor changes to tests (from @clayborg's feedback) and
disabled them for non Linux-x86(_64) builds, as I don't have the ability
do anything about an ARM64 Linux failure. If I had to guess, I'd say the
toolchain on the buildbots isn't respecting the `-Wl,--build-id` flag.
Maybe, one day, when I have a Linux AArch64 system I'll dig in to it.

>From the reverted PR:

I've migrated the tests in my
https://github.com/llvm/llvm-project/pull/79181 from shell to API (at
@JDevlieghere's suggestion) and addressed a couple issues that were
exposed during testing.

The tests first test the "normal" situation (no DebugInfoD involvement,
just normal debug files sitting around), then the "no debug info"
situation (to make sure the test is seeing failure properly), then it
tests to validate that when DebugInfoD returns the symbols, things work
properly. This is duplicated for DWP/split-dwarf scenarios.

---------

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


  Commit: 607b4bc602eda79e97a91a9bc3552a6004e5ac47
      https://github.com/llvm/llvm-project/commit/607b4bc602eda79e97a91a9bc3552a6004e5ac47
  Author: Emma Pilkington <emma.pilkington95 at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
    M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-cov5.s

  Log Message:
  -----------
  [AMDGPU] Add a missing COV6 case to getAMDHSACodeObjectVersion() (#87492)


  Commit: 899855d2b11856a44e530fffe854d76be69b9008
      https://github.com/llvm/llvm-project/commit/899855d2b11856a44e530fffe854d76be69b9008
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-icmp-to-trunc.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-node-with-multi-users.ll

  Log Message:
  -----------
  [SLP]Improve minbitwidth analysis for operands of IToFP and ICmp instructions.

Compiler can improve analysis for operands of UIToFP/SIToFP instructions
and operands of ICmp instruction.

Reviewers: RKSimon

Reviewed By: RKSimon

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


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-icmp-to-trunc.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-node-with-multi-users.ll

  Log Message:
  -----------
  Revert "[SLP]Improve minbitwidth analysis for operands of IToFP and ICmp instructions."

This reverts commit 899855d2b11856a44e530fffe854d76be69b9008 to fix the
issue reported in https://lab.llvm.org/buildbot/#/builders/165/builds/51659.


  Commit: e506dd0f14ea9fe0b0ac6c3492a118d4d2244fee
      https://github.com/llvm/llvm-project/commit/e506dd0f14ea9fe0b0ac6c3492a118d4d2244fee
  Author: Christopher Di Bella <cjdb at google.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

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

  Log Message:
  -----------
  fully qualifies use of `detail` namespace (#87536)

Some TUs apparently end up with an ambiguity between `::llvm::detail`
and `support::detail`, so we close that gap at the source.


  Commit: 3ee93f486293420852fb9ec95af9c5f54cecdb08
      https://github.com/llvm/llvm-project/commit/3ee93f486293420852fb9ec95af9c5f54cecdb08
  Author: Shourya Goel <shouryagoel10000 at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

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

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


Adding OffTType to fcntl.h and stdio.h 's Macro lists in libc/spec/posix.td as
mentioned here: #87266


  Commit: 42cbceb0f0160d67145723613fda325dbd129308
      https://github.com/llvm/llvm-project/commit/42cbceb0f0160d67145723613fda325dbd129308
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-icmp-to-trunc.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-node-with-multi-users.ll

  Log Message:
  -----------
  [SLP]Improve minbitwidth analysis for operands of IToFP and ICmp instructions.

Compiler can improve analysis for operands of UIToFP/SIToFP instructions
and operands of ICmp instruction.

Reviewers: RKSimon

Reviewed By: RKSimon

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


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

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

  Log Message:
  -----------
  [VectorCombine][X86] shuffle-of-casts.ll - adjust zext nneg tests to improve costs for testing

Improves SSE vs AVX test results for #87510


  Commit: 718638d44d3f1033c1ea395244c07d971ec33a90
      https://github.com/llvm/llvm-project/commit/718638d44d3f1033c1ea395244c07d971ec33a90
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

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

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


  Commit: 4078763e2e73b4ef3f9e728f66cdf9e429d3f7a4
      https://github.com/llvm/llvm-project/commit/4078763e2e73b4ef3f9e728f66cdf9e429d3f7a4
  Author: Damien L-G <dalg24+github at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/compare_exchange_strong.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/compare_exchange_weak.pass.cpp

  Log Message:
  -----------
  [libc++] Fix copy/pasta error in atomic tests for `atomic_compare_exchange_{weak,strong}` (#87135)

Spotted this minor mistake in the tests as I was looking into testing
more thoroughly `atomic_ref`.

The two argument overloads are tested just above. The names of the
lambda clearly indicates that the intent was to test the one argument
overload.


  Commit: 029e1d751503268e3d8b01db769e710835c3010d
      https://github.com/llvm/llvm-project/commit/029e1d751503268e3d8b01db769e710835c3010d
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-04-03 (Wed, 03 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
    R clang/test/CodeGen/ubsan-bitfield-conversion.c
    R 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

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

Reverts llvm/llvm-project#87529

Reverts #87518

https://lab.llvm.org/buildbot/#/builders/37/builds/33262 is still broken


  Commit: 8aa3a77eaf198afb7e01453e6daf6566b687945d
      https://github.com/llvm/llvm-project/commit/8aa3a77eaf198afb7e01453e6daf6566b687945d
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
    M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
    M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.h
    M llvm/lib/Target/RISCV/RISCVInstrGISel.td
    A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-anyext.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-icmp.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-sext.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-splatvector-rv32.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-splatvector-rv64.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-splatvector-s64-rv32.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-zext.mir
    M llvm/test/MachineVerifier/test_g_fcmp.mir
    M llvm/test/MachineVerifier/test_g_icmp.mir

  Log Message:
  -----------
  [RISCV][GISEL] Legalize G_ZEXT, G_SEXT, and G_ANYEXT, G_SPLAT_VECTOR, and G_ICMP for scalable vector types

This patch legalizes G_ZEXT, G_SEXT, and G_ANYEXT. If the type is a
legal mask type, then the instruction is legalized as the element-wise
select, where the condition on the select is the mask typed source
operand, and the true and false values are 1 or -1 (for
zero/any-extension and sign extension) and zero. If the type is a legal integer
or vector integer type, then the instruction is marked as legal.

The legalization of the extends may introduce a G_SPLAT_VECTOR, which
needs to be legalized in this patch for the extend test cases to pass.

A G_SPLAT_VECTOR is legal if the vector type is a legal integer or
floating point vector type and the source operand is sXLen type. This is
because the SelectionDAG patterns only support sXLen typed
ISD::SPLAT_VECTORS, and we'd like to reuse those patterns. A
G_SPLAT_VECTOR is cutom legalized if it has a legal s1 element vector
type and s1 scalar operand. It is legalized to G_VMSET_VL or G_VMCLR_VL
if the splat is all ones or all zeros respectivley. In the case of a
non-constant mask splat, we legalize by promoting the scalar value to
s8.

In order to get the s8 element vector back into s1 vector, we use a
G_ICMP. In order for the splat vector and extend tests to pass, we also
need to legalize G_ICMP in this patch.

A G_ICMP is legal if the destination type is a legal bool vector and the LHS and
RHS are legal integer vector types.


  Commit: 05f673bcefb0912a38a67b0026cad3768b2f85d2
      https://github.com/llvm/llvm-project/commit/05f673bcefb0912a38a67b0026cad3768b2f85d2
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.cpp
    A llvm/test/CodeGen/RISCV/GlobalISel/regbankselect/rvv/icmp.mir

  Log Message:
  -----------
  [RISCV][GISEL] Regbank select for scalable vector G_ICMP


  Commit: 35a9393a3f775d4e1506965b9cfeedd45599f1a7
      https://github.com/llvm/llvm-project/commit/35a9393a3f775d4e1506965b9cfeedd45599f1a7
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    A llvm/test/CodeGen/RISCV/GlobalISel/instruction-select/rvv/icmp.mir

  Log Message:
  -----------
  [RISCV][GISEL] Instruction selection for G_ICMP


  Commit: 188ca374ee601a50b6f5f6c1cf7e7dc3998e3a62
      https://github.com/llvm/llvm-project/commit/188ca374ee601a50b6f5f6c1cf7e7dc3998e3a62
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.cpp
    A llvm/test/CodeGen/RISCV/GlobalISel/regbankselect/rvv/anyext.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/regbankselect/rvv/sext.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/regbankselect/rvv/zext.mir

  Log Message:
  -----------
  [RISCV][GISEL] Regbankselect for G_ZEXT, G_SEXT, and G_ANYEXT with scalable vector type


  Commit: 63c925ca808f216f805b76873743450456e350f2
      https://github.com/llvm/llvm-project/commit/63c925ca808f216f805b76873743450456e350f2
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    A llvm/test/CodeGen/RISCV/GlobalISel/instruction-select/rvv/anyext.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/instruction-select/rvv/sext.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/instruction-select/rvv/zext.mir

  Log Message:
  -----------
  [RISCV][GISEL] Instruction selection for G_ZEXT, G_SEXT, and G_ANYEXT with scalable vector type


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

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

  Log Message:
  -----------
  Revert "dsymutil: Re-add missing -latomic (#85380)"

This reverts commit 23616c65e7d632e750ddb67d55cc39098a69a8a6
because it breaks Fuchsia Clang toolchain builders.
https://luci-milo.appspot.com/ui/p/fuchsia/builders/toolchain.ci/clang-linux-x64/b8751656876289840849/overview


  Commit: c511c90680eecae2e4adb87f442f41d465feb0f2
      https://github.com/llvm/llvm-project/commit/c511c90680eecae2e4adb87f442f41d465feb0f2
  Author: Kojo Acquah <KoolJBlack at users.noreply.github.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/ArmNeon/Transforms/LowerContractionToSMMLAPattern.cpp
    M mlir/test/Dialect/ArmNeon/lower-to-arm-neon.mlir

  Log Message:
  -----------
  [mlir][ArmNeon] Updates LowerContractionToSMMLAPattern with vecmat unroll patterns (#86005)

Updates smmla unrolling patterns to handle vecmat contracts where `dimM=1`. This includes explicit vecmats in the form: `<1x8xi8> x <8x8xi8> --> <1x8xi32>` or implied with the leading dim folded: `<8xi8> x <8x8xi8> --> <8xi32>` 

Since the smmla operates on two `<2x8xi8>` input vectors to produce `<2x2xi8>` accumulators, half of each 2x2 accumulator tile is dummy data not pertinent to the computation, resulting in half throughput.


  Commit: 66fed33db014bd705433e4b4f1ea766a8d71cadf
      https://github.com/llvm/llvm-project/commit/66fed33db014bd705433e4b4f1ea766a8d71cadf
  Author: Kojo Acquah <KoolJBlack at users.noreply.github.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/Vector/Transforms/VectorDropLeadUnitDim.cpp
    M mlir/test/Dialect/Vector/vector-dropleadunitdim-transforms.mlir

  Log Message:
  -----------
  [mlir][vector] Update `castAwayContractionLeadingOneDim` to omit transposes solely on leading unit dims.  (#85694)

Updates `castAwayContractionLeadingOneDim` to check for leading unit
dimensions before inserting `vector.transpose` ops.

Currently `castAwayContractionLeadingOneDim` removes all leading unit
dims based on the accumulator and transpose any subsequent operands to
match the accumulator indexing. This does not take into account if the
transpose is strictly necessary, for instance when given this
vector-matrix contract:
```mlir
  %result = vector.contract {indexing_maps = [affine_map<(d0, d1, d2, d3) -> (d0, d1, d3)>, affine_map<(d0, d1, d2, d3) -> (d0, d2, d3)>, affine_map<(d0, d1, d2, d3) -> (d1, d2)>], iterator_types = ["parallel", "parallel", "parallel", "reduction"], kind = #vector.kind<add>} %lhs, %rhs, %acc : vector<1x1x8xi32>, vector<1x8x8xi32> into vector<1x8xi32>
```
Passing this through `castAwayContractionLeadingOneDim` pattern produces
the following:
```mlir
    %0 = vector.transpose %arg0, [1, 0, 2] : vector<1x1x8xi32> to vector<1x1x8xi32>
    %1 = vector.extract %0[0] : vector<1x8xi32> from vector<1x1x8xi32>
    %2 = vector.extract %arg2[0] : vector<8xi32> from vector<1x8xi32>
    %3 = vector.contract {indexing_maps = [affine_map<(d0, d1, d2) -> (d0, d2)>, affine_map<(d0, d1, d2) -> (d0, d1, d2)>, affine_map<(d0, d1, d2) -> (d1)>], iterator_types = ["parallel", "parallel", "reduction"], kind = #vector.kind<add>} %1, %arg1, %2 : vector<1x8xi32>, vector<1x8x8xi32> into vector<8xi32>
    %4 = vector.broadcast %3 : vector<8xi32> to vector<1x8xi32>
```
The `vector.transpose` introduced does not affect the underlying data
layout (effectively a no op), but it cannot be folded automatically.
This change avoids inserting transposes when only leading unit
dimensions are involved.

Fixes #85691


  Commit: 5e3da75c80db749b3000c4a9e930da4784bcfc6f
      https://github.com/llvm/llvm-project/commit/5e3da75c80db749b3000c4a9e930da4784bcfc6f
  Author: Dan Liew <delcypher at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

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

  Log Message:
  -----------
  [Bounds-Safety][NFC] Clean up leading space emission for CountAttributedType (#87582)

Previously the leading space was added in each string constant. This
patch moves the leading space out of the string constants and is instead
explicitly added to add clarity to the code.


  Commit: 20433e9b2483d64843310e97062541dd73f54436
      https://github.com/llvm/llvm-project/commit/20433e9b2483d64843310e97062541dd73f54436
  Author: Chelsea Cassanova <chelsea_cassanova at apple.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

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

  Log Message:
  -----------
  Revert "DebugInfoD issues, take 2" (#87583)

Reverts llvm/llvm-project#86812. 

This commit caused a regression on the x86_64 MacOS buildbot:
https://green.lab.llvm.org/job/llvm.org/view/LLDB/job/lldb-cmake/784/


  Commit: 750843875254b1d493f4d7c3d3921c1bced55b7c
      https://github.com/llvm/llvm-project/commit/750843875254b1d493f4d7c3d3921c1bced55b7c
  Author: Yeoul Na <yeoul_na at apple.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M clang/lib/AST/TypePrinter.cpp
    M clang/lib/Sema/SemaExpr.cpp

  Log Message:
  -----------
  [BoundsSafety] Minor fixes on counted_by (#87559)

DeclRef to field must be marked as LValue to be consistent with how the
field decl will be evaluated.

T->desugar() is unnecessary to call ->isArrayType().


  Commit: 622851a9059694487811a7f6078312fc2cce5486
      https://github.com/llvm/llvm-project/commit/622851a9059694487811a7f6078312fc2cce5486
  Author: Jason Molenda <jmolenda at apple.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M lldb/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.cpp

  Log Message:
  -----------
  [lldb] Set static Module's load addresses via ObjectFile (#87439)

This is a followup to
https://github.com/llvm/llvm-project/pull/86359
"[lldb] [ObjectFileMachO] LLVM_COV is not mapped into firmware memory
(#86359)"

where I treat LLVM_COV segments in a Mach-O binary as non-loadable.
There is another codepath in
`DynamicLoaderStatic::LoadAllImagesAtFileAddresses` which is called to
set the load addresses for a Module to the file addresses. It has no
logic to detect a segment that is not loaded in virtual memory
(ObjectFileMachO::SectionIsLoadable), so it would set the load address
for this LLVM_COV segment to the file address and shadow actual code,
breaking lldb behavior.

This method currently sets the load address for any section that doesn't
have a load address set already. This presumes that a Module was added
to the Target, some mechanism set the correct load address for SOME
segments, and then this method is going to set the other segments to a
no-slide value, assuming they were forgotten.

ObjectFile base class doesn't, today, vend a SectionIsLoadable method,
but we do have ObjectFile::SetLoadAddress and at a higher level,
Module::SetLoadAddress, when we're setting the same slide to all
segments.

That's the behavior we want in this method. If any section has a load
address, we don't touch this Module. Otherwise we set all sections to
have a load address that is the same as the file address.

I also audited the other parts of lldb that are calling
SectionList::SectionLoadAddress and looked if they should be more
correctly using Module::SetLoadAddress for the entire binary. But in
most cases, we have the potential for different slides for different
sections so this section-by-section approach must be taken.

rdar://125800290


  Commit: ef5a7109116c1615a9c99c8dba6577853beb6c73
      https://github.com/llvm/llvm-project/commit/ef5a7109116c1615a9c99c8dba6577853beb6c73
  Author: Han-Chung Wang <hanhan0912 at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/Vector/Transforms/VectorLinearize.cpp
    M mlir/test/Dialect/Vector/linearize.mlir

  Log Message:
  -----------
  [mlir][vector] Skip 0D vectors in vector linearization. (#87577)


  Commit: 7e2a1d6f23cb604203324b47237f8e463704a497
      https://github.com/llvm/llvm-project/commit/7e2a1d6f23cb604203324b47237f8e463704a497
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

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

  Log Message:
  -----------
  [RISCV] Remove G_TRUNC/ZEXT/SEXT/ANYEXT from the first switch in RISCVRegisterBankInfo::getInstrMapping.

This removes the special case for vectors. The default case in the
second switch can handle GPR in addition to vectors. We just won't
use the static ValueMapping entry.


  Commit: 97523e5321be2542e8e117443ddea10b3f572ae7
      https://github.com/llvm/llvm-project/commit/97523e5321be2542e8e117443ddea10b3f572ae7
  Author: Shih-Po Hung <shihpo.hung at sifive.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/RISCV/stepvector.ll

  Log Message:
  -----------
  [RISCV][TTI] Scale the cost of intrinsic stepvector with LMUL (#87301)

Use the return type to measure the LMUL size for latency/throughput cost


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

  Changed paths:
    M clang/include/clang/Frontend/FrontendOptions.h

  Log Message:
  -----------
  [clang] Init fields added by #87357


  Commit: 1f01c580444ea2daef67f95ffc5fde2de5a37cec
      https://github.com/llvm/llvm-project/commit/1f01c580444ea2daef67f95ffc5fde2de5a37cec
  Author: darkbuck <michael.hliao at gmail.com>
  Date:   2024-04-03 (Wed, 03 Apr 2024)

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

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

- When both operands are constant, the matcher runs into an infinite
  loop as the commutation should be applied only when LHS is a constant
  and RHS is not.

Reviewers: arsenm

Reviewed By: arsenm

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


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

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

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

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


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

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

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

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

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

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


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

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

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

Implements: https://wg21.link/P2867R2

---------

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


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

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

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

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

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

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

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


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

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

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


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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

becomes:

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


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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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


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

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

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

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


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

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

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

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


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

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

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


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

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

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


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

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

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

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

This change is in preparation of adding support for branches.


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

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

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

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

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


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

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

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

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

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


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

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

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

Reverts llvm/llvm-project#86137

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


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

  Changed paths:
    M libclc/CMakeLists.txt

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

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

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

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

The things fixed by this commit include:

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


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

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

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

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


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

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

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

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


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

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

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

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


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

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

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

This patch adds lld support for:

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

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

Depends on #72713 and #85231

---------

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


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

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

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

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


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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

and then in `clang-repl`:

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

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


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

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

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

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

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

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

Fixes #86968


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

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

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

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


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

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

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

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

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


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

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

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

Based off the existing foldShuffleOfBinops fold

Fixes #67803


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

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

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

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


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

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

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

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

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

...

  General options:
    ...

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

  affine-super-vectorizer-test options:

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

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

After the change 

```
$ mlir-opt --help

...

  General options:
    ...

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

---------

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


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

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

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

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


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

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

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

Recursively remove dead recipes after simplifying vector loop exit
branch.


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

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

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

Introduced in #87613.


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

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

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


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

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

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


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

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

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

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


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

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

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

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

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

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

 - PAC
 - PACBTI
 - BTI
 - SG

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

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

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

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

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


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

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

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

Fixes #86502.

cc @lntue


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

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

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

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

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

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


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

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

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

Reverts llvm/llvm-project#87543

The pre-merge Windows build is broken.


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

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

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

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


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

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

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

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

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


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

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

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

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


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

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

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

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


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

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

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

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


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

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

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

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

Fixes #69428

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

---------

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


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

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

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

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

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


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

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

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

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

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


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

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

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


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

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

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


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

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

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


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

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

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

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

Confirmed by Agner + uops.info/uica


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

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

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

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


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

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

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


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

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

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


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

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

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

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


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

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

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

Should fix the cases noted in #86857


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

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

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

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

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


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

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

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

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


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

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

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

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


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

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

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

This reverts commit 7b5255297dca377a37c8df066e9d9749ab96cfad.

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


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

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

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


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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

Fixes: ebb326a51fec37b5a47e5702e8ea157cd4f835cd

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


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

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

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

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


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

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

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

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


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

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

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


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

  Changed paths:
    M libclc/CMakeLists.txt

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

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

Also reformat a couple of comments.


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

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

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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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

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

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

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

Since OnDiskChainedHashTableGenerator calls EmitKeyDataLength as:

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

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

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

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

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

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


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

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

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

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

Suggested by @emelife

Fix #84271


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

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

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

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

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

---------

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


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

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

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


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

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

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

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

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

Closes #87143


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

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

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


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

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

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

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

Other than that, just some basic cases.

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

Closes #86083


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

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

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

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


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

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

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

Depends on #87545

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


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

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

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

Noticed while starting triage for #87640


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

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

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

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

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

To reflect this, this patch:

- Enables aggressive folding of shifts into loads by default.

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

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

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


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

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

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


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

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

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

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


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

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

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

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

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

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

---------

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


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

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

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

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


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

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

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


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

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

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

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


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

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

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


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

  Changed paths:
    M llvm/test/Instrumentation/HWAddressSanitizer/pgo-opt-out.ll

  Log Message:
  -----------
  [NFC][HWASAN] Cleanup opt opt test (#87687)

Main change is replacing DEFAULT with HOT99.
I'll remove DEFAULT related functionality in the followup patches.


  Commit: beded9b9ceab19f81320c7cf5e3600a7745c8f05
      https://github.com/llvm/llvm-project/commit/beded9b9ceab19f81320c7cf5e3600a7745c8f05
  Author: Florian Mayer <fmayer at google.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M compiler-rt/lib/hwasan/hwasan_thread_list.h

  Log Message:
  -----------
  [HWASan] Allow stack_history_size of 4096 (#86362)

There is no reason to limit the minimum to two pages.


  Commit: 7e87d03b45f3ca0f6d9c09e8e9090329cc84592e
      https://github.com/llvm/llvm-project/commit/7e87d03b45f3ca0f6d9c09e8e9090329cc84592e
  Author: Keyi Zhang <Kuree at users.noreply.github.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.cpp
    M mlir/test/Dialect/ControlFlow/ops.mlir

  Log Message:
  -----------
  [MLIR][CF] Fix cf.switch parsing with result numbers (#87658)

This PR should fix the parsing bug reported in
https://github.com/llvm/llvm-project/issues/87430. It allows using
result number as the `cf.switch` operand.


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

  Changed paths:
    M llvm/test/Transforms/RemoveTraps/remove-traps.ll

  Log Message:
  -----------
  [NFC][UBSAN] Similar to #87687 for UBSAN


  Commit: dad065dc6e03725aeb60d703cbaccd175a2f1d53
      https://github.com/llvm/llvm-project/commit/dad065dc6e03725aeb60d703cbaccd175a2f1d53
  Author: Jeff Niu <jeff at modular.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    A mlir/test/mlir-tblgen/op-properties.td
    M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp

  Log Message:
  -----------
  [mlir][ods] Fix attribute setter gen when properties are on (#87688)

ODS was still generating the old `Operation::setAttr` hooks for ODS
methods for setting attributes, when the backing implementation of the
attributes was changed to properties. No idea how this wasn't noticed
until now.


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

  Changed paths:
    M flang/lib/Semantics/check-declarations.cpp
    M flang/test/Semantics/cuf03.cuf

  Log Message:
  -----------
  [flang][cuda] Add restriction on assumed size device variable (#87664)

According to
https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/#cfpg-var-qual-attr-device

> A device array may be an explicit-shape array, an allocatable array,
or an assumed-shape dummy array.

Assumed size array are not supported. This patch adds an error for that
case.


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

  Changed paths:
    M llvm/include/llvm/IR/Intrinsics.td

  Log Message:
  -----------
  [builtin][NFC] Remove ClangBuiltin<"__builtin_allow_ubsan_check"> (#87581)

We don't need clang builtin for this one.

It was copy pasted from `__builtin_allow_runtime_check`

RFC:
https://discourse.llvm.org/t/rfc-add-llvm-experimental-hot-intrinsic-or-llvm-hot/77641


  Commit: dfaa144d0ca15839d1d11af472a4b7e2d2c6b7ec
      https://github.com/llvm/llvm-project/commit/dfaa144d0ca15839d1d11af472a4b7e2d2c6b7ec
  Author: Florian Mayer <fmayer at google.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M compiler-rt/lib/hwasan/hwasan_thread_list.h

  Log Message:
  -----------
  [NFC] [HWASan] clarify FIXME comment (#87689)


  Commit: df69a305253f1d1b4a4066055a07101a4cc03e55
      https://github.com/llvm/llvm-project/commit/df69a305253f1d1b4a4066055a07101a4cc03e55
  Author: Ian Anderson <iana at apple.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M clang/lib/Headers/__stddef_unreachable.h

  Log Message:
  -----------
  [Headers] Don't declare unreachable() from stddef.h in C++ (#86748)

Even if __need_unreachable is set, stddef.h should not declare
unreachable() in C++ because it conflicts with the declaration in
\<utility>.


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

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

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

Reverts llvm/llvm-project#79173

The testcase fails in non-asserts builds.


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

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

  Log Message:
  -----------
  [memprof] Introduce writeMemProf (NFC) (#87698)

This patch refactors the serialization of MemProf data to a switch
statement style:

  switch (Version) {
  case Version0:
    return ...;
  case Version1:
    return ...;
  }

just like IndexedMemProfRecord::serialize.

A reasonable amount of code is shared and factored out to helper
functions between writeMemProfV0 and writeMemProfV1 to the extent that
doens't hamper readability.


  Commit: 5aeb604c7ce417eea110f9803a6c5cb1cdbc5372
      https://github.com/llvm/llvm-project/commit/5aeb604c7ce417eea110f9803a6c5cb1cdbc5372
  Author: MaheshRavishankar <1663364+MaheshRavishankar at users.noreply.github.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Affine/LoopUtils.h
    M mlir/include/mlir/Dialect/SCF/Utils/Utils.h
    M mlir/include/mlir/IR/PatternMatch.h
    M mlir/lib/Dialect/Affine/Transforms/LoopCoalescing.cpp
    M mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp
    M mlir/lib/Dialect/SCF/TransformOps/SCFTransformOps.cpp
    M mlir/lib/Dialect/SCF/Transforms/ParallelLoopCollapsing.cpp
    M mlir/lib/Dialect/SCF/Utils/Utils.cpp
    M mlir/lib/IR/PatternMatch.cpp
    M mlir/test/Dialect/Affine/loop-coalescing.mlir
    M mlir/test/Dialect/SCF/transform-op-coalesce.mlir
    M mlir/test/Transforms/parallel-loop-collapsing.mlir
    M mlir/test/Transforms/single-parallel-loop-collapsing.mlir

  Log Message:
  -----------
  [mlir][SCF] Modernize `coalesceLoops` method to handle `scf.for` loops with iter_args (#87019)

As part of this extension this change also does some general cleanup

1) Make all the methods take `RewriterBase` as arguments instead of
   creating their own builders that tend to crash when used within
   pattern rewrites
2) Split `coalesePerfectlyNestedLoops` into two separate methods, one
   for `scf.for` and other for `affine.for`. The templatization didnt
   seem to be buying much there.

Also general clean up of tests.


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

  Changed paths:
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__algorithm/comp.h
    M libcxx/include/__algorithm/equal.h
    M libcxx/include/__algorithm/mismatch.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/transform_reduce.h
    M libcxx/include/__functional/operations.h
    M libcxx/include/__functional/ranges_operations.h
    M libcxx/include/__numeric/pstl_transform_reduce.h
    A libcxx/include/__type_traits/desugars_to.h
    R libcxx/include/__type_traits/operation_traits.h
    M libcxx/include/libcxx.imp
    M libcxx/include/module.modulemap

  Log Message:
  -----------
  [libc++][NFC] Make __desugars_to a variable template and rename the header to desugars_to.h (#87337)

This improves compile times and memory usage slightly and removes some
boilerplate.


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

  Changed paths:
    A flang/include/flang/Common/windows-include.h
    M flang/runtime/command.cpp
    M flang/runtime/execute.cpp
    M flang/runtime/file.cpp
    M flang/runtime/lock.h

  Log Message:
  -----------
  [flang] Added windows-include.h wrapper to resolve name conflicts. (#87650)

The header file includes windows.h in a mean-and-lean way to avoid
bringing in names that may conflict with Flang code.


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

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
    M llvm/lib/Transforms/Instrumentation/RemoveTrapsPass.cpp
    M llvm/test/Instrumentation/HWAddressSanitizer/pgo-opt-out.ll
    M llvm/test/Transforms/RemoveTraps/remove-traps.ll

  Log Message:
  -----------
  [HWASAN][UBSAN] Don't use default `profile-summary-cutoff-hot` (#87691)

Default cutoff is not usefull here. Decision to
enable or not sanitizer causes more significant
performance impact, than a typical optimizations
which rely on `profile-summary-cutoff-hot`.


  Commit: 5264c22ef15a308bad420cd85051ed6c4c175bc7
      https://github.com/llvm/llvm-project/commit/5264c22ef15a308bad420cd85051ed6c4c175bc7
  Author: Michael Jones <michaelrj at google.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
    M libc/include/llvm-libc-macros/math-macros.h
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [libc] Temporary math macros fix (#87681)

Downstream's having some issues due to math-macros.h issues. These will
be fixed properly soon.

See https://github.com/llvm/llvm-project/issues/87683 for tracking this
tech debt.


  Commit: 2cbbbf71a4fbff9f7015d83a599428ea9ec9dab7
      https://github.com/llvm/llvm-project/commit/2cbbbf71a4fbff9f7015d83a599428ea9ec9dab7
  Author: Chenguang Wang <w3cing at gmail.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

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

  Log Message:
  -----------
  [bazel] Add missing dependency for mlir:SCFUtils (#87711)

https://github.com/llvm/llvm-project/commit/5aeb604c7ce417eea110f9803a6c5cb1cdbc5372
https://buildkite.com/llvm-project/upstream-bazel/builds/93859


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

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

  Log Message:
  -----------
  [NFC][HWASAN][UBSAN] Remove cl:init from few opts (#87692)

They are supposed to be used with `getNumOccurrences`.


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

  Changed paths:
    M clang/lib/CodeGen/BackendUtil.cpp
    M clang/test/CodeGen/remote-traps.c
    M llvm/include/llvm/Transforms/Instrumentation/RemoveTrapsPass.h
    M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
    M llvm/lib/Transforms/Instrumentation/RemoveTrapsPass.cpp
    M llvm/test/Instrumentation/HWAddressSanitizer/pgo-opt-out-no-ps.ll
    M llvm/test/Instrumentation/HWAddressSanitizer/pgo-opt-out.ll

  Log Message:
  -----------
  [UBSAN][HWASAN] Remove redundant flags (#87709)

Presense of `cutoff-hot` or `random-skip-rate`
should be enough to trigger optimization.


  Commit: 697dd93ae30f489e5bcdac74c2ef2d876e3ca064
      https://github.com/llvm/llvm-project/commit/697dd93ae30f489e5bcdac74c2ef2d876e3ca064
  Author: Koakuma <koachan at protonmail.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M llvm/docs/LangRef.rst
    M llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
    M llvm/test/CodeGen/SPARC/inlineasm-bad.ll
    M llvm/test/CodeGen/SPARC/inlineasm.ll

  Log Message:
  -----------
  [SPARC] Implement L and H inline asm argument modifiers (#87259)

This adds support for using the L and H argument modifiers for twinword
operands in inline asm code, such as in:

```
%1 = tail call i64 asm sideeffect "rd %pc, ${0:L} ; srlx ${0:L}, 32, ${0:H}", "={o4}"()
```

This is needed by the Linux kernel.


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

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

  Log Message:
  -----------
  [UBSAN] Remove invalid assert added with #87709


  Commit: 75e7e7d327e0458b151fbe1e6b3a9ac0a5081f76
      https://github.com/llvm/llvm-project/commit/75e7e7d327e0458b151fbe1e6b3a9ac0a5081f76
  Author: Michael Kruse <llvm-project at meinersbur.de>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M flang/.gitignore
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-as
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-ld
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-ld.bfd
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-ld.gold
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-as
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-ld
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-ld.bfd
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-ld.gold
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/as
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/ld
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/ld.bfd
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/ld.gold
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/lib/.keep
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/i386-unknown-linux-gnu/10.2.0/crtbegin.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtbegin.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtbeginT.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtfastmath.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtbegin.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtbeginT.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtfastmath.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/as
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld.bfd
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld.gold
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld.lld
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/lib/.keep
    M flang/test/Driver/driver-help-hidden.f90
    M flang/test/Driver/driver-help.f90
    A flang/test/Driver/gcc-toolchain-install-dir.f90

  Log Message:
  -----------
  [flang] Add --gcc-toolchain and --gcc-install-dir options to flang. (#87360)

The `--gcc-toolchain` and `--gcc-install-dir` option were previously only visible to the Clang driver, but not Flang. These determine which assembler, linker, and libraries to use, e.g. for cross-compiling, and therefore are relevant for Flang as well.

Tests are implemented using a mock GCC installation in `basic_cross_linux_tree` copied over from Clang's tests. The Clang driver already contains tests with `--driver-mode=flang` but `flang-new` is an entirely different executable (containing the `-fc1` stage) that should be tested as well. While not all files in `basic_cross_linux_tree` are strictly needed for testing those two driver flags, they will be necessarily needed for future added flags such as `--rtlib`.
 
Also remove the entry `*.o` in flang's `.gitignore` since `crt*.o` files are needed in the GCC mock installation.

Fixes #86729


  Commit: 4b077ed58e3b61e29ae2dbc157fc8122fda1f36c
      https://github.com/llvm/llvm-project/commit/4b077ed58e3b61e29ae2dbc157fc8122fda1f36c
  Author: Keith Smiley <keithbsmiley at gmail.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M utils/bazel/.bazelrc
    M utils/bazel/configure.bzl
    A utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
    A utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
    A utils/bazel/llvm-project-overlay/lldb/source/Plugins/plugin_config.bzl

  Log Message:
  -----------
  [bazel] Add support for building lldb (#87589)

This adds build configuration for building LLDB on macOS and Linux. It
uses a default subset of features that should work out of the box with
macOS + Ubuntu. It is notably missing python support right now, although
some of the scaffolding is there, because of the complexity of linking a
python dylib, especially if you plan to distribute the resulting
liblldb.so.

Most of this build file is pretty simple, one of the unfortunate
patterns I had to use was to split the header and sources cc_library
targets to break circular dependencies.


  Commit: bffc0b65692596137cbdcdd3b48e2f31320dacbd
      https://github.com/llvm/llvm-project/commit/bffc0b65692596137cbdcdd3b48e2f31320dacbd
  Author: Paul Kirth <paulkirth at google.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVSubtarget.h

  Log Message:
  -----------
  [RISCV][NFC] Add isTargetAndroid API in RISCVSubtarget (#87671)

This is required to set target specific code generation options for
Android,
like using the TLS slot for the stack protector.


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

  Changed paths:
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/VPlan.cpp
    M llvm/lib/Transforms/Vectorize/VPlan.h
    M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
    M llvm/lib/Transforms/Vectorize/VPlanValue.h
    M llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
    A llvm/test/Transforms/LoopVectorize/PowerPC/vectorize-force-tail-with-evl.ll
    A llvm/test/Transforms/LoopVectorize/PowerPC/vplan-force-tail-with-evl.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/inloop-reduction.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-gather-scatter.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-interleave.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-iv32.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-masked-loadstore.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-no-masking.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-reverse-load-store.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-vp-intrinsics.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-intrinsics.ll
    A llvm/test/Transforms/LoopVectorize/X86/vectorize-force-tail-with-evl.ll
    A llvm/test/Transforms/LoopVectorize/X86/vplan-vp-intrinsics.ll
    A llvm/test/Transforms/LoopVectorize/vectorize-force-tail-with-evl.ll
    A llvm/test/Transforms/LoopVectorize/vplan-force-tail-with-evl.ll

  Log Message:
  -----------
  [LV, VP]VP intrinsics support for the Loop Vectorizer + adding new tail-folding mode using EVL. (#76172)

This patch introduces generating VP intrinsics in the Loop Vectorizer.

Currently the Loop Vectorizer supports vector predication in a very
limited capacity via tail-folding and masked load/store/gather/scatter
intrinsics. However, this does not let architectures with active vector
length predication support take advantage of their capabilities.
Architectures with general masked predication support also can only take
advantage of predication on memory operations. By having a way for the
Loop Vectorizer to generate Vector Predication intrinsics, which (will)
provide a target-independent way to model predicated vector
instructions. These architectures can make better use of their
predication capabilities.

Our first approach (implemented in this patch) builds on top of the
existing tail-folding mechanism in the LV (just adds a new tail-folding
mode using EVL), but instead of generating masked intrinsics for memory
operations it generates VP intrinsics for loads/stores instructions. The
patch adds a new VPlanTransforms to replace the wide header predicate
compare with EVL and updates codegen for load/stores to use VP
store/load with EVL.

Other important part of this approach is how the Explicit Vector Length
is computed. (VP intrinsics define this vector length parameter as
Explicit Vector Length (EVL)). We use an experimental intrinsic
`get_vector_length`, that can be lowered to architecture specific
instruction(s) to compute EVL.

Also, added a new recipe to emit instructions for computing EVL. Using
VPlan in this way will eventually help build and compare VPlans
corresponding to different strategies and alternatives.

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


  Commit: ca55ee88263e5b190965c3f14fd3b2647efab26a
      https://github.com/llvm/llvm-project/commit/ca55ee88263e5b190965c3f14fd3b2647efab26a
  Author: Shubham Rastogi <shubhamrastogi at augusto.scv.apple.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

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

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

This reverts commit d6713ad80d6907210c629f22babaf12177fa329c.

This changed was reverted because of greendragon failures such
as

Unresolved Tests (2):
  lldb-api :: debuginfod/Normal/TestDebuginfod.py
  lldb-api :: debuginfod/SplitDWARF/TestDebuginfodDWP.py


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

  Changed paths:
    M clang/test/CodeGen/remote-traps.c

  Log Message:
  -----------
  [NFC][UBSAN] Regenerate a test


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

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

  Log Message:
  -----------
  [RISCV][GISel] Make register bank selection for unary and binary arithmetic ops more generic. (#87593)

This is inspired by AArch64's getSameKindOfOperandsMapping, but based on
what RISC-V currently needs.

This removes the special vector case for G_ADD/SUB and unifies integer
and FP operations into the same handler.

G_SEXTLOAD/ZEXTLOAD have been separated from integer since they should
only be scalar integer and never vector.


  Commit: cfadf3f62230505c1156e07f46c06813271bb5ac
      https://github.com/llvm/llvm-project/commit/cfadf3f62230505c1156e07f46c06813271bb5ac
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  Log Message:
  -----------
  [TableGen] Fix a potential crash when operand doesn't appear in the instruction pattern (#87663)

We have a check of whether an operand is in the instruction pattern, and
emit an
error if it is not, but we simply continue execution, including directly
dereferencing a point-like object `InVal`, which will be just created
when
accessing the map. It contains a `nullptr` so dereferencing it causes
crash.
This is a very trivial fix.


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

  Changed paths:
    R clang/test/CodeGen/remote-traps.c
    M llvm/lib/Transforms/Instrumentation/RemoveTrapsPass.cpp
    M llvm/test/Transforms/RemoveTraps/remove-traps.ll

  Log Message:
  -----------
  [clang][ubsan] Switch UBSAN optimization to `llvm.allow.{runtime,ubsan}.check()` (#84858)

Intrinsic introduced with #84850. Intrinsics improves performance
by 3% comparing to removing traps (on
"test-suite/MultiSource/Benchmarks" with PGO+ThinLTO).

The pass will be renamed with #84853.

RFC:
https://discourse.llvm.org/t/rfc-add-llvm-experimental-hot-intrinsic-or-llvm-hot/77641


  Commit: ab80d00438a04248f9a2f62546ea34c294d08f01
      https://github.com/llvm/llvm-project/commit/ab80d00438a04248f9a2f62546ea34c294d08f01
  Author: Qizhi Hu <836744285 at qq.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M clang/lib/AST/ASTImporter.cpp
    M clang/unittests/AST/ASTImporterTest.cpp

  Log Message:
  -----------
  [clang][ASTImporter] fix variable inline of CXX17 (#87314)

Fix crash in the testcase from
https://github.com/llvm/llvm-project/issues/75114#issuecomment-1872595956
Forget to set inline of variable declaration would make
`isThisDeclarationADefinition` get incorrect result and didn't get
imported variable. This will lead to a new `VarTemplateDecl` being
created and call `setDescribedVarTemplate` again which produces the
crash.

Co-authored-by: huqizhi <836744285 at qq.com>


  Commit: 90453f4a9a8955ac612959504941153aa376cb0c
      https://github.com/llvm/llvm-project/commit/90453f4a9a8955ac612959504941153aa376cb0c
  Author: Youngsuk Kim <joseph942010 at gmail.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/Decl.h
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/test/SemaCXX/warn-unused-but-set-variables-cpp.cpp

  Log Message:
  -----------
  [Clang][Sema] Warn unused cxx vardecl which entirely consists condition expr of if/while/for construct (#87348)

Emit `-Wunused-but-set-variable` warning on C++ variables whose
declaration (with initializer) entirely consist the condition expression
of a if/while/for construct but are not actually used in the body of the
if/while/for construct.

Fixes #41447


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

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

  Log Message:
  -----------
  [clang][CodeGen] Remove SimplifyCFGPass preceding RemoveTrapsPass (#84852)

There is no performance difference after switching to
`llvm.experimental.hot`.


  Commit: 7c9c38eaa9b74debe5dd094535653c5d3f6ca591
      https://github.com/llvm/llvm-project/commit/7c9c38eaa9b74debe5dd094535653c5d3f6ca591
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M clang/lib/Format/UnwrappedLineParser.cpp
    M clang/unittests/Format/FormatTest.cpp
    M clang/unittests/Format/TokenAnnotatorTest.cpp

  Log Message:
  -----------
  [clang-format] Fix a regression in annotating BK_BracedInit (#87450)

Fixes #86539.


  Commit: 134176058fdee712ad213e83a39aec2d107dda42
      https://github.com/llvm/llvm-project/commit/134176058fdee712ad213e83a39aec2d107dda42
  Author: Keith Smiley <keithbsmiley at gmail.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel
    A utils/bazel/llvm-project-overlay/compiler-rt/lib/orc/tests/unit/BUILD.bazel

  Log Message:
  -----------
  [bazel] Add support for building orc_rt (#87730)


  Commit: 1cb64d75b2739cce0c4d663410180febe06b7256
      https://github.com/llvm/llvm-project/commit/1cb64d75b2739cce0c4d663410180febe06b7256
  Author: Farzon Lotfi <1802579+farzonl at users.noreply.github.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/Builtins.td
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CGHLSLRuntime.cpp
    M clang/lib/CodeGen/CGHLSLRuntime.h
    M clang/lib/Headers/hlsl/hlsl_intrinsics.h
    M clang/lib/Sema/SemaChecking.cpp
    A clang/test/CodeGenHLSL/builtins/all.hlsl
    M llvm/include/llvm/IR/IntrinsicsDirectX.td
    M llvm/include/llvm/IR/IntrinsicsSPIRV.td

  Log Message:
  -----------
  [HLSL][DXIL][SPIRV] Implementation of an abstraction for intrinsic selection of HLSL backends  (#87171)

Start of #83882
- `Builtins.td` - add the `hlsl` `all` elementwise builtin.
- `CGBuiltin.cpp` - Show a use case for CGHLSLUtils via an `all`
intrinsic codegen.
- `CGHLSLRuntime.cpp` - move `thread_id` to use CGHLSLUtils.
- `CGHLSLRuntime.h` - Create a macro to help pick the right intrinsic
for the backend.
- `hlsl_intrinsics.h` - Add the `all` api.
- `SemaChecking.cpp` - Add `all` builtin type checking
- `IntrinsicsDirectX.td` - Add the `all` `dx` intrinsic
- `IntrinsicsSPIRV.td` - Add the `all` `spv` intrinsic

Work still needed:
- `SPIRVInstructionSelector.cpp` - Add an implementation of `OpAll` for
`spv_all` intrinsic


  Commit: 66190af7350df7edb03f7ebb8ac11065bb07e22c
      https://github.com/llvm/llvm-project/commit/66190af7350df7edb03f7ebb8ac11065bb07e22c
  Author: Youngsuk Kim <youngsuk.kim at hpe.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst

  Log Message:
  -----------
  [Clang] ReleaseNote item for 9dab2e3064a2ad4d5ce65832d605787dc394cb72

Add release item which was omitted at the time.


  Commit: ff1e72d68d1224271801ff5192a8c14fbd3be83b
      https://github.com/llvm/llvm-project/commit/ff1e72d68d1224271801ff5192a8c14fbd3be83b
  Author: Congcong Cai <congcongcai0907 at 163.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/hicpp/IgnoredRemoveResultCheck.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/hicpp/ignored-remove-result.cpp

  Log Message:
  -----------
  [clang-tidy] hicpp-ignored-remove-result ignore functions with same prefixes as the target (#87587)


  Commit: 843cc474faefad1d639f4c44c1cf3ad7dbda76c8
      https://github.com/llvm/llvm-project/commit/843cc474faefad1d639f4c44c1cf3ad7dbda76c8
  Author: Younan Zhang <zyn7109 at gmail.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/DeclCXX.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Frontend/FrontendActions.cpp
    M clang/lib/Sema/SemaConcept.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateInstantiate.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Sema/TreeTransform.h
    A clang/test/SemaTemplate/alias-template-with-lambdas.cpp

  Log Message:
  -----------
  [Clang][Sema] Fix the lambda call expression inside of a type alias declaration (#82310)

This patch attempts to fix the lambda call expression inside of a type
alias declaration from two aspects:
1. Defer the lambda call expression building until after we have
sufficient template arguments. This avoids the overeager (and often
wrong) semantic checking before the type alias instantiation.
2. Properly obtain template arguments involving a template type alias
for constraint checking.

It is unfortunate that a `TypeAliasTemplateDecl` (or a `TypeAliasDecl`)
is never a `DeclContext`, nor does it have an associated specialization
Decl from which we could collect these template arguments. Thus, I added
a new CodeSynthesisContext to record template arguments for alias
declarations.

Fixes https://github.com/llvm/llvm-project/issues/70601
Fixes https://github.com/llvm/llvm-project/issues/76674
Fixes https://github.com/llvm/llvm-project/issues/79555
Fixes https://github.com/llvm/llvm-project/issues/81145
Fixes https://github.com/llvm/llvm-project/issues/82104

Note that this doesn't involve the fix for
https://github.com/llvm/llvm-project/issues/28461. That seems different,
and I'd like to leave it as a follow-up.


  Commit: 6b30ffef28c35c24bfd8190e06eeaa0c5cd73cbd
      https://github.com/llvm/llvm-project/commit/6b30ffef28c35c24bfd8190e06eeaa0c5cd73cbd
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-04-05 (Fri, 05 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) (#85895)

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.


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

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

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

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.


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

  Changed paths:
    M clang/lib/CodeGen/BackendUtil.cpp
    A llvm/include/llvm/Transforms/Instrumentation/LowerAllowCheckPass.h
    R llvm/include/llvm/Transforms/Instrumentation/RemoveTrapsPass.h
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Passes/PassRegistry.def
    M llvm/lib/Transforms/Instrumentation/CMakeLists.txt
    A llvm/lib/Transforms/Instrumentation/LowerAllowCheckPass.cpp
    R llvm/lib/Transforms/Instrumentation/RemoveTrapsPass.cpp
    R llvm/test/Transforms/RemoveTraps/remove-traps.ll
    A llvm/test/Transforms/lower-builtin-allow-check.ll
    M llvm/utils/gn/secondary/llvm/lib/Transforms/Instrumentation/BUILD.gn

  Log Message:
  -----------
  [UBSAN] Rename `remove-traps` to `lower-allow-check` (#84853)


  Commit: 62b58d34189f83d9e161cf01283ecc7c54b4a52e
      https://github.com/llvm/llvm-project/commit/62b58d34189f83d9e161cf01283ecc7c54b4a52e
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-04-05 (Fri, 05 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` (#86383)

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.


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

  Changed paths:
    A clang/test/InstallAPI/Inputs/Foundation/Foundation.framework/Headers/Foundation.h
    M clang/test/InstallAPI/extra-exclude-headers.test
    A clang/test/InstallAPI/forwarded-search-paths.test

  Log Message:
  -----------
  [InstallAPI] Add test to validate cc1 arg forwarding (#87666)


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

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

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

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

For stores, the same conversion casting check is applied and we ensure
that their result is properly casted to the type of the memory slot.
This is necessary to satisfy assumptions of the general mem2reg pass, as
it creates block arguments with the types of the memory slot.

This relands https://github.com/llvm/llvm-project/pull/87504


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

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

  Log Message:
  -----------
  [MLIR][LLVM] Improve bit- and addrspacecast folders (#87745)

This commit extends the folders of chainable casts (bitcast and
addrspacecast) to ensure that they fold a chain of the same casts into a
single cast.

Additionally cleans up the canonicalization test file, as this used some
outdated constructs.


  Commit: cfb86ae7497e43e9221ab890221789ae320381e9
      https://github.com/llvm/llvm-project/commit/cfb86ae7497e43e9221ab890221789ae320381e9
  Author: Qizhi Hu <836744285 at qq.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaDecl.cpp
    A clang/test/SemaCXX/PR86790.cpp

  Log Message:
  -----------
  [Clang][Sema] Skip checking anonymous enum in using enum declaration (#87144)

Try to fix https://github.com/llvm/llvm-project/issues/86790
`getFETokenInfo` requires `DeclarationName` shouldn't be empty and this
will produce crash when checking name conflict of an anonymous
`NamedDecl` in `Sema::PushOnScopeChains` and whether it's a reserved
identifier or not. These wouldn't happen when it's a anonymous enum and
we can skip the checking and just add the declaration to current scope.

Co-authored-by: huqizhi <836744285 at qq.com>


  Commit: 73fa6685c43ef61f5f5babb14f734097af6dc702
      https://github.com/llvm/llvm-project/commit/73fa6685c43ef61f5f5babb14f734097af6dc702
  Author: mlevesquedion <mlevesquedion at google.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M mlir/docs/DefiningDialects/AttributesAndTypes.md
    M mlir/docs/DefiningDialects/_index.md
    M mlir/docs/Dialects/Linalg/_index.md
    M mlir/docs/Dialects/Transform.md
    M mlir/docs/LangRef.md
    M mlir/docs/Rationale/SideEffectsAndSpeculation.md
    M mlir/docs/TargetLLVMIR.md
    M mlir/docs/Tutorials/Toy/Ch-4.md
    M mlir/docs/Tutorials/transform/Ch4.md

  Log Message:
  -----------
  Fix a few broken links (#87098)

References to headings need to be preceded with a slash. Also,
references to headings on the same page do not need to contain the name
of the document (omitting the document name means if the name changes
the links will still be valid).

I double checked the links by building [the
website](https://github.com/llvm/mlir-www):

```shell
./mlir-www-helper.sh --install-docs ../llvm-project website
cd website && hugo serve
```


  Commit: 7e958f64efea6cb824e96ace51e021afbc150922
      https://github.com/llvm/llvm-project/commit/7e958f64efea6cb824e96ace51e021afbc150922
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M clang-tools-extra/clangd/CompileCommands.cpp
    M clang/include/clang/Driver/Options.td
    M clang/lib/Frontend/CompilerInvocation.cpp
    M clang/utils/TableGen/ClangOptionDocEmitter.cpp
    M flang/test/Driver/driver-help-hidden.f90
    M flang/test/Driver/driver-help.f90
    M lld/MachO/DriverUtils.cpp
    M lld/MinGW/Driver.cpp
    M lld/wasm/Driver.cpp
    M llvm/include/llvm/Option/OptParser.td
    M llvm/include/llvm/Option/OptTable.h
    M llvm/lib/Option/OptTable.cpp
    M llvm/unittests/Option/OptionMarshallingTest.cpp
    M llvm/utils/TableGen/OptParserEmitter.cpp

  Log Message:
  -----------
  [flang][clang] Add Visibility specific help text for options (#81869)

And use it to print the correct default OpenMP version for flang and
flang -fc1.

This change adds an optional `HelpTextsForVariants` to options. This
allows you to change the help text that gets shown in documentation and
`--help` based on the program its being generated for.

As `OptTable` needs to be constexpr compatible, I have used a std::array
of help text variants. Each entry is:
(list of visibilities) - > help text string

So for the OpenMP version we have (flang, fc1) -> "OpenMP version for
flang is...".

So you can have multiple visibilities use the same string. The number of
entries is currently set to 1, and the number of visibilities per entry
is 2, because that's the maximum we need for now. The code is written so
we can increase these numbers later, and the unused elements will be initialised.

I have not applied this to group descriptions just because I don't know
of one that needs changing. It could easily be enabled for those too if
needed. There are minor changes to them just to get it all to compile.

This approach of storing many help strings per option in the 1 driver
library seemed preferable to making a whole new library for Flang (even
if that would mostly be including stuff from Clang).


  Commit: 67d20412b448533c77f54ac7a1e5d0775d273729
      https://github.com/llvm/llvm-project/commit/67d20412b448533c77f54ac7a1e5d0775d273729
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M clang-tools-extra/clangd/CompileCommands.cpp
    M clang/include/clang/Driver/Options.td
    M clang/lib/Frontend/CompilerInvocation.cpp
    M clang/utils/TableGen/ClangOptionDocEmitter.cpp
    M flang/test/Driver/driver-help-hidden.f90
    M flang/test/Driver/driver-help.f90
    M lld/MachO/DriverUtils.cpp
    M lld/MinGW/Driver.cpp
    M lld/wasm/Driver.cpp
    M llvm/include/llvm/Option/OptParser.td
    M llvm/include/llvm/Option/OptTable.h
    M llvm/lib/Option/OptTable.cpp
    M llvm/unittests/Option/OptionMarshallingTest.cpp
    M llvm/utils/TableGen/OptParserEmitter.cpp

  Log Message:
  -----------
  Revert "[flang][clang] Add Visibility specific help text for options (#81869)"

This reverts commit 7e958f64efea6cb824e96ace51e021afbc150922.

Failing on multiple bots.


  Commit: aff197ff2163a4b7732d08b833906cc21f4a5c89
      https://github.com/llvm/llvm-project/commit/aff197ff2163a4b7732d08b833906cc21f4a5c89
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M clang-tools-extra/clangd/CompileCommands.cpp
    M clang/include/clang/Driver/Options.td
    M clang/lib/Frontend/CompilerInvocation.cpp
    M clang/tools/clang-installapi/Options.cpp
    M clang/tools/clang-installapi/Options.h
    M clang/utils/TableGen/ClangOptionDocEmitter.cpp
    M flang/test/Driver/driver-help-hidden.f90
    M flang/test/Driver/driver-help.f90
    M lld/MachO/DriverUtils.cpp
    M lld/MinGW/Driver.cpp
    M lld/wasm/Driver.cpp
    M llvm/include/llvm/Option/OptParser.td
    M llvm/include/llvm/Option/OptTable.h
    M llvm/lib/Option/OptTable.cpp
    M llvm/unittests/Option/OptionMarshallingTest.cpp
    M llvm/utils/TableGen/OptParserEmitter.cpp

  Log Message:
  -----------
  Reland "[flang][clang] Add Visibility specific help text for options (#81869)"

This reverts commit 67d20412b448533c77f54ac7a1e5d0775d273729.

This includes fixes for clanginstallapi.


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

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

  Log Message:
  -----------
  [mlir][test] Extend CMake logic for e2e tests

Adds two new CMake functions to query the host system:

  * `check_hwcap`,
  * `check_emulator`.

Together, these functions are used to check whether a given set of MLIR
integration tests require an emulator. If yes, then the corresponding
CMake var that defies the required emulator executable is also checked.

`check_hwcap` relies on ELF_HWCAP for discovering CPU features from
userspace on Linux systems. This is the recommended approach for Arm
CPUs running on Linux as outlined in this blog post:

  * https://community.arm.com/arm-community-blogs/b/operating-systems-blog/posts/runtime-detection-of-cpu-features-on-an-armv8-a-cpu

Other operating systems (e.g. Android) and CPU architectures will
most likely require some other approach. Right now these new hooks are
only used for SVE and SME integration tests.

This relands #86489 with the following changes:
  * Replaced:
      `set(hwcap_test_file ${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/hwcap_check.c)`
    with:
      `set(hwcap_test_file ${CMAKE_BINARY_DIR}/temp/hwcap_check.c)`
    The former would trigger an infinite loop when running `ninja`
    (after the initial CMake configuration).
  * Fixed commit msg. Previous one was taken from the initial GH PR
    commit rather than the final re-worked solution (missed this when
    merging via GH UI).
  * A couple more NFCs/tweaks.


  Commit: c5d000b1a84cfee99db157c6819e0a9c518f8ac8
      https://github.com/llvm/llvm-project/commit/c5d000b1a84cfee99db157c6819e0a9c518f8ac8
  Author: AtariDreams <gfunni234 at gmail.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M llvm/lib/Target/ARM/Thumb1InstrInfo.cpp
    M llvm/test/CodeGen/ARM/sadd_sat.ll
    M llvm/test/CodeGen/ARM/select_const.ll
    M llvm/test/CodeGen/ARM/wide-compares.ll
    M llvm/test/CodeGen/Thumb/pr35836.ll
    M llvm/test/CodeGen/Thumb/urem-seteq-illegal-types.ll

  Log Message:
  -----------
  [Thumb] Resolve FIXME: Use 'mov hi, $src; mov $dst, hi' (#81908)

Consider the following:

        ldr     r0, [r4]
        ldr     r7, [r0, #4]
        cmp     r7, r3
        bhi     .LBB0_6
        cmp     r0, r2
        push    {r0}
        pop     {r4}
        bne     .LBB0_3
        movs    r0, r6
        pop     {r4, r5, r6, r7}
        pop     {r1}
        bx      r1

Here is a snippet of the generated THUMB1 code of the K&R malloc
function that clang currently compiles to.

push    {r0} ends up being popped to pop {r4}.

movs r4, r0 would destroy the flags set by cmp right above.

The compiler has no alternative in this case, except one:
the only alternative is to transfer through a high register.

However, it seems like LLVM does not consider that this is a valid
approach, even though it is a free clobbering a high register.

This patch addresses the FIXME so the compiler can do that when it can
in r10 or r11, or r12.


  Commit: fb299cae5167f63933df45979e3e9de97fca1b8f
      https://github.com/llvm/llvm-project/commit/fb299cae5167f63933df45979e3e9de97fca1b8f
  Author: NagyDonat <donat.nagy at ericsson.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallDescription.h
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
    M clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
    M clang/lib/StaticAnalyzer/Core/CallDescription.cpp
    M clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
    M clang/unittests/StaticAnalyzer/CallDescriptionTest.cpp

  Log Message:
  -----------
  [analyzer] Make recognition of hardened __FOO_chk functions explicit (#86536)

In builds that use source hardening (-D_FORTIFY_SOURCE), many standard
functions are implemented as macros that expand to calls of hardened
functions that take one additional argument compared to the "usual"
variant and perform additional input validation. For example, a `memcpy`
call may expand to `__memcpy_chk()` or `__builtin___memcpy_chk()`.

Before this commit, `CallDescription`s created with the matching mode
`CDM::CLibrary` automatically matched these hardened variants (in a
addition to the "usual" function) with a fairly lenient heuristic.

Unfortunately this heuristic meant that the `CLibrary` matching mode was
only usable by checkers that were prepared to handle matches with an
unusual number of arguments.

This commit limits the recognition of the hardened functions to a
separate matching mode `CDM::CLibraryMaybeHardened` and applies this
mode for functions that have hardened variants and were previously
recognized with `CDM::CLibrary`.

This way checkers that are prepared to handle the hardened variants will
be able to detect them easily; while other checkers can simply use
`CDM::CLibrary` for matching C library functions (and they won't
encounter surprising argument counts).

The initial motivation for refactoring this area was that previously
`CDM::CLibrary` accepted calls with more arguments/parameters than the
expected number, so I wasn't able to use it for `malloc` without
accidentally matching calls to the 3-argument BSD kernel malloc.

After this commit this "may have more args/params" logic will only
activate when we're actually matching a hardened variant function (in
`CDM::CLibraryMaybeHardened` mode). The recognition of "sprintf()" and
"snprintf()" in CStringChecker was refactored, because previously it was
abusing the behavior that extra arguments are accepted even if the
matched function is not a hardened variant.

This commit also fixes the oversight that the old code would've
recognized e.g. `__wmemcpy_chk` as a hardened variant of `memcpy`.

After this commit I'm planning to create several follow-up commits that
ensure that checkers looking for C library functions use `CDM::CLibrary`
as a "sane default" matching mode.

This commit is not truly NFC (it eliminates some buggy corner cases),
but it does not intentionally modify the behavior of CSA on real-world
non-crazy code.

As a minor unrelated change I'm eliminating the argument/variable
"IsBuiltin" from the evalSprintf function family in CStringChecker,
because it was completely unused.

---------

Co-authored-by: Balazs Benics <benicsbalazs at gmail.com>


  Commit: 163301d785a7e6b45d25a4060a239d6af72d6ae6
      https://github.com/llvm/llvm-project/commit/163301d785a7e6b45d25a4060a239d6af72d6ae6
  Author: NagyDonat <donat.nagy at ericsson.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
    M clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp
    M clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp

  Log Message:
  -----------
  [analyzer] Remove barely used class 'KnownSVal' (NFC) (#86953)

The class `KnownSVal` was very magical abstract class within the `SVal`
class hierarchy: with a hacky `classof` method it acted as if it was the
common ancestor of the classes `UndefinedSVal` and `DefinedSVal`.

However, it was only used in two `getAs<KnownSVal>()` calls and the
signatures of two methods, which does not "pay for" its weird behavior,
so I created this commit that removes it and replaces its use with more
straightforward solutions.


  Commit: be8bc3cf43f07f68d89c82db45e29f63b432ceb5
      https://github.com/llvm/llvm-project/commit/be8bc3cf43f07f68d89c82db45e29f63b432ceb5
  Author: Mitch Phillips <mitchp at google.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

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

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

This reverts commit 9e3b64b9f95aadf57568576712902a272fe66503.

Reason: Broke the UBSan buildbot. See the comments in the pull request
(https://github.com/llvm/llvm-project/pull/85036) for more information.


  Commit: 0b7362c257ff7b656c31266b4f9b8485a7ba4033
      https://github.com/llvm/llvm-project/commit/0b7362c257ff7b656c31266b4f9b8485a7ba4033
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
    M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
    A mlir/test/Dialect/Arith/vscale_constants.mlir

  Log Message:
  -----------
  [mlir][arith] Add result pretty printing for constant vscale values (#83565)

In scalable code it is very common to have constant multiples of vscale,
e.g. `4 * vscale`. This updates `arith.muli` to pretty print the result
name in cases like this, so `4 * vscale` would be `%c4_vscale`.

This makes reading IR dumps of scalable code a little nicer.


  Commit: f2d8218efad69aacb7ef7509ba08f93ec333062d
      https://github.com/llvm/llvm-project/commit/f2d8218efad69aacb7ef7509ba08f93ec333062d
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2024-04-05 (Fri, 05 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:
  -----------
  Revert "[mlir][Arith] `ValueBoundsOpInterface`: Support `arith.select` (#86383)"

This reverts commit 62b58d34189f83d9e161cf01283ecc7c54b4a52e.

gcc7 bot is broken.


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

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

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

This reverts commit 24e4429980b3df039166c1ee6a9e530cc6f054c9.

gcc7 bot is broken


  Commit: 8487e05967aaa2dceadd582ac8c2b154ccd39db2
      https://github.com/llvm/llvm-project/commit/8487e05967aaa2dceadd582ac8c2b154ccd39db2
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2024-04-05 (Fri, 05 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:
  -----------
  Revert "[mlir][SCF] `ValueBoundsConstraintSet`: Support `scf.if` (branches) (#85895)"

This reverts commit 6b30ffef28c35c24bfd8190e06eeaa0c5cd73cbd.

gcc7 bot is broken


  Commit: 9a16c12abe13a06470502370833e7c0e6ff70e2c
      https://github.com/llvm/llvm-project/commit/9a16c12abe13a06470502370833e7c0e6ff70e2c
  Author: NagyDonat <donat.nagy at ericsson.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

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

  Log Message:
  -----------
  [NFC] Remove semicolons after function definitions (#87764)

They were accidentally left behind when
https://github.com/llvm/llvm-project/pull/86536 converted some lambdas
into stand-alone methods.

This fixes warnings from -Wc++98-compat-extra-semi


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

  Changed paths:
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/lib/Target/X86/X86TargetTransformInfo.h

  Log Message:
  -----------
  [TTI][X86] getGSVectorCost/getGSScalarCost - add CostKind to the function arguments.

Initial refactor - only getGSScalarCost can actually use CostKind so far, and currently both are only ever set to TCK_RecipThroughput.


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

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

  Log Message:
  -----------
  [CostModel][X86] Update masked load/store/gather/scatter tests to explicitly use variable masks

Using <X x i1> undef masks means they are treated as constants, which underestimates the scalar costs as it assumes that the masks/branches will fold away.


  Commit: 31fd6b8eec16d879a927cb4aa59e39880b5aca9e
      https://github.com/llvm/llvm-project/commit/31fd6b8eec16d879a927cb4aa59e39880b5aca9e
  Author: David Green <david.green at arm.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/AArch64/scalable-external-user.ll

  Log Message:
  -----------
  [SLP] Protect against scalable vector users.

We started seeing a crash after 8a0bfe490592de3df28d82c5dd69956e43c20f1d that
the user could be scalable, meaning the typesize is scalable and an implicit
convertion to uint64_t could be performed. Protect against that by making sure
the users type is not scalable.


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

  Changed paths:
    M lld/COFF/PDB.cpp
    M lld/test/COFF/undefined-symbol-cv.s

  Log Message:
  -----------
  [LLD][COFF] Add ARM64EC support to findLineTable. (#87240)

Fixes asserts in error messages. Use chunk machine type (instead of
global one) to support x86_64 objects and treat ARM64EC objects like
ARM64 ones.


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

  Changed paths:
    M flang/include/flang/Optimizer/Dialect/FIROpsSupport.h
    M flang/lib/Optimizer/CodeGen/CodeGen.cpp
    M flang/lib/Optimizer/Dialect/FIROps.cpp

  Log Message:
  -----------
  [flang][NFC] Unify getIfConstantIntValue helpers (#87633)

There were different helpers for attempting to fetch compile time
constants from MLIR: one in fir::getIntIfConstant and one in CodeGen.
Unify the two.


  Commit: 2c0a99f54fd5045a1b382c03fc5481b648a62a8e
      https://github.com/llvm/llvm-project/commit/2c0a99f54fd5045a1b382c03fc5481b648a62a8e
  Author: AX网 <ax-6 at outlook.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M clang/include/clang/Lex/Token.h

  Log Message:
  -----------
  Fix formatting of a comment; NFC (#87739)


  Commit: 9b5155c93616563165c9d8da5f15aa1f1260d2d2
      https://github.com/llvm/llvm-project/commit/9b5155c93616563165c9d8da5f15aa1f1260d2d2
  Author: Andrei Golubev <andrey.golubev at intel.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M mlir/tools/mlir-tblgen/OpFormatGen.cpp

  Log Message:
  -----------
  [mlir][OpFormatGen][NFC] Change Raw{Operands,Types} arrays to objects (#85631)

Tablegen generates uninitialized arrays of size 1 for raw operands and
types. In the current state this causes static analysis warnings about
"uninitialized fixed-size arrays" as their init is separated from their
declaration. Since these are single-entry array, we can just use a plain
variable instead of an array here.

Co-authored-by: Orest Chura <orest.chura at intel.com>
Co-authored-by: Mehdi Amini <joker.eph at gmail.com>


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

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

  Log Message:
  -----------
  [X86] Add TODO to remove getGSScalarCost and use BaseT /  getCommonMaskedMemoryOpCost directly

There are only a few differences in the use of AddressSpace and getScalarizationOverhead that need to be handled.


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

  Changed paths:
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h

  Log Message:
  -----------
  [TTI] getCommonMaskedMemoryOpCost - pull out repeated getNumElements calls. NFC.


  Commit: 3b961d113e6986eb9a6b448b72a730c289b8e6ab
      https://github.com/llvm/llvm-project/commit/3b961d113e6986eb9a6b448b72a730c289b8e6ab
  Author: Vinayak Dev <104419489+vinayakdsci at users.noreply.github.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/docs/c23.rst
    M libc/docs/math/index.rst
    M libc/src/math/CMakeLists.txt
    M libc/src/math/generic/CMakeLists.txt
    A libc/src/math/generic/roundeven.cpp
    A libc/src/math/generic/roundevenf.cpp
    A libc/src/math/generic/roundevenf128.cpp
    A libc/src/math/generic/roundevenl.cpp
    A libc/src/math/roundeven.h
    A libc/src/math/roundevenf.h
    A libc/src/math/roundevenf128.h
    A libc/src/math/roundevenl.h
    M libc/test/src/math/CMakeLists.txt
    A libc/test/src/math/RoundEvenTest.h
    A libc/test/src/math/roundeven_test.cpp
    A libc/test/src/math/roundevenf_test.cpp
    A libc/test/src/math/roundevenl_test.cpp
    M libc/test/src/math/smoke/CMakeLists.txt
    A libc/test/src/math/smoke/RoundEvenTest.h
    A libc/test/src/math/smoke/roundeven_test.cpp
    A libc/test/src/math/smoke/roundevenf128_test.cpp
    A libc/test/src/math/smoke/roundevenf_test.cpp
    A libc/test/src/math/smoke/roundevenl_test.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.h

  Log Message:
  -----------
  [libc] Implement roundeven C23 math functions (#87678)

Implements the functions `roundeven()`, `roundevenf()`, `roundevenl()`
from the roundeven family of functions introduced in C23. Also
implements `roundevenf128()`.


  Commit: 2650375b3beeb60596ca38e2e06685e48e8ed01f
      https://github.com/llvm/llvm-project/commit/2650375b3beeb60596ca38e2e06685e48e8ed01f
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    A clang/test/OpenMP/thread_limit_amdgpu.c
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  Log Message:
  -----------
  [OpenMP] Add amdgpu-num-work-groups attribute to OpenMP kernels (#87695)

Summary:
This new attribute was introduced recently. We already do this for NVPTX
kernels so we should apply this for AMDGPU as well. This patch simply
applies this metadata in cases where a lower bound is known


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

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/LoopUtils.h
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-select-cmp.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/select-cmp-reduction.ll
    M llvm/test/Transforms/LoopVectorize/epilog-vectorization-any-of-reductions.ll
    M llvm/test/Transforms/LoopVectorize/select-cmp-predicated.ll
    M llvm/test/Transforms/LoopVectorize/select-cmp.ll
    M llvm/test/Transforms/LoopVectorize/select-reduction-start-value-may-be-undef-or-poison.ll

  Log Message:
  -----------
  Reapply "[LV] Improve AnyOf reduction codegen. (#78304)"

This reverts the revert commit 589c7abb03448.

This patch includes a fix for any-of reductions and epilogue
vectorization. Extra test coverage for the issue that caused the revert
has been added in 399ff08e29d.

--------------------------------
Original commit message:

Update AnyOf reduction code generation to only keep track of the AnyOf
property in a boolean vector in the loop, only selecting either the new
or start value in the middle block.

The patch incorporates feedback from https://reviews.llvm.org/D153697.

This fixes the #62565, as now there aren't multiple uses of the
start/new values.

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

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


  Commit: 6d2f57d2c4053af8f0c730bbfed141949149604c
      https://github.com/llvm/llvm-project/commit/6d2f57d2c4053af8f0c730bbfed141949149604c
  Author: Mats Petersson <mats.petersson at arm.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Flang.cpp
    A flang/test/Driver/fopenmp.f90
    M flang/test/Driver/omp-driver-offload.f90

  Log Message:
  -----------
  [FLANG] allow -fopenmp= (#86816)

This enables the -fopenmp=<library> option to the set of options
supported by flang.

The generated arguments for the FC1 compilation will appear in a
slightly different order, so one test had to be updated to be less
sensitive to order of the arguments.


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

  Changed paths:
    M llvm/include/llvm/AsmParser/LLParser.h
    M llvm/include/llvm/IR/BasicBlock.h
    M llvm/include/llvm/IR/Function.h
    M llvm/include/llvm/IR/Module.h
    M llvm/lib/AsmParser/LLParser.cpp
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/IR/BasicBlock.cpp
    M llvm/lib/IR/Function.cpp
    M llvm/lib/IR/IRPrintingPasses.cpp
    M llvm/test/Bitcode/dbg-record-roundtrip.ll
    M llvm/test/DebugInfo/roundtrip-non-instruction-debug-info.ll
    M llvm/tools/llvm-link/llvm-link.cpp
    M llvm/tools/llvm-lto/llvm-lto.cpp
    M llvm/tools/llvm-lto2/llvm-lto2.cpp

  Log Message:
  -----------
  [RemoveDIs] Add flag to preserve the debug info format of input IR (#87379)

This patch adds a new flag: `--preserve-input-debuginfo-format`

This flag instructs the tool to not convert the debug info format
(intrinsics/records) of input IR, but to instead determine the format of
the input IR and overwrite the other format-determining flags so that we
process and output the file in the same format that we received it in.
This flag is turned off by llvm-link, llvm-lto, and llvm-lto2, and
should be turned off by any other tool that expects to parse multiple IR
modules and have their debug info formats match.

The motivation for this flag is to allow tools to not convert the debug
info format - verify-uselistorder and llvm-reduce, and any downstream
tools that seek to test or mutate IR as-is, without applying extraneous
modifications to the input. This is a necessary step to using debug
records by default in all (other) LLVM tools.


  Commit: 9708d0900311503aa4685d6810d8caf0412e15d7
      https://github.com/llvm/llvm-project/commit/9708d0900311503aa4685d6810d8caf0412e15d7
  Author: Jan Leyonberg <jan_sjodin at yahoo.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/test/Target/LLVMIR/omptarget-parallel-wsloop.mlir
    A mlir/test/Target/LLVMIR/omptarget-target-inside-task.mlir
    M mlir/test/Target/LLVMIR/omptarget-teams-llvm.mlir
    M mlir/test/Target/LLVMIR/omptarget-wsloop-collapsed.mlir
    M mlir/test/Target/LLVMIR/omptarget-wsloop.mlir
    A mlir/test/Target/LLVMIR/openmp-data-target-device.mlir
    A mlir/test/Target/LLVMIR/openmp-task-target-device.mlir

  Log Message:
  -----------
  [MLIR][OpenMP] Skip host omp ops when compiling for the target device (#85239)

This patch separates the lowering dispatch for host and target devices.
For the target device, if the current operation is not a top-level
operation (e.g. omp.target) or is inside a target device code region it
will be ignored, since it belongs to the host code.


This is an alternative approach to #84611, the new test in this PR was
taken from there.


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

  Changed paths:
    M mlir/include/mlir/Dialect/LLVMIR/Transforms/TypeConsistency.h
    M mlir/lib/Dialect/LLVMIR/Transforms/TypeConsistency.cpp
    M mlir/test/Dialect/LLVMIR/type-consistency.mlir

  Log Message:
  -----------
  [MLIR][LLVM] Remove bitcast pattern from type consistency pass (#87755)

This commit removes the no longer required bitcast inserting pattern in
LLVM dialect's type consistency pattern. This was previously required to
enable Mem2Reg and SROA to promote accesses that had different types.
Recent changes to both passes added direct support for this feature to
them, so the pattern has no further use.


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

  Changed paths:
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h

  Log Message:
  -----------
  [TTI] getCommonMaskedMemoryOpCost - add AddressSpace argument

Still defaults to AddressSpace = 0, but will allow us to hook up getMaskedMemoryOpCost calls once we have test coverage.


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

  Changed paths:
    M clang/lib/CodeGen/CodeGenTBAA.cpp
    M clang/test/CodeGen/tbaa-struct-bitfield-endianness.cpp

  Log Message:
  -----------
  Fix tbaa.struct metadata for bitfields using big endian. (#87753)

When generating tbaa.struct metadata we treat multiple adjacent
bitfields as a single "field", with one corresponding entry in the
metadata. At the moment this is achieved by adding an entry for the
first bitfield in the run using its StorageSize and skipping the
remaining bitfields. The problem is that "first" is determined by
checking that the Offset of the field in the run is 0, which breaks for
big endian.

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


  Commit: a1b2f0cc447736c27ad3899bb0b17704b79e4876
      https://github.com/llvm/llvm-project/commit/a1b2f0cc447736c27ad3899bb0b17704b79e4876
  Author: Michael Liao <michael.hliao at gmail.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    A llvm/test/CodeGen/AArch64/GlobalISel/combine-commute-const-infinite-loop.mir

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

- That test needs to disable combine rules by name and hence requires `asserts`.


  Commit: 25afb7768f8278bfbc1839c914caf2f4883d5e43
      https://github.com/llvm/llvm-project/commit/25afb7768f8278bfbc1839c914caf2f4883d5e43
  Author: Jordan Rupprecht <rupprecht at google.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

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

  Log Message:
  -----------
  [bazel] Add the remaining llvm-driver tools (#87302)


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

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

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

This reverts commit 22089ae6c591d11143724b4bde418aa067958a8f.


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

  Changed paths:
    M llvm/test/CodeGen/X86/bool-vector.ll

  Log Message:
  -----------
  [X86] bool-vector.ll - add nounwind to silence cfi noise


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

  Changed paths:
    M llvm/test/CodeGen/X86/pr45995.ll

  Log Message:
  -----------
  [X86] pr45995.ll - add nounwind to silence cfi noise


  Commit: 51a4ab287f43c129dd531867be880480a85ecb1e
      https://github.com/llvm/llvm-project/commit/51a4ab287f43c129dd531867be880480a85ecb1e
  Author: Keith Smiley <keithbsmiley at gmail.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

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

  Log Message:
  -----------
  [bazel] Improve libc build on macOS (#86174)

With these changes you can now `bazel build @llvm-project//...` on
macOS, and the targets in libc that don't yet support macOS (or
non-linux) are ignored


  Commit: 132d2c0afb856b7f6e33a2433aeb4b3121d61d02
      https://github.com/llvm/llvm-project/commit/132d2c0afb856b7f6e33a2433aeb4b3121d61d02
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M .github/CODEOWNERS
    M .github/workflows/email-check.yaml
    M .github/workflows/issue-write.yml
    M .github/workflows/libcxx-build-and-test.yaml
    M .github/workflows/pr-code-format.yml
    M bolt/include/bolt/Core/BinaryFunction.h
    M clang-tools-extra/clang-tidy/hicpp/IgnoredRemoveResultCheck.cpp
    M clang-tools-extra/clangd/CompileCommands.cpp
    M clang-tools-extra/clangd/IncludeCleaner.h
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/hicpp/ignored-remove-result.cpp
    M clang-tools-extra/test/clang-tidy/infrastructure/diagnostic.cpp
    M clang/cmake/caches/Fuchsia.cmake
    M clang/docs/ClangFormatStyleOptions.rst
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/Decl.h
    M clang/include/clang/AST/DeclCXX.h
    M clang/include/clang/AST/Expr.h
    M clang/include/clang/AST/Stmt.h
    M clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h
    M clang/include/clang/Analysis/FlowSensitive/DataflowLattice.h
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Basic/AttrDocs.td
    M clang/include/clang/Basic/Builtins.td
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Basic/DiagnosticFrontendKinds.td
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Basic/DiagnosticIDs.h
    M clang/include/clang/Basic/Features.def
    M clang/include/clang/Basic/TokenKinds.def
    M clang/include/clang/Basic/arm_neon.td
    M clang/include/clang/Driver/Options.td
    M clang/include/clang/ExtractAPI/API.h
    A clang/include/clang/ExtractAPI/APIRecords.inc
    M clang/include/clang/ExtractAPI/DeclarationFragments.h
    M clang/include/clang/ExtractAPI/ExtractAPIActionBase.h
    M clang/include/clang/ExtractAPI/ExtractAPIVisitor.h
    M clang/include/clang/ExtractAPI/FrontendActions.h
    A clang/include/clang/ExtractAPI/Serialization/APISetVisitor.h
    R clang/include/clang/ExtractAPI/Serialization/SerializerBase.h
    M clang/include/clang/ExtractAPI/Serialization/SymbolGraphSerializer.h
    M clang/include/clang/Format/Format.h
    M clang/include/clang/Frontend/FrontendOptions.h
    M clang/include/clang/Lex/Token.h
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallDescription.h
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
    M clang/lib/AST/ASTImporter.cpp
    M clang/lib/AST/ComputeDependence.cpp
    M clang/lib/AST/DeclBase.cpp
    M clang/lib/AST/Expr.cpp
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/AST/Type.cpp
    M clang/lib/AST/TypePrinter.cpp
    M clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
    M clang/lib/Basic/Targets/M68k.cpp
    M clang/lib/Basic/Targets/M68k.h
    M clang/lib/Basic/Targets/Mips.h
    M clang/lib/CodeGen/BackendUtil.cpp
    M clang/lib/CodeGen/CGAtomic.cpp
    M clang/lib/CodeGen/CGBlocks.cpp
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CGExprComplex.cpp
    M clang/lib/CodeGen/CGHLSLRuntime.cpp
    M clang/lib/CodeGen/CGHLSLRuntime.h
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp
    M clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/CodeGen/CodeGenTBAA.cpp
    M clang/lib/CodeGen/Targets/X86.cpp
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Driver/ToolChains/Clang.h
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    M clang/lib/Driver/ToolChains/CommonArgs.h
    M clang/lib/Driver/ToolChains/Darwin.cpp
    M clang/lib/Driver/ToolChains/DragonFly.cpp
    M clang/lib/Driver/ToolChains/Flang.cpp
    M clang/lib/Driver/ToolChains/FreeBSD.cpp
    M clang/lib/Driver/ToolChains/Gnu.cpp
    M clang/lib/Driver/ToolChains/Haiku.cpp
    M clang/lib/Driver/ToolChains/NetBSD.cpp
    M clang/lib/Driver/ToolChains/OpenBSD.cpp
    M clang/lib/Driver/ToolChains/Solaris.cpp
    M clang/lib/ExtractAPI/API.cpp
    M clang/lib/ExtractAPI/DeclarationFragments.cpp
    M clang/lib/ExtractAPI/ExtractAPIConsumer.cpp
    M clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp
    M clang/lib/ExtractAPI/TypedefUnderlyingTypeResolver.cpp
    M clang/lib/Format/Format.cpp
    M clang/lib/Format/FormatToken.h
    M clang/lib/Format/TokenAnnotator.cpp
    M clang/lib/Format/UnwrappedLineParser.cpp
    M clang/lib/Frontend/CompilerInvocation.cpp
    M clang/lib/Frontend/FrontendActions.cpp
    M clang/lib/Frontend/PrecompiledPreamble.cpp
    M clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
    M clang/lib/Headers/__stddef_unreachable.h
    M clang/lib/Headers/hlsl/hlsl_intrinsics.h
    M clang/lib/InstallAPI/Visitor.cpp
    M clang/lib/Parse/ParseDeclCXX.cpp
    M clang/lib/Sema/SemaAttr.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaConcept.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/SemaStmtAttr.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateInstantiate.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTReaderStmt.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterStmt.cpp
    M clang/lib/Serialization/GeneratePCH.cpp
    M clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp
    M clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
    M clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
    M clang/lib/StaticAnalyzer/Core/CallDescription.cpp
    M clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
    M clang/lib/Tooling/CMakeLists.txt
    M clang/test/Analysis/stream-error.c
    M clang/test/Analysis/stream-note.c
    A clang/test/C/C11/n1482.c
    A clang/test/C/C99/float_h-characteristics.c
    A clang/test/C/C99/n782.c
    A clang/test/C/C99/n835.c
    M clang/test/CXX/drs/dr16xx.cpp
    A clang/test/CodeGen/M68k/inline-asm-gcc-regs.c
    A clang/test/CodeGen/aarch64-v8.2a-neon-intrinsics-generic.c
    M clang/test/CodeGen/aarch64-v8.2a-neon-intrinsics.c
    A clang/test/CodeGen/allow-ubsan-check.c
    A clang/test/CodeGen/arm-v8.2a-neon-intrinsics-generic.c
    M clang/test/CodeGen/arm-v8.2a-neon-intrinsics.c
    M clang/test/CodeGen/atomic.c
    M clang/test/CodeGen/cx-complex-range.c
    M clang/test/CodeGen/pseudo-probe-emit.c
    R clang/test/CodeGen/remote-traps.c
    A clang/test/CodeGen/tbaa-struct-bitfield-endianness.cpp
    M clang/test/CodeGenCXX/bitfield-access-tail.cpp
    A clang/test/CodeGenCXX/x86_32-vaarg.cpp
    A clang/test/CodeGenHLSL/builtins/all.hlsl
    M clang/test/CodeGenHLSL/builtins/wave_get_lane_index_subcall.hlsl
    A clang/test/CodeGenHLSL/convergent-functions.hlsl
    R clang/test/Driver/Inputs/in.so
    R clang/test/Driver/Inputs/libomptarget/libomptarget-new-nvptx-sm_35.bc
    R clang/test/Driver/Inputs/libomptarget/libomptarget-new-nvptx-test.bc
    R clang/test/Driver/Inputs/openmp_static_device_link/empty.o
    R clang/test/Driver/Inputs/openmp_static_device_link/lib.bc
    R clang/test/Driver/Inputs/openmp_static_device_link/libFatArchive.a
    M clang/test/Driver/compiler-rt-unwind.c
    M clang/test/Driver/constructors.c
    M clang/test/Driver/cuda-detect.cu
    M clang/test/Driver/dragonfly.c
    M clang/test/Driver/env.c
    M clang/test/Driver/haiku.c
    M clang/test/Driver/hexagon-toolchain-elf.c
    M clang/test/Driver/hip-link-shared-library.hip
    M clang/test/Driver/linux-header-search.cpp
    M clang/test/Driver/linux-ld.c
    M clang/test/Driver/linux-musl-header-search.cpp
    M clang/test/Driver/linux-per-target-runtime-dir.c
    M clang/test/Driver/mcmodel.c
    M clang/test/Driver/mips-reduced-toolchain.cpp
    M clang/test/Driver/module-output.cppm
    M clang/test/Driver/netbsd.cpp
    M clang/test/Driver/ohos.c
    M clang/test/Driver/openmp-offload-gpu.c
    M clang/test/Driver/pic.c
    M clang/test/Driver/riscv-features.c
    M clang/test/Driver/solaris-ld-sanitizer.c
    M clang/test/Driver/solaris-ld-values.c
    M clang/test/Driver/solaris-ld-values.cpp
    M clang/test/Driver/solaris-ld.c
    M clang/test/ExtractAPI/anonymous_record_no_typedef.c
    M clang/test/ExtractAPI/availability.c
    M clang/test/ExtractAPI/bool.c
    M clang/test/ExtractAPI/bool.cpp
    M clang/test/ExtractAPI/class.cpp
    M clang/test/ExtractAPI/class_template.cpp
    M clang/test/ExtractAPI/class_template_param_inheritance.cpp
    M clang/test/ExtractAPI/class_template_partial_spec.cpp
    M clang/test/ExtractAPI/class_template_spec.cpp
    M clang/test/ExtractAPI/concept.cpp
    M clang/test/ExtractAPI/constructor_destructor.cpp
    M clang/test/ExtractAPI/conversions.cpp
    M clang/test/ExtractAPI/emit-symbol-graph/multi_file.c
    M clang/test/ExtractAPI/emit-symbol-graph/single_file.c
    M clang/test/ExtractAPI/enum.c
    M clang/test/ExtractAPI/field_template.cpp
    M clang/test/ExtractAPI/function_noexcepts.cpp
    M clang/test/ExtractAPI/global_func_template.cpp
    M clang/test/ExtractAPI/global_func_template_spec.cpp
    M clang/test/ExtractAPI/global_record.c
    M clang/test/ExtractAPI/global_record_multifile.c
    M clang/test/ExtractAPI/global_var_template.cpp
    M clang/test/ExtractAPI/global_var_template_partial_spec.cpp
    M clang/test/ExtractAPI/global_var_template_spec.cpp
    M clang/test/ExtractAPI/known_files_only.c
    M clang/test/ExtractAPI/language.c
    M clang/test/ExtractAPI/macro_undefined.c
    M clang/test/ExtractAPI/macros.c
    A clang/test/ExtractAPI/metadata_and_module.c
    M clang/test/ExtractAPI/method_template.cpp
    M clang/test/ExtractAPI/method_template_spec.cpp
    M clang/test/ExtractAPI/methods.cpp
    M clang/test/ExtractAPI/multiple_inheritance.cpp
    M clang/test/ExtractAPI/namespace.cpp
    M clang/test/ExtractAPI/nested_namespaces.cpp
    M clang/test/ExtractAPI/objc_block.m
    M clang/test/ExtractAPI/objc_category.m
    A clang/test/ExtractAPI/objc_external_category.m
    M clang/test/ExtractAPI/objc_id_protocol.m
    M clang/test/ExtractAPI/objc_instancetype.m
    M clang/test/ExtractAPI/objc_interface.m
    R clang/test/ExtractAPI/objc_module_category.m
    M clang/test/ExtractAPI/objc_property.m
    M clang/test/ExtractAPI/objc_protocol.m
    R clang/test/ExtractAPI/objc_various_categories.m
    M clang/test/ExtractAPI/operator_overload.cpp
    M clang/test/ExtractAPI/relative_include.m
    M clang/test/ExtractAPI/simple_inheritance.cpp
    M clang/test/ExtractAPI/struct.c
    M clang/test/ExtractAPI/typedef.c
    M clang/test/ExtractAPI/typedef_anonymous_record.c
    M clang/test/ExtractAPI/typedef_chain.c
    M clang/test/ExtractAPI/typedef_struct_enum.c
    M clang/test/ExtractAPI/underscored.c
    M clang/test/ExtractAPI/union.c
    M clang/test/ExtractAPI/vfs_redirected_include.m
    M clang/test/Index/extract-api-cursor.m
    A clang/test/InstallAPI/Inputs/Foundation/Foundation.framework/Headers/Foundation.h
    M clang/test/InstallAPI/diagnostics-dsym.test
    M clang/test/InstallAPI/driver-invalid-options.test
    M clang/test/InstallAPI/extra-exclude-headers.test
    A clang/test/InstallAPI/forwarded-search-paths.test
    A clang/test/Interpreter/inline-asm.cpp
    A clang/test/Modules/reduced-bmi-size.cppm
    A clang/test/OpenMP/thread_limit_amdgpu.c
    M clang/test/Parser/c2x-typeof-ext-warns.c
    A clang/test/Sema/GH70594.cpp
    M clang/test/Sema/code_align.c
    M clang/test/Sema/nullability.c
    A clang/test/SemaCXX/PR86790.cpp
    M clang/test/SemaCXX/cxx20-ctad-type-alias.cpp
    M clang/test/SemaCXX/deduced-return-type-cxx14.cpp
    M clang/test/SemaCXX/nullability.cpp
    A clang/test/SemaCXX/typeof_unqual.cpp
    M clang/test/SemaCXX/warn-unused-but-set-variables-cpp.cpp
    R clang/test/SemaHLSL/ArrayTemporary.ll
    A clang/test/SemaObjCXX/Inputs/nullability-consistency-smart.h
    M clang/test/SemaObjCXX/nullability-consistency.mm
    A clang/test/SemaTemplate/alias-template-with-lambdas.cpp
    M clang/test/SemaTemplate/instantiation-depth-default.cpp
    M clang/tools/clang-installapi/Options.cpp
    M clang/tools/clang-installapi/Options.h
    M clang/tools/clang-repl/ClangRepl.cpp
    M clang/tools/libclang/CXExtractAPI.cpp
    M clang/unittests/AST/ASTImporterTest.cpp
    M clang/unittests/Analysis/FlowSensitive/TypeErasedDataflowAnalysisTest.cpp
    M clang/unittests/Format/FormatTest.cpp
    M clang/unittests/Format/TokenAnnotatorTest.cpp
    M clang/unittests/StaticAnalyzer/CallDescriptionTest.cpp
    M clang/utils/TableGen/ClangOptionDocEmitter.cpp
    M clang/utils/TableGen/SveEmitter.cpp
    M clang/www/c_status.html
    M clang/www/cxx_dr_status.html
    M compiler-rt/lib/hwasan/hwasan_thread_list.h
    M compiler-rt/lib/scudo/standalone/common.h
    M compiler-rt/lib/scudo/standalone/stack_depot.h
    M compiler-rt/lib/scudo/standalone/wrappers_c_checks.h
    M compiler-rt/test/dfsan/mmap_at_init.c
    M flang/.gitignore
    M flang/include/flang/Common/api-attrs.h
    A flang/include/flang/Common/windows-include.h
    M flang/include/flang/Frontend/CodeGenOptions.h
    M flang/include/flang/Lower/AbstractConverter.h
    M flang/include/flang/Optimizer/Builder/FIRBuilder.h
    M flang/include/flang/Optimizer/Dialect/FIROpsSupport.h
    M flang/include/flang/Runtime/io-api.h
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Lower/CallInterface.cpp
    M flang/lib/Lower/ConvertCall.cpp
    M flang/lib/Lower/ConvertVariable.cpp
    M flang/lib/Lower/OpenACC.cpp
    M flang/lib/Lower/OpenMP/ReductionProcessor.cpp
    M flang/lib/Lower/Runtime.cpp
    M flang/lib/Optimizer/Builder/FIRBuilder.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/Builder/LowLevelIntrinsics.cpp
    M flang/lib/Optimizer/Builder/PPCIntrinsicCall.cpp
    M flang/lib/Optimizer/Builder/Runtime/Numeric.cpp
    M flang/lib/Optimizer/CodeGen/CodeGen.cpp
    M flang/lib/Optimizer/Dialect/FIROps.cpp
    M flang/lib/Optimizer/Transforms/ExternalNameConversion.cpp
    M flang/lib/Optimizer/Transforms/SimplifyIntrinsics.cpp
    M flang/lib/Semantics/check-declarations.cpp
    M flang/runtime/command.cpp
    M flang/runtime/descriptor-io.h
    M flang/runtime/edit-output.cpp
    M flang/runtime/emit-encoded.h
    M flang/runtime/environment.cpp
    M flang/runtime/environment.h
    M flang/runtime/execute.cpp
    M flang/runtime/file.cpp
    M flang/runtime/freestanding-tools.h
    M flang/runtime/io-api.cpp
    M flang/runtime/io-error.cpp
    M flang/runtime/io-error.h
    M flang/runtime/io-stmt.cpp
    M flang/runtime/io-stmt.h
    M flang/runtime/lock.h
    M flang/runtime/namelist.cpp
    M flang/runtime/numeric-templates.h
    M flang/runtime/unit.cpp
    M flang/runtime/unit.h
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-as
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-ld
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-ld.bfd
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-ld.gold
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-as
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-ld
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-ld.bfd
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-ld.gold
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/as
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/ld
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/ld.bfd
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/ld.gold
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/lib/.keep
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/i386-unknown-linux-gnu/10.2.0/crtbegin.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtbegin.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtbeginT.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtfastmath.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtbegin.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtbeginT.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtfastmath.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/as
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld.bfd
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld.gold
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld.lld
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/lib/.keep
    M flang/test/Driver/driver-help-hidden.f90
    M flang/test/Driver/driver-help.f90
    A flang/test/Driver/fopenmp.f90
    A flang/test/Driver/gcc-toolchain-install-dir.f90
    M flang/test/Driver/omp-driver-offload.f90
    M flang/test/Lower/AMD/code-object-version.f90
    M flang/test/Lower/HLFIR/assumed-rank-iface.f90
    A flang/test/Lower/HLFIR/procedure-pointer-component-default-init.f90
    M flang/test/Lower/Intrinsics/modulo.f90
    M flang/test/Lower/OpenMP/parallel-reduction-array.f90
    M flang/test/Lower/OpenMP/parallel-reduction-array2.f90
    A flang/test/Lower/OpenMP/parallel-reduction3.f90
    A flang/test/Lower/OpenMP/wsloop-reduction-array-assumed-shape.f90
    M flang/test/Lower/OpenMP/wsloop-reduction-array.f90
    M flang/test/Lower/OpenMP/wsloop-reduction-array2.f90
    M flang/test/Lower/stop-statement.f90
    M flang/test/Semantics/cuf03.cuf
    M flang/unittests/Runtime/Numeric.cpp
    M flang/unittests/Runtime/Time.cpp
    M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
    M libc/config/gpu/entrypoints.txt
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/docs/c23.rst
    M libc/docs/math/index.rst
    M libc/fuzzing/CMakeLists.txt
    A libc/fuzzing/__support/CMakeLists.txt
    A libc/fuzzing/__support/uint_fuzz.cpp
    M libc/include/llvm-libc-macros/math-macros.h
    M libc/include/llvm-libc-types/rpc_opcodes_t.h
    M libc/spec/gpu_ext.td
    M libc/spec/posix.td
    M libc/spec/stdc.td
    M libc/src/__support/FPUtil/dyadic_float.h
    M libc/src/__support/RPC/rpc.h
    M libc/src/__support/UInt.h
    M libc/src/__support/arg_list.h
    M libc/src/__support/float_to_string.h
    M libc/src/__support/integer_literals.h
    M libc/src/__support/macros/config.h
    M libc/src/__support/math_extras.h
    M libc/src/__support/number_pair.h
    M libc/src/gpu/CMakeLists.txt
    A libc/src/gpu/rpc_fprintf.cpp
    A libc/src/gpu/rpc_fprintf.h
    M libc/src/math/CMakeLists.txt
    A libc/src/math/exp2m1f.h
    M libc/src/math/generic/CMakeLists.txt
    A libc/src/math/generic/exp2m1f.cpp
    A libc/src/math/generic/roundeven.cpp
    A libc/src/math/generic/roundevenf.cpp
    A libc/src/math/generic/roundevenf128.cpp
    A libc/src/math/generic/roundevenl.cpp
    A libc/src/math/roundeven.h
    A libc/src/math/roundevenf.h
    A libc/src/math/roundevenf128.h
    A libc/src/math/roundevenl.h
    M libc/src/stdio/printf_core/core_structs.h
    M libc/src/unistd/CMakeLists.txt
    A libc/src/unistd/_exit.cpp
    A libc/src/unistd/_exit.h
    M libc/test/integration/src/stdio/CMakeLists.txt
    A libc/test/integration/src/stdio/gpu/CMakeLists.txt
    A libc/test/integration/src/stdio/gpu/printf.cpp
    M libc/test/src/__support/integer_literals_test.cpp
    M libc/test/src/__support/math_extras_test.cpp
    M libc/test/src/__support/uint_test.cpp
    M libc/test/src/math/CMakeLists.txt
    A libc/test/src/math/RoundEvenTest.h
    M libc/test/src/math/exhaustive/CMakeLists.txt
    A libc/test/src/math/exhaustive/exp2m1f_test.cpp
    A libc/test/src/math/exp2m1f_test.cpp
    A libc/test/src/math/roundeven_test.cpp
    A libc/test/src/math/roundevenf_test.cpp
    A libc/test/src/math/roundevenl_test.cpp
    M libc/test/src/math/smoke/CMakeLists.txt
    A libc/test/src/math/smoke/RoundEvenTest.h
    A libc/test/src/math/smoke/exp2m1f_test.cpp
    A libc/test/src/math/smoke/roundeven_test.cpp
    A libc/test/src/math/smoke/roundevenf128_test.cpp
    A libc/test/src/math/smoke/roundevenf_test.cpp
    A libc/test/src/math/smoke/roundevenl_test.cpp
    M libc/test/src/stdio/ftell_test.cpp
    M libc/test/src/unistd/CMakeLists.txt
    A libc/test/src/unistd/_exit_test.cpp
    M libc/utils/HdrGen/Generator.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.h
    M libc/utils/gpu/server/CMakeLists.txt
    M libc/utils/gpu/server/rpc_server.cpp
    M libclc/CMakeLists.txt
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx20Issues.csv
    M libcxx/docs/Status/Cxx20Papers.csv
    M libcxx/docs/Status/Cxx23.rst
    M libcxx/docs/Status/Cxx23Issues.csv
    M libcxx/docs/Status/Cxx2cIssues.csv
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/docs/Status/SpaceshipProjects.csv
    M libcxx/docs/UsingLibcxx.rst
    M libcxx/docs/index.rst
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__algorithm/comp.h
    M libcxx/include/__algorithm/equal.h
    M libcxx/include/__algorithm/mismatch.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/transform_reduce.h
    M libcxx/include/__algorithm/ranges_contains_subrange.h
    A libcxx/include/__chrono/leap_second.h
    M libcxx/include/__chrono/tzdb.h
    M libcxx/include/__chrono/tzdb_list.h
    M libcxx/include/__exception/operations.h
    M libcxx/include/__expected/bad_expected_access.h
    M libcxx/include/__filesystem/copy_options.h
    M libcxx/include/__filesystem/directory_options.h
    M libcxx/include/__filesystem/file_status.h
    M libcxx/include/__filesystem/file_time_type.h
    M libcxx/include/__filesystem/file_type.h
    M libcxx/include/__filesystem/perm_options.h
    M libcxx/include/__filesystem/perms.h
    M libcxx/include/__filesystem/space_info.h
    M libcxx/include/__format/format_args.h
    M libcxx/include/__format/format_context.h
    M libcxx/include/__format/formatter.h
    M libcxx/include/__format/formatter_bool.h
    M libcxx/include/__format/formatter_char.h
    M libcxx/include/__format/formatter_integer.h
    M libcxx/include/__format/formatter_pointer.h
    M libcxx/include/__format/formatter_string.h
    M libcxx/include/__functional/operations.h
    M libcxx/include/__functional/ranges_operations.h
    M libcxx/include/__fwd/format.h
    M libcxx/include/__iterator/advance.h
    M libcxx/include/__locale
    M libcxx/include/__memory/shared_ptr.h
    M libcxx/include/__numeric/pstl_transform_reduce.h
    M libcxx/include/__random/seed_seq.h
    M libcxx/include/__ranges/zip_view.h
    M libcxx/include/__thread/support/pthread.h
    A libcxx/include/__type_traits/desugars_to.h
    R libcxx/include/__type_traits/operation_traits.h
    M libcxx/include/__utility/pair.h
    M libcxx/include/any
    M libcxx/include/chrono
    M libcxx/include/future
    M libcxx/include/libcxx.imp
    M libcxx/include/module.modulemap
    M libcxx/include/new
    M libcxx/include/shared_mutex
    M libcxx/include/stddef.h
    M libcxx/include/strstream
    M libcxx/include/thread
    M libcxx/include/tuple
    M libcxx/include/typeinfo
    M libcxx/include/version
    M libcxx/modules/std/chrono.inc
    M libcxx/modules/std/strstream.inc
    M libcxx/src/CMakeLists.txt
    M libcxx/src/include/overridable_function.h
    A libcxx/src/include/tzdb/leap_second_private.h
    M libcxx/src/tzdb.cpp
    M libcxx/test/libcxx/atomics/diagnose_invalid_memory_order.verify.cpp
    M libcxx/test/libcxx/diagnostics/chrono.nodiscard_extensions.compile.pass.cpp
    M libcxx/test/libcxx/diagnostics/chrono.nodiscard_extensions.verify.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.lazy.split/no_unique_address.compile.pass.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.split/no_unique_address.compile.pass.cpp
    M libcxx/test/libcxx/ranges/range.factories/range.istream.view/no_unique_address.compile.pass.cpp
    A libcxx/test/libcxx/time/time.zone/time.zone.db/leap_seconds.pass.cpp
    A libcxx/test/libcxx/time/time.zone/time.zone.db/time.zone.db.tzdb/locate_zone.pass.cpp
    M libcxx/test/std/algorithms/alg.nonmodifying/alg.contains/ranges.contains_subrange.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/compare_exchange_strong.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/compare_exchange_weak.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/ccp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/ccp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/cp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/cp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.members/rdbuf.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.members/str.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.verify.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/types.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.cons/cp_size_mode.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.cons/default.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.members/freeze.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.members/pcount.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.members/rdbuf.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.members/str.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.verify.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/types.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.cons/cp_size_mode.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.cons/default.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.dest/rdbuf.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.oper/freeze.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.oper/pcount.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.oper/str.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.verify.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/types.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/ccp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/cp_size_cp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/cscp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/cucp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/custom_alloc.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/default.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/scp_size_scp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/ucp_size_ucp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/freeze.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/overflow.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/pcount.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/str.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/overflow.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/pbackfail.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/seekoff.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/seekpos.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/setbuf.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/underflow.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.verify.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/types.pass.cpp
    M libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/generic_category.pass.cpp
    M libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/system_category.pass.cpp
    M libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/filesystem.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/functional.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/optional.version.compile.pass.cpp
    A libcxx/test/std/language.support/support.limits/support.limits.general/random.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/variant.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
    A libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/generate.mandates.verify.cpp
    M libcxx/test/std/ranges/range.adaptors/range.zip/borrowing.compile.pass.cpp
    M libcxx/test/std/ranges/range.utility/range.subrange/operator.pair_like.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.db/leap_seconds.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.access/current_zone.pass.cpp
    M libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.access/get_tzdb.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.access/locate_zone.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.tzdb/current_zone.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.tzdb/locate_zone.pass.cpp
    M libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.tzdb/tzdb.members.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.leap/assign.copy.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.leap/cons.copy.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.leap/members/date.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.leap/members/value.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.leap/nonmembers/comparison.pass.cpp
    M libcxx/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_incomplete.pass.cpp
    M libcxx/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_structured_bindings.pass.cpp
    M libcxx/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_value_sfinae.pass.cpp
    A libcxx/test/support/test_chrono_leap_second.h
    M libcxx/test/support/test_iterators.h
    M libcxx/utils/ci/oss-fuzz.sh
    M libcxx/utils/generate_feature_test_macro_components.py
    M libcxxabi/src/private_typeinfo.cpp
    M lld/COFF/Chunks.cpp
    M lld/COFF/Chunks.h
    M lld/COFF/Driver.cpp
    M lld/COFF/PDB.cpp
    M lld/COFF/SymbolTable.cpp
    M lld/ELF/Arch/AArch64.cpp
    M lld/ELF/Config.h
    M lld/ELF/Driver.cpp
    M lld/ELF/InputFiles.cpp
    M lld/ELF/InputFiles.h
    M lld/ELF/InputSection.cpp
    M lld/ELF/Relocations.cpp
    M lld/ELF/Relocations.h
    M lld/ELF/SyntheticSections.cpp
    M lld/ELF/Writer.cpp
    M lld/MachO/DriverUtils.cpp
    M lld/MinGW/Driver.cpp
    M lld/docs/ReleaseNotes.rst
    M lld/docs/ld.lld.1
    A lld/test/COFF/print-search-paths-arm64.s
    M lld/test/COFF/undefined-symbol-cv.s
    M lld/test/ELF/aarch64-bti-pac-cli-error.s
    A lld/test/ELF/aarch64-feature-pauth.s
    A lld/test/ELF/aarch64-reloc-pauth-ro.s
    A lld/test/ELF/aarch64-reloc-pauth.s
    M lld/test/ELF/gnu-ifunc-nonpreemptible.s
    R lld/test/ELF/gnu-ifunc-relative.s
    M lld/test/ELF/linkerscript/symbolreferenced.s
    M lld/wasm/Driver.cpp
    M lldb/include/lldb/lldb-private-enumerations.h
    M lldb/source/Breakpoint/BreakpointIDList.cpp
    M lldb/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.cpp
    M lldb/source/Plugins/Process/Utility/AuxVector.h
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h
    M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
    M lldb/source/Utility/RegisterValue.cpp
    M lldb/test/API/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py
    M llvm/docs/LangRef.rst
    M llvm/include/llvm/ADT/APInt.h
    M llvm/include/llvm/ADT/iterator_range.h
    M llvm/include/llvm/Analysis/EHUtils.h
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/include/llvm/AsmParser/LLParser.h
    M llvm/include/llvm/BinaryFormat/ELF.h
    M llvm/include/llvm/BinaryFormat/ELFRelocs/AArch64.def
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h
    M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
    M llvm/include/llvm/CodeGen/GlobalISel/GenericMachineInstrs.h
    M llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
    M llvm/include/llvm/CodeGen/MachineFunction.h
    M llvm/include/llvm/CodeGen/RegisterBankInfo.h
    M llvm/include/llvm/CodeGen/SelectionDAG.h
    M llvm/include/llvm/IR/AutoUpgrade.h
    M llvm/include/llvm/IR/BasicBlock.h
    M llvm/include/llvm/IR/DebugProgramInstruction.h
    M llvm/include/llvm/IR/Function.h
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
    M llvm/include/llvm/IR/IntrinsicsDirectX.td
    M llvm/include/llvm/IR/IntrinsicsSPIRV.td
    M llvm/include/llvm/IR/Module.h
    M llvm/include/llvm/IR/PassManager.h
    M llvm/include/llvm/IR/PrintPasses.h
    M llvm/include/llvm/MC/MCContext.h
    M llvm/include/llvm/Object/ELFTypes.h
    M llvm/include/llvm/Object/WindowsMachineFlag.h
    M llvm/include/llvm/Option/OptParser.td
    M llvm/include/llvm/Option/OptTable.h
    M llvm/include/llvm/ProfileData/InstrProf.h
    M llvm/include/llvm/ProfileData/MemProf.h
    M llvm/include/llvm/ProfileData/SampleProf.h
    M llvm/include/llvm/Support/FormatAdapters.h
    M llvm/include/llvm/Support/FormatCommon.h
    M llvm/include/llvm/Support/FormatProviders.h
    M llvm/include/llvm/Support/FormatVariadic.h
    M llvm/include/llvm/Support/FormatVariadicDetails.h
    M llvm/include/llvm/Target/GlobalISel/Combine.td
    M llvm/include/llvm/TextAPI/InterfaceFile.h
    M llvm/include/llvm/Transforms/IPO/SampleProfileProbe.h
    A llvm/include/llvm/Transforms/Instrumentation/LowerAllowCheckPass.h
    R llvm/include/llvm/Transforms/Instrumentation/RemoveTrapsPass.h
    M llvm/include/llvm/Transforms/Utils/LoopUtils.h
    M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
    M llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp
    M llvm/lib/Analysis/LazyValueInfo.cpp
    M llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/AsmParser/LLParser.cpp
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
    M llvm/lib/CodeGen/ExpandLargeDivRem.cpp
    M llvm/lib/CodeGen/ExpandLargeFpConvert.cpp
    M llvm/lib/CodeGen/GlobalISel/CMakeLists.txt
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    A llvm/lib/CodeGen/GlobalISel/CombinerHelperVectorOps.cpp
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
    M llvm/lib/CodeGen/MIRParser/MIRParser.cpp
    M llvm/lib/CodeGen/MIRPrinter.cpp
    M llvm/lib/CodeGen/MachinePipeliner.cpp
    M llvm/lib/CodeGen/MachineScheduler.cpp
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/lib/CodeGen/ShrinkWrap.cpp
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M llvm/lib/IR/AutoUpgrade.cpp
    M llvm/lib/IR/BasicBlock.cpp
    M llvm/lib/IR/Function.cpp
    M llvm/lib/IR/IRPrintingPasses.cpp
    M llvm/lib/IR/LegacyPassManager.cpp
    M llvm/lib/IR/Operator.cpp
    M llvm/lib/IR/Verifier.cpp
    M llvm/lib/Linker/IRMover.cpp
    M llvm/lib/MC/MCContext.cpp
    M llvm/lib/Object/COFFObjectFile.cpp
    M llvm/lib/Object/WindowsResource.cpp
    M llvm/lib/Option/OptTable.cpp
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Passes/PassRegistry.def
    M llvm/lib/ProfileData/InstrProf.cpp
    M llvm/lib/ProfileData/InstrProfReader.cpp
    M llvm/lib/ProfileData/InstrProfWriter.cpp
    M llvm/lib/ProfileData/MemProf.cpp
    M llvm/lib/Support/APInt.cpp
    M llvm/lib/Support/FormatVariadic.cpp
    M llvm/lib/Support/Unix/Threading.inc
    M llvm/lib/Target/AArch64/AArch64.td
    M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
    M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h
    M llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/DSDIRInstructions.td
    M llvm/lib/Target/AMDGPU/DSInstructions.td
    M llvm/lib/Target/AMDGPU/FLATInstructions.td
    M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.td
    M llvm/lib/Target/AMDGPU/SOPInstructions.td
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
    M llvm/lib/Target/AMDGPU/VOP2Instructions.td
    M llvm/lib/Target/AMDGPU/VOPCInstructions.td
    M llvm/lib/Target/AMDGPU/VOPInstructions.td
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/lib/Target/ARM/Thumb1InstrInfo.cpp
    M llvm/lib/Target/AVR/AVRInstrInfo.td
    M llvm/lib/Target/Mips/Mips32r6InstrInfo.td
    M llvm/lib/Target/Mips/MipsISelLowering.cpp
    M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
    M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
    M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.h
    M llvm/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.cpp
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrGISel.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td
    M llvm/lib/Target/RISCV/RISCVSubtarget.h
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    M llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
    M llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    M llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
    M llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.h
    M llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.h
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86ISelLoweringCall.cpp
    M llvm/lib/Target/X86/X86InstrCompiler.td
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/lib/Target/X86/X86InstrSSE.td
    M llvm/lib/Target/X86/X86SchedBroadwell.td
    M llvm/lib/Target/X86/X86SchedHaswell.td
    M llvm/lib/Target/X86/X86SchedSapphireRapids.td
    M llvm/lib/Target/X86/X86SchedSkylakeClient.td
    M llvm/lib/Target/X86/X86SchedSkylakeServer.td
    M llvm/lib/Target/X86/X86ScheduleZnver3.td
    M llvm/lib/Target/X86/X86TargetMachine.cpp
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/lib/Target/X86/X86TargetTransformInfo.h
    M llvm/lib/TextAPI/InterfaceFile.cpp
    M llvm/lib/TextAPI/TextStubV5.cpp
    M llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
    M llvm/lib/Transforms/IPO/SampleProfileProbe.cpp
    M llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/lib/Transforms/Instrumentation/CMakeLists.txt
    M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
    A llvm/lib/Transforms/Instrumentation/LowerAllowCheckPass.cpp
    R llvm/lib/Transforms/Instrumentation/RemoveTrapsPass.cpp
    M llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/lib/Transforms/Vectorize/VPlan.cpp
    M llvm/lib/Transforms/Vectorize/VPlan.h
    M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
    M llvm/lib/Transforms/Vectorize/VPlanValue.h
    M llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/lib/WindowsDriver/MSVCPaths.cpp
    M llvm/test/Analysis/CostModel/ARM/intrinsic-cost-kinds.ll
    M llvm/test/Analysis/CostModel/RISCV/cast.ll
    M llvm/test/Analysis/CostModel/RISCV/int-min-max.ll
    M llvm/test/Analysis/CostModel/RISCV/reduce-scalable-fp.ll
    M llvm/test/Analysis/CostModel/RISCV/rvv-insertelement.ll
    M llvm/test/Analysis/CostModel/RISCV/shuffle-broadcast.ll
    M llvm/test/Analysis/CostModel/RISCV/stepvector.ll
    M llvm/test/Analysis/CostModel/X86/cast.ll
    M llvm/test/Analysis/CostModel/X86/extend.ll
    M llvm/test/Analysis/CostModel/X86/intrinsic-cost-kinds.ll
    A llvm/test/Analysis/CostModel/X86/masked-intrinsic-codesize.ll
    M llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost-inseltpoison.ll
    M llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost.ll
    A llvm/test/Analysis/CostModel/X86/masked-intrinsic-latency.ll
    A llvm/test/Analysis/CostModel/X86/masked-intrinsic-sizelatency.ll
    M llvm/test/Bitcode/dbg-record-roundtrip.ll
    A llvm/test/Bitcode/thinlto-func-summary-vtableref-pgo.ll
    A llvm/test/CodeGen/AArch64/GlobalISel/combine-commute-const-infinite-loop.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-extract-vec-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/load-addressing-modes.mir
    M llvm/test/CodeGen/AArch64/aarch64-fold-lslfast.ll
    M llvm/test/CodeGen/AArch64/aarch64-split-and-bitmask-immediate.ll
    M llvm/test/CodeGen/AArch64/arm64-addr-mode-folding.ll
    M llvm/test/CodeGen/AArch64/arm64-vector-ldst.ll
    M llvm/test/CodeGen/AArch64/avoid-free-ext-promotion.ll
    M llvm/test/CodeGen/AArch64/cheap-as-a-move.ll
    M llvm/test/CodeGen/AArch64/extract-bits.ll
    M llvm/test/CodeGen/AArch64/extract-vector-elt.ll
    M llvm/test/CodeGen/AArch64/extractvector-oob-load.mir
    M llvm/test/CodeGen/AArch64/fp-intrinsics.ll
    M llvm/test/CodeGen/AArch64/hadd-combine.ll
    M llvm/test/CodeGen/AArch64/machine-licm-hoist-load.ll
    A llvm/test/CodeGen/AArch64/note-gnu-property-elf-pauthabi.ll
    M llvm/test/CodeGen/AArch64/sadd_sat.ll
    M llvm/test/CodeGen/AArch64/sadd_sat_vec.ll
    M llvm/test/CodeGen/AArch64/sink-and-fold.ll
    A llvm/test/CodeGen/AArch64/sms-regpress.mir
    M llvm/test/CodeGen/AArch64/ssub_sat.ll
    M llvm/test/CodeGen/AArch64/ssub_sat_vec.ll
    M llvm/test/CodeGen/AArch64/stackmap.ll
    M llvm/test/CodeGen/AArch64/strictfp_f16_abi_promote.ll
    A llvm/test/CodeGen/AArch64/sve-nontemporal-masked-ldst.ll
    M llvm/test/CodeGen/AArch64/uadd_sat_vec.ll
    M llvm/test/CodeGen/AArch64/usub_sat_vec.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergent-control-flow.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.is.private.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.is.shared.ll
    M llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
    M llvm/test/CodeGen/AMDGPU/atomicrmw-expand.ll
    M llvm/test/CodeGen/AMDGPU/bf16.ll
    M llvm/test/CodeGen/AMDGPU/cgp-addressing-modes-gfx908.ll
    M llvm/test/CodeGen/AMDGPU/div_v2i128.ll
    M llvm/test/CodeGen/AMDGPU/extract-subvector-16bit.ll
    M llvm/test/CodeGen/AMDGPU/function-args.ll
    M llvm/test/CodeGen/AMDGPU/function-returns.ll
    M llvm/test/CodeGen/AMDGPU/gfx-callable-return-types.ll
    M llvm/test/CodeGen/AMDGPU/lds-global-non-entry-func.ll
    M llvm/test/CodeGen/AMDGPU/local-atomics-fp.ll
    M llvm/test/CodeGen/AMDGPU/skip-if-dead.ll
    M llvm/test/CodeGen/AMDGPU/transform-block-with-return-to-epilog.ll
    M llvm/test/CodeGen/ARM/sadd_sat.ll
    M llvm/test/CodeGen/ARM/select_const.ll
    M llvm/test/CodeGen/ARM/wide-compares.ll
    M llvm/test/CodeGen/Generic/allow-check.ll
    M llvm/test/CodeGen/PowerPC/legalize-vaarg.ll
    M llvm/test/CodeGen/PowerPC/sms-regpress.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/instruction-select/rvv/anyext.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/instruction-select/rvv/icmp.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/instruction-select/rvv/sext.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/instruction-select/rvv/zext.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-anyext.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-bitcast.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-icmp.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-sext.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-splatvector-rv32.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-splatvector-rv64.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-splatvector-s64-rv32.mir
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-xor.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-zext.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/regbankselect/rvv/anyext.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/regbankselect/rvv/icmp.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/regbankselect/rvv/sext.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/regbankselect/rvv/zext.mir
    M llvm/test/CodeGen/RISCV/intrinsic-cttz-elts-vscale.ll
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsll.ll
    A llvm/test/CodeGen/RISCV/rvv/fold-binop-into-select.ll
    M llvm/test/CodeGen/RISCV/rvv/vector-interleave.ll
    M llvm/test/CodeGen/RISCV/rvv/vscale-vw-web-simplification.ll
    M llvm/test/CodeGen/RISCV/rvv/vselect-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vwsll-sdnode.ll
    M llvm/test/CodeGen/SPARC/inlineasm-bad.ll
    M llvm/test/CodeGen/SPARC/inlineasm.ll
    M llvm/test/CodeGen/SPIRV/ExecutionMode.ll
    M llvm/test/CodeGen/SPIRV/OpVariable_order.ll
    M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/abs.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/ceil.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/cos.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/exp.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/exp2.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/floor.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/fmad.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/fmax.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/fmin.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/log.ll
    M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/log10.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/log2.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/pow.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/reversebits.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/round.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/sin.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/smax.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/smin.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/sqrt.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/trunc.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/umax.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/umin.ll
    M llvm/test/CodeGen/SPIRV/instructions/atomic.ll
    M llvm/test/CodeGen/SPIRV/instructions/atomic_acqrel.ll
    M llvm/test/CodeGen/SPIRV/instructions/atomic_seq.ll
    A llvm/test/CodeGen/SPIRV/pointers/bitcast-fix-accesschain.ll
    M llvm/test/CodeGen/SPIRV/pointers/type-deduce-by-call-chain.ll
    A llvm/test/CodeGen/SPIRV/pointers/type-deduce-by-call-complex.ll
    A llvm/test/CodeGen/SPIRV/pointers/type-deduce-call-no-bitcast.ll
    M llvm/test/CodeGen/Thumb/pr35836.ll
    M llvm/test/CodeGen/Thumb/urem-seteq-illegal-types.ll
    M llvm/test/CodeGen/WebAssembly/multi-return.ll
    M llvm/test/CodeGen/WebAssembly/simd-arith.ll
    M llvm/test/CodeGen/WebAssembly/simd.ll
    M llvm/test/CodeGen/X86/2009-05-23-dagcombine-shifts.ll
    M llvm/test/CodeGen/X86/AppendingLinkage.ll
    M llvm/test/CodeGen/X86/bool-vector.ll
    M llvm/test/CodeGen/X86/combine-pavg.ll
    M llvm/test/CodeGen/X86/evex-to-vex-compress.mir
    M llvm/test/CodeGen/X86/freeze-vector.ll
    M llvm/test/CodeGen/X86/indirect-branch-tracking-eh2.ll
    M llvm/test/CodeGen/X86/load-local-v3i129.ll
    M llvm/test/CodeGen/X86/pr23664.ll
    M llvm/test/CodeGen/X86/pr45995.ll
    M llvm/test/CodeGen/X86/shuffle-vs-trunc-256.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-5.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-7.ll
    A llvm/test/CodeGen/X86/vector-trunc-nowrap.ll
    M llvm/test/CodeGen/X86/widen-load-of-small-alloca-with-zero-upper-half.ll
    M llvm/test/DebugInfo/roundtrip-non-instruction-debug-info.ll
    M llvm/test/Instrumentation/HWAddressSanitizer/pgo-opt-out-no-ps.ll
    M llvm/test/Instrumentation/HWAddressSanitizer/pgo-opt-out.ll
    M llvm/test/MC/AMDGPU/gfx1150_asm_features.s
    M llvm/test/MC/AMDGPU/gfx11_asm_err.s
    M llvm/test/MC/AMDGPU/gfx12_asm_features.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp8.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp16.s
    M llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp8.s
    M llvm/test/MC/AMDGPU/vop_dpp.s
    M llvm/test/MC/Disassembler/AMDGPU/gfx1150_dasm_features.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_features.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop2_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3_from_vop2_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3c_dpp8.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx_dpp16.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_vop3cx_dpp8.txt
    M llvm/test/MC/Disassembler/Mips/mips32r6/valid-mips32r6-el.txt
    M llvm/test/MC/Disassembler/Mips/mips32r6/valid-mips32r6.txt
    M llvm/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6-el.txt
    M llvm/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6.txt
    M llvm/test/MC/Mips/mips32r6/valid.s
    M llvm/test/MC/Mips/mips64r6/valid.s
    A llvm/test/MC/WebAssembly/module-asm.ll
    M llvm/test/MachineVerifier/test_g_fcmp.mir
    M llvm/test/MachineVerifier/test_g_icmp.mir
    M llvm/test/TableGen/x86-fold-tables.inc
    M llvm/test/ThinLTO/X86/pseudo-probe-desc-import.ll
    M llvm/test/Transforms/CorrelatedValuePropagation/range.ll
    A llvm/test/Transforms/ExpandLargeDivRem/X86/vector.ll
    M llvm/test/Transforms/ExpandLargeFpConvert/X86/expand-large-fp-convert-fptosi129.ll
    M llvm/test/Transforms/ExpandLargeFpConvert/X86/expand-large-fp-convert-fptoui129.ll
    M llvm/test/Transforms/ExpandLargeFpConvert/X86/expand-large-fp-convert-si129tofp.ll
    M llvm/test/Transforms/ExpandLargeFpConvert/X86/expand-large-fp-convert-ui129tofp.ll
    M llvm/test/Transforms/FunctionAttrs/noundef.ll
    A llvm/test/Transforms/InstCombine/implies.ll
    M llvm/test/Transforms/InstCombine/known-bits.ll
    M llvm/test/Transforms/InstCombine/select.ll
    M llvm/test/Transforms/InstCombine/zext-or-icmp.ll
    M llvm/test/Transforms/InstSimplify/implies.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/clamped-trip-count.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-select-cmp.ll
    A llvm/test/Transforms/LoopVectorize/PowerPC/vectorize-force-tail-with-evl.ll
    A llvm/test/Transforms/LoopVectorize/PowerPC/vplan-force-tail-with-evl.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/inloop-reduction.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/pr87378-vpinstruction-or-drop-poison-generating-flags.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/select-cmp-reduction.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-gather-scatter.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-interleave.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-iv32.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-masked-loadstore.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-no-masking.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-reverse-load-store.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-vp-intrinsics.ll
    A llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-intrinsics.ll
    A llvm/test/Transforms/LoopVectorize/X86/vectorize-force-tail-with-evl.ll
    A llvm/test/Transforms/LoopVectorize/X86/vplan-vp-intrinsics.ll
    A llvm/test/Transforms/LoopVectorize/epilog-vectorization-any-of-reductions.ll
    M llvm/test/Transforms/LoopVectorize/select-cmp-predicated.ll
    M llvm/test/Transforms/LoopVectorize/select-cmp.ll
    M llvm/test/Transforms/LoopVectorize/select-reduction-start-value-may-be-undef-or-poison.ll
    A llvm/test/Transforms/LoopVectorize/vectorize-force-tail-with-evl.ll
    A llvm/test/Transforms/LoopVectorize/vplan-force-tail-with-evl.ll
    M llvm/test/Transforms/PGOProfile/vtable_profile.ll
    M llvm/test/Transforms/PhaseOrdering/X86/pr67803.ll
    R llvm/test/Transforms/RemoveTraps/remove-traps.ll
    A llvm/test/Transforms/SLPVectorizer/AArch64/scalable-external-user.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/vec3-reorder-reshuffle.ll
    A llvm/test/Transforms/SLPVectorizer/RISCV/mixed-extracts-types.ll
    A llvm/test/Transforms/SLPVectorizer/SystemZ/ext-alt-node-must-ext.ll
    A llvm/test/Transforms/SLPVectorizer/SystemZ/ext-not-resized-op-resized.ll
    A llvm/test/Transforms/SLPVectorizer/X86/ext-int-reduced-not-operand.ll
    A llvm/test/Transforms/SLPVectorizer/X86/external-user-instruction-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
    A llvm/test/Transforms/SLPVectorizer/X86/icmp-altopcode-after-reordering.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-icmp-to-trunc.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-node-with-multi-users.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reduction-logical.ll
    M llvm/test/Transforms/SLPVectorizer/X86/scatter-vectorize-reorder.ll
    M llvm/test/Transforms/SLPVectorizer/X86/vec3-reorder-reshuffle.ll
    M llvm/test/Transforms/SLPVectorizer/slp-umax-rdx-matcher-crash.ll
    A llvm/test/Transforms/SampleProfile/Inputs/non-probe-stale-profile-matching.prof
    M llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-profile.prof
    M llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-update.prof
    A llvm/test/Transforms/SampleProfile/non-probe-stale-profile-matching.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-callee-profile-mismatch.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-dangle.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-discriminator.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-eh.ll
    A llvm/test/Transforms/SampleProfile/pseudo-probe-invoke.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-profile-metadata-2.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-profile.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-update.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-verify.ll
    M llvm/test/Transforms/SpeculativeExecution/PR46267.ll
    M llvm/test/Transforms/VectorCombine/X86/shuffle-inseltpoison.ll
    A llvm/test/Transforms/VectorCombine/X86/shuffle-of-casts.ll
    M llvm/test/Transforms/VectorCombine/X86/shuffle.ll
    A llvm/test/Transforms/lower-builtin-allow-check.ll
    A llvm/test/Verifier/module-flags-note-gnu-property-elf-pauthabi.ll
    A llvm/test/Verifier/pr69428.ll
    A llvm/test/tools/dsymutil/ARM/firmware.test
    A llvm/test/tools/dsymutil/Inputs/private/tmp/firmware/test.o
    A llvm/test/tools/dsymutil/Inputs/private/tmp/firmware/test.out
    M llvm/test/tools/llvm-mca/AArch64/Neoverse/V2-sve-instructions.s
    M llvm/test/tools/llvm-mca/X86/Broadwell/resources-avx1.s
    M llvm/test/tools/llvm-mca/X86/Broadwell/resources-sse41.s
    M llvm/test/tools/llvm-mca/X86/Haswell/resources-avx1.s
    M llvm/test/tools/llvm-mca/X86/Haswell/resources-sse41.s
    M llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-avx1.s
    M llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-sse41.s
    M llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx1.s
    M llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-sse41.s
    M llvm/test/tools/llvm-mca/X86/Znver3/dependency-breaking-gpr.s
    M llvm/test/tools/llvm-mca/X86/Znver3/mulx-hi-read-advance.s
    M llvm/test/tools/llvm-mca/X86/Znver3/mulx-lo-reg-use.s
    M llvm/test/tools/llvm-mca/X86/Znver3/mulx-read-advance.s
    M llvm/test/tools/llvm-mca/X86/Znver3/mulx-same-regs.s
    M llvm/test/tools/llvm-mca/X86/Znver3/one-idioms-avx-xmm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/one-idioms-avx-ymm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/one-idioms-mmx.s
    M llvm/test/tools/llvm-mca/X86/Znver3/one-idioms-sse-xmm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/partial-reg-update-3.s
    M llvm/test/tools/llvm-mca/X86/Znver3/partial-reg-update-4.s
    M llvm/test/tools/llvm-mca/X86/Znver3/partial-reg-update-5.s
    M llvm/test/tools/llvm-mca/X86/Znver3/partial-reg-update-6.s
    M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-avx-xmm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-avx-ymm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-gpr.s
    M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-mmx.s
    M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-sse-xmm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-x87.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-adx.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-aes.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-avx1.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-avx2.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-bmi1.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-bmi2.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-clflushopt.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-clzero.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-cmov.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-cmpxchg.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-f16c.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-fma.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-fsgsbase.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-lea.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-lzcnt.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-mmx.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-movbe.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-mwaitx.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-pclmul.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-popcnt.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-prefetchw.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-rdrand.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-rdseed.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sha.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sse1.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sse2.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sse3.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sse41.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sse42.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-sse4a.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-ssse3.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-vaes.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-vpclmulqdq.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-x86_32.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-x86_64.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-x87.s
    M llvm/test/tools/llvm-mca/X86/Znver3/resources-xsave.s
    M llvm/test/tools/llvm-mca/X86/Znver3/zero-idioms-avx-xmm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/zero-idioms-avx-ymm.s
    M llvm/test/tools/llvm-mca/X86/Znver3/zero-idioms-gpr.s
    M llvm/test/tools/llvm-mca/X86/Znver3/zero-idioms-sse-xmm.s
    M llvm/test/tools/llvm-objcopy/ELF/discard-locals-rel.test
    M llvm/test/tools/llvm-objcopy/ELF/strip-reloc-symbol.test
    M llvm/test/tools/llvm-objdump/ELF/AMDGPU/kd-cov5.s
    M llvm/test/tools/llvm-readobj/ELF/AArch64/aarch64-feature-pauth.s
    M llvm/test/tools/llvm-readobj/ELF/AArch64/aarch64-note-gnu-property.s
    M llvm/tools/dsymutil/DwarfLinkerForBinary.cpp
    M llvm/tools/gold/CMakeLists.txt
    M llvm/tools/llvm-dis/llvm-dis.cpp
    M llvm/tools/llvm-link/llvm-link.cpp
    M llvm/tools/llvm-lto/llvm-lto.cpp
    M llvm/tools/llvm-lto2/llvm-lto2.cpp
    M llvm/tools/llvm-readobj/ELFDumper.cpp
    M llvm/unittests/ADT/APIntTest.cpp
    M llvm/unittests/CodeGen/AArch64SelectionDAGTest.cpp
    M llvm/unittests/Option/OptionMarshallingTest.cpp
    M llvm/unittests/ProfileData/MemProfTest.cpp
    M llvm/unittests/Support/FormatVariadicTest.cpp
    M llvm/unittests/Support/KnownBitsTest.cpp
    M llvm/unittests/TextAPI/TextStubV5Tests.cpp
    M llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
    M llvm/utils/TableGen/OptParserEmitter.cpp
    M llvm/utils/TableGen/X86ManualCompressEVEXTables.def
    M llvm/utils/gn/secondary/bolt/lib/Profile/BUILD.gn
    M llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/readability/BUILD.gn
    M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
    M llvm/utils/gn/secondary/libcxx/src/BUILD.gn
    M llvm/utils/gn/secondary/llvm/lib/CodeGen/GlobalISel/BUILD.gn
    M llvm/utils/gn/secondary/llvm/lib/Transforms/Instrumentation/BUILD.gn
    A mlir/cmake/modules/MLIRCheckHardwareFeatures.cmake
    M mlir/docs/DefiningDialects/AttributesAndTypes.md
    M mlir/docs/DefiningDialects/_index.md
    M mlir/docs/Dialects/ArmSME.md
    M mlir/docs/Dialects/Linalg/_index.md
    M mlir/docs/Dialects/Transform.md
    M mlir/docs/LangRef.md
    M mlir/docs/PassManagement.md
    M mlir/docs/Rationale/SideEffectsAndSpeculation.md
    M mlir/docs/TargetLLVMIR.md
    M mlir/docs/Tutorials/Toy/Ch-4.md
    M mlir/docs/Tutorials/transform/Ch4.md
    M mlir/include/mlir/Dialect/Affine/LoopUtils.h
    M mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
    M mlir/include/mlir/Dialect/DLTI/DLTI.h
    M mlir/include/mlir/Dialect/EmitC/IR/EmitC.h
    M mlir/include/mlir/Dialect/EmitC/IR/EmitC.td
    M mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
    M mlir/include/mlir/Dialect/LLVMIR/Transforms/TypeConsistency.h
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/include/mlir/Dialect/SCF/Utils/Utils.h
    M mlir/include/mlir/Dialect/Vector/IR/ScalableValueBoundsConstraintSet.h
    M mlir/include/mlir/IR/OwningOpRef.h
    M mlir/include/mlir/IR/PatternMatch.h
    M mlir/include/mlir/Interfaces/DataLayoutInterfaces.h
    M mlir/include/mlir/Interfaces/DataLayoutInterfaces.td
    M mlir/include/mlir/Interfaces/MemorySlotInterfaces.td
    M mlir/include/mlir/Interfaces/ValueBoundsOpInterface.h
    M mlir/include/mlir/Pass/Pass.h
    M mlir/include/mlir/Pass/PassOptions.h
    M mlir/include/mlir/Support/Timing.h
    M mlir/include/mlir/TableGen/Format.h
    M mlir/include/mlir/Transforms/Passes.h
    M mlir/include/mlir/Transforms/Passes.td
    M mlir/lib/Conversion/MemRefToEmitC/MemRefToEmitC.cpp
    M mlir/lib/Conversion/MemRefToSPIRV/MapMemRefStorageClassPass.cpp
    M mlir/lib/Dialect/Affine/Transforms/LoopCoalescing.cpp
    M mlir/lib/Dialect/Affine/Transforms/ReifyValueBounds.cpp
    M mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp
    M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
    M mlir/lib/Dialect/Arith/Transforms/ReifyValueBounds.cpp
    M mlir/lib/Dialect/Arith/Transforms/UnsignedWhenEquivalent.cpp
    M mlir/lib/Dialect/ArmNeon/Transforms/LowerContractionToSMMLAPattern.cpp
    M mlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.cpp
    M mlir/lib/Dialect/DLTI/DLTI.cpp
    M mlir/lib/Dialect/EmitC/IR/EmitC.cpp
    M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
    M mlir/lib/Dialect/LLVMIR/IR/LLVMMemorySlot.cpp
    M mlir/lib/Dialect/LLVMIR/Transforms/TypeConsistency.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/BufferizableOpInterfaceImpl.cpp
    M mlir/lib/Dialect/Linalg/Transforms/HoistPadding.cpp
    M mlir/lib/Dialect/Math/Transforms/ExpandPatterns.cpp
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/lib/Dialect/SCF/IR/SCF.cpp
    M mlir/lib/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.cpp
    M mlir/lib/Dialect/SCF/TransformOps/SCFTransformOps.cpp
    M mlir/lib/Dialect/SCF/Transforms/ParallelLoopCollapsing.cpp
    M mlir/lib/Dialect/SCF/Utils/Utils.cpp
    M mlir/lib/Dialect/SPIRV/IR/SPIRVCanonicalization.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorPasses.cpp
    M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
    M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
    M mlir/lib/Dialect/Tosa/Transforms/TosaInferShapes.cpp
    M mlir/lib/Dialect/Vector/IR/ScalableValueBoundsConstraintSet.cpp
    M mlir/lib/Dialect/Vector/Transforms/VectorDropLeadUnitDim.cpp
    M mlir/lib/Dialect/Vector/Transforms/VectorLinearize.cpp
    M mlir/lib/IR/PatternMatch.cpp
    M mlir/lib/Interfaces/DataLayoutInterfaces.cpp
    M mlir/lib/Interfaces/ValueBoundsOpInterface.cpp
    M mlir/lib/Pass/Pass.cpp
    M mlir/lib/Pass/PassRegistry.cpp
    M mlir/lib/Support/Timing.cpp
    M mlir/lib/TableGen/Format.cpp
    M mlir/lib/Target/Cpp/TranslateToCpp.cpp
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/lib/Transforms/CMakeLists.txt
    A mlir/lib/Transforms/CompositePass.cpp
    M mlir/lib/Transforms/InlinerPass.cpp
    M mlir/lib/Transforms/Mem2Reg.cpp
    M mlir/python/requirements.txt
    M mlir/test/CMakeLists.txt
    M mlir/test/Conversion/MemRefToEmitC/memref-to-emitc.mlir
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg-invalid.mlir
    M mlir/test/Dialect/Affine/SuperVectorize/compose_maps.mlir
    M mlir/test/Dialect/Affine/SuperVectorize/vector_utils.mlir
    M mlir/test/Dialect/Affine/SuperVectorize/vectorize_unsupported.mlir
    M mlir/test/Dialect/Affine/loop-coalescing.mlir
    M mlir/test/Dialect/Affine/loop-fusion-dependence-check.mlir
    M mlir/test/Dialect/Affine/loop-fusion-slice-computation.mlir
    M mlir/test/Dialect/Affine/loop-fusion-transformation.mlir
    M mlir/test/Dialect/Affine/slicing-utils.mlir
    A mlir/test/Dialect/Arith/vscale_constants.mlir
    M mlir/test/Dialect/ArmNeon/lower-to-arm-neon.mlir
    M mlir/test/Dialect/ControlFlow/ops.mlir
    M mlir/test/Dialect/EmitC/invalid_ops.mlir
    M mlir/test/Dialect/EmitC/ops.mlir
    M mlir/test/Dialect/LLVMIR/canonicalize.mlir
    M mlir/test/Dialect/LLVMIR/layout.mlir
    M mlir/test/Dialect/LLVMIR/mem2reg-dbginfo.mlir
    M mlir/test/Dialect/LLVMIR/mem2reg.mlir
    M mlir/test/Dialect/LLVMIR/sroa.mlir
    M mlir/test/Dialect/LLVMIR/type-consistency.mlir
    M mlir/test/Dialect/Math/expand-math.mlir
    M mlir/test/Dialect/OpenMP/invalid.mlir
    M mlir/test/Dialect/OpenMP/ops.mlir
    M mlir/test/Dialect/SCF/canonicalize.mlir
    M mlir/test/Dialect/SCF/transform-op-coalesce.mlir
    M mlir/test/Dialect/SparseTensor/one_shot_bufferize_tensor_copy_insertion.mlir
    M mlir/test/Dialect/Tensor/canonicalize.mlir
    M mlir/test/Dialect/Tosa/invalid.mlir
    M mlir/test/Dialect/Tosa/tosa-infer-shapes.mlir
    M mlir/test/Dialect/Transform/test-pass-application.mlir
    M mlir/test/Dialect/Vector/linearize.mlir
    M mlir/test/Dialect/Vector/vector-dropleadunitdim-transforms.mlir
    M mlir/test/Pass/pass-timing.mlir
    M mlir/test/Target/Cpp/subscript.mlir
    M mlir/test/Target/LLVMIR/omptarget-parallel-wsloop.mlir
    A mlir/test/Target/LLVMIR/omptarget-target-inside-task.mlir
    M mlir/test/Target/LLVMIR/omptarget-teams-llvm.mlir
    M mlir/test/Target/LLVMIR/omptarget-wsloop-collapsed.mlir
    M mlir/test/Target/LLVMIR/omptarget-wsloop.mlir
    A mlir/test/Target/LLVMIR/openmp-data-target-device.mlir
    A mlir/test/Target/LLVMIR/openmp-parallel-reduction-cleanup.mlir
    A mlir/test/Target/LLVMIR/openmp-reduction-init-arg.mlir
    A mlir/test/Target/LLVMIR/openmp-task-target-device.mlir
    A mlir/test/Target/LLVMIR/openmp-wsloop-reduction-cleanup.mlir
    A mlir/test/Transforms/composite-pass.mlir
    M mlir/test/Transforms/parallel-loop-collapsing.mlir
    M mlir/test/Transforms/single-parallel-loop-collapsing.mlir
    M mlir/test/lib/Dialect/Affine/TestLoopFusion.cpp
    M mlir/test/lib/Dialect/Affine/TestReifyValueBounds.cpp
    M mlir/test/lib/Dialect/Affine/TestVectorizationUtils.cpp
    M mlir/test/lib/Dialect/DLTI/TestDataLayoutQuery.cpp
    M mlir/test/lib/Dialect/Test/TestPatterns.cpp
    M mlir/test/lib/Transforms/CMakeLists.txt
    A mlir/test/lib/Transforms/TestCompositePass.cpp
    A mlir/test/mlir-tblgen/op-properties.td
    M mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-yaml-gen.cpp
    M mlir/tools/mlir-opt/mlir-opt.cpp
    M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
    M mlir/tools/mlir-tblgen/OpFormatGen.cpp
    M mlir/unittests/Interfaces/DataLayoutInterfacesTest.cpp
    A offload/README.md
    M openmp/README.rst
    M openmp/docs/design/Runtimes.rst
    M openmp/runtime/CMakeLists.txt
    M openmp/runtime/cmake/LibompGetArchitecture.cmake
    M openmp/runtime/cmake/LibompUtils.cmake
    M openmp/runtime/cmake/config-ix.cmake
    M openmp/runtime/src/kmp_affinity.cpp
    M openmp/runtime/src/kmp_affinity.h
    M openmp/runtime/src/kmp_gsupport.cpp
    M openmp/runtime/src/kmp_os.h
    M openmp/runtime/src/kmp_platform.h
    M openmp/runtime/src/kmp_runtime.cpp
    M openmp/runtime/src/kmp_tasking.cpp
    M openmp/runtime/src/z_Linux_asm.S
    M openmp/runtime/src/z_Linux_util.cpp
    A openmp/runtime/test/affinity/kmp-abs-hw-subset.c
    M openmp/runtime/test/ompt/callback.h
    A openmp/runtime/test/tasking/issue-87307.c
    M openmp/runtime/tools/lib/Platform.pm
    M openmp/runtime/tools/lib/Uname.pm
    M third-party/benchmark/src/cycleclock.h
    M third-party/benchmark/src/internal_macros.h
    M utils/bazel/.bazelrc
    M utils/bazel/configure.bzl
    M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
    M utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel
    A utils/bazel/llvm-project-overlay/compiler-rt/lib/orc/tests/unit/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl
    M utils/bazel/llvm-project-overlay/libc/test/src/__support/BUILD.bazel
    A utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel
    M utils/bazel/llvm-project-overlay/lld/BUILD.bazel
    A utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
    A utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
    A utils/bazel/llvm-project-overlay/lldb/source/Plugins/plugin_config.bzl
    M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
    M utils/bazel/llvm-project-overlay/llvm/driver.bzl
    M utils/bazel/llvm-project-overlay/llvm/lit_test.bzl
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

  Log Message:
  -----------
  Rebase

Created using spr 1.3.5


Compare: https://github.com/llvm/llvm-project/compare/98ade154233d...132d2c0afb85

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